@digi-frontend/dgate-api-documentation 1.1.3 → 1.1.4
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.
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__rest as e}from"../../node_modules/tslib/tslib.es6.js";const s=(e,s)=>e.replace(/^#\//,"").split("/").reduce((e,s)=>null==e?void 0:e[s],s),t=e=>{var s,t,
|
|
1
|
+
import{__rest as e}from"../../node_modules/tslib/tslib.es6.js";const s=(e,s)=>e.replace(/^#\//,"").split("/").reduce((e,s)=>null==e?void 0:e[s],s),t=e=>{var s,t,o,i;if(e.components&&e.components.securitySchemes){const n=null===(s=Object.keys(e.components.securitySchemes))||void 0===s?void 0:s.at(0);n&&(e.components.securitySchemes[n].type=null===(i=null===(o=null===(t=null==e?void 0:e.components)||void 0===t?void 0:t.securitySchemes)||void 0===o?void 0:o[n])||void 0===i?void 0:i.type)}else e.components=Object.assign({securitySchemes:{Public:{type:"http",scheme:"public"}}},e.components||{});return e.tags||(e.tags=[]),Object.assign(Object.assign({},e),{paths:n(e)})},o=e=>{var s,t,o,n;const i=Object.assign(Object.assign({},e),{paths:l(e.paths)});if(i.components&&i.components.securitySchemes){const e=null===(s=Object.keys(i.components.securitySchemes))||void 0===s?void 0:s.at(0);e&&(i.components.securitySchemes[e].type.toLowerCase()=="APIKEY".toLowerCase()&&(i.components.securitySchemes[e].in=i.components.securitySchemes[e].in),i.components.securitySchemes[e].type=null===(n=null===(o=null===(t=null==i?void 0:i.components)||void 0===t?void 0:t.securitySchemes)||void 0===o?void 0:o[e])||void 0===n?void 0:n.type)}return i},n=t=>{const o=t.paths;return Object.entries(o).map(([o,n])=>({path:o,methods:Object.entries(n).map(([o,n])=>{var i,l,c,r,d,a;const u=Object.assign(Object.assign({},n),{type:o,tags:n.tags||[],summary:n.summary||"",responses:Object.entries(n.responses).map(([o,n])=>{var i,l,c,r,d;const a=Object.keys(n.content||{})[0];let u=null!==(i=null==n?void 0:n.headers)&&void 0!==i?i:{};Object.keys(u).map(e=>{var s,t,o,n;let i=u[e];(null==i?void 0:i.schema)&&(null===(s=null==i?void 0:i.schema)||void 0===s?void 0:s.type)&&"array"!=(null===(t=null==i?void 0:i.schema)||void 0===t?void 0:t.type)&&(null===(n=null===(o=u[e])||void 0===o?void 0:o.schema)||void 0===n||delete n.items)});let v=null===(c=null===(l=n.content)||void 0===l?void 0:l[a])||void 0===c?void 0:c.schema;if(null==v?void 0:v.$ref)v=s(null==v?void 0:v.$ref,t);else if("array"==(null==v?void 0:v.type)&&(null===(r=null==v?void 0:v.items)||void 0===r?void 0:r.$ref)){const e=s(v.items.$ref,t);v=Object.assign(Object.assign({},v),{items:e})}if("array"!==(null==v?void 0:v.type)){v=e(v,["items"])}return{code:o,headers:u,content:{contentType:a,schema:Object.assign(Object.assign({},v),{properties:JSON.stringify((null==v?void 0:v.properties)||(null===(d=null==v?void 0:v.items)||void 0===d?void 0:d.properties))})}}})});if(u.responses.find(e=>"200"==e.code)||u.responses.push({code:"200",content:{contentType:"application/json",schema:{}},headers:{}}),(null==n?void 0:n.parameters)?u.parameters=u.parameters.map(e=>{var s;const{schema:t}=e;return t&&(null==t?void 0:t.items)&&"array"!=(null===(s=null==t?void 0:t.type)||void 0===s?void 0:s.toLowerCase())&&delete t.items,Object.assign(Object.assign({},e),{schema:t})}):u.parameters=[],"get"!=o.toLowerCase()){const e=Object.keys((null===(i=null==n?void 0:n.requestBody)||void 0===i?void 0:i.content)||{})[0];let o=null===(r=null===(c=null===(l=null==n?void 0:n.requestBody)||void 0===l?void 0:l.content)||void 0===c?void 0:c[e])||void 0===r?void 0:r.schema;(null==o?void 0:o.$ref)?o=s(o.$ref,t):"array"===(null==o?void 0:o.type)&&(null===(d=o.items)||void 0===d?void 0:d.$ref)&&(o=Object.assign(Object.assign({},o),{items:s(o.items.$ref,t)}));const v=o?{content:{contentType:e,schema:Object.assign(Object.assign({},o),{properties:JSON.stringify((null==o?void 0:o.properties)||(null===(a=null==o?void 0:o.items)||void 0===a?void 0:a.properties))})}}:{content:{contentType:"application/json",schema:{properties:"{}",type:"object"}}};u.requestBody=v}return u})}))},i=(e,s)=>{var t,o;if(!(null==e?void 0:e.schema)||!(null===(t=null==e?void 0:e.schema)||void 0===t?void 0:t.properties))return{};return JSON.parse(null===(o=null==e?void 0:e.schema)||void 0===o?void 0:o.properties)},l=s=>s.reduce((s,{path:t,methods:o})=>(s[t]=o.reduce((s,t)=>{var{type:o,tags:n,responses:l,summary:c,requestBody:r}=t,d=e(t,["type","tags","responses","summary","requestBody"]);let a=structuredClone(d||{});a&&a.parameters&&a.parameters.map(e=>{var s,t,o,n,i,l,c;return e&&(null===(s=null==e?void 0:e.schema)||void 0===s?void 0:s.items)&&"array"!=(null===(o=null===(t=null==e?void 0:e.schema)||void 0===t?void 0:t.type)||void 0===o?void 0:o.toLowerCase())&&(null===(n=null==e?void 0:e.schema)||void 0===n||delete n.items),e&&(null===(i=null==e?void 0:e.schema)||void 0===i?void 0:i.items)&&"array"==(null===(c=null===(l=null==e?void 0:e.schema)||void 0===l?void 0:l.items)||void 0===c?void 0:c.type)&&(e.schema.items.items={}),e});const u=d.responses||{};s[o]=Object.assign(Object.assign({},a),{tags:n,summary:c,responses:l.reduce((e,{code:s,content:t,headers:o})=>{var n,l,c,r,d;const a=!u[s],v=Object.keys(o||{}).length>0,m=Object.keys(i(t||{})||{}).length>0;if(a&&!v&&!m)return e;const p={};if(o)for(const[e,s]of Object.entries(o))(null==s?void 0:s.schema)&&(null===(n=null==s?void 0:s.schema)||void 0===n?void 0:n.items)&&"array"!=(null===(c=null===(l=null==s?void 0:s.schema)||void 0===l?void 0:l.type)||void 0===c?void 0:c.toLowerCase())&&(null===(r=null==s?void 0:s.schema)||void 0===r||delete r.items),p[e]={description:s.description||"",required:s.required||!1,schema:s.schema||{}};return e[s]={description:"Success",content:t.contentType?{[t.contentType]:{schema:Object.assign(Object.assign({},t.schema),{properties:i(t)})}}:(null===(d=u[s])||void 0===d?void 0:d.content)||{},headers:p},e},{})});const v="get"!==o?JSON.parse(r.content.schema.properties):{};return"get"!==o&&(s[o].requestBody={content:{[r.content.contentType]:{schema:Object.assign(Object.assign({},r.content.schema),{properties:v})}}}),s},{}),s),{});export{t as transformOpenApiObject,o as transformOpenApiObjectToOrigin,l as transformPathsArrayToOrigin,n as transformPathsToArray};
|
|
2
2
|
//# sourceMappingURL=layout.helper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout.helper.js","sources":["../../../src/helpers/layout.helper.ts"],"sourcesContent":["import { TransformedPathsArray } from '@entities/layout.type'\nimport { OpenAPIFile, SecurityScheme } from '@entities/openApi'\nimport { TransformedOpenApi } from '@entities/transformedOpenApi'\n\nconst resolveRef = (ref: string, openApiJson: OpenAPIFile): Object => {\n const parts = ref.replace(/^#\\//, '').split('/')\n return parts.reduce((obj, key) => obj?.[key], openApiJson)\n}\n\nexport const transformOpenApiObject = (openApiJson: OpenAPIFile): TransformedOpenApi => {\n if (openApiJson.components && openApiJson.components.securitySchemes) {\n const authKey = Object.keys(openApiJson.components.securitySchemes)?.at(0)\n if (authKey) {\n openApiJson.components.securitySchemes[authKey].type = openApiJson?.components\n ?.securitySchemes?.[authKey]?.type as SecurityScheme['type']\n }\n } else {\n openApiJson.components = {\n securitySchemes: {\n Public: {\n type: 'http',\n scheme: 'public',\n },\n },\n ...(openApiJson.components || {}),\n }\n }\n\n if (!openApiJson.tags) {\n openApiJson.tags = []\n }\n\n return {\n ...openApiJson,\n paths: transformPathsToArray(openApiJson),\n } as TransformedOpenApi\n}\n\nexport const transformOpenApiObjectToOrigin = (values: TransformedOpenApi): OpenAPIFile => {\n const object = {\n ...values,\n paths: transformPathsArrayToOrigin(values.paths),\n }\n if (object.components && object.components.securitySchemes) {\n const authKey = Object.keys(object.components.securitySchemes)?.at(0)\n if (authKey) {\n if (object.components.securitySchemes[authKey].type.toLowerCase() == 'APIKEY'.toLowerCase()) {\n object.components.securitySchemes[authKey].in = object.components.securitySchemes[authKey]\n .in as SecurityScheme['in']\n }\n object.components.securitySchemes[authKey].type = object?.components?.securitySchemes?.[\n authKey\n ]?.type as SecurityScheme['type']\n }\n }\n return object\n}\n\nexport const transformPathsToArray = (openApiJson: OpenAPIFile): TransformedPathsArray | any => {\n const paths: OpenAPIFile['paths'] = openApiJson.paths\n const transformedPaths = Object.entries(paths).map(([path, methods]) => ({\n path,\n methods: Object.entries(methods).map(([method, methodProps]) => {\n const obj: any = {\n ...methodProps,\n type: method,\n tags: methodProps.tags || [],\n summary: methodProps.summary || '',\n responses: Object.entries(methodProps.responses).map(([code, codeProps]) => {\n const contentType = Object.keys(codeProps.content || {})[0]\n let headers = codeProps?.headers ?? {}\n\n // ? Fix headers with items property\n Object.keys(headers).map((header: string) => {\n let headerObj = headers[header]\n if (\n headerObj?.schema &&\n headerObj?.schema?.type &&\n headerObj?.schema?.type != 'array'\n ) {\n delete headers[header]?.schema?.items\n }\n })\n\n let schema = codeProps.content?.[contentType]?.schema\n if (schema?.$ref) {\n schema = resolveRef(schema?.$ref, openApiJson)\n } else if (schema?.type == 'array' && schema?.items?.$ref) {\n const resolvedItemSchema = resolveRef(schema.items.$ref, openApiJson)\n schema = {\n ...schema,\n items: resolvedItemSchema,\n }\n }\n // if the response content is not an array remove the (items) property\n if (schema?.type !== 'array') {\n const { items, ...schemaRest } = schema\n\n schema = schemaRest\n }\n\n return {\n code,\n headers,\n content: {\n contentType,\n schema: {\n ...schema,\n properties: JSON.stringify(schema?.properties || schema?.items?.properties),\n },\n },\n }\n }),\n }\n\n if (!obj.responses.find((item) => item.code == '200')) {\n obj.responses.push({\n code: '200',\n content: {\n contentType: 'application/json',\n schema: {},\n },\n headers: {},\n })\n }\n // Add parameters if it does not exist in the original JSON\n if (!methodProps?.parameters) {\n obj.parameters = []\n } else {\n obj.parameters = obj.parameters.map((param) => {\n const { schema } = param\n if (schema && schema?.items && schema?.type?.toLowerCase() != 'array') {\n delete schema.items\n }\n\n return { ...param, schema }\n })\n }\n\n // load response headers parameters\n\n if (method.toLowerCase() != 'get') {\n const contentType = Object.keys(methodProps?.requestBody?.content || {})[0]\n let reqSchema = methodProps?.requestBody?.content?.[contentType]?.schema\n\n if (reqSchema?.$ref) {\n reqSchema = resolveRef(reqSchema.$ref, openApiJson)\n } else if (reqSchema?.type === 'array' && reqSchema.items?.$ref) {\n reqSchema = {\n ...reqSchema,\n items: resolveRef(reqSchema.items.$ref, openApiJson),\n }\n }\n\n const requestBodyData = reqSchema\n ? {\n content: {\n contentType,\n schema: {\n ...reqSchema,\n properties: JSON.stringify(reqSchema?.properties || reqSchema?.items?.properties),\n },\n },\n }\n : {\n content: {\n contentType: 'application/json',\n schema: {\n properties: '{}',\n type: 'object',\n },\n },\n }\n\n obj['requestBody'] = requestBodyData\n }\n return obj\n }),\n }))\n\n return transformedPaths\n}\n\nconst validateBodyForResponse = (content, method) => {\n if (!(content?.schema as any) || !(content?.schema as any)?.properties) {\n return {}\n }\n let _content = JSON.parse((content?.schema as any)?.properties as string)\n\n return _content\n}\n\nexport const transformPathsArrayToOrigin = (paths: TransformedPathsArray): OpenAPIFile['paths'] => {\n return paths.reduce((acc, { path, methods }) => {\n acc[path] = methods.reduce(\n (methodAcc, { type, tags, responses, summary, requestBody, ...rest }) => {\n // Initialize the method object\n // ? Validate (rest) [parameters]\n let copiedRest = structuredClone(rest || {})\n if (copiedRest && copiedRest.parameters) {\n copiedRest.parameters.map((param) => {\n if (param && param?.schema?.items && param?.schema?.items?.type == 'array') {\n param.schema.items.items = {}\n }\n return param\n })\n }\n\n // Get the original responses from the rest object\n const originalResponses = rest.responses || {}\n\n methodAcc[type] = {\n ...copiedRest,\n tags,\n summary,\n responses: responses.reduce((respAcc, { code, content, headers }) => {\n // Skip if:\n // 1. This is a new code (not in original) AND\n // 2. Both headers and content are empty\n const isNewCode = !originalResponses[code]\n const hasHeaders = Object.keys(headers || {}).length > 0\n const hasContent =\n Object.keys(validateBodyForResponse(content || {}, type) || {}).length > 0\n\n if (isNewCode && !hasHeaders && !hasContent) {\n return respAcc\n }\n\n const formattedHeaders: Record<string, any> = {}\n if (headers) {\n for (const [key, value] of Object.entries(headers)) {\n formattedHeaders[key] = {\n description: value.description || '',\n required: value.required || false,\n schema: value.schema || {},\n }\n }\n }\n respAcc[code] = {\n description: 'Success', // Assuming this is static from the original data\n content: content.contentType\n ? {\n [content.contentType]: {\n schema: {\n ...(content.schema as object),\n properties: validateBodyForResponse(content, type),\n },\n },\n }\n : originalResponses[code]?.content || {},\n headers: formattedHeaders,\n }\n return respAcc\n }, {} as Record<string, any>),\n }\n\n const parsedRequestBodyProps =\n type !== 'get' ? JSON.parse(requestBody.content.schema.properties) : {}\n // Add requestBody for non-GET methods\n if (type !== 'get') {\n methodAcc[type].requestBody = {\n content: {\n [requestBody.content.contentType]: {\n schema: {\n ...requestBody.content.schema,\n properties: parsedRequestBodyProps,\n },\n },\n },\n }\n }\n\n return methodAcc\n },\n {} as Record<string, any>\n )\n\n return acc\n }, {} as OpenAPIFile['paths'])\n}\n"],"names":["resolveRef","ref","openApiJson","replace","split","reduce","obj","key","transformOpenApiObject","components","securitySchemes","authKey","_a","Object","keys","at","type","_d","_c","_b","assign","Public","scheme","tags","paths","transformPathsToArray","transformOpenApiObjectToOrigin","values","object","transformPathsArrayToOrigin","toLowerCase","in","entries","map","path","methods","method","methodProps","summary","responses","code","codeProps","contentType","content","headers","header","headerObj","schema","items","$ref","resolvedItemSchema","__rest","properties","JSON","stringify","_e","find","item","push","parameters","param","requestBody","reqSchema","requestBodyData","_f","validateBodyForResponse","parse","acc","methodAcc","rest","copiedRest","structuredClone","originalResponses","respAcc","isNewCode","hasHeaders","length","hasContent","formattedHeaders","value","description","required","parsedRequestBodyProps"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"layout.helper.js","sources":["../../../src/helpers/layout.helper.ts"],"sourcesContent":["import { TransformedPathsArray } from '@entities/layout.type'\nimport { OpenAPIFile, SecurityScheme } from '@entities/openApi'\nimport { TransformedOpenApi } from '@entities/transformedOpenApi'\n\nconst resolveRef = (ref: string, openApiJson: OpenAPIFile): Object => {\n const parts = ref.replace(/^#\\//, '').split('/')\n return parts.reduce((obj, key) => obj?.[key], openApiJson)\n}\n\nexport const transformOpenApiObject = (openApiJson: OpenAPIFile): TransformedOpenApi => {\n if (openApiJson.components && openApiJson.components.securitySchemes) {\n const authKey = Object.keys(openApiJson.components.securitySchemes)?.at(0)\n if (authKey) {\n openApiJson.components.securitySchemes[authKey].type = openApiJson?.components\n ?.securitySchemes?.[authKey]?.type as SecurityScheme['type']\n }\n } else {\n openApiJson.components = {\n securitySchemes: {\n Public: {\n type: 'http',\n scheme: 'public',\n },\n },\n ...(openApiJson.components || {}),\n }\n }\n\n if (!openApiJson.tags) {\n openApiJson.tags = []\n }\n\n return {\n ...openApiJson,\n paths: transformPathsToArray(openApiJson),\n } as TransformedOpenApi\n}\n\nexport const transformOpenApiObjectToOrigin = (values: TransformedOpenApi): OpenAPIFile => {\n const object = {\n ...values,\n paths: transformPathsArrayToOrigin(values.paths),\n }\n if (object.components && object.components.securitySchemes) {\n const authKey = Object.keys(object.components.securitySchemes)?.at(0)\n if (authKey) {\n if (object.components.securitySchemes[authKey].type.toLowerCase() == 'APIKEY'.toLowerCase()) {\n object.components.securitySchemes[authKey].in = object.components.securitySchemes[authKey]\n .in as SecurityScheme['in']\n }\n object.components.securitySchemes[authKey].type = object?.components?.securitySchemes?.[\n authKey\n ]?.type as SecurityScheme['type']\n }\n }\n return object\n}\n\nexport const transformPathsToArray = (openApiJson: OpenAPIFile): TransformedPathsArray | any => {\n const paths: OpenAPIFile['paths'] = openApiJson.paths\n const transformedPaths = Object.entries(paths).map(([path, methods]) => ({\n path,\n methods: Object.entries(methods).map(([method, methodProps]) => {\n const obj: any = {\n ...methodProps,\n type: method,\n tags: methodProps.tags || [],\n summary: methodProps.summary || '',\n responses: Object.entries(methodProps.responses).map(([code, codeProps]) => {\n const contentType = Object.keys(codeProps.content || {})[0]\n let headers = codeProps?.headers ?? {}\n\n // ? Fix headers with items property\n Object.keys(headers).map((header: string) => {\n let headerObj = headers[header]\n if (\n headerObj?.schema &&\n headerObj?.schema?.type &&\n headerObj?.schema?.type != 'array'\n ) {\n delete headers[header]?.schema?.items\n }\n })\n\n let schema = codeProps.content?.[contentType]?.schema\n if (schema?.$ref) {\n schema = resolveRef(schema?.$ref, openApiJson)\n } else if (schema?.type == 'array' && schema?.items?.$ref) {\n const resolvedItemSchema = resolveRef(schema.items.$ref, openApiJson)\n schema = {\n ...schema,\n items: resolvedItemSchema,\n }\n }\n // if the response content is not an array remove the (items) property\n if (schema?.type !== 'array') {\n const { items, ...schemaRest } = schema\n\n schema = schemaRest\n }\n\n return {\n code,\n headers,\n content: {\n contentType,\n schema: {\n ...schema,\n properties: JSON.stringify(schema?.properties || schema?.items?.properties),\n },\n },\n }\n }),\n }\n\n if (!obj.responses.find((item) => item.code == '200')) {\n obj.responses.push({\n code: '200',\n content: {\n contentType: 'application/json',\n schema: {},\n },\n headers: {},\n })\n }\n // Add parameters if it does not exist in the original JSON\n if (!methodProps?.parameters) {\n obj.parameters = []\n } else {\n obj.parameters = obj.parameters.map((param) => {\n const { schema } = param\n if (schema && schema?.items && schema?.type?.toLowerCase() != 'array') {\n delete schema.items\n }\n\n return { ...param, schema }\n })\n }\n\n // load response headers parameters\n\n if (method.toLowerCase() != 'get') {\n const contentType = Object.keys(methodProps?.requestBody?.content || {})[0]\n let reqSchema = methodProps?.requestBody?.content?.[contentType]?.schema\n\n if (reqSchema?.$ref) {\n reqSchema = resolveRef(reqSchema.$ref, openApiJson)\n } else if (reqSchema?.type === 'array' && reqSchema.items?.$ref) {\n reqSchema = {\n ...reqSchema,\n items: resolveRef(reqSchema.items.$ref, openApiJson),\n }\n }\n\n const requestBodyData = reqSchema\n ? {\n content: {\n contentType,\n schema: {\n ...reqSchema,\n properties: JSON.stringify(reqSchema?.properties || reqSchema?.items?.properties),\n },\n },\n }\n : {\n content: {\n contentType: 'application/json',\n schema: {\n properties: '{}',\n type: 'object',\n },\n },\n }\n\n obj['requestBody'] = requestBodyData\n }\n return obj\n }),\n }))\n\n return transformedPaths\n}\n\nconst validateBodyForResponse = (content, method) => {\n if (!(content?.schema as any) || !(content?.schema as any)?.properties) {\n return {}\n }\n let _content = JSON.parse((content?.schema as any)?.properties as string)\n\n return _content\n}\n\nexport const transformPathsArrayToOrigin = (paths: TransformedPathsArray): OpenAPIFile['paths'] => {\n return paths.reduce((acc, { path, methods }) => {\n acc[path] = methods.reduce(\n (methodAcc, { type, tags, responses, summary, requestBody, ...rest }) => {\n // Initialize the method object\n // ? Validate (rest) [parameters]\n let copiedRest = structuredClone(rest || {})\n if (copiedRest && copiedRest.parameters) {\n copiedRest.parameters.map((param) => {\n if (param && param?.schema?.items && param?.schema?.type?.toLowerCase() != 'array') {\n delete param?.schema?.items\n }\n if (param && param?.schema?.items && param?.schema?.items?.type == 'array') {\n param.schema.items.items = {}\n }\n return param\n })\n }\n\n // Get the original responses from the rest object\n const originalResponses = rest.responses || {}\n\n methodAcc[type] = {\n ...copiedRest,\n tags,\n summary,\n responses: responses.reduce((respAcc, { code, content, headers }) => {\n // Skip if:\n // 1. This is a new code (not in original) AND\n // 2. Both headers and content are empty\n const isNewCode = !originalResponses[code]\n const hasHeaders = Object.keys(headers || {}).length > 0\n const hasContent =\n Object.keys(validateBodyForResponse(content || {}, type) || {}).length > 0\n\n if (isNewCode && !hasHeaders && !hasContent) {\n return respAcc\n }\n\n const formattedHeaders: Record<string, any> = {}\n if (headers) {\n for (const [key, value] of Object.entries(headers)) {\n if (\n value?.schema &&\n value?.schema?.items &&\n value?.schema?.type?.toLowerCase() != 'array'\n ) {\n delete value?.schema?.items\n }\n formattedHeaders[key] = {\n description: value.description || '',\n required: value.required || false,\n schema: value.schema || {},\n }\n }\n }\n respAcc[code] = {\n description: 'Success', // Assuming this is static from the original data\n content: content.contentType\n ? {\n [content.contentType]: {\n schema: {\n ...(content.schema as object),\n properties: validateBodyForResponse(content, type),\n },\n },\n }\n : originalResponses[code]?.content || {},\n headers: formattedHeaders,\n }\n return respAcc\n }, {} as Record<string, any>),\n }\n\n const parsedRequestBodyProps =\n type !== 'get' ? JSON.parse(requestBody.content.schema.properties) : {}\n // Add requestBody for non-GET methods\n if (type !== 'get') {\n methodAcc[type].requestBody = {\n content: {\n [requestBody.content.contentType]: {\n schema: {\n ...requestBody.content.schema,\n properties: parsedRequestBodyProps,\n },\n },\n },\n }\n }\n\n return methodAcc\n },\n {} as Record<string, any>\n )\n\n return acc\n }, {} as OpenAPIFile['paths'])\n}\n"],"names":["resolveRef","ref","openApiJson","replace","split","reduce","obj","key","transformOpenApiObject","components","securitySchemes","authKey","_a","Object","keys","at","type","_d","_c","_b","assign","Public","scheme","tags","paths","transformPathsToArray","transformOpenApiObjectToOrigin","values","object","transformPathsArrayToOrigin","toLowerCase","in","entries","map","path","methods","method","methodProps","summary","responses","code","codeProps","contentType","content","headers","header","headerObj","schema","items","$ref","resolvedItemSchema","__rest","properties","JSON","stringify","_e","find","item","push","parameters","param","requestBody","reqSchema","requestBodyData","_f","validateBodyForResponse","parse","acc","methodAcc","rest","copiedRest","structuredClone","_g","originalResponses","respAcc","isNewCode","hasHeaders","length","hasContent","formattedHeaders","value","description","required","parsedRequestBodyProps"],"mappings":"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"}
|
package/dist/styles.css
CHANGED
|
@@ -1402,166 +1402,6 @@ div.endBtnIcon {
|
|
|
1402
1402
|
.tableSectionContainer .descArrow path,
|
|
1403
1403
|
.tableSectionContainer .defaultSortArrow path {
|
|
1404
1404
|
fill: var(--Gray-50);
|
|
1405
|
-
}.api-docs-api-tree {
|
|
1406
|
-
width: 100%;
|
|
1407
|
-
max-width: 12.5rem;
|
|
1408
|
-
padding: 3rem 1.25rem;
|
|
1409
|
-
box-sizing: border-box;
|
|
1410
|
-
}
|
|
1411
|
-
.api-docs-api-tree > * {
|
|
1412
|
-
box-sizing: border-box;
|
|
1413
|
-
}
|
|
1414
|
-
.api-docs-api-tree__section-header {
|
|
1415
|
-
display: flex;
|
|
1416
|
-
align-items: center;
|
|
1417
|
-
gap: 0.25rem;
|
|
1418
|
-
padding-inline: 0.5rem;
|
|
1419
|
-
cursor: pointer;
|
|
1420
|
-
user-select: none;
|
|
1421
|
-
height: 2.5rem;
|
|
1422
|
-
}
|
|
1423
|
-
.api-docs-api-tree__section-header:hover {
|
|
1424
|
-
background-color: #f3f4f6;
|
|
1425
|
-
width: 100%;
|
|
1426
|
-
}
|
|
1427
|
-
.api-docs-api-tree__section-header svg {
|
|
1428
|
-
min-width: 1rem;
|
|
1429
|
-
}
|
|
1430
|
-
.api-docs-api-tree__section-header svg:first-child path {
|
|
1431
|
-
stroke: #bbbec5;
|
|
1432
|
-
}
|
|
1433
|
-
.api-docs-api-tree__section-title {
|
|
1434
|
-
font-size: 0.75rem;
|
|
1435
|
-
line-height: 0.875rem;
|
|
1436
|
-
font-weight: 500;
|
|
1437
|
-
color: #000;
|
|
1438
|
-
margin-left: 0.25rem;
|
|
1439
|
-
word-break: break-all;
|
|
1440
|
-
line-height: 0.9375rem;
|
|
1441
|
-
}
|
|
1442
|
-
.api-docs-api-tree__section__overview {
|
|
1443
|
-
display: flex;
|
|
1444
|
-
align-items: center;
|
|
1445
|
-
gap: 0.5rem;
|
|
1446
|
-
padding: 0.5rem 1.75rem;
|
|
1447
|
-
border-radius: 0.25rem;
|
|
1448
|
-
cursor: pointer;
|
|
1449
|
-
}
|
|
1450
|
-
.api-docs-api-tree__section__overview:hover {
|
|
1451
|
-
background-color: #f3f4f6;
|
|
1452
|
-
}
|
|
1453
|
-
.api-docs-api-tree__section__overview span {
|
|
1454
|
-
font-size: 0.75rem;
|
|
1455
|
-
line-height: 0.875rem;
|
|
1456
|
-
color: #000000;
|
|
1457
|
-
}
|
|
1458
|
-
.api-docs-api-tree__section__overview[data-active=true] {
|
|
1459
|
-
background-color: #f0f1f2;
|
|
1460
|
-
}
|
|
1461
|
-
.api-docs-api-tree__section__endpoints {
|
|
1462
|
-
display: flex;
|
|
1463
|
-
align-items: center;
|
|
1464
|
-
height: 1.5rem;
|
|
1465
|
-
gap: 0.5rem;
|
|
1466
|
-
border-radius: 0.25rem;
|
|
1467
|
-
padding-inline: 1.75rem;
|
|
1468
|
-
cursor: pointer;
|
|
1469
|
-
}
|
|
1470
|
-
.api-docs-api-tree__section__endpoints span {
|
|
1471
|
-
font-size: 0.75rem;
|
|
1472
|
-
line-height: 0.875rem;
|
|
1473
|
-
color: #000000;
|
|
1474
|
-
}
|
|
1475
|
-
.api-docs-api-tree__section__endpoints[data-active=true] {
|
|
1476
|
-
background-color: #f0f1f2;
|
|
1477
|
-
}
|
|
1478
|
-
.api-docs-api-tree__section[data-active=true] .api-docs-api-tree__section-title {
|
|
1479
|
-
color: #616874;
|
|
1480
|
-
}
|
|
1481
|
-
.api-docs-api-tree__endpoints {
|
|
1482
|
-
display: flex;
|
|
1483
|
-
flex-direction: column;
|
|
1484
|
-
align-items: start;
|
|
1485
|
-
gap: 0.5rem;
|
|
1486
|
-
border-radius: 0.25rem;
|
|
1487
|
-
cursor: pointer;
|
|
1488
|
-
}
|
|
1489
|
-
.api-docs-api-tree__endpoints span {
|
|
1490
|
-
font-size: 0.75rem;
|
|
1491
|
-
line-height: 0.875rem;
|
|
1492
|
-
color: #000000;
|
|
1493
|
-
}
|
|
1494
|
-
.api-docs-api-tree__endpoints[data-active=true] {
|
|
1495
|
-
background-color: #f0f1f2;
|
|
1496
|
-
}
|
|
1497
|
-
.api-docs-api-tree__subsection-header {
|
|
1498
|
-
height: 2rem;
|
|
1499
|
-
display: flex;
|
|
1500
|
-
align-items: center;
|
|
1501
|
-
gap: 0.875rem;
|
|
1502
|
-
padding-inline: 0.5rem;
|
|
1503
|
-
cursor: pointer;
|
|
1504
|
-
user-select: none;
|
|
1505
|
-
}
|
|
1506
|
-
.api-docs-api-tree__subsection-header svg {
|
|
1507
|
-
color: #6b7280;
|
|
1508
|
-
}
|
|
1509
|
-
.api-docs-api-tree__subsection-title {
|
|
1510
|
-
font-size: 0.75rem;
|
|
1511
|
-
line-height: 0.875rem;
|
|
1512
|
-
color: #616874;
|
|
1513
|
-
}
|
|
1514
|
-
.api-docs-api-tree__endpoint {
|
|
1515
|
-
display: flex;
|
|
1516
|
-
align-items: center;
|
|
1517
|
-
gap: 0.25rem;
|
|
1518
|
-
padding: 0.5rem 0.75rem;
|
|
1519
|
-
text-transform: capitalize;
|
|
1520
|
-
width: 100%;
|
|
1521
|
-
cursor: pointer;
|
|
1522
|
-
}
|
|
1523
|
-
.api-docs-api-tree__endpoint[data-active=true] {
|
|
1524
|
-
background-color: #f0f1f2;
|
|
1525
|
-
}
|
|
1526
|
-
.api-docs-api-tree__endpoint:hover {
|
|
1527
|
-
background-color: #f3f4f6;
|
|
1528
|
-
}
|
|
1529
|
-
.api-docs-api-tree__endpoint-method {
|
|
1530
|
-
font-size: 0.75rem;
|
|
1531
|
-
line-height: 0.875rem;
|
|
1532
|
-
font-weight: 400;
|
|
1533
|
-
text-align: start;
|
|
1534
|
-
}
|
|
1535
|
-
.api-docs-api-tree__endpoint-name {
|
|
1536
|
-
font-size: 0.75rem;
|
|
1537
|
-
line-height: 0.875rem;
|
|
1538
|
-
color: #3b3f46;
|
|
1539
|
-
display: -webkit-box;
|
|
1540
|
-
-webkit-box-orient: vertical;
|
|
1541
|
-
-webkit-line-clamp: 1;
|
|
1542
|
-
overflow: hidden;
|
|
1543
|
-
text-overflow: ellipsis;
|
|
1544
|
-
}
|
|
1545
|
-
.api-docs-api-tree__endpoint--get .api-docs-api-tree__endpoint-method {
|
|
1546
|
-
color: #3a6cd1;
|
|
1547
|
-
}
|
|
1548
|
-
.api-docs-api-tree__endpoint--post .api-docs-api-tree__endpoint-method {
|
|
1549
|
-
color: #3aaa35;
|
|
1550
|
-
}
|
|
1551
|
-
.api-docs-api-tree__endpoint--put .api-docs-api-tree__endpoint-method {
|
|
1552
|
-
color: #faad14;
|
|
1553
|
-
}
|
|
1554
|
-
.api-docs-api-tree__endpoint--delete .api-docs-api-tree__endpoint-method {
|
|
1555
|
-
color: #da3f3f;
|
|
1556
|
-
}
|
|
1557
|
-
.api-docs-api-tree__endpoint--option .api-docs-api-tree__endpoint-method {
|
|
1558
|
-
color: #495d97;
|
|
1559
|
-
}
|
|
1560
|
-
.api-docs-api-tree__endpoint--head .api-docs-api-tree__endpoint-method {
|
|
1561
|
-
color: #9461c9;
|
|
1562
|
-
}
|
|
1563
|
-
.api-docs-api-tree__endpoint--patch .api-docs-api-tree__endpoint-method {
|
|
1564
|
-
color: #58e2c2;
|
|
1565
1405
|
}.api_docs_header {
|
|
1566
1406
|
height: 3.125rem;
|
|
1567
1407
|
background-color: #f0f1f2;
|
|
@@ -1814,6 +1654,166 @@ div.endBtnIcon {
|
|
|
1814
1654
|
}
|
|
1815
1655
|
:global .guide-tooltip.guide-tooltip.guide-tooltip.guide-tooltip .tippy-arrow.tippy-arrow.tippy-arrow.tippy-arrow::before {
|
|
1816
1656
|
color: #000;
|
|
1657
|
+
}.api-docs-api-tree {
|
|
1658
|
+
width: 100%;
|
|
1659
|
+
max-width: 12.5rem;
|
|
1660
|
+
padding: 3rem 1.25rem;
|
|
1661
|
+
box-sizing: border-box;
|
|
1662
|
+
}
|
|
1663
|
+
.api-docs-api-tree > * {
|
|
1664
|
+
box-sizing: border-box;
|
|
1665
|
+
}
|
|
1666
|
+
.api-docs-api-tree__section-header {
|
|
1667
|
+
display: flex;
|
|
1668
|
+
align-items: center;
|
|
1669
|
+
gap: 0.25rem;
|
|
1670
|
+
padding-inline: 0.5rem;
|
|
1671
|
+
cursor: pointer;
|
|
1672
|
+
user-select: none;
|
|
1673
|
+
height: 2.5rem;
|
|
1674
|
+
}
|
|
1675
|
+
.api-docs-api-tree__section-header:hover {
|
|
1676
|
+
background-color: #f3f4f6;
|
|
1677
|
+
width: 100%;
|
|
1678
|
+
}
|
|
1679
|
+
.api-docs-api-tree__section-header svg {
|
|
1680
|
+
min-width: 1rem;
|
|
1681
|
+
}
|
|
1682
|
+
.api-docs-api-tree__section-header svg:first-child path {
|
|
1683
|
+
stroke: #bbbec5;
|
|
1684
|
+
}
|
|
1685
|
+
.api-docs-api-tree__section-title {
|
|
1686
|
+
font-size: 0.75rem;
|
|
1687
|
+
line-height: 0.875rem;
|
|
1688
|
+
font-weight: 500;
|
|
1689
|
+
color: #000;
|
|
1690
|
+
margin-left: 0.25rem;
|
|
1691
|
+
word-break: break-all;
|
|
1692
|
+
line-height: 0.9375rem;
|
|
1693
|
+
}
|
|
1694
|
+
.api-docs-api-tree__section__overview {
|
|
1695
|
+
display: flex;
|
|
1696
|
+
align-items: center;
|
|
1697
|
+
gap: 0.5rem;
|
|
1698
|
+
padding: 0.5rem 1.75rem;
|
|
1699
|
+
border-radius: 0.25rem;
|
|
1700
|
+
cursor: pointer;
|
|
1701
|
+
}
|
|
1702
|
+
.api-docs-api-tree__section__overview:hover {
|
|
1703
|
+
background-color: #f3f4f6;
|
|
1704
|
+
}
|
|
1705
|
+
.api-docs-api-tree__section__overview span {
|
|
1706
|
+
font-size: 0.75rem;
|
|
1707
|
+
line-height: 0.875rem;
|
|
1708
|
+
color: #000000;
|
|
1709
|
+
}
|
|
1710
|
+
.api-docs-api-tree__section__overview[data-active=true] {
|
|
1711
|
+
background-color: #f0f1f2;
|
|
1712
|
+
}
|
|
1713
|
+
.api-docs-api-tree__section__endpoints {
|
|
1714
|
+
display: flex;
|
|
1715
|
+
align-items: center;
|
|
1716
|
+
height: 1.5rem;
|
|
1717
|
+
gap: 0.5rem;
|
|
1718
|
+
border-radius: 0.25rem;
|
|
1719
|
+
padding-inline: 1.75rem;
|
|
1720
|
+
cursor: pointer;
|
|
1721
|
+
}
|
|
1722
|
+
.api-docs-api-tree__section__endpoints span {
|
|
1723
|
+
font-size: 0.75rem;
|
|
1724
|
+
line-height: 0.875rem;
|
|
1725
|
+
color: #000000;
|
|
1726
|
+
}
|
|
1727
|
+
.api-docs-api-tree__section__endpoints[data-active=true] {
|
|
1728
|
+
background-color: #f0f1f2;
|
|
1729
|
+
}
|
|
1730
|
+
.api-docs-api-tree__section[data-active=true] .api-docs-api-tree__section-title {
|
|
1731
|
+
color: #616874;
|
|
1732
|
+
}
|
|
1733
|
+
.api-docs-api-tree__endpoints {
|
|
1734
|
+
display: flex;
|
|
1735
|
+
flex-direction: column;
|
|
1736
|
+
align-items: start;
|
|
1737
|
+
gap: 0.5rem;
|
|
1738
|
+
border-radius: 0.25rem;
|
|
1739
|
+
cursor: pointer;
|
|
1740
|
+
}
|
|
1741
|
+
.api-docs-api-tree__endpoints span {
|
|
1742
|
+
font-size: 0.75rem;
|
|
1743
|
+
line-height: 0.875rem;
|
|
1744
|
+
color: #000000;
|
|
1745
|
+
}
|
|
1746
|
+
.api-docs-api-tree__endpoints[data-active=true] {
|
|
1747
|
+
background-color: #f0f1f2;
|
|
1748
|
+
}
|
|
1749
|
+
.api-docs-api-tree__subsection-header {
|
|
1750
|
+
height: 2rem;
|
|
1751
|
+
display: flex;
|
|
1752
|
+
align-items: center;
|
|
1753
|
+
gap: 0.875rem;
|
|
1754
|
+
padding-inline: 0.5rem;
|
|
1755
|
+
cursor: pointer;
|
|
1756
|
+
user-select: none;
|
|
1757
|
+
}
|
|
1758
|
+
.api-docs-api-tree__subsection-header svg {
|
|
1759
|
+
color: #6b7280;
|
|
1760
|
+
}
|
|
1761
|
+
.api-docs-api-tree__subsection-title {
|
|
1762
|
+
font-size: 0.75rem;
|
|
1763
|
+
line-height: 0.875rem;
|
|
1764
|
+
color: #616874;
|
|
1765
|
+
}
|
|
1766
|
+
.api-docs-api-tree__endpoint {
|
|
1767
|
+
display: flex;
|
|
1768
|
+
align-items: center;
|
|
1769
|
+
gap: 0.25rem;
|
|
1770
|
+
padding: 0.5rem 0.75rem;
|
|
1771
|
+
text-transform: capitalize;
|
|
1772
|
+
width: 100%;
|
|
1773
|
+
cursor: pointer;
|
|
1774
|
+
}
|
|
1775
|
+
.api-docs-api-tree__endpoint[data-active=true] {
|
|
1776
|
+
background-color: #f0f1f2;
|
|
1777
|
+
}
|
|
1778
|
+
.api-docs-api-tree__endpoint:hover {
|
|
1779
|
+
background-color: #f3f4f6;
|
|
1780
|
+
}
|
|
1781
|
+
.api-docs-api-tree__endpoint-method {
|
|
1782
|
+
font-size: 0.75rem;
|
|
1783
|
+
line-height: 0.875rem;
|
|
1784
|
+
font-weight: 400;
|
|
1785
|
+
text-align: start;
|
|
1786
|
+
}
|
|
1787
|
+
.api-docs-api-tree__endpoint-name {
|
|
1788
|
+
font-size: 0.75rem;
|
|
1789
|
+
line-height: 0.875rem;
|
|
1790
|
+
color: #3b3f46;
|
|
1791
|
+
display: -webkit-box;
|
|
1792
|
+
-webkit-box-orient: vertical;
|
|
1793
|
+
-webkit-line-clamp: 1;
|
|
1794
|
+
overflow: hidden;
|
|
1795
|
+
text-overflow: ellipsis;
|
|
1796
|
+
}
|
|
1797
|
+
.api-docs-api-tree__endpoint--get .api-docs-api-tree__endpoint-method {
|
|
1798
|
+
color: #3a6cd1;
|
|
1799
|
+
}
|
|
1800
|
+
.api-docs-api-tree__endpoint--post .api-docs-api-tree__endpoint-method {
|
|
1801
|
+
color: #3aaa35;
|
|
1802
|
+
}
|
|
1803
|
+
.api-docs-api-tree__endpoint--put .api-docs-api-tree__endpoint-method {
|
|
1804
|
+
color: #faad14;
|
|
1805
|
+
}
|
|
1806
|
+
.api-docs-api-tree__endpoint--delete .api-docs-api-tree__endpoint-method {
|
|
1807
|
+
color: #da3f3f;
|
|
1808
|
+
}
|
|
1809
|
+
.api-docs-api-tree__endpoint--option .api-docs-api-tree__endpoint-method {
|
|
1810
|
+
color: #495d97;
|
|
1811
|
+
}
|
|
1812
|
+
.api-docs-api-tree__endpoint--head .api-docs-api-tree__endpoint-method {
|
|
1813
|
+
color: #9461c9;
|
|
1814
|
+
}
|
|
1815
|
+
.api-docs-api-tree__endpoint--patch .api-docs-api-tree__endpoint-method {
|
|
1816
|
+
color: #58e2c2;
|
|
1817
1817
|
}.codebox {
|
|
1818
1818
|
border-radius: 0.25rem;
|
|
1819
1819
|
overflow: hidden;
|
package/package.json
CHANGED
|
@@ -199,6 +199,9 @@ export const transformPathsArrayToOrigin = (paths: TransformedPathsArray): OpenA
|
|
|
199
199
|
let copiedRest = structuredClone(rest || {})
|
|
200
200
|
if (copiedRest && copiedRest.parameters) {
|
|
201
201
|
copiedRest.parameters.map((param) => {
|
|
202
|
+
if (param && param?.schema?.items && param?.schema?.type?.toLowerCase() != 'array') {
|
|
203
|
+
delete param?.schema?.items
|
|
204
|
+
}
|
|
202
205
|
if (param && param?.schema?.items && param?.schema?.items?.type == 'array') {
|
|
203
206
|
param.schema.items.items = {}
|
|
204
207
|
}
|
|
@@ -229,6 +232,13 @@ export const transformPathsArrayToOrigin = (paths: TransformedPathsArray): OpenA
|
|
|
229
232
|
const formattedHeaders: Record<string, any> = {}
|
|
230
233
|
if (headers) {
|
|
231
234
|
for (const [key, value] of Object.entries(headers)) {
|
|
235
|
+
if (
|
|
236
|
+
value?.schema &&
|
|
237
|
+
value?.schema?.items &&
|
|
238
|
+
value?.schema?.type?.toLowerCase() != 'array'
|
|
239
|
+
) {
|
|
240
|
+
delete value?.schema?.items
|
|
241
|
+
}
|
|
232
242
|
formattedHeaders[key] = {
|
|
233
243
|
description: value.description || '',
|
|
234
244
|
required: value.required || false,
|
package/variables.txt
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export APP_VERSION=1.1.
|
|
1
|
+
export APP_VERSION=1.1.3
|