{"version":3,"sources":["../../../src/scripts/CreateTypes/index.ts","../../../src/func/MethodIterator/index.ts","../../../src/func/PathMapper/index.ts","../../../src/types.ts","../../../src/helper/index.ts","../../../src/func/Typescript/TypeNameMaker/index.ts","../../../src/scripts/CreateTypes/Declaration/declaration.ts","../../../src/func/Typescript/InterfaceMaker/index.ts","../../../src/func/Typescript/peer/index.ts","../../../src/func/SchemaMapper/index.ts","../../../src/func/EnumMapper/index.ts","../../../src/scripts/CreateTypes/CreateAsyncComponentType/getEnumAsyncType.mts","../../../src/scripts/CreateTypes/CreateAsyncComponentType/getPremitiveAsyncType.mts","../../../src/scripts/CreateTypes/CreateAsyncComponentType/refrenceTreatAsync.mts","../../../src/scripts/CreateTypes/CreateAsyncComponentType/warnComponent.mts","../../../src/data/collections.ts","../../../src/func/Typescript/TypeMaker/index.ts","../../../src/scripts/CreateTypes/CreateAsyncComponentType/componentMediaOrRef.mts","../../../src/scripts/CreateTypes/CreateAsyncComponentType/AsyncRecursiveComponent.mts","../../../src/scripts/CreateTypes/CreateAsyncGlobalType/Method/Request/params/createAsyncHeaderType.ts","../../../src/scripts/CreateTypes/CreateAsyncGlobalType/Method/Request/params/createAsyncParameterType.ts","../../../src/func/contentMapper/index.ts","../../../src/scripts/CreateTypes/CreateAsyncGlobalType/Method/Request/body/createAsyncRequestBodyType.ts","../../../src/scripts/CreateTypes/CreateAsyncGlobalType/Method/Request/CreateAsyncTypeRequest.ts","../../../src/scripts/CreateTypes/CreateAsyncGlobalType/Method/Response/createAsyncResponseModel.ts","../../../src/func/responsesMapper/index.ts","../../../src/scripts/CreateTypes/CreateAsyncGlobalType/Method/Errors/methodHasErrorOrResAsync.mts","../../../src/scripts/CreateTypes/CreateAsyncGlobalType/Method/Errors/CreateAsyncTypeError.mts","../../../src/scripts/CreateTypes/CreateAsyncGlobalType/Method/Response/CreateAsyncTypeResponse.ts","../../../src/scripts/CreateTypes/CreateAsyncGlobalType/Method/CreateAsyncTypeMethod.ts","../../../src/scripts/CreateTypes/CreateAsyncGlobalType/index.ts","../../../src/func/Save/save.ts","../../../src/config/index.ts","../../../src/scripts/CreateTypes/CreateAsyncComponentType/index.mts"],"sourcesContent":["/* eslint-disable no-async-promise-executor */\nimport ora from 'ora';\nimport {Spec} from '../../types.ts';\nimport chalk from 'chalk';\n// import {CreateAsyncPathes} from './createPathAsync/index.mts';\nimport {CreateAsyncGlobalType} from './CreateAsyncGlobalType/index.ts';\nimport {save} from '../../func/Save/save.ts';\nimport {definitionFullName, getDefinationComment} from '../../helper/index.ts';\n// import {CreateAsyncComponentType} from './CreateAsyncComponentType/index.mts';\nimport {CreateAsyncComponentType} from './CreateAsyncComponentType/index.mts';\nimport {configStore} from '../../config/index.ts';\nconst commonNg = `interface ICOMMNON {\n  data?: any;\n  params?: any;\n  header?: any;\n}`;\nconst commonNever = `interface ICOMMNON {\n  data?: Record<PropertyKey, never>;\n  params?: Record<PropertyKey, never>;\n  header?: Record<PropertyKey, never>;\n}`;\nexport async function createTypes(definations: Spec[]) {\n  const common = configStore?.hook === 'NG' ? commonNg : commonNever;\n  return new Promise<'done' | 'error'>(async resolve => {\n    let hasError: 'done' | 'error' = 'done';\n    const spinner = ora('Create Types').info();\n    try {\n      const definationPromisses = definations.map(defination => {\n        return new Promise<string>(async resolve => {\n          spinner.text = 'Create Types:' + defination.info.title;\n          //\n          const [component, enums] = await CreateAsyncComponentType(defination);\n          const types = await CreateAsyncGlobalType(defination);\n          await save({\n            data: common + types,\n            fileName: 'index',\n            location: definitionFullName(defination) + '/types',\n            extention: '.' + configStore?.fileTypes.types,\n            comment: getDefinationComment(defination),\n          });\n          await save({\n            data: component,\n            fileName: 'type',\n            location: definitionFullName(defination) + '/types',\n            extention: '.' + configStore?.fileTypes.types,\n            comment: getDefinationComment(defination),\n          });\n          await save({\n            data: enums,\n            fileName: 'index',\n            location: definitionFullName(defination) + '/enums',\n            extention: '.' + configStore?.fileTypes.enums,\n            comment: getDefinationComment(defination),\n          });\n\n          //\n          spinner.clear();\n          resolve(types);\n        });\n      });\n      await Promise.all(definationPromisses);\n\n      resolve(hasError);\n    } catch (error) {\n      spinner.fail();\n      hasError = 'error';\n      console.error(chalk.redBright(' └ ' + error));\n    }\n    spinner.text = 'Create Types';\n    hasError === 'done' && spinner.succeed();\n    resolve(hasError);\n  });\n}\n","import {OpenAPIV3} from 'openapi-types';\nimport chalk from 'chalk';\n\ntype PathItemObject = OpenAPIV3.PathItemObject;\ntype IMethod = Omit<\n  PathItemObject,\n  '$ref' | 'description' | 'parameters' | 'servers' | 'summary'\n>;\n\nexport interface MethodIterator {\n  objectName: string;\n  objectMethod: OpenAPIV3.OperationObject;\n}\nexport function MethodIterator(Method: IMethod | undefined) {\n  if (!Method) {\n    console.warn(\n      chalk.yellow(\n        ' └ Path Object must be include at least one method but it is undefined!'\n      )\n    );\n    return;\n  }\n  const entries = Object.entries(Method);\n  const object = entries.map(cur => {\n    return {\n      objectName: cur[0],\n      objectMethod: cur[1] as OpenAPIV3.OperationObject,\n    };\n  });\n\n  return object;\n}\n","import {OpenAPIV3} from 'openapi-types';\nimport chalk from 'chalk';\n\ntype PathItemObject = OpenAPIV3.PathItemObject;\nexport interface IPathIterator {\n  objectName: string;\n  objectPath: PathItemObject;\n}\nexport function PathIterator(Path: PathItemObject) {\n  if (!Path) {\n    console.warn(\n      chalk.yellow(\n        ' └ Defination Object must be include at least one Path but it is undefined!'\n      )\n    );\n    return;\n  }\n  const entries = Object.entries(Path);\n  const object = entries.map(cur => {\n    return {\n      objectName: cur[0],\n      objectPath: cur[1] as PathItemObject,\n    };\n  });\n\n  return object;\n}\n","import {Options} from 'prettier';\nimport {Agent} from 'https';\nimport {OpenAPIV3} from 'openapi-types';\nimport {Ora} from 'ora';\n\nexport type Spec = OpenAPIV3.Document;\nexport interface IGetFromSwaggerRootHtml {\n  /**\n   * Get Root url of swagger and get list of scopes jsons.\n   *\n   * @param baseUrl - YOUR_BASE_URL\n   */\n  baseUrl: string;\n  sslConfiguredAgent?: Agent;\n}\nexport interface IGetSwaggerDefenitions {\n  requests: string[];\n  sslConfiguredAgent?: Agent;\n}\n\nexport interface ISwaggerRootHtml {\n  urls: URL[];\n  deepLinking: boolean;\n  persistAuthorization: boolean;\n  displayOperationId: boolean;\n  defaultModelsExpandDepth: number;\n  defaultModelExpandDepth: number;\n  defaultModelRendering: string;\n  displayRequestDuration: boolean;\n  docExpansion: string;\n  showExtensions: boolean;\n  showCommonExtensions: boolean;\n  supportedSubmitMethods: string[];\n}\n\nexport interface URL {\n  url: string;\n  name: string;\n}\nexport type fileTypes = 'mts' | 'ts' | 'd.ts' | 'md' | 'tsx';\nexport enum fileTypesEnum {\n  enums = 'enums',\n  types = 'types',\n  client = 'client',\n  api = 'api',\n  hook = 'hook',\n}\nexport interface IConfig {\n  baseUrl: string;\n  outDir: string;\n  archive?: boolean;\n  prettier?: Options;\n  resourcePick?: string;\n  filter?: RegExp;\n  singleJson?: boolean;\n  hook?: 'SWR' | 'ReactQuery' | 'NG';\n  fileTypes?: {[key in fileTypesEnum]: fileTypes};\n}\n\nexport interface ISaveFile {\n  fileName: string;\n  location: string;\n  data: unknown;\n  extention?: string;\n  beautify?: boolean;\n  comment?: string;\n}\nexport interface ISaveBatch {\n  files: {name: string; data: string; extention?: string; comment?: string}[];\n  location: string;\n  beautify?: boolean;\n  extention?: string;\n}\nexport type IOpenApiComponent =\n  | OpenAPIV3.ReferenceObject\n  | OpenAPIV3.SchemaObject;\nexport type ComponentSchema =\n  | {\n      objectName: string;\n      objectSchema: IOpenApiComponent;\n    }[]\n  | undefined;\n\nexport interface ICreateComponentSchemas {}\n\nexport function isReference(\n  schemaObject: IOpenApiComponent\n): schemaObject is OpenAPIV3.ReferenceObject {\n  return (schemaObject as OpenAPIV3.ReferenceObject).$ref !== undefined;\n}\n\nexport function isArraySchemaObject(\n  schemaObject: OpenAPIV3.ArraySchemaObject | OpenAPIV3.NonArraySchemaObject\n): schemaObject is OpenAPIV3.ArraySchemaObject {\n  return (schemaObject as OpenAPIV3.ArraySchemaObject).items !== undefined;\n}\n\nexport interface Spins {\n  id?: string;\n  spinner: Ora;\n}\n\nexport interface IRecursiveArraySchema {\n  /*\n  *\n  * @example:  properties?: {\n            [name: string]: ReferenceObject | SchemaObject;\n        };\n  */\n  component: OpenAPIV3.SchemaObject;\n  name: string;\n}\nexport interface IRecursiveComponentSchema {\n  /*\n  *\n  * @example:  properties?: {\n            [name: string]: ReferenceObject | SchemaObject;\n        };\n  */\n  component?: IOpenApiComponent;\n  name: string;\n}\n\nexport function isReferenceOrParameter(\n  object: OpenAPIV3.ParameterObject | OpenAPIV3.ReferenceObject\n): object is OpenAPIV3.ReferenceObject {\n  return (object as OpenAPIV3.ReferenceObject).$ref !== undefined;\n}\n\nexport interface ICreateParameter {\n  parameters?: (OpenAPIV3.ReferenceObject | OpenAPIV3.ParameterObject)[];\n  pathName: string;\n  methodType: string;\n}\n\nexport function isReferenceOrRequestBody(\n  object: OpenAPIV3.RequestBodyObject | OpenAPIV3.ReferenceObject\n): object is OpenAPIV3.ReferenceObject {\n  return (object as OpenAPIV3.ReferenceObject).$ref !== undefined;\n}\nexport function isReferenceOrResponse(\n  object: OpenAPIV3.ResponseObject | OpenAPIV3.ReferenceObject\n): object is OpenAPIV3.ReferenceObject {\n  return (object as OpenAPIV3.ReferenceObject).$ref !== undefined;\n}\n\nexport interface ICreateRequestBody {\n  requestBody?: OpenAPIV3.ReferenceObject | OpenAPIV3.RequestBodyObject;\n  pathName: string;\n  methodType: string;\n}\n\nexport interface ICreateResponse {\n  response: OpenAPIV3.ReferenceObject | OpenAPIV3.ResponseObject;\n  pathName: string;\n  methodType: string;\n  status: 'Ok' | 'Bad';\n}\n\nexport type ISchema = {[key: string]: IOpenApiComponent};\n\nexport type HttpMethodsUpperCase =\n  | 'Get'\n  | 'Put'\n  | 'Post'\n  | 'Delete'\n  | 'Options'\n  | 'Head'\n  | 'Patch';\n\nexport function isInterfaceEmpty(\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  object: {} | {[key: string]: any}\n): object is {} {\n  return Object.keys(object as {}).length === 0;\n}\n","import {OpenAPIV3} from 'openapi-types';\nimport {typeNameMaker} from '../func/Typescript/TypeNameMaker/index.ts';\nimport {Spec, isReference} from '../types.ts';\nconst repoTypes: string[] = [''];\nexport function capitalize(string: string) {\n  return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nexport function camelize(str: string) {\n  return str\n    .replace(/(?:^\\w|[A-Z]|\\b\\w)/g, (word, index) => {\n      return index === 0 ? word.toLowerCase() : word.toUpperCase();\n    })\n    .replace(/\\s+/g, '');\n}\n\nexport const primitiveJs = (\n  key: 'string' | 'number' | 'boolean' | 'integer' | undefined\n) => {\n  switch (key) {\n    case 'integer':\n      return 'number';\n    case 'number':\n      return 'number';\n    case 'boolean':\n      return 'boolean';\n    case 'string':\n      return 'string';\n\n    default:\n      return 'unknown';\n  }\n};\n\nexport const definitionFullName = (defination: Spec) => {\n  return defination.info.title + '_' + defination.info.version;\n};\n\nexport const isDuplication = (name: string, data: string[]): boolean => {\n  const iName = typeNameMaker(name);\n  const include = repoTypes.some(item => item.includes(iName));\n  const dataInclude = data.some(item => item.includes(iName));\n  if (include && dataInclude) {\n    return true;\n  }\n  repoTypes.push(iName);\n  return false;\n};\n\nexport const isNullable = (\n  schema: OpenAPIV3.ReferenceObject | OpenAPIV3.SchemaObject\n): boolean | undefined => {\n  if (!isReference(schema)) {\n    return schema.nullable;\n  }\n  return undefined;\n};\n\nexport const definationComment = (defination: Spec, data: string[][]) => {\n  data.forEach(fileData => {\n    fileData.push(\n      `\\n/* ${defination.info.title} - ${defination.info.version} */\\n`\n    );\n  });\n};\nexport const getDefinationComment = (defination: Spec) => {\n  return ` ${defination.info.title} - ${defination.info.version}`;\n};\n\nexport function statusString(status: string) {\n  const okReg = /2\\d\\d/g;\n  const badReg = /400/g;\n  if (okReg.test(status)) {\n    return 'Ok';\n  }\n\n  if (badReg) {\n    return 'Bad';\n  }\n\n  return;\n}\n\nexport const pathSplit = (path: string) => {\n  const reg = /\\/{\\w*}/g;\n  const regBracketsParams = /{(.*?)}/g;\n  const refinePath = path.replace(reg, '');\n\n  const bracketsParams = path\n    .match(regBracketsParams)\n    ?.map(params => {\n      const name = params.replace(/{|}/g, '');\n      return 'By' + capitalize(name);\n    })\n    .join('');\n\n  const pathScope = refinePath.split('/') as string[];\n  const definationName = pathScope[1] as string;\n  const scopeName = pathScope[3] as string;\n  const itemName =\n    (((pathScope[pathScope.length - 1] as string) +\n      capitalize(pathScope[pathScope.length - 2])) as string) +\n    (bracketsParams || '');\n\n  return {pathScope, definationName, scopeName, itemName};\n};\n","import {camelize, capitalize} from '../../../helper/index.ts';\n\nexport function typeNameMaker(name: string, extra = 'Set') {\n  return 'I' + camelCase(name) + extra;\n}\nexport function typeNameSpaceMaker(\n  name: string,\n  namespace: string,\n  extra = 'Set'\n) {\n  return (\n    namespace + '.I' + capitalize(camelize(nameRefineWithDot(name))) + extra\n  );\n}\n\nexport function nameRefine(name: string) {\n  const reg = /[^a-zA-Z0-9]/g;\n\n  return name.toString().replace(reg, '');\n}\nexport function nameRefineWithDot(name: string) {\n  const reg = /[^a-zA-Z0-9.]/g;\n\n  return name.toString().replace(reg, '');\n}\n\nexport function nameStringify(name: string) {\n  return \"'\" + name + \"'\";\n}\n\nexport function camelCase(name: string) {\n  return capitalize(camelize(nameRefine(name)));\n}\n","import {camelCase} from '../../../func/Typescript/TypeNameMaker/index.ts';\n\nexport function wrapDeclartionNameSpace(definationName: string, data: string) {\n  return (\n    `export declare namespace ${camelCase(definationName)} { ` + data + ' } '\n  );\n}\nexport function wrapNameSpace(scopeName: string, data: string) {\n  return `namespace ${camelCase(scopeName)} { ` + data + ' } ';\n}\n","export function interfaceMaker(\n  InterfaceName: string,\n  core: string,\n  extend?: string\n) {\n  if (extend)\n    return (\n      'interface ' +\n      InterfaceName +\n      (extend ? ' extends ' + extend : '') +\n      ' {' +\n      core +\n      '}'\n    );\n  return 'interface ' + InterfaceName + '{' + core + '}';\n}\n","import {nameStringify} from '../TypeNameMaker/index.ts';\n\nexport function peer(\n  name: string,\n  type: string,\n  nullable?: boolean,\n  isArray?: boolean\n) {\n  return (\n    nameStringify(name) +\n    (nullable ? '?:' : ':') +\n    type +\n    (isArray ? '[];' : ';')\n  );\n}\nexport function equal(name: string, type: string) {\n  return name + '=' + nameStringify(type) + ',';\n}\n","import {OpenAPIV3} from 'openapi-types';\nimport chalk from 'chalk';\nimport {ISchema} from '../../types.ts';\n\nexport function schemaIterator(schema: ISchema | undefined) {\n  if (!schema) {\n    console.warn(\n      chalk.yellow(\n        ' └ Component must be include either OpenAPIV3.ReferenceObject or OpenAPIV3.SchemaObject but it is undefined!'\n      )\n    );\n    return;\n  }\n  const entries = Object.entries(schema);\n  const object = entries.map(cur => {\n    return {\n      objectName: cur[0],\n      objectSchema: cur[1] as\n        | OpenAPIV3.ReferenceObject\n        | OpenAPIV3.SchemaObject,\n    };\n  });\n\n  return object;\n}\n","import {camelCase} from '../Typescript/TypeNameMaker/index.ts';\nimport {equal} from '../Typescript/peer/index.ts';\n\nexport function enumMapper(enums: string[]) {\n  const enumsType = '\"' + enums.join('\"|\"') + '\"';\n  return enumsType;\n}\nexport function enumPeer(enums: string[]) {\n  const value = enums.map(e => equal(camelCase(e), e));\n  const enumsType = value.join('');\n  return enumsType;\n}\n","import {enumMapper, enumPeer} from '../../../func/EnumMapper/index.ts';\n\nexport async function getEnumAsyncType(enums: any[]) {\n  return new Promise<[string, string?]>(resolve => {\n    const enumType = enumMapper(enums);\n    const enumValue = enumPeer(enums);\n    resolve([enumType, enumValue]);\n  });\n}\n","import {primitiveJs} from '../../../helper/index.ts';\n\nexport async function getPremitiveAsyncType(\n  type: 'string' | 'number' | 'boolean' | 'integer' | undefined\n) {\n  return new Promise<string>(resolve => {\n    const primitiveValue = primitiveJs(type);\n    resolve(primitiveValue);\n  });\n}\n","export function refrenceTreatAsync(rawRef: string) {\n  const refPath = rawRef.split('/');\n  const ref = refPath[refPath.length - 1];\n  return ref;\n}\n","import chalk from 'chalk';\n\nexport function warnComponent(name: string) {\n  console.warn(\n    chalk.yellow(\n      ' └ \"' +\n        name +\n        '\" dose not have any type! typescript may have problem with this! we set it to \"unknown\"'\n    )\n  );\n}\n","const duplications: string[] = [];\nexport {duplications};\n\nexport function isDuplicate(key: string) {\n  const isDuplicate = duplications.includes(key);\n  if (!isDuplicate) {\n    duplications.push(key);\n  }\n  // return isDuplicate;\n  return false;\n}\n","export function typeMaker(\n  TypeName: string,\n  core: string,\n  object?: boolean,\n  hasExport?: boolean\n) {\n  if (object)\n    return (\n      `${hasExport ? 'export' : ''} type ` + TypeName + '= {' + core + '};'\n    );\n  return `${hasExport ? 'export' : ''} type ` + TypeName + '= ' + core + ';';\n}\n\nexport function enumarateMaker(enumName: string, core: string) {\n  return 'export enum ' + enumName + ' {' + core + '};';\n}\n","import {isDuplicate} from '../../../data/collections.ts';\nimport {interfaceMaker} from '../../../func/Typescript/InterfaceMaker/index.ts';\nimport {peer} from '../../../func/Typescript/peer/index.ts';\nimport {typeMaker} from '../../../func/Typescript/TypeMaker/index.ts';\nimport {typeNameMaker} from '../../../func/Typescript/TypeNameMaker/index.ts';\nimport {IAsyncRecursiveComponentResult} from './AsyncRecursiveComponent.mts';\n\nexport function componentMediaOrRef(\n  component: IAsyncRecursiveComponentResult | null\n) {\n  if (component) {\n    if (component.type === 'REF') {\n      return peer(\n        component.name || '___NoNameREF?',\n        typeNameMaker(component.data[0] || 'noNameREF_PARAM?'),\n        component.nullable,\n        component.isArray\n      );\n    }\n    if (component.type === 'PREM') {\n      return peer(\n        component.name || '___NoNamePREM?',\n        component.data[0],\n        component.nullable,\n        component.isArray\n      );\n    }\n    if (component.type === 'COM_PREM') {\n      return typeMaker(\n        typeNameMaker(component.name || '___NoNameENUM'),\n        component.data[0]\n      );\n    }\n    if (component.type === 'ENUM') {\n      const duplicate = isDuplicate(component.name as string);\n      return !duplicate\n        ? typeMaker(\n            typeNameMaker(component.name || '___NoNameENUM'),\n            component.data[0]\n          )\n        : '';\n    }\n    if (component.type === 'MEDIA') {\n      const duplicate = isDuplicate(component.name as string);\n      return !duplicate\n        ? interfaceMaker(\n            typeNameMaker(component.name || '___NoNameMEDIA'),\n            component.data[0]\n          )\n        : '';\n    }\n    if (component.type === 'MEDIA_TYPE') {\n      const duplicate = isDuplicate(component.name as string);\n      return !duplicate\n        ? typeMaker(\n            typeNameMaker(component.name || '___NoNameMEDIA'),\n            component.data[0]\n          )\n        : '';\n    }\n    if (component.type === 'RECORD') {\n      // const duplicate = isDuplicate(component.name as string);\n      // return !duplicate\n      //   ? typeMaker(\n      //       typeNameMaker(component.name || '___NoNameMEDIA'),\n      //       component.data[0]\n      //     )\n      //   : '';\n\n      if (component.data) {\n        const data = component.data[0] || 'any';\n        const type = `Record<PropertyKey,${data}>`;\n        return peer(\n          component.name || '___NoNamePREM?',\n          type,\n          component.nullable,\n          false\n        );\n      }\n    }\n  }\n  return '';\n}\n","import {OpenAPIV3} from 'openapi-types';\nimport {\n  IOpenApiComponent,\n  isArraySchemaObject,\n  isReference,\n} from '../../../types.ts';\nimport {schemaIterator} from '../../../func/SchemaMapper/index.ts';\nimport {getEnumAsyncType} from './getEnumAsyncType.mts';\nimport {getPremitiveAsyncType} from './getPremitiveAsyncType.mts';\nimport {refrenceTreatAsync} from './refrenceTreatAsync.mts';\nimport {warnComponent} from './warnComponent.mts';\nimport {componentMediaOrRef} from './componentMediaOrRef.mts';\n\nexport interface IAsyncRecursiveComponent {\n  component: OpenAPIV3.SchemaObject | OpenAPIV3.ReferenceObject | undefined;\n  name?: string;\n  firstLvl?: boolean;\n}\nexport interface IAsyncRecursiveSchema {\n  component: OpenAPIV3.SchemaObject | OpenAPIV3.ReferenceObject | undefined;\n  name: string;\n}\n\nexport type typeKey =\n  | 'REF'\n  | 'MEDIA'\n  | 'ENUM'\n  | 'PREM'\n  | 'ARRAY'\n  | 'MEDIA_TYPE'\n  | 'FORMDATA'\n  | 'COM_PREM'\n  | 'RECORD';\n\nexport interface IAsyncRecursiveComponentResult {\n  data: [string, string?];\n  name?: string;\n  type: typeKey;\n  nullable?: boolean;\n  isArray?: boolean;\n}\nexport function AsyncRecursiveComponent({\n  component,\n  name,\n  firstLvl = false,\n}: IAsyncRecursiveComponent) {\n  return new Promise<IAsyncRecursiveComponentResult | null>(async resolve => {\n    if (component) {\n      if (isReference(component)) {\n        const type = refrenceTreatAsync(component.$ref);\n        resolve({data: [type], type: 'REF', name});\n      } else {\n        if (component.type === undefined) {\n          warnComponent(name as string);\n          resolve({\n            data: ['unknown'],\n            type: 'MEDIA_TYPE',\n            name,\n            nullable: component.nullable,\n          });\n        } else {\n          const data = await recursiveSchemaAsyncType(\n            component,\n            name,\n            firstLvl\n          );\n          resolve({...(data as IAsyncRecursiveComponentResult), name});\n        }\n      }\n    } else {\n      resolve(null);\n    }\n  });\n}\n\nexport async function recursiveSchemaAsyncType(\n  component: OpenAPIV3.SchemaObject,\n  name?: string,\n  firstLvl = false\n) {\n  return new Promise<IAsyncRecursiveComponentResult | null>(\n    async (resolve, reject) => {\n      if (isArraySchemaObject(component)) {\n        const data = await AsyncRecursiveComponent({\n          component: component.items,\n          name: name,\n        });\n        resolve({\n          ...(data as IAsyncRecursiveComponentResult),\n          nullable: component.nullable,\n          isArray: true,\n        });\n      } else {\n        if (component.type === 'object') {\n          if (component.properties) {\n            const data = await ObjectSchemaAsyncComponents(\n              component.properties\n            );\n            resolve({\n              data: [data],\n              type: 'MEDIA',\n              nullable: component.nullable,\n              name: name,\n            });\n          } else if (component.additionalProperties !== undefined) {\n            const data = await ObjectSchemaAsyncComponentsAditional(\n              component.additionalProperties,\n              name\n            );\n            resolve({\n              ...(data as IAsyncRecursiveComponentResult),\n              type: 'RECORD',\n              nullable: component.nullable,\n              name: name,\n            });\n          } else {\n            warnComponent(name as string);\n            resolve({\n              data: ['unknown'],\n              type: 'MEDIA_TYPE',\n              nullable: component.nullable,\n              name: name,\n            });\n          }\n        } else {\n          if (!component.enum) {\n            const premitive = await getPremitiveAsyncType(component.type);\n\n            resolve({\n              data: [premitive],\n              type: firstLvl ? 'COM_PREM' : 'PREM',\n              name: name,\n              nullable: component.nullable,\n            });\n          } else {\n            const enums = await getEnumAsyncType(component.enum);\n            resolve({\n              data: enums,\n              type: 'ENUM',\n              nullable: component.nullable,\n              name: name,\n            });\n          }\n        }\n      }\n    }\n  );\n}\nfunction ObjectSchemaAsyncComponents(\n  properties: Pick<OpenAPIV3.BaseSchemaObject, 'properties'>['properties']\n) {\n  return new Promise<string>(async (resolve, reject) => {\n    const IteratedProperties = schemaIterator(properties);\n    const propertiesPromisses = IteratedProperties?.map(\n      async ({objectName, objectSchema}) => {\n        return await AsyncRecursiveSchema({\n          component: objectSchema,\n          name: objectName,\n        });\n      }\n    );\n\n    if (propertiesPromisses) {\n      const data = await Promise.all(propertiesPromisses);\n      resolve(data.join(''));\n    }\n  });\n}\nfunction ObjectSchemaAsyncComponentsAditional(\n  properties: Pick<\n    OpenAPIV3.BaseSchemaObject,\n    'additionalProperties'\n  >['additionalProperties'],\n  name?: string\n) {\n  return new Promise<IAsyncRecursiveComponentResult | null>(async resolve => {\n    if (properties !== undefined) {\n      if (typeof properties === 'boolean') {\n        resolve({\n          type: 'MEDIA_TYPE',\n          data: ['boolean'],\n          name: name,\n          nullable: true,\n        });\n      } else if (!isReference(properties as IOpenApiComponent)) {\n        const result = await recursiveSchemaAsyncType(\n          properties as OpenAPIV3.SchemaObject,\n          name\n        );\n        resolve(result);\n      }\n    }\n    resolve(null);\n  });\n}\n\nexport function AsyncRecursiveSchema({component, name}: IAsyncRecursiveSchema) {\n  return new Promise<string | null>(async resolve => {\n    if (component) {\n      if (isReference(component)) {\n        const type = refrenceTreatAsync(component.$ref);\n        const data = componentMediaOrRef({data: [type], type: 'REF', name});\n        resolve(data);\n      } else {\n        if (component.type === undefined) {\n          warnComponent(name);\n          const data = componentMediaOrRef({\n            data: ['unknown'],\n            type: 'PREM',\n            nullable: component.nullable,\n            name,\n          });\n          resolve(data);\n        } else {\n          const result = await recursiveSchemaAsyncType(component, name);\n          const data = componentMediaOrRef(result);\n          resolve(data);\n        }\n      }\n    } else {\n      resolve(null);\n    }\n  });\n}\n","/* eslint-disable no-async-promise-executor */\nimport {OpenAPIV3} from 'openapi-types';\nimport {isReference, isReferenceOrParameter} from '../../../../../../types.ts';\nimport {peer} from '../../../../../../func/Typescript/peer/index.ts';\nimport {recursiveSchemaAsyncType} from '../../../../CreateAsyncComponentType/AsyncRecursiveComponent.mts';\ninterface ICreateAsyncHeaderType {\n  parameters?: (OpenAPIV3.ReferenceObject | OpenAPIV3.ParameterObject)[];\n}\nexport function createAsyncHeaderType({parameters}: ICreateAsyncHeaderType) {\n  return new Promise<string>(async resolve => {\n    if (parameters) {\n      const paramPromisses = parameters.map(async parameters => {\n        return await getHeaderParamAsync(parameters);\n      });\n      const data = await Promise.all(paramPromisses);\n      resolve(data.join(''));\n    }\n    resolve('');\n  });\n}\n\nfunction getHeaderParamAsync(\n  parameters: OpenAPIV3.ReferenceObject | OpenAPIV3.ParameterObject\n): Promise<string> {\n  return new Promise<string>(async resolve => {\n    if (!isReferenceOrParameter(parameters)) {\n      if (parameters.schema && parameters.in === 'header') {\n        if (!isReference(parameters.schema)) {\n          const schemaData = await recursiveSchemaAsyncType(parameters.schema);\n          if (schemaData) {\n            const data = peer(\n              parameters.name,\n              schemaData?.data[0],\n              schemaData.nullable,\n              schemaData.isArray\n            );\n            resolve(data);\n          }\n        }\n      }\n    }\n    resolve('');\n  });\n}\n","/* eslint-disable no-async-promise-executor */\nimport {OpenAPIV3} from 'openapi-types';\nimport {isReference, isReferenceOrParameter} from '../../../../../../types.ts';\nimport {peer} from '../../../../../../func/Typescript/peer/index.ts';\nimport {\n  IAsyncRecursiveComponentResult,\n  recursiveSchemaAsyncType,\n} from '../../../../CreateAsyncComponentType/AsyncRecursiveComponent.mts';\nimport {\n  typeNameMaker,\n  typeNameSpaceMaker,\n} from '../../../../../../func/Typescript/TypeNameMaker/index.ts';\nimport {refrenceTreatAsync} from '../../../../CreateAsyncComponentType/refrenceTreatAsync.mts';\n\ninterface ICreateAsyncParameterType {\n  parameters?: (OpenAPIV3.ReferenceObject | OpenAPIV3.ParameterObject)[];\n  namespace?: string;\n}\nexport function createAsyncParameterType({\n  parameters,\n  namespace,\n}: ICreateAsyncParameterType) {\n  return new Promise<string>(async resolve => {\n    if (parameters) {\n      const paramPromisses = parameters.map(async parameter => {\n        return await getParamAsync(parameter, namespace);\n      });\n      const data = await Promise.all(paramPromisses);\n      resolve(data.join(''));\n    }\n    resolve('');\n  });\n}\n\nfunction getParamAsync(\n  parameter: OpenAPIV3.ReferenceObject | OpenAPIV3.ParameterObject,\n  namespace?: string\n): Promise<unknown> {\n  return new Promise<string>(async resolve => {\n    if (!isReferenceOrParameter(parameter)) {\n      if (parameter.schema && parameter.in !== 'header') {\n        if (!isReference(parameter.schema)) {\n          const schemaData = await recursiveSchemaAsyncType(parameter.schema);\n          const data = getRequest(schemaData, parameter.name);\n          resolve(data);\n        } else {\n          const res = refrenceTreatAsync(parameter.schema.$ref);\n          const data = getRequest(\n            {data: [res], type: 'REF'},\n            parameter.name,\n            namespace\n          );\n          resolve(data);\n        }\n      }\n    }\n    resolve('');\n  });\n}\n\nexport function getRequest(\n  req: IAsyncRecursiveComponentResult | null,\n  name: string,\n  namespace?: string\n) {\n  if (req) {\n    switch (req.type) {\n      case 'REF':\n        return peer(\n          name,\n          typeNameSpaceMaker(req?.data[0], namespace as string),\n          req.nullable,\n          req.isArray\n        );\n      case 'ARRAY':\n        return peer(\n          name,\n          typeNameMaker(req?.data[0]),\n          req.nullable,\n          req.isArray\n        );\n      case 'PREM':\n        return peer(name, req?.data[0], req.nullable, req.isArray);\n\n      default:\n        return '';\n    }\n  } else {\n    return '';\n  }\n}\n","import {OpenAPIV3} from 'openapi-types';\ntype IContent = {\n  [media: string]: OpenAPIV3.MediaTypeObject;\n};\n\nexport function contentMapper(content: IContent | undefined) {\n  if (!content) {\n    return;\n  }\n  const entries = Object.entries(content);\n  const object = entries.map(cur => {\n    return {\n      objectName: cur[0],\n      objectContent: cur[1] as OpenAPIV3.MediaTypeObject,\n    };\n  });\n\n  return object;\n}\n","/* eslint-disable no-async-promise-executor */\nimport {OpenAPIV3} from 'openapi-types';\nimport {isReferenceOrRequestBody} from '../../../../../../types.ts';\nimport {contentMapper} from '../../../../../../func/contentMapper/index.ts';\nimport {\n  AsyncRecursiveComponent,\n  typeKey,\n} from '../../../../CreateAsyncComponentType/AsyncRecursiveComponent.mts';\nimport {refrenceTreatAsync} from '../../../../CreateAsyncComponentType/refrenceTreatAsync.mts';\n\ninterface ICreateAsyncRequestBodyType {\n  requestsBody?: OpenAPIV3.ReferenceObject | OpenAPIV3.RequestBodyObject;\n}\nexport interface ICreateAsyncRequestBodyResultType {\n  body: [string, string?];\n  type: typeKey;\n}\nexport function createAsyncRequestBodyType({\n  requestsBody,\n}: ICreateAsyncRequestBodyType) {\n  // eslint-disable-next-line no-async-promise-executor\n  return new Promise<ICreateAsyncRequestBodyResultType | null>(\n    async resolve => {\n      if (requestsBody) {\n        if (isReferenceOrRequestBody(requestsBody)) {\n          const data = refrenceTreatAsync(requestsBody.$ref);\n          resolve({body: [data], type: 'REF'});\n        } else {\n          const contentIterator = contentMapper(requestsBody.content);\n          if (contentIterator?.length) {\n            const data = await AsyncRecursiveComponent({\n              component: contentIterator[0].objectContent.schema,\n            });\n            if (data) {\n              if (\n                contentIterator.some(cType =>\n                  cType.objectName.includes('form-data')\n                )\n              ) {\n                resolve({body: data.data, type: 'FORMDATA'});\n              } else {\n                resolve({body: data.data, type: data.type});\n              }\n            }\n          }\n        }\n      }\n      resolve(null);\n    }\n  );\n}\n","/* eslint-disable no-async-promise-executor */\nimport {MethodIterator} from '../../../../../func/MethodIterator/index.ts';\nimport {interfaceMaker} from '../../../../../func/Typescript/InterfaceMaker/index.ts';\nimport {\n  camelCase,\n  typeNameSpaceMaker,\n} from '../../../../../func/Typescript/TypeNameMaker/index.ts';\nimport {wrapNameSpace} from '../../../Declaration/declaration.ts';\nimport {peer} from '../../../../../func/Typescript/peer/index.ts';\nimport {createAsyncHeaderType} from './params/createAsyncHeaderType.ts';\nimport {createAsyncParameterType} from './params/createAsyncParameterType.ts';\nimport {\n  ICreateAsyncRequestBodyResultType,\n  createAsyncRequestBodyType,\n} from './body/createAsyncRequestBodyType.ts';\n\nexport function CreateAsyncTypeRequest(\n  itemName: string,\n  method: MethodIterator,\n  namespace: string\n): Promise<string> {\n  return new Promise(async resolve => {\n    const params = await createAsyncParameterType({\n      parameters: method.objectMethod.parameters,\n      namespace,\n    });\n    const header = await createAsyncHeaderType({\n      parameters: method.objectMethod.parameters,\n    });\n    const requestBody = await createAsyncRequestBodyType({\n      requestsBody: method.objectMethod.requestBody,\n    });\n\n    const paramValue = params\n      ? peer('params', 'Partial<{' + params + '}>')\n      : '';\n    const headerValue = header ? peer('header', '{' + header + '}', true) : '';\n    const bodyValue = requestBodys(requestBody, namespace);\n    const data = interfaceMaker(\n      itemName,\n      paramValue + headerValue + bodyValue,\n      'ICOMMNON'\n    );\n    const file = wrapNameSpace(camelCase('Request'), data);\n    resolve(file);\n  });\n}\n\nfunction requestBodys(\n  requestBody: ICreateAsyncRequestBodyResultType | null,\n  namespace: string\n) {\n  if (requestBody) {\n    switch (requestBody.type) {\n      case 'REF':\n        return peer('data', typeNameSpaceMaker(requestBody.body[0], namespace)); //\n      case 'PREM':\n        return peer('data', requestBody.body[0]);\n      case 'ARRAY':\n        return peer('data', requestBody.body[0]);\n      case 'MEDIA':\n        return peer('data', '{' + requestBody.body[0] + '}');\n      case 'FORMDATA':\n        return (\n          peer('data', 'FormData') + `/* param : ${requestBody.body[0]} */`\n        );\n      default:\n        return '';\n    }\n  } else {\n    return '';\n  }\n}\n","import {OpenAPIV3} from 'openapi-types';\nimport {isReferenceOrResponse} from '../../../../../types.ts';\nimport {contentMapper} from '../../../../../func/contentMapper/index.ts';\nimport {\n  AsyncRecursiveComponent,\n  typeKey,\n} from '../../../CreateAsyncComponentType/AsyncRecursiveComponent.mts';\n\nexport interface ICreateAsyncResponseModel {\n  response: OpenAPIV3.ResponseObject | OpenAPIV3.ReferenceObject;\n}\n\nexport interface ICreateAsyncResponseModelResult {\n  type: typeKey;\n  response: [string, string?];\n}\n\nexport function createAsyncResponseModel({\n  response,\n}: ICreateAsyncResponseModel) {\n  // eslint-disable-next-line no-async-promise-executor\n  return new Promise<ICreateAsyncResponseModelResult | null>(async resolve => {\n    if (response) {\n      if (!isReferenceOrResponse(response)) {\n        const contentIterator = contentMapper(response.content);\n        if (contentIterator?.length) {\n          const data = await AsyncRecursiveComponent({\n            component: contentIterator[0].objectContent.schema,\n          });\n          if (data) {\n            resolve({type: data.type, response: data.data});\n          }\n        }\n      }\n    }\n    resolve(null);\n  });\n}\n","import {OpenAPIV3} from 'openapi-types';\nimport chalk from 'chalk';\n\nexport function responsesMapper(Response: OpenAPIV3.ResponsesObject) {\n  if (!Response) {\n    console.warn(\n      chalk.yellow(\n        ' └ Responses Object must be include at least one Response but it is undefined!'\n      )\n    );\n    return;\n  }\n  const entries = Object.entries(Response);\n  const object = entries.map(cur => {\n    return {\n      objectName: cur[0],\n      objectResponse: cur[1],\n    };\n  });\n\n  return object;\n}\n","import {OpenAPIV3} from 'openapi-types';\nimport {MethodIterator} from '../../../../../func/MethodIterator/index.ts';\nimport {responsesMapper} from '../../../../../func/responsesMapper/index.ts';\nimport {statusString} from '../../../../../helper/index.ts';\n\nexport function methodHasResponseAsync(method: MethodIterator) {\n  return new Promise<\n    (OpenAPIV3.ReferenceObject | OpenAPIV3.ResponseObject) | false\n  >((resolve, reject) => {\n    const responseIterator = responsesMapper(method.objectMethod.responses);\n    const hasOk = responseIterator?.some(({objectName}) => {\n      const status = statusString(objectName);\n      return status === 'Ok' ? true : false;\n    });\n    if (hasOk) {\n      const response = responseIterator?.find(item => item.objectName === '200')\n        ?.objectResponse as\n        | OpenAPIV3.ReferenceObject\n        | OpenAPIV3.ResponseObject;\n      resolve(response);\n    }\n    resolve(false);\n  });\n}\nexport function methodHasErrorAsync(method: MethodIterator) {\n  return new Promise<\n    (OpenAPIV3.ReferenceObject | OpenAPIV3.ResponseObject) | false\n  >((resolve, reject) => {\n    const responseIterator = responsesMapper(method.objectMethod.responses);\n    const hasBad = responseIterator?.some(({objectName}) => {\n      const status = statusString(objectName);\n      return status === 'Bad' ? true : false;\n    });\n    if (hasBad) {\n      const response = responseIterator?.find(item => item.objectName === '400')\n        ?.objectResponse as\n        | OpenAPIV3.ReferenceObject\n        | OpenAPIV3.ResponseObject;\n      resolve(response);\n    }\n    resolve(false);\n  });\n}\n","import {MethodIterator} from '../../../../../func/MethodIterator/index.ts';\nimport {typeMaker} from '../../../../../func/Typescript/TypeMaker/index.ts';\nimport {\n  camelCase,\n  typeNameSpaceMaker,\n} from '../../../../../func/Typescript/TypeNameMaker/index.ts';\nimport {wrapNameSpace} from '../../../Declaration/declaration.ts';\nimport {\n  ICreateAsyncResponseModelResult,\n  createAsyncResponseModel,\n} from '../Response/createAsyncResponseModel.ts';\nimport {methodHasErrorAsync} from './methodHasErrorOrResAsync.mts';\n\nexport function CreateAsyncTypeError(\n  itemName: string,\n  method: MethodIterator,\n  namespace: string\n): Promise<string> {\n  return new Promise(async (resolve, reject) => {\n    const error = await methodHasErrorAsync(method);\n    if (error) {\n      const err = await createAsyncResponseModel({\n        response: error,\n      });\n      const data = getError(err, itemName, namespace);\n      const file = wrapNameSpace(camelCase('Error'), data);\n      resolve(file);\n    } else {\n      resolve('');\n    }\n  });\n}\n\nexport function getError(\n  res: ICreateAsyncResponseModelResult | null,\n  name: string,\n  namespace: string\n) {\n  if (res) {\n    if (res.type === 'REF') {\n      const value = typeNameSpaceMaker(res.response[0], namespace); //\n      return typeMaker(name, value);\n    } else {\n      const value = res.response[0];\n      return typeMaker(name, value);\n    }\n  } else {\n    return '';\n  }\n}\n","/* eslint-disable no-async-promise-executor */\nimport {MethodIterator} from '../../../../../func/MethodIterator/index.ts';\nimport {typeMaker} from '../../../../../func/Typescript/TypeMaker/index.ts';\nimport {\n  camelCase,\n  typeNameSpaceMaker,\n} from '../../../../../func/Typescript/TypeNameMaker/index.ts';\nimport {wrapNameSpace} from '../../../Declaration/declaration.ts';\nimport {\n  ICreateAsyncResponseModelResult,\n  createAsyncResponseModel,\n} from './createAsyncResponseModel.ts';\nimport {methodHasResponseAsync} from '../Errors/methodHasErrorOrResAsync.mts';\n\nexport function CreateAsyncTypeResponse(\n  itemName: string,\n  method: MethodIterator,\n  namespace: string\n): Promise<string> {\n  return new Promise(async resolve => {\n    const response = await methodHasResponseAsync(method);\n    if (response) {\n      const res = await createAsyncResponseModel({\n        response,\n      });\n      const data = getResponse(res, itemName, namespace);\n      const file = wrapNameSpace(camelCase('Response'), data);\n      resolve(file);\n    } else {\n      resolve('');\n    }\n  });\n}\n\nexport function getResponse(\n  res: ICreateAsyncResponseModelResult | null,\n  name: string,\n  namespace: string\n) {\n  if (res) {\n    if (res.type === 'REF') {\n      const value = typeNameSpaceMaker(res.response[0], namespace); //\n      return typeMaker(name, value);\n    } else {\n      const value = res.response[0];\n      return typeMaker(name, value);\n    }\n  } else {\n    return '';\n  }\n}\n","/* eslint-disable no-async-promise-executor */\nimport {MethodIterator} from '../../../../func/MethodIterator/index.ts';\nimport {wrapNameSpace} from '../../Declaration/declaration.ts';\nimport {CreateAsyncTypeRequest} from './Request/CreateAsyncTypeRequest.ts';\nimport {CreateAsyncTypeError} from './Errors/CreateAsyncTypeError.mts';\nimport {CreateAsyncTypeResponse} from './Response/CreateAsyncTypeResponse.ts';\n\nexport function CreateAsyncTypeMethod(\n  method: MethodIterator,\n  itemName: string,\n  namespace: string\n): Promise<string> {\n  return new Promise(async resolve => {\n    const Request = await CreateAsyncTypeRequest(itemName, method, namespace);\n    const Response = await CreateAsyncTypeResponse(itemName, method, namespace);\n    const Error = await CreateAsyncTypeError(itemName, method, namespace);\n    const data = Request + Response + Error;\n    const file = wrapNameSpace(method.objectName.toLowerCase(), data);\n    resolve(file);\n  });\n}\n","/* eslint-disable no-async-promise-executor */\nimport {MethodIterator} from '../../../func/MethodIterator/index.ts';\nimport {IPathIterator, PathIterator} from '../../../func/PathMapper/index.ts';\nimport {camelCase} from '../../../func/Typescript/TypeNameMaker/index.ts';\nimport {pathSplit} from '../../../helper/index.ts';\nimport {Spec} from '../../../types.ts';\nimport {\n  wrapDeclartionNameSpace,\n  wrapNameSpace,\n} from '../Declaration/declaration.ts';\nimport {CreateAsyncTypeMethod} from './Method/CreateAsyncTypeMethod.ts';\n\nexport async function CreateAsyncGlobalType(defination: Spec) {\n  return new Promise<string>(async resolve => {\n    const iteratedPaths = PathIterator(defination.paths);\n    const namespace = defination.info.title\n      .replaceAll('.', '')\n      .replaceAll(' ', '');\n    if (iteratedPaths?.length) {\n      const pathPromises = iteratedPaths?.map(path => {\n        return CreateAsyncTypeScope(path, namespace);\n      });\n\n      if (pathPromises?.length) {\n        const data = await Promise.all(pathPromises);\n        const {definationName} = pathSplit(iteratedPaths[0].objectName);\n        const file = wrapDeclartionNameSpace(\n          camelCase(definationName),\n          data.join('')\n        );\n        resolve(file);\n      }\n    }\n    resolve('');\n  });\n}\n\nexport function CreateAsyncTypeScope(\n  path: IPathIterator,\n  namespace: string\n): Promise<string> {\n  return new Promise(async resolve => {\n    const {scopeName, itemName} = pathSplit(path.objectName);\n    const iteratedMathods = MethodIterator(path.objectPath);\n    const tagName =\n      scopeName || iteratedMathods?.[0].objectMethod.tags?.[0] || '__NO_TAG';\n    const methodPromises = iteratedMathods?.map(async method => {\n      return await CreateAsyncTypeMethod(\n        method,\n        camelCase(itemName),\n        namespace\n      );\n    });\n\n    if (methodPromises?.length) {\n      const data = await Promise.all(methodPromises);\n      const file = wrapNameSpace(camelCase(tagName), data.join(''));\n      resolve(file);\n    }\n  });\n}\n","import {format} from 'prettier';\nimport fs from 'fs';\nimport {configStore} from '../../config/index.ts';\nimport {ISaveBatch, ISaveFile} from '../../types.ts';\nimport ora from 'ora';\nimport chalk from 'chalk';\nimport makeDir from 'make-dir';\n\nconst writeFs = async ({\n  data,\n  fileName,\n  location,\n}: ISaveFile): Promise<fs.WriteStream> => {\n  // eslint-disable-next-line no-async-promise-executor\n  return new Promise(async (resolve, reject) => {\n    const dir = await makeDir(location);\n    if (dir) {\n      const file = fs\n        .createWriteStream(location + '/' + fileName)\n        .once('open', () => {\n          file.write(data);\n          file.end();\n        })\n        .once('error', error => {\n          reject(error);\n        })\n        .once('finish', () => {\n          resolve(file);\n        });\n    }\n  });\n};\n\nconst getPrettierFileData = async (\n  data: unknown,\n  beautify = true\n): Promise<string> => {\n  if (beautify) {\n    const beauty = await format(`${data}`, configStore?.prettier);\n    return `${beauty}`;\n  }\n  return `${data}`;\n};\n\nexport async function save({\n  fileName,\n  data,\n  location,\n  beautify,\n  extention,\n  comment,\n}: ISaveFile) {\n  if (data) {\n    const spinner = ora(\n      chalk.gray(' ├ Saving :\"' + fileName + '\" in :\"' + location + '\"')\n    );\n    try {\n      const fileData = await getPrettierFileData(data, beautify);\n      const dataStr = comment ? `\\n /* ${comment} */\\n` + fileData : fileData;\n      await writeFs({\n        data: dataStr,\n        fileName: fileName + extention,\n        location: configStore?.outDir + '/' + location,\n      });\n      spinner.succeed();\n    } catch (error) {\n      spinner.fail();\n      console.error(chalk.redBright(' └ ' + error));\n    }\n  }\n}\n\nexport function saveBatch({files, location, beautify, extention}: ISaveBatch) {\n  const promisses = files.map(file => {\n    if (file.data.length) {\n      return save({\n        data: file.data,\n        fileName: file.name,\n        beautify,\n        location,\n        extention,\n        comment: file.comment,\n      });\n    } else {\n      return null;\n      // console.warn(\n      //   chalk.green(\n      //     ` └ ${file.name} in ${location} not saved duo to empty string! `\n      //   )\n      // );\n    }\n  });\n  return Promise.all(promisses);\n}\n","import chalk from 'chalk';\nimport ora from 'ora';\nimport {cosmiconfig} from 'cosmiconfig';\nimport {IConfig} from '../types.ts';\nimport {ConfigStore} from './store/store.ts';\nconst spinner = ora('get hookgenrc config file');\nconst explorer = () => cosmiconfig('hookgenrc');\n// eslint-disable-next-line prefer-const\nexport let configStore: ConfigStore | undefined = undefined;\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n//@ts-ignore\nexport async function getConfig(): Promise<IConfig | undefined> {\n  spinner.start();\n  try {\n    const configFile = await explorer().load('./hookgenrc.json');\n    if (configFile?.isEmpty) {\n      spinner.warn();\n      console.warn(chalk.yellow(' └ codegen file is empty!'));\n      return Promise.resolve(undefined);\n    } else {\n      spinner.succeed();\n      configStore = new ConfigStore(configFile?.config as IConfig);\n      return configFile?.config as IConfig;\n    }\n  } catch (error) {\n    spinner.fail();\n    console.error(\n      chalk.bgRedBright(error ? error : ' └ Error get config file')\n    );\n    throw new Error(\n      chalk.bgRedBright(error ? error : ' └ Error get config file')\n    );\n  }\n}\n","import {configStore} from '../../../config/index.ts';\nimport {schemaIterator} from '../../../func/SchemaMapper/index.ts';\nimport {enumarateMaker} from '../../../func/Typescript/TypeMaker/index.ts';\nimport {Spec} from '../../../types.ts';\nimport {AsyncRecursiveComponent} from './AsyncRecursiveComponent.mts';\nimport {componentMediaOrRef} from './componentMediaOrRef.mts';\n\nexport async function CreateAsyncComponentType(defination: Spec) {\n  return new Promise<[string, string]>(async resolve => {\n    const iteratedSchema = schemaIterator(defination.components?.schemas);\n    const nameSpace = defination.info.title\n      .replaceAll('.', '')\n      .replaceAll(' ', '');\n    configStore?.setDefinition(nameSpace);\n    if (iteratedSchema?.length) {\n      const componentPromisses = iteratedSchema?.map(schema => {\n        return AsyncRecursiveComponent({\n          component: schema.objectSchema,\n          name: schema.objectName,\n          firstLvl: true,\n        });\n      });\n\n      if (componentPromisses?.length) {\n        const result = await Promise.all(componentPromisses);\n        const componentRes = result\n          .map(item => {\n            const res = componentMediaOrRef(item);\n            return res;\n          })\n          .join('');\n\n        const component = `declare namespace ${nameSpace}{\n          ${componentRes}\n        }`;\n\n        const enums = result\n          .map(item => {\n            const res =\n              item?.type === 'ENUM'\n                ? enumarateMaker(\n                    item?.name || 'NoName',\n                    item?.data[1] as string\n                  )\n                : '';\n            return res;\n          })\n          .join('');\n        resolve([component, enums]);\n      }\n    }\n    resolve(['', '']);\n  });\n}\n"],"mappings":"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","names":["import_ora","import_chalk","chalk","import_chalk","chalk","import_chalk","chalk","import_chalk","chalk","isDuplicate","parameters","import_chalk","chalk","Error","import_chalk","ora","import_ora","import_chalk","makeDir","fs","spinner","ora","chalk","spinner","ora","resolve","_a","chalk"]}