@hey-api/openapi-ts 0.66.3 → 0.66.5

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/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/windows.js","../../../node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/mode.js","../../../node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/index.js","../../../node_modules/.pnpm/which@2.0.2/node_modules/which/which.js","../../../node_modules/.pnpm/path-key@3.1.1/node_modules/path-key/index.js","../../../node_modules/.pnpm/cross-spawn@7.0.5/node_modules/cross-spawn/lib/util/resolveCommand.js","../../../node_modules/.pnpm/cross-spawn@7.0.5/node_modules/cross-spawn/lib/util/escape.js","../../../node_modules/.pnpm/shebang-regex@3.0.0/node_modules/shebang-regex/index.js","../../../node_modules/.pnpm/shebang-command@2.0.0/node_modules/shebang-command/index.js","../../../node_modules/.pnpm/cross-spawn@7.0.5/node_modules/cross-spawn/lib/util/readShebang.js","../../../node_modules/.pnpm/cross-spawn@7.0.5/node_modules/cross-spawn/lib/parse.js","../../../node_modules/.pnpm/cross-spawn@7.0.5/node_modules/cross-spawn/lib/enoent.js","../../../node_modules/.pnpm/cross-spawn@7.0.5/node_modules/cross-spawn/index.js","../src/utils/regexp.ts","../src/utils/escape.ts","../src/compiler/utils.ts","../src/plugins/@hey-api/client-core/utils.ts","../src/utils/config.ts","../src/compiler/types.ts","../src/compiler/module.ts","../src/compiler/classes.ts","../src/compiler/convert.ts","../src/compiler/return.ts","../src/compiler/transform.ts","../src/compiler/typedef.ts","../src/compiler/index.ts","../src/ir/parser.ts","../src/utils/getHttpRequestName.ts","../src/utils/sort.ts","../src/generate/utils.ts","../src/generate/class.ts","../src/generate/client.ts","../src/generate/core.ts","../src/openApi/shared/utils/identifier.ts","../src/utils/stringCase.ts","../src/generate/files.ts","../src/generate/indexFile.ts","../src/generate/output.ts","../src/mergeHeaders.ts","../src/getSpec.ts","../src/utils/ref.ts","../src/ir/context.ts","../src/openApi/shared/utils/filter.ts","../src/openApi/shared/utils/parameter.ts","../src/openApi/common/parser/sanitize.ts","../src/openApi/shared/utils/operation.ts","../src/ir/mediaType.ts","../src/openApi/2.0.x/parser/mediaType.ts","../src/ir/pagination.ts","../src/ir/utils.ts","../src/openApi/shared/utils/discriminator.ts","../src/openApi/shared/utils/schema.ts","../src/openApi/2.0.x/parser/schema.ts","../src/openApi/2.0.x/parser/pagination.ts","../src/openApi/2.0.x/parser/operation.ts","../src/openApi/2.0.x/parser/parameter.ts","../src/utils/url.ts","../src/openApi/2.0.x/parser/server.ts","../src/openApi/2.0.x/parser/index.ts","../src/openApi/3.0.x/parser/mediaType.ts","../src/openApi/3.0.x/parser/schema.ts","../src/openApi/3.0.x/parser/pagination.ts","../src/openApi/3.0.x/parser/operation.ts","../src/openApi/3.0.x/parser/parameter.ts","../src/openApi/3.0.x/parser/requestBody.ts","../src/openApi/3.0.x/parser/server.ts","../src/openApi/3.0.x/parser/index.ts","../src/openApi/3.1.x/parser/mediaType.ts","../src/openApi/3.1.x/parser/schema.ts","../src/openApi/3.1.x/parser/pagination.ts","../src/openApi/3.1.x/parser/operation.ts","../src/openApi/3.1.x/parser/parameter.ts","../src/openApi/3.1.x/parser/requestBody.ts","../src/openApi/3.1.x/parser/server.ts","../src/openApi/3.1.x/parser/index.ts","../src/openApi/common/parser/service.ts","../src/utils/const.ts","../src/utils/transform.ts","../src/openApi/v3/parser/inferType.ts","../src/openApi/common/parser/stripNamespace.ts","../src/openApi/common/parser/type.ts","../src/utils/unique.ts","../src/openApi/common/parser/getEnums.ts","../src/openApi/common/parser/getPattern.ts","../src/openApi/v2/parser/getModelProperties.ts","../src/openApi/common/parser/getRef.ts","../src/openApi/v2/parser/getRequiredPropertiesFromComposition.ts","../src/openApi/v2/parser/getModelComposition.ts","../src/openApi/v2/parser/getModel.ts","../src/openApi/v2/parser/getModels.ts","../src/utils/enum.ts","../src/utils/meta.ts","../src/utils/type.ts","../src/openApi/common/parser/operation.ts","../src/openApi/common/parser/getDefault.ts","../src/openApi/v2/parser/getOperationParameter.ts","../src/openApi/v2/parser/getOperationParameters.ts","../src/openApi/common/parser/sort.ts","../src/openApi/v2/parser/getOperationResponse.ts","../src/openApi/v2/parser/getOperationResponses.ts","../src/openApi/v2/parser/operation.ts","../src/openApi/v2/parser/getOperations.ts","../src/openApi/v2/parser/getServer.ts","../src/openApi/v2/index.ts","../src/openApi/v3/parser/discriminator.ts","../src/openApi/v3/parser/getModelProperties.ts","../src/openApi/v3/parser/getRequiredPropertiesFromComposition.ts","../src/openApi/v3/parser/getModelComposition.ts","../src/openApi/v3/parser/getModel.ts","../src/openApi/v3/parser/parameter.ts","../src/openApi/v3/parser/getModels.ts","../src/openApi/v3/parser/getOperationParameter.ts","../src/openApi/v3/parser/getOperationParameters.ts","../src/openApi/v3/parser/getContent.ts","../src/openApi/v3/parser/getOperationRequestBody.ts","../src/openApi/v3/parser/getOperationResponse.ts","../src/openApi/v3/parser/getOperationResponses.ts","../src/openApi/v3/parser/operation.ts","../src/openApi/v3/parser/getOperations.ts","../src/openApi/v3/parser/getServer.ts","../src/openApi/v3/index.ts","../src/openApi/index.ts","../src/processOutput.ts","../src/utils/performance.ts","../src/utils/postprocess.ts","../src/createClient.ts","../src/getLogs.ts","../src/plugins/@hey-api/client-core/config.ts","../src/plugins/shared/utils/ref.ts","../src/plugins/@hey-api/typescript/ref.ts","../src/plugins/@hey-api/client-core/client.ts","../src/plugins/@hey-api/client-core/createClientConfig.ts","../src/plugins/@hey-api/client-core/plugin.ts","../src/plugins/@hey-api/client-axios/config.ts","../src/plugins/@hey-api/client-fetch/config.ts","../src/plugins/@hey-api/client-next/config.ts","../src/plugins/@hey-api/client-nuxt/config.ts","../src/plugins/@hey-api/legacy-angular/config.ts","../src/plugins/@hey-api/legacy-axios/config.ts","../src/plugins/@hey-api/legacy-fetch/config.ts","../src/plugins/@hey-api/legacy-node/config.ts","../src/plugins/@hey-api/legacy-xhr/config.ts","../src/plugins/@hey-api/schemas/plugin.ts","../src/plugins/@hey-api/schemas/plugin-legacy.ts","../src/plugins/@hey-api/schemas/config.ts","../src/ir/parameter.ts","../src/ir/schema.ts","../src/ir/operation.ts","../src/plugins/zod/plugin.ts","../src/plugins/@hey-api/transformers/plugin.ts","../src/plugins/@hey-api/sdk/constants.ts","../src/plugins/@hey-api/sdk/plugin-legacy.ts","../src/plugins/@hey-api/sdk/typeOptions.ts","../src/plugins/@hey-api/sdk/plugin.ts","../src/plugins/@hey-api/sdk/config.ts","../src/plugins/@hey-api/typescript/plugin-legacy.ts","../src/plugins/@hey-api/transformers/plugin-legacy.ts","../src/plugins/@hey-api/transformers/config.ts","../src/plugins/shared/utils/case.ts","../src/plugins/@hey-api/typescript/clientOptions.ts","../src/plugins/@hey-api/typescript/plugin.ts","../src/plugins/@hey-api/typescript/config.ts","../src/plugins/@tanstack/query-core/useType.ts","../src/plugins/@tanstack/query-core/queryKey.ts","../src/plugins/@tanstack/query-core/infiniteQueryOptions.ts","../src/plugins/@tanstack/query-core/mutationOptions.ts","../src/plugins/@tanstack/query-core/queryOptions.ts","../src/plugins/@tanstack/query-core/plugin.ts","../src/plugins/@tanstack/query-core/plugin-legacy.ts","../src/plugins/@tanstack/angular-query-experimental/config.ts","../src/plugins/@tanstack/react-query/config.ts","../src/plugins/@tanstack/solid-query/config.ts","../src/plugins/@tanstack/svelte-query/config.ts","../src/plugins/@tanstack/vue-query/config.ts","../src/plugins/fastify/plugin.ts","../src/plugins/fastify/config.ts","../src/plugins/zod/config.ts","../src/plugins/index.ts","../src/initConfigs.ts","../src/legacy/handlebars/compiled/client.js","../src/legacy/handlebars/compiled/core/angular/getHeaders.js","../src/legacy/handlebars/compiled/core/angular/getRequestBody.js","../src/legacy/handlebars/compiled/core/angular/getResponseBody.js","../src/legacy/handlebars/compiled/core/angular/getResponseHeader.js","../src/legacy/handlebars/compiled/core/angular/request.js","../src/legacy/handlebars/compiled/core/angular/sendRequest.js","../src/legacy/handlebars/compiled/core/ApiError.js","../src/legacy/handlebars/compiled/core/ApiRequestOptions.js","../src/legacy/handlebars/compiled/core/ApiResult.js","../src/legacy/handlebars/compiled/core/axios/getHeaders.js","../src/legacy/handlebars/compiled/core/axios/getRequestBody.js","../src/legacy/handlebars/compiled/core/axios/getResponseBody.js","../src/legacy/handlebars/compiled/core/axios/getResponseHeader.js","../src/legacy/handlebars/compiled/core/axios/request.js","../src/legacy/handlebars/compiled/core/axios/sendRequest.js","../src/legacy/handlebars/compiled/core/BaseHttpRequest.js","../src/legacy/handlebars/compiled/core/CancelablePromise.js","../src/legacy/handlebars/compiled/core/fetch/getHeaders.js","../src/legacy/handlebars/compiled/core/fetch/getRequestBody.js","../src/legacy/handlebars/compiled/core/fetch/getResponseBody.js","../src/legacy/handlebars/compiled/core/fetch/getResponseHeader.js","../src/legacy/handlebars/compiled/core/fetch/request.js","../src/legacy/handlebars/compiled/core/fetch/sendRequest.js","../src/legacy/handlebars/compiled/core/functions/base64.js","../src/legacy/handlebars/compiled/core/functions/catchErrorCodes.js","../src/legacy/handlebars/compiled/core/functions/getFormData.js","../src/legacy/handlebars/compiled/core/functions/getQueryString.js","../src/legacy/handlebars/compiled/core/functions/getUrl.js","../src/legacy/handlebars/compiled/core/functions/isBlob.js","../src/legacy/handlebars/compiled/core/functions/isFormData.js","../src/legacy/handlebars/compiled/core/functions/isString.js","../src/legacy/handlebars/compiled/core/functions/isStringWithValue.js","../src/legacy/handlebars/compiled/core/functions/isSuccess.js","../src/legacy/handlebars/compiled/core/functions/resolve.js","../src/legacy/handlebars/compiled/core/HttpRequest.js","../src/legacy/handlebars/compiled/core/OpenAPI.js","../src/legacy/handlebars/compiled/core/request.js","../src/legacy/handlebars/compiled/core/xhr/getHeaders.js","../src/legacy/handlebars/compiled/core/xhr/getRequestBody.js","../src/legacy/handlebars/compiled/core/xhr/getResponseBody.js","../src/legacy/handlebars/compiled/core/xhr/getResponseHeader.js","../src/legacy/handlebars/compiled/core/xhr/request.js","../src/legacy/handlebars/compiled/core/xhr/sendRequest.js","../src/utils/handlebars.ts","../src/utils/exports.ts","../src/index.ts"],"names":["require_windows","__commonJSMin","exports","module","isexe","sync","fs","checkPathExt","path","options","pathext","i","p","checkStat","stat","cb","er","require_mode","checkMode","mod","uid","gid","myUid","myGid","u","g","o","ug","ret","require_isexe","core","resolve","reject","is","require_which","isWindows","COLON","getNotFoundError","cmd","getPathInfo","opt","colon","pathEnv","pathExtExe","pathExt","which","found","step","ppRaw","pathPart","pCmd","subStep","ii","ext","res","whichSync","j","cur","require_path_key","pathKey","environment","key","require_resolveCommand","getPathKey","resolveCommandAttempt","parsed","withoutPathExt","env","cwd","hasCustomCwd","shouldSwitchCwd","resolved","resolveCommand","require_escape","metaCharsRegExp","escapeCommand","arg","escapeArgument","doubleEscapeMetaChars","require_shebang_regex","require_shebang_command","shebangRegex","string","match","argument","binary","require_readShebang","shebangCommand","readShebang","command","buffer","fd","require_parse","escape","isWin","isExecutableRegExp","isCmdShimRegExp","detectShebang","shebang","parseNonShell","commandFile","needsShell","needsDoubleEscapeMetaChars","shellCommand","parse","args","require_enoent","notFoundError","original","syscall","hookChildProcess","cp","originalEmit","name","arg1","err","verifyENOENT","status","verifyENOENTSync","require_cross_spawn","enoent","spawn","spawned","spawnSync","result","illegalStartCharactersRegExp","numberRegExp","reservedBrowserGlobalsRegExp","reservedJavaScriptGlobalsRegExp","reservedJavaScriptKeywordsRegExp","reservedNodeGlobalsRegExp","reservedTypeScriptKeywordsRegExp","validTypescriptIdentifierRegExp","escapeName","value","unescapeName","escapeComment","_l","w","EOL","clientId","getClientBaseUrlKey","config","client","getClientPlugin","plugin","_config","getConfig","setConfig","isLegacyClient","legacyNameFromConfig","printer","ts","createSourceFile","sourceText","blankSourceFile","unescapeUnicode","_","hex","tsNodeToString","node","unescape","stringToTsNodes","createIdentifier","text","ots","alias","asType","nameNode","aliasNode","hasBothQuotes","hasNewlines","hasUnescapedBackticks","isBacktickEscaped","createStringLiteral","isTsNode","isType","processCommentObject","commentObject","lines","line","jsdocTexts","index","jsdoc","cleanedJsdoc","addLeadingComments","comments","isObjectStyle","comment","commentObjects","createTypeNode","base","createTypeReferenceNode","createPropertyAccessChain","expression","createPropertyAccessExpression","isOptional","nodeExpression","nodeName","createNull","toExpression","identifiers","isValueAccess","shorthand","createArrayLiteralExpression","createObjectType","parts","toAccessLevelModifiers","access","keyword","modifiers","toParameterDeclarations","parameters","parameter","createParameterDeclaration","param","createKeywordTypeNode","kind","toTypeParameters","types","createTypeParameterDeclaration","createTypeOperatorNode","operator","type","operatorKeyword","constraint","defaultType","createMappedTypeNode","members","nameType","questionToken","readonlyToken","typeParameter","createLiteralTypeNode","literal","createArrowFunction","async","multiLine","returnType","statements","createBlock","createAnonymousFunction","elements","createAwaitExpression","createFunctionTypeNode","typeParameters","obj","properties","canShorthand","assignment","nameIdentifier","createAsExpression","initializer","createPropertyAssignment","createEnumDeclaration","enumMemberComments","enumMember","createEnumMember","createNamespaceDeclaration","createIndexedAccessTypeNode","indexType","objectType","isSingleQuote","createConditionalExpression","condition","whenFalse","whenTrue","createTypeOfExpression","createTypeAliasDeclaration","exportType","typeArguments","typeName","createTypeParenthesizedNode","required","createNewExpression","argumentsArray","createForOfStatement","awaitModifier","statement","createAssignment","left","right","createRegularExpressionLiteral","flags","createTemplateLiteralType","spans","spanText","item","span","createExportAllDeclaration","createCallExpression","functionName","createNamedExportDeclarations","exportedTypes","hasNonTypeExport","exportClause","moduleSpecifier","createConstVariable","assertion","destructure","exportConst","declaration","createNamedImportDeclarations","imports","importedTypes","hasNonTypeImport","namedBindings","importClause","createConstructorDeclaration","accessLevel","createMethodDeclaration","isStatic","createClassDeclaration","decorator","m","member","expressionToStatement","createReturnStatement","createReturnFunctionCall","createReturnVariable","createSafeAccessExpression","element","createAccessExpression","createPropertyAccessExpressions","expressions","createBinaryExpression","createIfStatement","elseStatement","thenStatement","createDateTransformMutation","safeAccessExpression","accessExpression","createFunctionTransformMutation","transformerName","createArrayTransformMutation","createDateTransformerExpression","parameterName","createArrayMapTransform","transformExpression","nullNode","maybeNullable","isNullable","createTypeInterfaceNode","indexProperty","useLegacyResolution","property","signature","indexSignature","createTypeUnionNode","nodes","createTypeIntersectionNode","createTypeTupleNode","createTypeRecordNode","keys","values","keyNode","valueNode","createTypeArrayNode","compiler","parseIR","context","server","schema","$ref","requestBody","pathItem","_method","method","operation","getHttpRequestName","clientName","sort","a","b","nameA","nameB","sorterByName","sortByName","items","ensureDirSync","removeDirSync","relativeModulePath","moduleOutput","sourceOutput","outputParts","generateLegacyClientClass","openApi","outputPath","templates","clientPlugin","templateResult","getClientSrcPath","pluginFilePathComponents","clientModulePath","clientSrcPath","clientApi","generateClientBundle","dirPath","clientModulePathComponents","__require","clientDistPath","distFiles","file","generateLegacyCore","requestFile","regexps","ensureValidIdentifier","identifier","regexp","uppercaseRegExp","lowercaseRegExp","identifierRegExp","separatorsRegExp","leadingSeparatorsRegExp","separatorsAndIdentifierRegExp","numbersAndIdentifierRegExp","preserveCase","_case","isLastCharLower","isLastCharUpper","isLastLastCharUpper","isLastLastCharPreserved","separator","character","nextIndex","nextCharacter","isSeparatorBeforeNextCharacter","characterLower","characterUpper","stringCase","stripLeadingSeparators","offset","TypeScriptFile","dir","exportFromIndex","header","identifierCase","namespace","refValue","ensureUniqueIdentifier","importedItem","moduleMap","splitNameAndExtension","id","filePath","configFileParts","cfgParts","thisPathParts","filePathParts","relativePath","part","pathArray","relativePathToFile","relativeFolder","fileName","extension","output","importsStringArray","_module","count","create","nameTransformer","nameWithTransform","nameWithCasing","nameValue","generateIndexFile","files","generateLegacyOutput","spec","service","model","outputDir","generateOutput","indexFile","mergeHeaders","headers","mergedHeaders","iterator","v","getSpec","fetchOptions","inputPath","timeout","watch","refParser","$RefParser","resolvedInput","getResolvedInput","arrayBuffer","hasChanged","response","request","sendRequest","error","eTag","lastModified","content","irRef","isRefOpenApiComponent","refToParts","refToName","resolveRef","current","IRContext","event","callbackFn","createdFile","isFiltersMatch","filters","filter","field","canProcessRef","excludeFilters","includeFilters","state","createFilter","matcher","createFilters","matchers","mergeParametersObjects","source","target","ensureValidTypeScriptJavaScriptIdentifier","replaced","sanitizeNamespaceIdentifier","sanitizeOperationParameterName","withoutBrackets","ensureUniqueOperationId","operationIds","operationKey","operationToId","urlWithoutPlaceholders","fileLikeRegExp","jsonMimeRegExp","multipartFormDataMimeRegExp","textMimeRegExp","xWwwFormUrlEncodedMimeRegExp","isMediaTypeFileLike","mediaType","mediaTypeToIrMediaType","contentToSchema","mediaTypeObject","mimeTypes","DEFAULT_PAGINATION_KEYWORDS","getPaginationKeywordsRegExp","keywords","pattern","addItemsToSchema","logicalOperator","mutateSchemaOneItem","discriminatorValue","mapping","mergeSchemaAccessScopes","mergedScopes","scope","getSchemaType","parseSchemaJsDoc","irSchema","parseSchemaMeta","parseArray","schemaItems","irItemsSchema","schemaToIrSchema","ofArray","parseBoolean","parseNumber","parseObject","schemaProperties","irPropertySchema","irAdditionalPropertiesSchema","parseString","initIrSchema","parseAllOf","schemaType","compositionSchemas","compositionSchema","irCompositionSchema","ref","irDiscriminatorSchema","irRefSchema","irObjectSchema","parseOneType","requiredProperty","finalCompositionSchema","nestedItems","parseEnum","enumValue","typeOfEnumValue","enumType","irTypeSchema","parseRef","refSchema","parseNullableType","typeIrSchema","parseType","parseUnknown","parseSchema","isPaginationType","paginationField","finalSchema","allOf","pagination","parseOperationJsDoc","irOperation","initIrOperation","operationToIrOperation","securitySchemesMap","isRequestBodyRequired","requestBodyObject","requestBodyObjectRequired","requestBodyParameter","responseObject","securitySchemeObjects","securityRequirementObject","securitySchemeObject","irSecuritySchemeObject","parseOperation","defaultExplode","collectionFormat","defaultStyle","_in","parametersArrayToObject","parametersObject","parameterOrReference","parameterToIrParameter","style","irParameter","parseUrlRegExp","parseUrl","errorResponse","host","protocol","parseServers","schemes","url","servers","scheme","parseV2_0_X","shouldProcessRef","finalPathItem","commonOperation","operationArgs","$refDelete","$refGet","$refHead","$refOptions","$refPatch","$refPost","$refPut","parseAnyOf","parseOneOf","defaultAllowReserved","explode","parseParameter","requestBodyToIrRequestBody","irRequestBody","parseRequestBody","parseV3_0_X","securityOrReference","requestBodyOrReference","$refTrace","getSchemaTypes","irItemSchema","parseNull","schemaTypes","parseManyTypes","nonNullCompositionSchemas","parseV3_1_X","allowedServiceMethods","getServiceVersion","version","refParametersPartial","refSchemasPartial","transformServiceName","transformTypeName","cleanAndTransformTypeName","transformed","inferType","definition","definitionTypes","isDefinitionTypeNullable","getDefinitionTypes","isDefinitionNullable","stripNamespace","getMappedType","format","hasSquareBracketsRegExp","getType","debug","joinedType","mapped","typeWithoutNamespace","matches","match1","match2","encodedType","unique","arr","getEnums","descriptions","names","getPattern","getModelProperties","getModel","models","propertyName","propertyRequired","ESCAPED_REF_SLASH","ESCAPED_REF_TILDE","getRef","paths","decodedPath","getRequiredPropertiesFromComposition","definitions","getModelComposition","composition","hasProperties","hasEnums","requiredProperties","modelProperties","modelProperty","isDefinition","meta","definitionRef","enums","arrayItems","additionalProperties","definitionType","getModels","definitionName","enumKey","customName","enumUnionType","enumerator","union","enumEntry","enumMeta","serialized","getParametersMeta","getSchemasMeta","isModelDate","typeReference","typeNode","typeArray","toType","typeEnum","typeDict","typeUnionOrIntersection","typeInterface","isLegacy","maybeRequired","transformTypeKeyName","setUniqueTypeName","unsetUniqueTypeName","getOperationKey","getOperationResponseHeader","operationResponses","isOperationParameterRequired","parseResponseStatusCode","code","sorterByResponseStatusCode","isErrorStatusCode","isSuccessStatusCode","inferDefaultResponseTypes","responses","addResponseType","description","$refs","errorKeywords","operationFilterFn","operationNameFn","operationId","operationParameterFilterFn","operationParameterNameFn","tagResponseTypes","getDefault","getOperationParameter","operationParameterWithoutName","operationParameter","allowedIn","getOperationParameters","operationParameters","parameterDef","skip","toSortedByRequired","aNeedsValue","bNeedsValue","getOperationResponse","operationResponse","getOperationResponses","responseCode","responseOrReference","getOperation","op","pathParams","operationWithoutName","successResponses","getOperations","operations","pathParameters","getServer","basePath","inverseDictionary","map","m2","findOneOfParentDiscriminator","parent","mapPropertyValue","discriminator","getAdditionalPropertiesModel","ap","apModel","apType","additionalPropertiesType","propertyValues","findModelComposition","def","foundComposition","propertiesProperty","initialValues","parentDefinition","inferredType","acc","arrayItemsDefinition","definitionConst","modelConst","getParameterSchema","contents","BASIC_MEDIA_TYPES","getContent","basicMediaTypeWithSchema","cleanMediaType","firstMediaTypeWithSchema","getOperationRequestBody","body","mergeParameters","opParams","globalParams","mergedParameters","pendingParameters","pendingParam","requestBodyDef","variables","variable","parseLegacy","parseOpenApiSpec","import_cross_spawn","formatters","linters","processOutput","idEnd","idLength","idStart","Performance","PerformanceReport","totalMark","marks","totalDuration","totalName","mark","markMeasure","markDuration","percentage","postProcessClient","postProcessModel","postProcessOperations","postProcessService","services","parserOperation","tag","getServiceName","getNewService","clone","postProcessServiceOperations","isPlatformPath","compileInputPath","input","baseQuery","queryPath","pathUrl","baseUrl","organization","project","queryParams","kApiKey","kBranch","kCommitSha","kTags","kVersion","query","platformUrl","isLocalhost","platformUrlWithProtocol","compiledPath","logInputPath","baseString","baseInput","createClient","_watch","data","getLogs","userConfig","logs","clientDefaultConfig","operationIrRef","affix","typesId","refIdentifier","onGet","importIdentifierData","identifierData","importIdentifierError","identifierError","importIdentifierResponse","identifierResponse","resolveBaseUrlString","clientModule","createConfig","clientOptions","createClientConfig","defaultValues","resolvedBaseUrl","createConfigParameters","createClientConfigType","configType","defaultClientOptions","defaultClientOptionsType","tType","typeCreateClientConfig","clientPluginHandler","defaultConfig","schemasId","stripSchema","schemaToJsonSchemaDraft_04","_schema","schemaToJsonSchemaDraft_05","schemaToJsonSchema2020_12","schemaName","schemasV2_0_X","schemasV3_0_X","schemasV3_1_X","handler","ensureValidSchemaOutput","parentKey","toSchemaName","validName","handlerLegacy","addSchema","hasParameterGroupObjectRequired","parameterGroup","hasParametersObjectRequired","parameterWithPagination","deduplicateSchema","uniqueItems","typeIds","typeId","liftedSchema","hasOperationDataRequired","operationPagination","resolvedSchema","paginationProp","statusCodeToGroup","statusCode","operationResponsesMap","errors","defaultResponse","inferred","errorKeys","errorUnion","responseKeys","responseUnion","zodId","coerceIdentifier","defaultIdentifier","intersectionIdentifier","lazyIdentifier","lengthIdentifier","literalIdentifier","maxIdentifier","mergeIdentifier","minIdentifier","optionalIdentifier","readonlyIdentifier","regexIdentifier","unionIdentifier","zIdentifier","arrayTypeToZodSchema","arrayExpression","unknownTypeToZodSchema","itemExpressions","schemaToZodSchema","booleanTypeToZodSchema","enumTypeToZodSchema","enumMembers","neverTypeToZodSchema","nullTypeToZodSchema","numberTypeToZodSchema","isBigInt","numberExpression","objectTypeToZodSchema","isRequired","propertyExpression","stringTypeToZodSchema","stringExpression","tupleTypeToZodSchema","tupleElements","undefinedTypeToZodSchema","voidTypeToZodSchema","schemaTypeToZodSchema","operationToZodSchema","optional","isCircularReference","identifierRef","itemTypes","firstSchema","callParameter","bigIntExpressions","dataExpression","bigIntCallExpression","dateExpressions","identifierDate","operationTransformerIrRef","schemaIrRef","schemaResponseTransformerRef","transformersId","dataVariableName","ensureStatements","isNodeReturnStatement","schemaResponseTransformerNodes","processSchemaType","callExpression","mapCallbackStatements","stmt","propertyAccessExpression","propertyNodes","noNullableTypesInSchema","x","arrayNodes","identifierItem","identifierResponseTransformer","responseTransformerNode","nuxtTypeComposable","nuxtTypeDefault","nuxtTypeResponse","generateImport","onImport","setUniqueTypeNameArgs","created","modelResponseTransformerTypeName","operationDataTypeName","operationErrorTypeName","operationResponseTransformerTypeName","operationResponseTypeName","operationOptionsLegacyParserType","importedType","throwOnError","optionsName","toOperationParamType","getDefaultPrintable","typePath","toOperationReturnType","toOperationComment","params","toRequestOptions","onClientImport","responseTransformerName","toObj","prev","curr","errorResponses","serviceFunctionIdentifier","handleIllegal","toOperationStatements","errorType","responseType","processService","onNode","throwOnErrorTypeGeneric","compileFunctionParams","sdkOutput","imported","createTypeOptions","sdkId","isNuxtClient","tDataShape","clientType","typeOptions","operationOptionsType","getResponseType","contentType","cleanContent","securitySchemeObjectToAuthObject","operationAuth","auth","authObject","operationStatements","isRequiredOptions","requestOptions","identifierTransformer","identifierSchema","heyApiClient","optionsClient","generateClassSdk","sdks","uniqueTags","generateFlatSdk","treeName","emptyModel","generateEnum","leadingComment","generateType","onCreated","processComposition","props","enumDeclarations","processType","processEnum","processScopedEnum","processModel","processServiceTypes","pathsMap","pathMap","methodMap","bodyParameters","bodyParameter","headerParameters","queryParameters","operationProperties","methodParameters","operationName","reqKey","reqResParameters","resKey","isVoidResponse","getRefModels","refModel","ensureModelResponseTransformerExists","modelName","generateResponseTransformer","processArray","refModels","nameModelResponseTransformer","processProperty","onRemoveNode","nonVoidResponses","nameCreated","fieldName","stringType","serverToBaseUrlType","createClientOptions","typeClientOptions","scopeToRef","accessScope","refParts","nameBuilder","processedName","processNameBuilder","shouldSkipSchema","addJavaScriptEnum","enumObject","schemaToEnumObject","typeofItems","typeOfItemConst","addTypeEnum","schemaToType","addTypeScriptEnum","arrayTypeToIdentifier","booleanTypeToIdentifier","enumTypeToIdentifier","isRefComponent","shouldExportEnum","objectNode","enumNode","numberTypeToIdentifier","objectTypeToIdentifier","indexPropertyItems","hasOptionalProperties","hasSkippedProperties","stringTypeToIdentifier","tupleTypeToIdentifier","schemaTypeToIdentifier","irParametersToIrSchema","operationToDataType","dataRequired","operationToType","identifierErrors","errorsType","keyofType","identifierResponses","responsesType","finalRef","useTypeData","useTypeError","typeError","axiosError","useTypeResponse","createQueryKeyFn","queryKeyName","TOptionsType","infiniteIdentifier","optionsIdentifier","createQueryKeyFunction","identifierCreateQueryKey","fn","createQueryKeyLiteral","isInfinite","createQueryKeyType","queryKeyType","queryKeyFunctionIdentifier","queryKeyStatement","typeQueryKey","typeData","identifierQueryKey","createInfiniteParamsFn","infiniteQueryOptionsFn","createInfiniteParamsFunction","infiniteQueryOptionsFunctionIdentifier","createInfiniteQueryOptions","queryFn","typeResponse","typePageObjectParam","typePageParam","infiniteQueryKeyName","mutationOptionsFn","mutationOptionsFunctionIdentifier","createMutationOptions","mutationsType","queryOptionsFn","queryOptionsFunctionIdentifier","createQueryOptions","toInfiniteQueryOptionsName","toMutationOptionsName","toQueryOptionsName","toQueryKeyName","getPaginationIn","createTypeData","typesModulePath","nameTypeData","createTypeError","pluginName","nameTypeError","createTypeResponse","nameTypeResponse","typeInfiniteData","hasCreateInfiniteParamsFunction","hasCreateQueryKeyParamsFunction","hasInfiniteQueries","hasMutations","hasQueries","processedOperations","hasUsedQueryFn","paginationParameter","fastifyId","operationToRouteHandler","fileTypes","errorsTypeReference","responsesTypeReference","replyTypes","routeHandlers","routeHandler","defaultPluginConfigs","defaultPlugins","getInput","getPluginsConfig","pluginConfigs","userPlugins","userPluginsConfig","circularReferenceTracker","pluginOrder","plugins","dfs","defaultOptions","userOptions","nativePluginOption","dependency","errorMessage","userPlugin","getOutput","isPluginClient","getPlugins","definedPlugins","getWatch","initConfigs","configurationFile","configFromFile","loadConfig","configFile","dryRun","experimentalParser","exportCore","useOptions","client_default","container","depth0","helpers","partials","stack1","alias1","alias2","lookupProperty","alias3","getHeaders_default","getRequestBody_default","getResponseBody_default","getResponseHeader_default","request_default","sendRequest_default","ApiError_default","ApiRequestOptions_default","ApiResult_default","BaseHttpRequest_default","CancelablePromise_default","base64_default","catchErrorCodes_default","getFormData_default","getQueryString_default","getUrl_default","isBlob_default","isFormData_default","isString_default","isStringWithValue_default","isSuccess_default","resolve_default","HttpRequest_default","OpenAPI_default","registerHandlebarHelpers","Handlebars","registerHandlebarTemplates","utils","resolvedConfig","configs","logName","logsDir","logPath","defineConfig"],"mappings":"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","file":"index.js","sourcesContent":["module.exports = isexe\nisexe.sync = sync\n\nvar fs = require('fs')\n\nfunction checkPathExt (path, options) {\n var pathext = options.pathExt !== undefined ?\n options.pathExt : process.env.PATHEXT\n\n if (!pathext) {\n return true\n }\n\n pathext = pathext.split(';')\n if (pathext.indexOf('') !== -1) {\n return true\n }\n for (var i = 0; i < pathext.length; i++) {\n var p = pathext[i].toLowerCase()\n if (p && path.substr(-p.length).toLowerCase() === p) {\n return true\n }\n }\n return false\n}\n\nfunction checkStat (stat, path, options) {\n if (!stat.isSymbolicLink() && !stat.isFile()) {\n return false\n }\n return checkPathExt(path, options)\n}\n\nfunction isexe (path, options, cb) {\n fs.stat(path, function (er, stat) {\n cb(er, er ? false : checkStat(stat, path, options))\n })\n}\n\nfunction sync (path, options) {\n return checkStat(fs.statSync(path), path, options)\n}\n","module.exports = isexe\nisexe.sync = sync\n\nvar fs = require('fs')\n\nfunction isexe (path, options, cb) {\n fs.stat(path, function (er, stat) {\n cb(er, er ? false : checkStat(stat, options))\n })\n}\n\nfunction sync (path, options) {\n return checkStat(fs.statSync(path), options)\n}\n\nfunction checkStat (stat, options) {\n return stat.isFile() && checkMode(stat, options)\n}\n\nfunction checkMode (stat, options) {\n var mod = stat.mode\n var uid = stat.uid\n var gid = stat.gid\n\n var myUid = options.uid !== undefined ?\n options.uid : process.getuid && process.getuid()\n var myGid = options.gid !== undefined ?\n options.gid : process.getgid && process.getgid()\n\n var u = parseInt('100', 8)\n var g = parseInt('010', 8)\n var o = parseInt('001', 8)\n var ug = u | g\n\n var ret = (mod & o) ||\n (mod & g) && gid === myGid ||\n (mod & u) && uid === myUid ||\n (mod & ug) && myUid === 0\n\n return ret\n}\n","var fs = require('fs')\nvar core\nif (process.platform === 'win32' || global.TESTING_WINDOWS) {\n core = require('./windows.js')\n} else {\n core = require('./mode.js')\n}\n\nmodule.exports = isexe\nisexe.sync = sync\n\nfunction isexe (path, options, cb) {\n if (typeof options === 'function') {\n cb = options\n options = {}\n }\n\n if (!cb) {\n if (typeof Promise !== 'function') {\n throw new TypeError('callback not provided')\n }\n\n return new Promise(function (resolve, reject) {\n isexe(path, options || {}, function (er, is) {\n if (er) {\n reject(er)\n } else {\n resolve(is)\n }\n })\n })\n }\n\n core(path, options || {}, function (er, is) {\n // ignore EACCES because that just means we aren't allowed to run it\n if (er) {\n if (er.code === 'EACCES' || options && options.ignoreErrors) {\n er = null\n is = false\n }\n }\n cb(er, is)\n })\n}\n\nfunction sync (path, options) {\n // my kingdom for a filtered catch\n try {\n return core.sync(path, options || {})\n } catch (er) {\n if (options && options.ignoreErrors || er.code === 'EACCES') {\n return false\n } else {\n throw er\n }\n }\n}\n","const isWindows = process.platform === 'win32' ||\n process.env.OSTYPE === 'cygwin' ||\n process.env.OSTYPE === 'msys'\n\nconst path = require('path')\nconst COLON = isWindows ? ';' : ':'\nconst isexe = require('isexe')\n\nconst getNotFoundError = (cmd) =>\n Object.assign(new Error(`not found: ${cmd}`), { code: 'ENOENT' })\n\nconst getPathInfo = (cmd, opt) => {\n const colon = opt.colon || COLON\n\n // If it has a slash, then we don't bother searching the pathenv.\n // just check the file itself, and that's it.\n const pathEnv = cmd.match(/\\//) || isWindows && cmd.match(/\\\\/) ? ['']\n : (\n [\n // windows always checks the cwd first\n ...(isWindows ? [process.cwd()] : []),\n ...(opt.path || process.env.PATH ||\n /* istanbul ignore next: very unusual */ '').split(colon),\n ]\n )\n const pathExtExe = isWindows\n ? opt.pathExt || process.env.PATHEXT || '.EXE;.CMD;.BAT;.COM'\n : ''\n const pathExt = isWindows ? pathExtExe.split(colon) : ['']\n\n if (isWindows) {\n if (cmd.indexOf('.') !== -1 && pathExt[0] !== '')\n pathExt.unshift('')\n }\n\n return {\n pathEnv,\n pathExt,\n pathExtExe,\n }\n}\n\nconst which = (cmd, opt, cb) => {\n if (typeof opt === 'function') {\n cb = opt\n opt = {}\n }\n if (!opt)\n opt = {}\n\n const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt)\n const found = []\n\n const step = i => new Promise((resolve, reject) => {\n if (i === pathEnv.length)\n return opt.all && found.length ? resolve(found)\n : reject(getNotFoundError(cmd))\n\n const ppRaw = pathEnv[i]\n const pathPart = /^\".*\"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw\n\n const pCmd = path.join(pathPart, cmd)\n const p = !pathPart && /^\\.[\\\\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd\n : pCmd\n\n resolve(subStep(p, i, 0))\n })\n\n const subStep = (p, i, ii) => new Promise((resolve, reject) => {\n if (ii === pathExt.length)\n return resolve(step(i + 1))\n const ext = pathExt[ii]\n isexe(p + ext, { pathExt: pathExtExe }, (er, is) => {\n if (!er && is) {\n if (opt.all)\n found.push(p + ext)\n else\n return resolve(p + ext)\n }\n return resolve(subStep(p, i, ii + 1))\n })\n })\n\n return cb ? step(0).then(res => cb(null, res), cb) : step(0)\n}\n\nconst whichSync = (cmd, opt) => {\n opt = opt || {}\n\n const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt)\n const found = []\n\n for (let i = 0; i < pathEnv.length; i ++) {\n const ppRaw = pathEnv[i]\n const pathPart = /^\".*\"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw\n\n const pCmd = path.join(pathPart, cmd)\n const p = !pathPart && /^\\.[\\\\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd\n : pCmd\n\n for (let j = 0; j < pathExt.length; j ++) {\n const cur = p + pathExt[j]\n try {\n const is = isexe.sync(cur, { pathExt: pathExtExe })\n if (is) {\n if (opt.all)\n found.push(cur)\n else\n return cur\n }\n } catch (ex) {}\n }\n }\n\n if (opt.all && found.length)\n return found\n\n if (opt.nothrow)\n return null\n\n throw getNotFoundError(cmd)\n}\n\nmodule.exports = which\nwhich.sync = whichSync\n","'use strict';\n\nconst pathKey = (options = {}) => {\n\tconst environment = options.env || process.env;\n\tconst platform = options.platform || process.platform;\n\n\tif (platform !== 'win32') {\n\t\treturn 'PATH';\n\t}\n\n\treturn Object.keys(environment).reverse().find(key => key.toUpperCase() === 'PATH') || 'Path';\n};\n\nmodule.exports = pathKey;\n// TODO: Remove this for the next major release\nmodule.exports.default = pathKey;\n","'use strict';\n\nconst path = require('path');\nconst which = require('which');\nconst getPathKey = require('path-key');\n\nfunction resolveCommandAttempt(parsed, withoutPathExt) {\n const env = parsed.options.env || process.env;\n const cwd = process.cwd();\n const hasCustomCwd = parsed.options.cwd != null;\n // Worker threads do not have process.chdir()\n const shouldSwitchCwd = hasCustomCwd && process.chdir !== undefined && !process.chdir.disabled;\n\n // If a custom `cwd` was specified, we need to change the process cwd\n // because `which` will do stat calls but does not support a custom cwd\n if (shouldSwitchCwd) {\n try {\n process.chdir(parsed.options.cwd);\n } catch (err) {\n /* Empty */\n }\n }\n\n let resolved;\n\n try {\n resolved = which.sync(parsed.command, {\n path: env[getPathKey({ env })],\n pathExt: withoutPathExt ? path.delimiter : undefined,\n });\n } catch (e) {\n /* Empty */\n } finally {\n if (shouldSwitchCwd) {\n process.chdir(cwd);\n }\n }\n\n // If we successfully resolved, ensure that an absolute path is returned\n // Note that when a custom `cwd` was used, we need to resolve to an absolute path based on it\n if (resolved) {\n resolved = path.resolve(hasCustomCwd ? parsed.options.cwd : '', resolved);\n }\n\n return resolved;\n}\n\nfunction resolveCommand(parsed) {\n return resolveCommandAttempt(parsed) || resolveCommandAttempt(parsed, true);\n}\n\nmodule.exports = resolveCommand;\n","'use strict';\n\n// See http://www.robvanderwoude.com/escapechars.php\nconst metaCharsRegExp = /([()\\][%!^\"`<>&|;, *?])/g;\n\nfunction escapeCommand(arg) {\n // Escape meta chars\n arg = arg.replace(metaCharsRegExp, '^$1');\n\n return arg;\n}\n\nfunction escapeArgument(arg, doubleEscapeMetaChars) {\n // Convert to string\n arg = `${arg}`;\n\n // Algorithm below is based on https://qntm.org/cmd\n // It's slightly altered to disable JS backtracking to avoid hanging on specially crafted input\n // Please see https://github.com/moxystudio/node-cross-spawn/pull/160 for more information\n\n // Sequence of backslashes followed by a double quote:\n // double up all the backslashes and escape the double quote\n arg = arg.replace(/(?=(\\\\+?)?)\\1\"/g, '$1$1\\\\\"');\n\n // Sequence of backslashes followed by the end of the string\n // (which will become a double quote later):\n // double up all the backslashes\n arg = arg.replace(/(?=(\\\\+?)?)\\1$/, '$1$1');\n\n // All other backslashes occur literally\n\n // Quote the whole thing:\n arg = `\"${arg}\"`;\n\n // Escape meta chars\n arg = arg.replace(metaCharsRegExp, '^$1');\n\n // Double escape meta chars if necessary\n if (doubleEscapeMetaChars) {\n arg = arg.replace(metaCharsRegExp, '^$1');\n }\n\n return arg;\n}\n\nmodule.exports.command = escapeCommand;\nmodule.exports.argument = escapeArgument;\n","'use strict';\nmodule.exports = /^#!(.*)/;\n","'use strict';\nconst shebangRegex = require('shebang-regex');\n\nmodule.exports = (string = '') => {\n\tconst match = string.match(shebangRegex);\n\n\tif (!match) {\n\t\treturn null;\n\t}\n\n\tconst [path, argument] = match[0].replace(/#! ?/, '').split(' ');\n\tconst binary = path.split('/').pop();\n\n\tif (binary === 'env') {\n\t\treturn argument;\n\t}\n\n\treturn argument ? `${binary} ${argument}` : binary;\n};\n","'use strict';\n\nconst fs = require('fs');\nconst shebangCommand = require('shebang-command');\n\nfunction readShebang(command) {\n // Read the first 150 bytes from the file\n const size = 150;\n const buffer = Buffer.alloc(size);\n\n let fd;\n\n try {\n fd = fs.openSync(command, 'r');\n fs.readSync(fd, buffer, 0, size, 0);\n fs.closeSync(fd);\n } catch (e) { /* Empty */ }\n\n // Attempt to extract shebang (null is returned if not a shebang)\n return shebangCommand(buffer.toString());\n}\n\nmodule.exports = readShebang;\n","'use strict';\n\nconst path = require('path');\nconst resolveCommand = require('./util/resolveCommand');\nconst escape = require('./util/escape');\nconst readShebang = require('./util/readShebang');\n\nconst isWin = process.platform === 'win32';\nconst isExecutableRegExp = /\\.(?:com|exe)$/i;\nconst isCmdShimRegExp = /node_modules[\\\\/].bin[\\\\/][^\\\\/]+\\.cmd$/i;\n\nfunction detectShebang(parsed) {\n parsed.file = resolveCommand(parsed);\n\n const shebang = parsed.file && readShebang(parsed.file);\n\n if (shebang) {\n parsed.args.unshift(parsed.file);\n parsed.command = shebang;\n\n return resolveCommand(parsed);\n }\n\n return parsed.file;\n}\n\nfunction parseNonShell(parsed) {\n if (!isWin) {\n return parsed;\n }\n\n // Detect & add support for shebangs\n const commandFile = detectShebang(parsed);\n\n // We don't need a shell if the command filename is an executable\n const needsShell = !isExecutableRegExp.test(commandFile);\n\n // If a shell is required, use cmd.exe and take care of escaping everything correctly\n // Note that `forceShell` is an hidden option used only in tests\n if (parsed.options.forceShell || needsShell) {\n // Need to double escape meta chars if the command is a cmd-shim located in `node_modules/.bin/`\n // The cmd-shim simply calls execute the package bin file with NodeJS, proxying any argument\n // Because the escape of metachars with ^ gets interpreted when the cmd.exe is first called,\n // we need to double escape them\n const needsDoubleEscapeMetaChars = isCmdShimRegExp.test(commandFile);\n\n // Normalize posix paths into OS compatible paths (e.g.: foo/bar -> foo\\bar)\n // This is necessary otherwise it will always fail with ENOENT in those cases\n parsed.command = path.normalize(parsed.command);\n\n // Escape command & arguments\n parsed.command = escape.command(parsed.command);\n parsed.args = parsed.args.map((arg) => escape.argument(arg, needsDoubleEscapeMetaChars));\n\n const shellCommand = [parsed.command].concat(parsed.args).join(' ');\n\n parsed.args = ['/d', '/s', '/c', `\"${shellCommand}\"`];\n parsed.command = process.env.comspec || 'cmd.exe';\n parsed.options.windowsVerbatimArguments = true; // Tell node's spawn that the arguments are already escaped\n }\n\n return parsed;\n}\n\nfunction parse(command, args, options) {\n // Normalize arguments, similar to nodejs\n if (args && !Array.isArray(args)) {\n options = args;\n args = null;\n }\n\n args = args ? args.slice(0) : []; // Clone array to avoid changing the original\n options = Object.assign({}, options); // Clone object to avoid changing the original\n\n // Build our parsed object\n const parsed = {\n command,\n args,\n options,\n file: undefined,\n original: {\n command,\n args,\n },\n };\n\n // Delegate further parsing to shell or non-shell\n return options.shell ? parsed : parseNonShell(parsed);\n}\n\nmodule.exports = parse;\n","'use strict';\n\nconst isWin = process.platform === 'win32';\n\nfunction notFoundError(original, syscall) {\n return Object.assign(new Error(`${syscall} ${original.command} ENOENT`), {\n code: 'ENOENT',\n errno: 'ENOENT',\n syscall: `${syscall} ${original.command}`,\n path: original.command,\n spawnargs: original.args,\n });\n}\n\nfunction hookChildProcess(cp, parsed) {\n if (!isWin) {\n return;\n }\n\n const originalEmit = cp.emit;\n\n cp.emit = function (name, arg1) {\n // If emitting \"exit\" event and exit code is 1, we need to check if\n // the command exists and emit an \"error\" instead\n // See https://github.com/IndigoUnited/node-cross-spawn/issues/16\n if (name === 'exit') {\n const err = verifyENOENT(arg1, parsed);\n\n if (err) {\n return originalEmit.call(cp, 'error', err);\n }\n }\n\n return originalEmit.apply(cp, arguments); // eslint-disable-line prefer-rest-params\n };\n}\n\nfunction verifyENOENT(status, parsed) {\n if (isWin && status === 1 && !parsed.file) {\n return notFoundError(parsed.original, 'spawn');\n }\n\n return null;\n}\n\nfunction verifyENOENTSync(status, parsed) {\n if (isWin && status === 1 && !parsed.file) {\n return notFoundError(parsed.original, 'spawnSync');\n }\n\n return null;\n}\n\nmodule.exports = {\n hookChildProcess,\n verifyENOENT,\n verifyENOENTSync,\n notFoundError,\n};\n","'use strict';\n\nconst cp = require('child_process');\nconst parse = require('./lib/parse');\nconst enoent = require('./lib/enoent');\n\nfunction spawn(command, args, options) {\n // Parse the arguments\n const parsed = parse(command, args, options);\n\n // Spawn the child process\n const spawned = cp.spawn(parsed.command, parsed.args, parsed.options);\n\n // Hook into child process \"exit\" event to emit an error if the command\n // does not exists, see: https://github.com/IndigoUnited/node-cross-spawn/issues/16\n enoent.hookChildProcess(spawned, parsed);\n\n return spawned;\n}\n\nfunction spawnSync(command, args, options) {\n // Parse the arguments\n const parsed = parse(command, args, options);\n\n // Spawn the child process\n const result = cp.spawnSync(parsed.command, parsed.args, parsed.options);\n\n // Analyze if the command does not exist, see: https://github.com/IndigoUnited/node-cross-spawn/issues/16\n result.error = result.error || enoent.verifyENOENTSync(result.status, parsed);\n\n return result;\n}\n\nmodule.exports = spawn;\nmodule.exports.spawn = spawn;\nmodule.exports.sync = spawnSync;\n\nmodule.exports._parse = parse;\nmodule.exports._enoent = enoent;\n","/**\n * Matches characters from the start as long as they're not allowed.\n */\nexport const illegalStartCharactersRegExp = /^[^$_\\p{ID_Start}]+/u;\n\n/**\n * Matches string if it contains only digits and optionally decimal point or\n * leading minus sign.\n */\nexport const numberRegExp = /^-?\\d+(\\.\\d+)?$/;\n\nexport const reservedBrowserGlobalsRegExp =\n /^(document|history|location|navigator|window)$/g;\n\nexport const reservedJavaScriptGlobalsRegExp =\n /^(console|Array|Date|Error|Function|JSON|Map|Math|Object|Promise|RegExp|Set|WeakMap|WeakSet)$/g;\n\nexport const reservedJavaScriptKeywordsRegExp =\n /^(arguments|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|eval|export|extends|false|finally|for|from|function|if|implements|import|in|instanceof|interface|let|new|null|package|private|protected|public|return|static|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)$/g;\n\nexport const reservedNodeGlobalsRegExp = /^(global|process|Buffer)$/g;\n\nexport const reservedTypeScriptKeywordsRegExp =\n /^(any|as|bigint|boolean|namespace|never|null|number|string|symbol|type|undefined|unknown|void)$/g;\n\n/**\n * Javascript identifier regexp pattern retrieved from\n * {@link} https://developer.mozilla.org/docs/Web/JavaScript/Reference/Lexical_grammar#identifiers\n */\nexport const validTypescriptIdentifierRegExp =\n /^[$_\\p{ID_Start}][$\\u200c\\u200d\\p{ID_Continue}]*$/u;\n","import { EOL } from 'os';\n\nimport { validTypescriptIdentifierRegExp } from './regexp';\n\nexport const escapeName = (value: string): string => {\n if (value || value === '') {\n validTypescriptIdentifierRegExp.lastIndex = 0;\n const validName = validTypescriptIdentifierRegExp.test(value);\n if (!validName) {\n return `'${value}'`;\n }\n }\n return value;\n};\n\nexport const unescapeName = (value: string): string => {\n if (value && value.startsWith(\"'\") && value.endsWith(\"'\")) {\n return value.slice(1, value.length - 1);\n }\n return value;\n};\n\nexport const escapeComment = (value: string) =>\n value\n .replace(/\\*\\//g, '*')\n .replace(/\\/\\*/g, '*')\n .replace(/\\r?\\n(.*)/g, (_l, w) => EOL + w.trim());\n","import ts from 'typescript';\n\nimport { getConfig } from '../utils/config';\nimport { unescapeName } from '../utils/escape';\nimport { createStringLiteral } from './types';\n\nexport interface ImportExportItemObject {\n alias?: string;\n asType?: boolean;\n name: string;\n}\n\nconst printer = ts.createPrinter({\n newLine: ts.NewLineKind.LineFeed,\n removeComments: false,\n});\n\nexport const createSourceFile = (sourceText: string) =>\n ts.createSourceFile(\n '',\n sourceText,\n ts.ScriptTarget.ESNext,\n false,\n ts.ScriptKind.TS,\n );\n\nconst blankSourceFile = createSourceFile('');\n\nconst unescapeUnicode = (value: string) =>\n value.replace(/\\\\u([0-9a-fA-F]{4})/g, (_, hex: string) =>\n String.fromCharCode(Number.parseInt(hex, 16)),\n );\n\n/**\n * Print a TypeScript node to a string.\n * @param node the node to print\n * @returns string\n */\nexport function tsNodeToString({\n node,\n unescape = false,\n}: {\n node: ts.Node;\n unescape?: boolean;\n}): string {\n const result = printer.printNode(\n ts.EmitHint.Unspecified,\n node,\n blankSourceFile,\n );\n\n if (!unescape) {\n return result;\n }\n\n try {\n /**\n * TypeScript Compiler API escapes unicode characters by default and there\n * is no way to disable this behavior\n * {@link https://github.com/microsoft/TypeScript/issues/36174}\n */\n return unescapeUnicode(result);\n } catch {\n if (getConfig().logs.level === 'debug') {\n console.warn('Could not decode value:', result);\n }\n return result;\n }\n}\n\n/**\n * Convert a string to a TypeScript Node\n * @param value the string to convert.\n * @returns ts.Node\n */\nexport function stringToTsNodes(value: string): ts.Node {\n const file = createSourceFile(value);\n return file.statements[0]!;\n}\n\nexport const createIdentifier = ({ text }: { text: string }) => {\n const identifier = ts.factory.createIdentifier(text);\n return identifier;\n};\n\n/**\n * ots for @hey-api/openapi-ts are helpers to reduce repetition of basic TypeScript\n * factory functions.\n */\nexport const ots = {\n /**\n * Create a boolean expression based on value.\n */\n boolean: (value: boolean) =>\n value ? ts.factory.createTrue() : ts.factory.createFalse(),\n export: ({ alias, asType = false, name }: ImportExportItemObject) => {\n const nameNode = createIdentifier({ text: name });\n if (alias) {\n const aliasNode = createIdentifier({ text: alias });\n return ts.factory.createExportSpecifier(asType, nameNode, aliasNode);\n }\n return ts.factory.createExportSpecifier(asType, undefined, nameNode);\n },\n import: ({ alias, asType = false, name }: ImportExportItemObject) => {\n const nameNode = createIdentifier({ text: name });\n if (alias) {\n const aliasNode = createIdentifier({ text: alias });\n return ts.factory.createImportSpecifier(asType, nameNode, aliasNode);\n }\n return ts.factory.createImportSpecifier(asType, undefined, nameNode);\n },\n /**\n * Create a numeric expression, handling negative numbers.\n */\n number: (value: number) => {\n if (value < 0) {\n return ts.factory.createPrefixUnaryExpression(\n ts.SyntaxKind.MinusToken,\n ts.factory.createNumericLiteral(Math.abs(value)),\n );\n }\n return ts.factory.createNumericLiteral(value);\n },\n /**\n * Create a string literal. This handles strings that start with '`' or \"'\".\n */\n string: (value: string, unescape = false) => {\n let text = value;\n if (unescape) {\n text = unescapeName(text);\n }\n const hasBothQuotes = text.includes(\"'\") && text.includes('\"');\n const hasNewlines = text.includes('\\n');\n const hasUnescapedBackticks = text.startsWith('`');\n const isBacktickEscaped = text.startsWith('\\\\`') && text.endsWith('\\\\`');\n if (\n (hasNewlines || hasBothQuotes || hasUnescapedBackticks) &&\n !isBacktickEscaped\n ) {\n text = `\\`${text.replace(/(?<!\\\\)`/g, '\\\\`').replace(/\\${/g, '\\\\${')}\\``;\n }\n if (text.startsWith('`')) {\n return createIdentifier({ text });\n }\n return createStringLiteral({ text });\n },\n};\n\nexport const isTsNode = (node: any): node is ts.Expression =>\n node !== null &&\n typeof node === 'object' &&\n typeof node.kind === 'number' &&\n typeof node.flags === 'number' &&\n typeof node.pos === 'number' &&\n typeof node.end === 'number';\n\nexport const isType = <T>(value: T | undefined): value is T =>\n value !== undefined;\n\ntype CommentLines = Array<string | null | false | undefined>;\ntype CommentObject = {\n jsdoc?: boolean;\n lines: CommentLines;\n};\nexport type Comments = CommentLines | Array<CommentObject>;\n\nconst processCommentObject = ({\n commentObject,\n node,\n}: {\n commentObject: CommentObject;\n node: ts.Node;\n}) => {\n const lines = commentObject.lines.filter(\n (line) => Boolean(line) || line === '',\n ) as string[];\n if (!lines.length) {\n return;\n }\n\n if (!commentObject.jsdoc) {\n for (const line of lines) {\n ts.addSyntheticLeadingComment(\n node,\n ts.SyntaxKind.SingleLineCommentTrivia,\n ` ${line}`,\n true,\n );\n }\n return;\n }\n\n const jsdocTexts = lines.map((line, index) => {\n let text = line;\n if (index !== lines.length) {\n text = `${text}\\n`;\n }\n const jsdocText = ts.factory.createJSDocText(text);\n return jsdocText;\n });\n\n const jsdoc = ts.factory.createJSDocComment(\n ts.factory.createNodeArray(jsdocTexts),\n undefined,\n );\n\n const cleanedJsdoc = tsNodeToString({ node: jsdoc, unescape: true })\n .replace('/*', '')\n .replace('* */', '');\n\n ts.addSyntheticLeadingComment(\n node,\n ts.SyntaxKind.MultiLineCommentTrivia,\n cleanedJsdoc,\n true,\n );\n};\n\nexport const addLeadingComments = ({\n comments = [],\n node,\n}: {\n comments?: Comments;\n node: ts.Node;\n}) => {\n const isObjectStyle = Boolean(\n comments.find((comment) => typeof comment === 'object' && comment),\n );\n\n let commentObjects = comments as Array<CommentObject>;\n if (!isObjectStyle) {\n commentObjects = [\n {\n jsdoc: true,\n lines: comments as CommentLines,\n },\n ];\n }\n\n for (const commentObject of commentObjects) {\n processCommentObject({\n commentObject,\n node,\n });\n }\n};\n","import type { Config } from '../../../types/config';\nimport type { PluginClientNames } from '../../types';\n\nexport const clientId = 'client';\n\ntype Plugins = Required<Config>['plugins'];\n\nexport const getClientBaseUrlKey = (config: Config) => {\n const client = getClientPlugin(config);\n if (\n client.name === '@hey-api/client-axios' ||\n client.name === '@hey-api/client-nuxt'\n ) {\n return 'baseURL';\n }\n return 'baseUrl';\n};\n\nexport const getClientPlugin = (\n config: Config,\n): Required<Plugins>[PluginClientNames] => {\n for (const name of config.pluginOrder) {\n const plugin = config.plugins[name];\n if (plugin?._tags?.includes('client')) {\n return plugin as Required<Plugins>[PluginClientNames];\n }\n }\n\n return {\n // @ts-expect-error\n name: '',\n };\n};\n","import { getClientPlugin } from '../plugins/@hey-api/client-core/utils';\nimport type { Config } from '../types/config';\n\nlet _config: Config;\n\nexport const getConfig = () => {\n const config = _config;\n const plugin = getClientPlugin(config);\n // patch legacy config to avoid breaking handlebars\n // @ts-expect-error\n config.client = plugin;\n return config;\n};\n\nexport const setConfig = (config: Config) => {\n _config = config;\n return getConfig();\n};\n\nexport const isLegacyClient = (config: Config) => {\n const plugin = getClientPlugin(config);\n return plugin.name.startsWith('legacy/');\n};\n\n/**\n * Wrap legacy `name` option so we don't use it when not using legacy clients.\n */\nexport const legacyNameFromConfig = (config: Config) => {\n if (!isLegacyClient(config)) {\n return;\n }\n\n return config.name;\n};\n","import ts from 'typescript';\n\nimport { escapeName } from '../utils/escape';\nimport { validTypescriptIdentifierRegExp } from '../utils/regexp';\nimport {\n addLeadingComments,\n type Comments,\n createIdentifier,\n isTsNode,\n isType,\n ots,\n} from './utils';\n\nexport type AccessLevel = 'public' | 'protected' | 'private';\n\nexport type FunctionParameter =\n | {\n accessLevel?: AccessLevel;\n default?: any;\n isReadOnly?: boolean;\n isRequired?: boolean;\n name: string;\n type?: any | ts.TypeNode;\n }\n | {\n destructure: FunctionParameter[];\n };\n\nexport interface FunctionTypeParameter {\n default?: any;\n extends?: string | ts.TypeNode;\n name: string | ts.Identifier;\n}\n\nexport const createTypeNode = (\n base: any | ts.TypeNode,\n args?: (any | ts.TypeNode)[],\n): ts.TypeNode => {\n if (ts.isTypeNode(base)) {\n return base;\n }\n\n if (typeof base === 'number') {\n return ts.factory.createLiteralTypeNode(ots.number(base));\n }\n\n return createTypeReferenceNode({\n typeArguments: args?.map((arg) => createTypeNode(arg)),\n typeName: base,\n });\n};\n\nexport const createPropertyAccessChain = ({\n expression,\n name,\n}: {\n expression: ts.Expression;\n name: string | ts.MemberName;\n}) => {\n const node = ts.factory.createPropertyAccessChain(\n expression,\n ts.factory.createToken(ts.SyntaxKind.QuestionDotToken),\n name,\n );\n return node;\n};\n\nexport const createPropertyAccessExpression = ({\n expression,\n isOptional,\n name,\n}: {\n expression: string | ts.Expression;\n isOptional?: boolean;\n name: string | ts.MemberName;\n}):\n | ts.PropertyAccessChain\n | ts.PropertyAccessExpression\n | ts.ElementAccessExpression => {\n const nodeExpression =\n typeof expression === 'string'\n ? createIdentifier({ text: expression })\n : expression;\n\n if (isOptional) {\n return createPropertyAccessChain({\n expression: nodeExpression,\n name,\n });\n }\n\n if (typeof name === 'string') {\n validTypescriptIdentifierRegExp.lastIndex = 0;\n if (!validTypescriptIdentifierRegExp.test(name)) {\n // TODO: parser - this should escape name only for new parser\n if (!name.startsWith(\"'\") && !name.endsWith(\"'\")) {\n // eslint-disable-next-line no-useless-escape\n name = `\\'${name}\\'`;\n }\n const nodeName = createIdentifier({ text: name });\n return ts.factory.createElementAccessExpression(nodeExpression, nodeName);\n }\n }\n\n const nodeName =\n typeof name === 'string' ? createIdentifier({ text: name }) : name;\n\n return ts.factory.createPropertyAccessExpression(nodeExpression, nodeName);\n};\n\nexport const createNull = (): ts.NullLiteral => ts.factory.createNull();\n\n/**\n * Convert an unknown value to an expression.\n * @param identifiers - list of keys that are treated as identifiers.\n * @param shorthand - if shorthand syntax is allowed.\n * @param unescape - if string should be unescaped.\n * @param value - the unknown value.\n * @returns ts.Expression\n */\nexport const toExpression = <T = unknown>({\n identifiers = [],\n isValueAccess,\n shorthand,\n unescape,\n value,\n}: {\n identifiers?: string[];\n isValueAccess?: boolean;\n shorthand?: boolean;\n unescape?: boolean;\n value: T;\n}): ts.Expression | undefined => {\n if (value === null) {\n return createNull();\n }\n\n if (Array.isArray(value)) {\n return createArrayLiteralExpression({ elements: value });\n }\n\n if (typeof value === 'object') {\n return createObjectType({\n identifiers,\n obj: value,\n shorthand,\n });\n }\n\n if (typeof value === 'number') {\n return ots.number(value);\n }\n\n if (typeof value === 'boolean') {\n return ots.boolean(value);\n }\n\n if (typeof value === 'string') {\n if (isValueAccess) {\n // TODO; handle more than single nested level, i.e. foo.bar.baz\n const parts = value.split('.');\n return createPropertyAccessExpression({\n expression: parts[0]!,\n name: parts[1]!,\n });\n }\n return ots.string(value, unescape);\n }\n};\n\n/**\n * Convert AccessLevel to proper TypeScript compiler API modifier.\n * @param access - the access level.\n * @returns ts.ModifierLike[]\n */\nexport const toAccessLevelModifiers = (\n access?: AccessLevel,\n): ts.ModifierLike[] => {\n const keyword =\n access === 'public'\n ? ts.SyntaxKind.PublicKeyword\n : access === 'protected'\n ? ts.SyntaxKind.ProtectedKeyword\n : access === 'private'\n ? ts.SyntaxKind.PrivateKeyword\n : undefined;\n const modifiers: ts.ModifierLike[] = [];\n if (keyword) {\n modifiers.push(ts.factory.createModifier(keyword));\n }\n return modifiers;\n};\n\n/**\n * Convert parameters to the declaration array expected by compiler API.\n * @param parameters - the parameters to convert to declarations\n * @returns ts.ParameterDeclaration[]\n */\nexport const toParameterDeclarations = (parameters: FunctionParameter[]) =>\n parameters.map((parameter) => {\n if ('destructure' in parameter) {\n return createParameterDeclaration({\n name: ts.factory.createObjectBindingPattern(\n parameter.destructure\n .map((param) => {\n // TODO: add support for nested destructuring, not needed at the moment\n if ('destructure' in param) {\n return;\n }\n\n const result = ts.factory.createBindingElement(\n undefined,\n undefined,\n createIdentifier({ text: param.name }),\n undefined,\n );\n return result;\n })\n .filter(Boolean) as ts.BindingElement[],\n ),\n });\n }\n\n let modifiers = toAccessLevelModifiers(parameter.accessLevel);\n\n if (parameter.isReadOnly) {\n modifiers = [\n ...modifiers,\n ts.factory.createModifier(ts.SyntaxKind.ReadonlyKeyword),\n ];\n }\n\n return createParameterDeclaration({\n initializer:\n parameter.default !== undefined\n ? toExpression({ value: parameter.default })\n : undefined,\n modifiers,\n name: createIdentifier({ text: parameter.name }),\n required: parameter.isRequired !== false,\n type:\n parameter.type !== undefined\n ? createTypeNode(parameter.type)\n : undefined,\n });\n });\n\nexport const createKeywordTypeNode = ({\n keyword,\n}: {\n keyword:\n | 'any'\n | 'boolean'\n | 'never'\n | 'number'\n | 'string'\n | 'undefined'\n | 'unknown'\n | 'void';\n}) => {\n let kind: ts.KeywordTypeSyntaxKind = ts.SyntaxKind.AnyKeyword;\n switch (keyword) {\n case 'boolean':\n kind = ts.SyntaxKind.BooleanKeyword;\n break;\n case 'never':\n kind = ts.SyntaxKind.NeverKeyword;\n break;\n case 'number':\n kind = ts.SyntaxKind.NumberKeyword;\n break;\n case 'string':\n kind = ts.SyntaxKind.StringKeyword;\n break;\n case 'undefined':\n kind = ts.SyntaxKind.UndefinedKeyword;\n break;\n case 'unknown':\n kind = ts.SyntaxKind.UnknownKeyword;\n break;\n case 'void':\n kind = ts.SyntaxKind.VoidKeyword;\n break;\n }\n return ts.factory.createKeywordTypeNode(kind);\n};\n\nexport const toTypeParameters = (\n types: (FunctionTypeParameter | ts.TypeParameterDeclaration)[],\n) =>\n types.map((node) => {\n // @ts-expect-error\n if (ts.isTypeParameterDeclaration(node)) {\n return node;\n }\n\n return createTypeParameterDeclaration({\n // TODO: support other extends values\n constraint: node.extends\n ? typeof node.extends === 'string'\n ? createKeywordTypeNode({ keyword: 'boolean' })\n : node.extends\n : undefined,\n // TODO: support other default types\n defaultType:\n node.default !== undefined\n ? isTsNode(node.default)\n ? (node.default as unknown as ts.TypeNode)\n : ts.factory.createLiteralTypeNode(\n node.default\n ? ts.factory.createTrue()\n : ts.factory.createFalse(),\n )\n : undefined,\n name: node.name,\n });\n });\n\nexport const createTypeOperatorNode = ({\n operator,\n type,\n}: {\n operator: 'keyof' | 'readonly' | 'unique';\n type: ts.TypeNode;\n}) => {\n const operatorKeyword =\n operator === 'keyof'\n ? ts.SyntaxKind.KeyOfKeyword\n : operator === 'readonly'\n ? ts.SyntaxKind.ReadonlyKeyword\n : ts.SyntaxKind.UniqueKeyword;\n return ts.factory.createTypeOperatorNode(operatorKeyword, type);\n};\n\nexport const createTypeParameterDeclaration = ({\n constraint,\n defaultType,\n modifiers,\n name,\n}: {\n constraint?: ts.TypeNode;\n defaultType?: ts.TypeNode;\n modifiers?: Array<ts.Modifier>;\n name: string | ts.Identifier;\n}) =>\n ts.factory.createTypeParameterDeclaration(\n modifiers,\n name,\n constraint,\n defaultType,\n );\n\nexport const createMappedTypeNode = ({\n members,\n nameType,\n questionToken,\n readonlyToken,\n type,\n typeParameter,\n}: {\n members?: ts.NodeArray<ts.TypeElement>;\n nameType?: ts.TypeNode;\n questionToken?: ts.QuestionToken | ts.PlusToken | ts.MinusToken;\n readonlyToken?: ts.ReadonlyKeyword | ts.PlusToken | ts.MinusToken;\n type?: ts.TypeNode;\n typeParameter: ts.TypeParameterDeclaration;\n}) =>\n ts.factory.createMappedTypeNode(\n readonlyToken,\n typeParameter,\n nameType,\n questionToken,\n type,\n members,\n );\n\nexport const createLiteralTypeNode = ({\n literal,\n}: {\n literal: ts.LiteralTypeNode['literal'];\n}) => {\n const node = ts.factory.createLiteralTypeNode(literal);\n return node;\n};\n\n/**\n * Create arrow function type expression.\n */\nexport const createArrowFunction = ({\n async,\n comment,\n multiLine,\n parameters = [],\n returnType,\n statements = [],\n types = [],\n}: {\n async?: boolean;\n comment?: Comments;\n multiLine?: boolean;\n parameters?: FunctionParameter[];\n returnType?: string | ts.TypeNode;\n statements?: ts.Statement[] | ts.Expression;\n types?: FunctionTypeParameter[];\n}) => {\n const expression = ts.factory.createArrowFunction(\n async ? [ts.factory.createModifier(ts.SyntaxKind.AsyncKeyword)] : undefined,\n types ? toTypeParameters(types) : undefined,\n toParameterDeclarations(parameters),\n returnType ? createTypeNode(returnType) : undefined,\n undefined,\n Array.isArray(statements)\n ? createBlock({ multiLine, statements })\n : statements,\n );\n\n addLeadingComments({\n comments: comment,\n node: expression,\n });\n\n return expression;\n};\n\n/**\n * Create anonymous function type expression.\n */\nexport const createAnonymousFunction = ({\n async,\n comment,\n multiLine,\n parameters = [],\n returnType,\n statements = [],\n types = [],\n}: {\n async?: boolean;\n comment?: Comments;\n multiLine?: boolean;\n parameters?: FunctionParameter[];\n returnType?: string | ts.TypeNode;\n statements?: ts.Statement[];\n types?: FunctionTypeParameter[];\n}) => {\n const expression = ts.factory.createFunctionExpression(\n async ? [ts.factory.createModifier(ts.SyntaxKind.AsyncKeyword)] : undefined,\n undefined,\n undefined,\n types ? toTypeParameters(types) : undefined,\n toParameterDeclarations(parameters),\n returnType ? createTypeNode(returnType) : undefined,\n createBlock({ multiLine, statements }),\n );\n\n addLeadingComments({\n comments: comment,\n node: expression,\n });\n\n return expression;\n};\n\n/**\n * Create Array type expression.\n */\nexport const createArrayLiteralExpression = <T>({\n elements,\n multiLine = false,\n}: {\n /**\n * The array to create.\n */\n elements: T[];\n /**\n * Should the array be multi line?\n *\n * @default false\n */\n multiLine?: boolean;\n}): ts.ArrayLiteralExpression => {\n const expression = ts.factory.createArrayLiteralExpression(\n elements\n .map((value) => (isTsNode(value) ? value : toExpression({ value })))\n .filter(isType<ts.Expression>),\n // multiline if array contains objects\n multiLine ||\n (!Array.isArray(elements[0]) && typeof elements[0] === 'object'),\n );\n return expression;\n};\n\nexport const createAwaitExpression = ({\n expression,\n}: {\n expression: ts.Expression;\n}) => ts.factory.createAwaitExpression(expression);\n\nexport const createFunctionTypeNode = ({\n parameters = [],\n returnType,\n typeParameters,\n}: {\n parameters?: ts.ParameterDeclaration[];\n returnType: ts.TypeNode;\n typeParameters?: ts.TypeParameterDeclaration[];\n}) => {\n const node = ts.factory.createFunctionTypeNode(\n typeParameters,\n parameters,\n returnType,\n );\n return node;\n};\n\nexport type ObjectValue =\n | {\n assertion?: 'any' | ts.TypeNode;\n comments?: Comments;\n spread: string;\n }\n | {\n comments?: Comments;\n isValueAccess?: boolean;\n key: string;\n shorthand?: boolean;\n value: any;\n };\n\ntype ObjectAssignment =\n | ts.PropertyAssignment\n | ts.ShorthandPropertyAssignment\n | ts.SpreadAssignment;\n\n/**\n * Create Object type expression.\n * @param comments - comments to add to each property.\n * @param identifier - keys that should be treated as identifiers.\n * @param multiLine - if the object should be multiline.\n * @param obj - the object to create expression with.\n * @param shorthand - if shorthand syntax should be used.\n * @param unescape - if properties strings should be unescaped.\n * @returns ts.ObjectLiteralExpression\n */\nexport const createObjectType = <\n T extends Record<string, any> | Array<ObjectValue>,\n>({\n comments,\n identifiers = [],\n multiLine = true,\n obj,\n shorthand,\n unescape = false,\n}: {\n comments?: Comments;\n identifiers?: string[];\n multiLine?: boolean;\n obj: T;\n shorthand?: boolean;\n unescape?: boolean;\n}): ts.ObjectLiteralExpression => {\n const properties = Array.isArray(obj)\n ? obj\n .map((value: ObjectValue) => {\n // Check key value equality before possibly modifying it\n let canShorthand = false;\n if ('key' in value) {\n const { key } = value;\n canShorthand = key === value.value;\n const firstDigitAndNonDigits =\n key.match(/^[0-9]/) && key.match(/\\D+/g);\n if (\n (firstDigitAndNonDigits || key.match(/\\W/g) || key === '') &&\n !key.startsWith(\"'\") &&\n !key.endsWith(\"'\")\n ) {\n value.key = `'${key}'`;\n }\n }\n let assignment: ObjectAssignment;\n if ('spread' in value) {\n const nameIdentifier = isTsNode(value.spread)\n ? value.spread\n : createIdentifier({ text: value.spread });\n assignment = ts.factory.createSpreadAssignment(\n value.assertion\n ? createAsExpression({\n expression: nameIdentifier,\n type:\n typeof value.assertion === 'string'\n ? createKeywordTypeNode({ keyword: value.assertion })\n : value.assertion,\n })\n : nameIdentifier,\n );\n } else if (value.shorthand || (shorthand && canShorthand)) {\n assignment = ts.factory.createShorthandPropertyAssignment(\n value.value,\n );\n } else {\n let initializer: ts.Expression | undefined = isTsNode(value.value)\n ? value.value\n : Array.isArray(value.value)\n ? createObjectType({\n multiLine,\n obj: value.value,\n shorthand,\n unescape,\n })\n : toExpression({\n identifiers: identifiers.includes(value.key)\n ? Object.keys(value.value)\n : [],\n isValueAccess: value.isValueAccess,\n shorthand,\n unescape,\n value: value.value,\n });\n if (!initializer) {\n return undefined;\n }\n // Create a identifier if the current key is one and it is not an object\n if (\n identifiers.includes(value.key) &&\n !ts.isObjectLiteralExpression(initializer)\n ) {\n initializer = createIdentifier({ text: value.value as string });\n }\n assignment = createPropertyAssignment({\n initializer,\n name: value.key,\n });\n }\n\n addLeadingComments({\n comments: value.comments,\n node: assignment,\n });\n\n return assignment;\n })\n .filter(isType<ObjectAssignment>)\n : Object.entries(obj)\n .map(([key, value]) => {\n // Pass all object properties as identifiers if the whole object is an identifier\n let initializer: ts.Expression | undefined = toExpression({\n identifiers: identifiers.includes(key) ? Object.keys(value) : [],\n shorthand,\n unescape,\n value,\n });\n if (!initializer) {\n return undefined;\n }\n // Create a identifier if the current key is one and it is not an object\n if (\n identifiers.includes(key) &&\n !ts.isObjectLiteralExpression(initializer)\n ) {\n initializer = createIdentifier({ text: value as string });\n }\n // Check key value equality before possibly modifying it\n const canShorthand = key === value;\n if (\n key.match(/^[0-9]/) &&\n key.match(/\\D+/g) &&\n !key.startsWith(\"'\") &&\n !key.endsWith(\"'\")\n ) {\n key = `'${key}'`;\n }\n if (key.match(/\\W/g) && !key.startsWith(\"'\") && !key.endsWith(\"'\")) {\n key = `'${key}'`;\n }\n const assignment =\n shorthand && canShorthand\n ? ts.factory.createShorthandPropertyAssignment(value)\n : createPropertyAssignment({ initializer, name: key });\n\n return assignment;\n })\n .filter(isType<ObjectAssignment>);\n\n const node = ts.factory.createObjectLiteralExpression(\n properties as any[],\n multiLine,\n );\n\n addLeadingComments({\n comments,\n node,\n });\n\n return node;\n};\n\n/**\n * Create enum declaration. Example `export enum T = { X, Y };`\n * @param comments - comments to add to each property.\n * @param leadingComment - leading comment to add to enum.\n * @param name - the name of the enum.\n * @param obj - the object representing the enum.\n * @returns ts.EnumDeclaration\n */\nexport const createEnumDeclaration = <\n T extends Record<string, any> | Array<ObjectValue>,\n>({\n comments: enumMemberComments = {},\n leadingComment: comments,\n name,\n obj,\n}: {\n comments?: Record<string | number, Comments>;\n leadingComment?: Comments;\n name: string;\n obj: T;\n}): ts.EnumDeclaration => {\n const members: Array<ts.EnumMember> = Array.isArray(obj)\n ? obj.map((value) => {\n const enumMember = createEnumMember({\n initializer: toExpression({\n value: value.value,\n }),\n name: value.key,\n });\n\n addLeadingComments({\n comments: value.comments,\n node: enumMember,\n });\n\n return enumMember;\n })\n : // TODO: parser - deprecate object syntax\n Object.entries(obj).map(([key, value]) => {\n const enumMember = ts.factory.createEnumMember(\n key,\n toExpression({\n unescape: true,\n value,\n }),\n );\n\n addLeadingComments({\n comments: enumMemberComments[key],\n node: enumMember,\n });\n\n return enumMember;\n });\n\n const node = ts.factory.createEnumDeclaration(\n [ts.factory.createModifier(ts.SyntaxKind.ExportKeyword)],\n createIdentifier({ text: name }),\n members,\n );\n\n addLeadingComments({\n comments,\n node,\n });\n\n return node;\n};\n\nconst createEnumMember = ({\n initializer,\n name,\n}: {\n initializer?: ts.Expression;\n name: string | ts.PropertyName;\n}) => {\n let key = name;\n if (typeof key === 'string') {\n if (key.startsWith(\"'\") && key.endsWith(\"'\")) {\n key = createStringLiteral({\n isSingleQuote: false,\n text: key,\n });\n } else {\n key = escapeName(key);\n }\n }\n return ts.factory.createEnumMember(key, initializer);\n};\n\n/**\n * Create namespace declaration. Example `export namespace MyNamespace { ... }`\n * @param name - the name of the namespace.\n * @param nodes - the nodes in the namespace.\n * @returns\n */\nexport const createNamespaceDeclaration = ({\n name,\n statements,\n}: {\n name: string;\n statements: Array<ts.Statement>;\n}) =>\n ts.factory.createModuleDeclaration(\n [ts.factory.createModifier(ts.SyntaxKind.ExportKeyword)],\n createIdentifier({ text: name }),\n ts.factory.createModuleBlock(statements),\n ts.NodeFlags.Namespace,\n );\n\nexport const createIndexedAccessTypeNode = ({\n indexType,\n objectType,\n}: {\n indexType: ts.TypeNode;\n objectType: ts.TypeNode;\n}) => {\n const node = ts.factory.createIndexedAccessTypeNode(objectType, indexType);\n return node;\n};\n\nexport const createStringLiteral = ({\n isSingleQuote,\n text,\n}: {\n isSingleQuote?: boolean;\n text: string;\n}) => {\n if (isSingleQuote === undefined) {\n isSingleQuote = !text.includes(\"'\");\n }\n const node = ts.factory.createStringLiteral(text, isSingleQuote);\n return node;\n};\n\nexport const createConditionalExpression = ({\n condition,\n whenFalse,\n whenTrue,\n}: {\n condition: ts.Expression;\n whenFalse: ts.Expression;\n whenTrue: ts.Expression;\n}) => {\n const expression = ts.factory.createConditionalExpression(\n condition,\n ts.factory.createToken(ts.SyntaxKind.QuestionToken),\n whenTrue,\n ts.factory.createToken(ts.SyntaxKind.ColonToken),\n whenFalse,\n );\n return expression;\n};\n\nexport const createTypeOfExpression = ({ text }: { text: string }) => {\n const expression = ts.factory.createTypeOfExpression(\n createIdentifier({ text }),\n );\n return expression;\n};\n\n/**\n * Create a type alias declaration. Example `export type X = Y;`.\n * @param comment (optional) comments to add\n * @param name the name of the type\n * @param type the type\n * @returns ts.TypeAliasDeclaration\n */\nexport const createTypeAliasDeclaration = ({\n comment,\n exportType,\n name,\n type,\n typeParameters = [],\n}: {\n comment?: Comments;\n exportType?: boolean;\n name: string;\n type: string | ts.TypeNode;\n typeParameters?: FunctionTypeParameter[];\n}): ts.TypeAliasDeclaration => {\n const node = ts.factory.createTypeAliasDeclaration(\n exportType\n ? [ts.factory.createModifier(ts.SyntaxKind.ExportKeyword)]\n : undefined,\n createIdentifier({ text: name }),\n toTypeParameters(typeParameters),\n createTypeNode(type),\n );\n\n addLeadingComments({\n comments: comment,\n node,\n });\n\n return node;\n};\n\nexport const createTypeReferenceNode = ({\n typeArguments,\n typeName,\n}: {\n typeArguments?: ts.TypeNode[];\n typeName: string | ts.EntityName;\n}) => {\n const node = ts.factory.createTypeReferenceNode(typeName, typeArguments);\n return node;\n};\n\nexport const createTypeParenthesizedNode = ({\n type,\n}: {\n type: ts.TypeNode;\n}) => {\n const node = ts.factory.createParenthesizedType(type);\n return node;\n};\n\nexport const createParameterDeclaration = ({\n initializer,\n modifiers,\n name,\n required = true,\n type,\n}: {\n initializer?: ts.Expression;\n modifiers?: ts.ModifierLike[];\n name: string | ts.BindingName;\n required?: boolean;\n type?: ts.TypeNode;\n}) => {\n const node = ts.factory.createParameterDeclaration(\n modifiers,\n undefined,\n name,\n required ? undefined : ts.factory.createToken(ts.SyntaxKind.QuestionToken),\n type,\n initializer,\n );\n return node;\n};\n\nexport const createNewExpression = ({\n argumentsArray,\n expression,\n typeArguments,\n}: {\n argumentsArray?: Array<ts.Expression>;\n expression: ts.Expression;\n typeArguments?: Array<ts.TypeNode>;\n}) => {\n const node = ts.factory.createNewExpression(\n expression,\n typeArguments,\n argumentsArray,\n );\n return node;\n};\n\nexport const createForOfStatement = ({\n awaitModifier,\n expression,\n initializer,\n statement,\n}: {\n // TODO: parser - simplify this to be await?: boolean\n awaitModifier?: ts.AwaitKeyword;\n expression: ts.Expression;\n initializer: ts.ForInitializer;\n statement: ts.Statement;\n}) => {\n const node = ts.factory.createForOfStatement(\n awaitModifier,\n initializer,\n expression,\n statement,\n );\n return node;\n};\n\nexport const createAssignment = ({\n left,\n right,\n}: {\n left: ts.Expression;\n right: ts.Expression;\n}) => ts.factory.createAssignment(left, right);\n\nexport const createBlock = ({\n multiLine = true,\n statements,\n}: {\n multiLine?: boolean;\n statements: Array<ts.Statement>;\n}) => ts.factory.createBlock(statements, multiLine);\n\nexport const createPropertyAssignment = ({\n initializer,\n name,\n}: {\n initializer: ts.Expression;\n name: string | ts.PropertyName;\n}) => ts.factory.createPropertyAssignment(name, initializer);\n\nexport const createRegularExpressionLiteral = ({\n flags = [],\n text,\n}: {\n flags?: ReadonlyArray<'g' | 'i' | 'm' | 's' | 'u' | 'y'>;\n text: string;\n}) => ts.factory.createRegularExpressionLiteral(`/${text}/${flags.join('')}`);\n\nexport const createAsExpression = ({\n expression,\n type,\n}: {\n expression: ts.Expression;\n type: ts.TypeNode;\n}) => ts.factory.createAsExpression(expression, type);\n\nexport const createTemplateLiteralType = ({\n value,\n}: {\n value: ReadonlyArray<string | ts.TypeNode>;\n}) => {\n const spans: Array<ts.TemplateLiteralTypeSpan> = [];\n let spanText = '';\n\n for (const item of value.slice(0).reverse()) {\n if (typeof item === 'string') {\n spanText = `${item}${spanText}`;\n } else {\n const literal = spans.length\n ? ts.factory.createTemplateMiddle(spanText)\n : ts.factory.createTemplateTail(spanText);\n const span = ts.factory.createTemplateLiteralTypeSpan(item, literal);\n spans.push(span);\n spanText = '';\n }\n }\n\n const templateLiteralType = ts.factory.createTemplateLiteralType(\n ts.factory.createTemplateHead(spanText),\n spans.reverse(),\n );\n return templateLiteralType;\n};\n","import ts from 'typescript';\n\nimport { createAsExpression, createTypeReferenceNode } from './types';\nimport {\n addLeadingComments,\n type Comments,\n createIdentifier,\n type ImportExportItemObject,\n ots,\n} from './utils';\n\n/**\n * Create export all declaration. Example: `export * from './y'`.\n * @param module - module containing exports\n * @returns ts.ExportDeclaration\n */\nexport const createExportAllDeclaration = ({\n module,\n}: {\n module: string;\n}): ts.ExportDeclaration => {\n const statement = ts.factory.createExportDeclaration(\n undefined,\n false,\n undefined,\n ots.string(module),\n );\n return statement;\n};\n\nexport type ImportExportItem = ImportExportItemObject | string;\n\nexport const createCallExpression = ({\n functionName,\n parameters = [],\n types,\n}: {\n functionName:\n | string\n | ts.PropertyAccessExpression\n | ts.PropertyAccessChain\n | ts.ElementAccessExpression\n | ts.Expression;\n parameters?: Array<string | ts.Expression | undefined>;\n types?: ReadonlyArray<ts.TypeNode>;\n}) => {\n const expression =\n typeof functionName === 'string'\n ? createIdentifier({ text: functionName })\n : functionName;\n const argumentsArray = parameters\n .filter((parameter) => parameter !== undefined)\n .map((parameter) =>\n typeof parameter === 'string'\n ? createIdentifier({ text: parameter })\n : parameter,\n );\n const callExpression = ts.factory.createCallExpression(\n expression,\n types,\n argumentsArray,\n );\n return callExpression;\n};\n\n/**\n * Create a named export declaration. Example: `export { X } from './y'`.\n * @param exports - named imports to export\n * @param module - module containing exports\n * @returns ts.ExportDeclaration\n */\nexport const createNamedExportDeclarations = ({\n exports,\n module,\n}: {\n exports: Array<ImportExportItem> | ImportExportItem;\n module: string;\n}): ts.ExportDeclaration => {\n const exportedTypes = Array.isArray(exports) ? exports : [exports];\n const hasNonTypeExport = exportedTypes.some(\n (item) => typeof item !== 'object' || !item.asType,\n );\n const elements = exportedTypes.map((name) => {\n const item = typeof name === 'string' ? { name } : name;\n return ots.export({\n alias: item.alias,\n asType: hasNonTypeExport && item.asType,\n name: item.name,\n });\n });\n const exportClause = ts.factory.createNamedExports(elements);\n const moduleSpecifier = ots.string(module);\n const statement = ts.factory.createExportDeclaration(\n undefined,\n !hasNonTypeExport,\n exportClause,\n moduleSpecifier,\n );\n return statement;\n};\n\n/**\n * Create a const variable. Optionally, it can use const assertion or export\n * statement. Example: `export x = {} as const`.\n * @param assertion use const assertion?\n * @param exportConst export created variable?\n * @param expression expression for the variable.\n * @param name name of the variable.\n * @returns ts.VariableStatement\n */\nexport const createConstVariable = ({\n assertion,\n comment,\n destructure,\n exportConst,\n expression,\n name,\n typeName,\n}: {\n assertion?: 'const' | ts.TypeNode;\n comment?: Comments;\n destructure?: boolean;\n exportConst?: boolean;\n expression: ts.Expression;\n name: string;\n // TODO: support a more intuitive definition of generics for example\n typeName?: string | ts.IndexedAccessTypeNode | ts.TypeNode;\n}): ts.VariableStatement => {\n const initializer = assertion\n ? createAsExpression({\n expression,\n type:\n typeof assertion === 'string'\n ? createTypeReferenceNode({ typeName: assertion })\n : assertion,\n })\n : expression;\n const nameIdentifier = createIdentifier({ text: name });\n const declaration = ts.factory.createVariableDeclaration(\n destructure\n ? ts.factory.createObjectBindingPattern([\n ts.factory.createBindingElement(\n undefined,\n undefined,\n nameIdentifier,\n undefined,\n ),\n ])\n : nameIdentifier,\n undefined,\n typeName\n ? typeof typeName === 'string'\n ? createTypeReferenceNode({ typeName })\n : typeName\n : undefined,\n initializer,\n );\n const statement = ts.factory.createVariableStatement(\n exportConst\n ? [ts.factory.createModifier(ts.SyntaxKind.ExportKeyword)]\n : undefined,\n ts.factory.createVariableDeclarationList([declaration], ts.NodeFlags.Const),\n );\n\n addLeadingComments({\n comments: comment,\n node: statement,\n });\n\n return statement;\n};\n\n/**\n * Create a named import declaration. Example: `import { X } from './y'`.\n * @param imports - named exports to import\n * @param module - module containing imports\n * @returns ts.ImportDeclaration\n */\nexport const createNamedImportDeclarations = ({\n imports,\n module,\n}: {\n imports: Array<ImportExportItem> | ImportExportItem;\n module: string;\n}): ts.ImportDeclaration => {\n const importedTypes = Array.isArray(imports) ? imports : [imports];\n const hasNonTypeImport = importedTypes.some(\n (item) => typeof item !== 'object' || !item.asType,\n );\n const elements = importedTypes.map((name) => {\n const item = typeof name === 'string' ? { name } : name;\n return ots.import({\n alias: item.alias,\n asType: hasNonTypeImport && item.asType,\n name: item.name,\n });\n });\n const namedBindings = ts.factory.createNamedImports(elements);\n const importClause = ts.factory.createImportClause(\n !hasNonTypeImport,\n undefined,\n namedBindings,\n );\n const moduleSpecifier = ots.string(module);\n const statement = ts.factory.createImportDeclaration(\n undefined,\n importClause,\n moduleSpecifier,\n );\n return statement;\n};\n","import ts from 'typescript';\n\nimport { createCallExpression } from './module';\nimport {\n type AccessLevel,\n createBlock,\n createTypeNode,\n type FunctionParameter,\n type FunctionTypeParameter,\n toAccessLevelModifiers,\n toExpression,\n toParameterDeclarations,\n toTypeParameters,\n} from './types';\nimport type { Comments } from './utils';\nimport { addLeadingComments, createIdentifier, isType } from './utils';\n\n/**\n * Create a class constructor declaration.\n * @param accessLevel - the access level of the constructor.\n * @param comment - comment to add to function.\n * @param multiLine - if it should be multi line.\n * @param parameters - parameters for the constructor.\n * @param statements - statements to put in the constructor body.\n * @returns ts.ConstructorDeclaration\n */\nexport const createConstructorDeclaration = ({\n accessLevel,\n comment,\n multiLine = true,\n parameters = [],\n statements = [],\n}: {\n accessLevel?: AccessLevel;\n comment?: Comments;\n multiLine?: boolean;\n parameters?: FunctionParameter[];\n statements?: ts.Statement[];\n}) => {\n const node = ts.factory.createConstructorDeclaration(\n toAccessLevelModifiers(accessLevel),\n toParameterDeclarations(parameters),\n createBlock({ multiLine, statements }),\n );\n\n addLeadingComments({\n comments: comment,\n node,\n });\n\n return node;\n};\n\n/**\n * Create a class method declaration.\n * @param accessLevel - the access level of the method.\n * @param comment - comment to add to function.\n * @param isStatic - if the function is static.\n * @param multiLine - if it should be multi line.\n * @param name - name of the method.\n * @param parameters - parameters for the method.\n * @param returnType - the return type of the method.\n * @param statements - statements to put in the constructor body.\n * @returns ts.MethodDeclaration\n */\nexport const createMethodDeclaration = ({\n accessLevel,\n comment,\n isStatic = false,\n multiLine = true,\n name,\n parameters = [],\n returnType,\n statements = [],\n types = [],\n}: {\n accessLevel?: AccessLevel;\n comment?: Comments;\n isStatic?: boolean;\n multiLine?: boolean;\n name: string;\n parameters?: FunctionParameter[];\n returnType?: string | ts.TypeNode;\n statements?: ts.Statement[];\n types?: FunctionTypeParameter[];\n}) => {\n let modifiers = toAccessLevelModifiers(accessLevel);\n\n if (isStatic) {\n modifiers = [\n ...modifiers,\n ts.factory.createModifier(ts.SyntaxKind.StaticKeyword),\n ];\n }\n\n const node = ts.factory.createMethodDeclaration(\n modifiers,\n undefined,\n createIdentifier({ text: name }),\n undefined,\n types ? toTypeParameters(types) : undefined,\n toParameterDeclarations(parameters),\n returnType ? createTypeNode(returnType) : undefined,\n createBlock({ multiLine, statements }),\n );\n\n addLeadingComments({\n comments: comment,\n node,\n });\n\n return node;\n};\n\ntype ClassDecorator = {\n args: any[];\n name: string;\n};\n\n/**\n * Create a class declaration.\n * @param decorator - the class decorator\n * @param members - elements in the class.\n * @param name - name of the class.\n * @returns ts.ClassDeclaration\n */\nexport const createClassDeclaration = ({\n decorator,\n members = [],\n name,\n}: {\n decorator?: ClassDecorator;\n members?: ts.ClassElement[];\n name: string;\n}) => {\n let modifiers: ts.ModifierLike[] = [\n ts.factory.createModifier(ts.SyntaxKind.ExportKeyword),\n ];\n\n if (decorator) {\n modifiers = [\n ts.factory.createDecorator(\n createCallExpression({\n functionName: decorator.name,\n parameters: decorator.args\n .map((arg) => toExpression({ value: arg }))\n .filter(isType<ts.Expression>),\n }),\n ),\n ...modifiers,\n ];\n }\n\n // Add newline between each class member.\n let m: ts.ClassElement[] = [];\n members.forEach((member) => {\n // @ts-expect-error\n m = [...m, member, createIdentifier({ text: '\\n' })];\n });\n\n return ts.factory.createClassDeclaration(\n modifiers,\n createIdentifier({ text: name }),\n [],\n [],\n m,\n );\n};\n","import ts from 'typescript';\n\nexport const expressionToStatement = ({\n expression,\n}: {\n expression: ts.Expression;\n}) => {\n const statement = ts.factory.createExpressionStatement(expression);\n return statement;\n};\n","import ts from 'typescript';\n\nimport { createCallExpression } from './module';\nimport { createTypeReferenceNode } from './types';\nimport { createIdentifier, isType } from './utils';\n\nexport const createReturnStatement = ({\n expression,\n}: {\n expression?: ts.Expression;\n}) => ts.factory.createReturnStatement(expression);\n\n/**\n * Create a return function call statement.\n *\n * @example `return fn<string>(params)`\n *\n * @returns ts.ReturnStatement\n */\nexport const createReturnFunctionCall = ({\n args = [],\n name,\n types = [],\n}: {\n /**\n * Arguments to pass to the function.\n */\n args: any[];\n /**\n * Name of the function to call or expression.\n */\n name: string | ts.Expression;\n /**\n * List of function types.\n */\n types?: string[];\n}) => {\n const typeArguments = types.map((type) =>\n createTypeReferenceNode({ typeName: type }),\n );\n const argumentsArray = args\n .map((arg) =>\n ts.isExpression(arg) ? arg : createIdentifier({ text: arg }),\n )\n .filter(isType<ts.Identifier | ts.Expression>);\n const expression = createCallExpression({\n functionName: name,\n parameters: argumentsArray,\n types: typeArguments,\n });\n const statement = createReturnStatement({ expression });\n return statement;\n};\n\nexport const createReturnVariable = ({\n expression,\n}: {\n expression: string | ts.Expression;\n}) => {\n const statement = createReturnStatement({\n expression:\n typeof expression === 'string'\n ? createIdentifier({ text: expression })\n : expression,\n });\n return statement;\n};\n","import ts from 'typescript';\n\nimport { validTypescriptIdentifierRegExp } from '../utils/regexp';\nimport { expressionToStatement } from './convert';\nimport { createCallExpression } from './module';\nimport {\n createArrowFunction,\n createBlock,\n createNewExpression,\n createPropertyAccessChain,\n createPropertyAccessExpression,\n} from './types';\nimport { createIdentifier } from './utils';\n\nexport const createSafeAccessExpression = (path: string[]) =>\n path.slice(1).reduce<ts.Expression>(\n (expression, element) => {\n validTypescriptIdentifierRegExp.lastIndex = 0;\n if (validTypescriptIdentifierRegExp.test(element)) {\n return createPropertyAccessChain({\n expression,\n name: element,\n });\n }\n\n return ts.factory.createElementAccessChain(\n expression,\n ts.factory.createToken(ts.SyntaxKind.QuestionDotToken),\n createIdentifier({ text: element }),\n );\n },\n createIdentifier({ text: path[0]! }),\n );\n\nexport const createAccessExpression = (path: string[]) =>\n path.slice(1).reduce<ts.Expression>(\n (expression, element) =>\n createPropertyAccessExpression({\n expression,\n name: element,\n }),\n createIdentifier({ text: path[0]! }),\n );\n\n/**\n * Handles an array of access expressions instead of nesting them (default TypeScript syntax)\n */\nexport const createPropertyAccessExpressions = ({\n expressions,\n}: {\n expressions: Array<string | ts.Expression | ts.MemberName>;\n}): ts.PropertyAccessExpression => {\n const expression = expressions.reduce((expression, name) => {\n const node = createPropertyAccessExpression({\n expression,\n // @ts-expect-error\n name,\n });\n return node;\n });\n return expression as ts.PropertyAccessExpression;\n};\n\nexport const createBinaryExpression = ({\n left,\n operator = '=',\n right,\n}: {\n left: ts.Expression;\n operator?: '=' | '===' | 'in' | '??';\n right: ts.Expression | string;\n}) => {\n const expression = ts.factory.createBinaryExpression(\n left,\n // TODO: add support for other tokens\n operator === '='\n ? ts.SyntaxKind.EqualsToken\n : operator === '==='\n ? ts.SyntaxKind.EqualsEqualsEqualsToken\n : operator === '??'\n ? ts.SyntaxKind.QuestionQuestionToken\n : ts.SyntaxKind.InKeyword,\n typeof right === 'string' ? createIdentifier({ text: right }) : right,\n );\n return expression;\n};\n\nexport const createIfStatement = ({\n elseStatement,\n expression,\n thenStatement,\n}: {\n elseStatement?: ts.Statement;\n expression: ts.Expression;\n thenStatement: ts.Statement;\n}) => ts.factory.createIfStatement(expression, thenStatement, elseStatement);\n\nexport const createDateTransformMutation = ({\n path,\n}: {\n path: string[];\n}): ts.Statement => {\n const safeAccessExpression = createSafeAccessExpression(path);\n const accessExpression = createAccessExpression(path);\n\n const thenStatement = createBlock({\n statements: [\n expressionToStatement({\n expression: createBinaryExpression({\n left: accessExpression,\n right: createNewExpression({\n argumentsArray: [accessExpression],\n expression: createIdentifier({ text: 'Date' }),\n }),\n }),\n }),\n ],\n });\n\n const statement = createIfStatement({\n expression: safeAccessExpression,\n thenStatement,\n });\n\n return statement;\n};\n\nexport const createFunctionTransformMutation = ({\n path,\n transformerName,\n}: {\n path: string[];\n transformerName: string;\n}) => {\n const safeAccessExpression = createSafeAccessExpression(path);\n const accessExpression = createAccessExpression(path);\n\n const thenStatement = createBlock({\n statements: [\n expressionToStatement({\n expression: createCallExpression({\n functionName: transformerName,\n parameters: [accessExpression],\n }),\n }),\n ],\n });\n\n const statement = [\n createIfStatement({\n expression: safeAccessExpression,\n thenStatement,\n }),\n ];\n\n return statement;\n};\n\nexport const createArrayTransformMutation = ({\n path,\n transformerName,\n}: {\n path: string[];\n transformerName: string;\n}): ts.Statement => {\n const safeAccessExpression = createSafeAccessExpression(path);\n const accessExpression = createAccessExpression(path);\n\n const statement = createIfStatement({\n expression: createCallExpression({\n functionName: createPropertyAccessExpression({\n expression: 'Array',\n name: 'isArray',\n }),\n parameters: [safeAccessExpression],\n }),\n thenStatement: createBlock({\n statements: [\n expressionToStatement({\n expression: ts.factory.createCallChain(\n createPropertyAccessExpression({\n expression: accessExpression,\n name: 'forEach',\n }),\n undefined,\n undefined,\n [createIdentifier({ text: transformerName })],\n ),\n }),\n ],\n }),\n });\n\n return statement;\n};\n\nexport const createDateTransformerExpression = ({\n parameterName,\n}: {\n parameterName: string;\n}) => {\n const expression = createIdentifier({ text: 'Date' });\n const newExpression = createNewExpression({\n argumentsArray: [createIdentifier({ text: parameterName })],\n expression,\n });\n return newExpression;\n};\n\nexport const createArrayMapTransform = ({\n path,\n transformExpression,\n}: {\n path: string[];\n transformExpression: ts.Expression;\n}) => {\n const safeAccessExpression = createSafeAccessExpression(path);\n const accessExpression = createAccessExpression(path);\n\n const statement = createIfStatement({\n expression: createCallExpression({\n functionName: createPropertyAccessExpression({\n expression: 'Array',\n name: 'isArray',\n }),\n parameters: [safeAccessExpression],\n }),\n thenStatement: createBlock({\n statements: [\n expressionToStatement({\n expression: createBinaryExpression({\n left: accessExpression,\n right: ts.factory.createCallChain(\n createPropertyAccessExpression({\n expression: accessExpression,\n name: 'map',\n }),\n undefined,\n undefined,\n [\n createArrowFunction({\n parameters: [\n {\n name: 'item',\n },\n ],\n statements: transformExpression,\n }),\n ],\n ),\n }),\n }),\n ],\n }),\n });\n\n return statement;\n};\n","import ts from 'typescript';\n\nimport { validTypescriptIdentifierRegExp } from '../utils/regexp';\nimport {\n createKeywordTypeNode,\n createParameterDeclaration,\n createStringLiteral,\n createTypeNode,\n createTypeReferenceNode,\n} from './types';\nimport {\n addLeadingComments,\n type Comments,\n createIdentifier,\n tsNodeToString,\n} from './utils';\n\nconst nullNode = createTypeReferenceNode({ typeName: 'null' });\n\n// Property of a interface type node.\nexport type Property = {\n comment?: Comments;\n isReadOnly?: boolean;\n isRequired?: boolean;\n name: string | ts.PropertyName;\n type: any | ts.TypeNode;\n};\n\n/**\n * Returns a union of provided node with null if marked as nullable,\n * otherwise returns the provided node unmodified.\n */\nconst maybeNullable = ({\n isNullable,\n node,\n}: {\n isNullable?: boolean;\n node: ts.TypeNode;\n}) => {\n if (!isNullable) {\n return node;\n }\n return ts.factory.createUnionTypeNode([node, nullNode]);\n};\n\n/**\n * Create a interface type node. Example `{ readonly x: string, y?: number }`\n * @param properties - the properties of the interface.\n * @param isNullable - if the whole interface can be nullable\n * @returns ts.TypeLiteralNode | ts.TypeUnionNode\n */\nexport const createTypeInterfaceNode = ({\n indexProperty,\n isNullable,\n properties,\n useLegacyResolution,\n}: {\n /**\n * Adds an index signature if defined.\n * @example\n * ```ts\n * type IndexProperty = {\n * [key: string]: string\n * }\n * ```\n */\n indexProperty?: Property;\n isNullable?: boolean;\n properties: Property[];\n useLegacyResolution: boolean;\n}) => {\n const propertyTypes: Array<ts.TypeNode> = [];\n\n const members: Array<ts.TypeElement> = properties.map((property) => {\n const modifiers: readonly ts.Modifier[] | undefined = property.isReadOnly\n ? [ts.factory.createModifier(ts.SyntaxKind.ReadonlyKeyword)]\n : undefined;\n\n const questionToken: ts.QuestionToken | undefined =\n property.isRequired !== false\n ? undefined\n : ts.factory.createToken(ts.SyntaxKind.QuestionToken);\n\n const type: ts.TypeNode | undefined = createTypeNode(property.type);\n propertyTypes.push(type);\n\n const signature = ts.factory.createPropertySignature(\n modifiers,\n useLegacyResolution ||\n (typeof property.name === 'string' &&\n property.name.match(validTypescriptIdentifierRegExp)) ||\n (typeof property.name !== 'string' && ts.isPropertyName(property.name))\n ? property.name\n : createStringLiteral({ text: property.name }),\n questionToken,\n type,\n );\n\n addLeadingComments({\n comments: property.comment,\n node: signature,\n });\n\n return signature;\n });\n\n if (indexProperty) {\n const modifiers: readonly ts.Modifier[] | undefined =\n indexProperty.isReadOnly\n ? [ts.factory.createModifier(ts.SyntaxKind.ReadonlyKeyword)]\n : undefined;\n const indexSignature = ts.factory.createIndexSignature(\n modifiers,\n [\n createParameterDeclaration({\n name: createIdentifier({ text: String(indexProperty.name) }),\n type: createKeywordTypeNode({ keyword: 'string' }),\n }),\n ],\n createTypeNode(indexProperty.type),\n );\n members.push(indexSignature);\n }\n\n const node = ts.factory.createTypeLiteralNode(members);\n return maybeNullable({ isNullable, node });\n};\n\n/**\n * Create type union node. Example `string | number | boolean`\n * @param types - the types in the union\n * @param isNullable - if the whole type can be null\n * @returns ts.UnionTypeNode\n */\nexport const createTypeUnionNode = ({\n isNullable,\n types,\n}: {\n isNullable?: boolean;\n types: (any | ts.TypeNode)[];\n}) => {\n const nodes = types.map((type) => createTypeNode(type));\n const node = ts.factory.createUnionTypeNode(nodes);\n return maybeNullable({ isNullable, node });\n};\n\n/**\n * Create type intersection node. Example `string & number & boolean`\n * @param types - the types in the union\n * @param isNullable - if the whole type can be null\n * @returns ts.IntersectionTypeNode | ts.UnionTypeNode\n */\nexport const createTypeIntersectionNode = ({\n isNullable,\n types,\n}: {\n isNullable?: boolean;\n types: (any | ts.TypeNode)[];\n}) => {\n const nodes = types.map((type) => createTypeNode(type));\n const node = ts.factory.createIntersectionTypeNode(nodes);\n return maybeNullable({ isNullable, node });\n};\n\n/**\n * Create type tuple node. Example `string, number, boolean`\n * @param isNullable if the whole type can be null\n * @param types the types in the union\n * @returns ts.UnionTypeNode\n */\nexport const createTypeTupleNode = ({\n isNullable = false,\n types,\n}: {\n isNullable?: boolean;\n types: Array<any | ts.TypeNode>;\n}) => {\n const nodes = types.map((type) => createTypeNode(type));\n const node = ts.factory.createTupleTypeNode(nodes);\n return maybeNullable({ isNullable, node });\n};\n\n/**\n * Create type record node. Example `{ [key: string]: string }`\n * @param keys - key types.\n * @param values - value types.\n * @param isNullable - if the whole type can be null\n * @returns ts.TypeReferenceNode | ts.UnionTypeNode\n */\nexport const createTypeRecordNode = (\n keys: (any | ts.TypeNode)[],\n values: (any | ts.TypeNode)[],\n isNullable: boolean = false,\n useLegacyResolution: boolean = true,\n) => {\n const keyNode = createTypeUnionNode({\n types: keys,\n });\n const valueNode = createTypeUnionNode({\n types: values,\n });\n // NOTE: We use the syntax `{ [key: string]: string }` because using a Record causes\n // invalid types with circular dependencies. This is functionally the same.\n // Ref: https://github.com/hey-api/openapi-ts/issues/370\n const node = createTypeInterfaceNode({\n properties: [\n {\n name: `[key: ${tsNodeToString({ node: keyNode, unescape: true })}]`,\n type: valueNode,\n },\n ],\n useLegacyResolution,\n });\n return maybeNullable({ isNullable, node });\n};\n\n/**\n * Create type array node. Example `Array<string | number>`\n * @param types - the types\n * @param isNullable - if the whole type can be null\n * @returns ts.TypeReferenceNode | ts.UnionTypeNode\n */\nexport const createTypeArrayNode = (\n types: (any | ts.TypeNode)[] | ts.TypeNode | string,\n isNullable: boolean = false,\n) => {\n const node = createTypeReferenceNode({\n typeArguments: [\n // @ts-expect-error\n Array.isArray(types) ? createTypeUnionNode({ types }) : types,\n ],\n typeName: 'Array',\n });\n return maybeNullable({ isNullable, node });\n};\n","import * as classes from './classes';\nimport * as convert from './convert';\nimport * as module from './module';\nimport * as _return from './return';\nimport * as transform from './transform';\nimport * as typedef from './typedef';\nimport * as types from './types';\nimport * as utils from './utils';\n\nexport type { Property } from './typedef';\nexport type { FunctionParameter } from './types';\nexport type { Comments } from './utils';\nexport type { ClassElement, Node, TypeNode } from 'typescript';\n\nexport const compiler = {\n anonymousFunction: types.createAnonymousFunction,\n arrayLiteralExpression: types.createArrayLiteralExpression,\n arrowFunction: types.createArrowFunction,\n asExpression: types.createAsExpression,\n assignment: types.createAssignment,\n awaitExpression: types.createAwaitExpression,\n binaryExpression: transform.createBinaryExpression,\n block: types.createBlock,\n callExpression: module.createCallExpression,\n classDeclaration: classes.createClassDeclaration,\n conditionalExpression: types.createConditionalExpression,\n constVariable: module.createConstVariable,\n constructorDeclaration: classes.createConstructorDeclaration,\n enumDeclaration: types.createEnumDeclaration,\n exportAllDeclaration: module.createExportAllDeclaration,\n exportNamedDeclaration: module.createNamedExportDeclarations,\n expressionToStatement: convert.expressionToStatement,\n forOfStatement: types.createForOfStatement,\n functionTypeNode: types.createFunctionTypeNode,\n identifier: utils.createIdentifier,\n ifStatement: transform.createIfStatement,\n indexedAccessTypeNode: types.createIndexedAccessTypeNode,\n isTsNode: utils.isTsNode,\n keywordTypeNode: types.createKeywordTypeNode,\n literalTypeNode: types.createLiteralTypeNode,\n mappedTypeNode: types.createMappedTypeNode,\n methodDeclaration: classes.createMethodDeclaration,\n namedImportDeclarations: module.createNamedImportDeclarations,\n namespaceDeclaration: types.createNamespaceDeclaration,\n newExpression: types.createNewExpression,\n nodeToString: utils.tsNodeToString,\n null: types.createNull,\n objectExpression: types.createObjectType,\n ots: utils.ots,\n parameterDeclaration: types.createParameterDeclaration,\n propertyAccessExpression: types.createPropertyAccessExpression,\n propertyAccessExpressions: transform.createPropertyAccessExpressions,\n propertyAssignment: types.createPropertyAssignment,\n regularExpressionLiteral: types.createRegularExpressionLiteral,\n returnFunctionCall: _return.createReturnFunctionCall,\n returnStatement: _return.createReturnStatement,\n returnVariable: _return.createReturnVariable,\n safeAccessExpression: transform.createSafeAccessExpression,\n stringLiteral: types.createStringLiteral,\n stringToTsNodes: utils.stringToTsNodes,\n templateLiteralType: types.createTemplateLiteralType,\n transformArrayMap: transform.createArrayMapTransform,\n transformArrayMutation: transform.createArrayTransformMutation,\n transformDateMutation: transform.createDateTransformMutation,\n transformFunctionMutation: transform.createFunctionTransformMutation,\n transformNewDate: transform.createDateTransformerExpression,\n typeAliasDeclaration: types.createTypeAliasDeclaration,\n typeArrayNode: typedef.createTypeArrayNode,\n typeInterfaceNode: typedef.createTypeInterfaceNode,\n typeIntersectionNode: typedef.createTypeIntersectionNode,\n typeNode: types.createTypeNode,\n typeOfExpression: types.createTypeOfExpression,\n typeOperatorNode: types.createTypeOperatorNode,\n typeParameterDeclaration: types.createTypeParameterDeclaration,\n typeParenthesizedNode: types.createTypeParenthesizedNode,\n typeRecordNode: typedef.createTypeRecordNode,\n typeReferenceNode: types.createTypeReferenceNode,\n typeTupleNode: typedef.createTypeTupleNode,\n typeUnionNode: typedef.createTypeUnionNode,\n valueToExpression: types.toExpression,\n};\n","import type { IR } from './types';\n\n/**\n * Traverse the parsed intermediate representation model and broadcast\n * various events to listeners.\n */\nexport const parseIR = async ({ context }: { context: IR.Context }) => {\n await context.broadcast('before');\n\n for (const server of context.ir.servers ?? []) {\n await context.broadcast('server', { server });\n }\n\n if (context.ir.components) {\n for (const name in context.ir.components.schemas) {\n const schema = context.ir.components.schemas[name]!;\n const $ref = `#/components/schemas/${name}`;\n await context.broadcast('schema', { $ref, name, schema });\n }\n\n for (const name in context.ir.components.parameters) {\n const parameter = context.ir.components.parameters[name]!;\n const $ref = `#/components/parameters/${name}`;\n await context.broadcast('parameter', { $ref, name, parameter });\n }\n\n for (const name in context.ir.components.requestBodies) {\n const requestBody = context.ir.components.requestBodies[name]!;\n const $ref = `#/components/requestBodies/${name}`;\n await context.broadcast('requestBody', { $ref, name, requestBody });\n }\n }\n\n for (const path in context.ir.paths) {\n const pathItem = context.ir.paths[path as keyof IR.PathsObject];\n\n for (const _method in pathItem) {\n const method = _method as keyof IR.PathItemObject;\n const operation = pathItem[method]!;\n await context.broadcast('operation', { method, operation, path });\n }\n }\n\n await context.broadcast('after');\n};\n","import type { PluginClientNames } from '../plugins/types';\n\n/**\n * Generate the HttpRequest filename based on the selected client\n * @param client HTTP client to generate\n */\nexport const getHttpRequestName = (clientName: PluginClientNames): string => {\n switch (clientName) {\n case 'legacy/angular':\n return 'AngularHttpRequest';\n case 'legacy/axios':\n return 'AxiosHttpRequest';\n case 'legacy/fetch':\n return 'FetchHttpRequest';\n case 'legacy/node':\n return 'NodeHttpRequest';\n case 'legacy/xhr':\n return 'XHRHttpRequest';\n default:\n return '';\n }\n};\n","export function sort(a: string, b: string): number {\n const nameA = a.toLocaleLowerCase();\n const nameB = b.toLocaleLowerCase();\n return nameA.localeCompare(nameB, 'en');\n}\n\nexport const sorterByName = <T extends { name: string }>(a: T, b: T) =>\n sort(a.name, b.name);\n\nexport function sortByName<T extends { name: string }>(items: T[]): T[] {\n return items.sort(sorterByName);\n}\n","import type { PathLike } from 'node:fs';\nimport fs from 'node:fs';\n\nexport const ensureDirSync = (path: PathLike) => {\n if (!fs.existsSync(path)) {\n fs.mkdirSync(path, { recursive: true });\n }\n};\n\nexport const removeDirSync = (path: PathLike) => {\n if (fs.existsSync(path)) {\n fs.rmSync(path, { force: true, recursive: true });\n }\n};\n\n/**\n * Construct a relative import path to modules. This is used for example\n * in plugins to import types or SDK module.\n */\nexport const relativeModulePath = ({\n moduleOutput,\n sourceOutput,\n}: {\n /**\n * Output path to the imported module.\n * @example\n * 'types'\n */\n moduleOutput: string;\n /**\n * Output path to the source module.\n * @example\n * '@tanstack/react-query'\n */\n sourceOutput: string;\n}): string => {\n const outputParts = sourceOutput.split('/');\n const relativePath =\n Array.from({ length: outputParts.length }).fill('').join('../') || './';\n return `${relativePath}${moduleOutput}`;\n};\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport type { OpenApi } from '../openApi';\nimport { getClientPlugin } from '../plugins/@hey-api/client-core/utils';\nimport type { Client } from '../types/client';\nimport { getConfig, legacyNameFromConfig } from '../utils/config';\nimport { getHttpRequestName } from '../utils/getHttpRequestName';\nimport type { Templates } from '../utils/handlebars';\nimport { sortByName } from '../utils/sort';\nimport { ensureDirSync } from './utils';\n\n/**\n * Generate the OpenAPI client index file using the Handlebar template and write it to disk.\n * The index file just contains all the exports you need to use the client as a standalone\n * library. But you can also import individual models and services directly.\n * @param openApi {@link OpenApi} Dereferenced OpenAPI specification\n * @param outputPath Directory to write the generated files to\n * @param client Client containing models, schemas, and services\n * @param templates The loaded handlebar templates\n */\nexport const generateLegacyClientClass = async (\n openApi: OpenApi,\n outputPath: string,\n client: Client,\n templates: Templates,\n) => {\n const config = getConfig();\n\n const clientPlugin = getClientPlugin(config);\n const templateResult = templates.client({\n $config: config,\n ...client,\n httpRequest: getHttpRequestName(clientPlugin.name),\n models: sortByName(client.models),\n services: sortByName(client.services),\n });\n\n if (legacyNameFromConfig(config)) {\n ensureDirSync(outputPath);\n fs.writeFileSync(\n path.resolve(outputPath, `${legacyNameFromConfig(config)}.ts`),\n templateResult,\n );\n }\n};\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport type { ImportExportItemObject } from '../compiler/utils';\nimport type { Client } from '../plugins/@hey-api/client-core/types';\nimport { getClientPlugin } from '../plugins/@hey-api/client-core/utils';\nimport type { Plugin } from '../plugins/types';\nimport type { Config } from '../types/config';\nimport { ensureDirSync, relativeModulePath } from './utils';\n\nconst getClientSrcPath = (name: string) => {\n const pluginFilePathComponents = name.split(path.sep);\n const clientSrcPath = pluginFilePathComponents\n .slice(0, pluginFilePathComponents.length - 1)\n .join(path.sep);\n return clientSrcPath;\n};\n\n/**\n * Returns path to the client module. When using client packages, this will be\n * simply the name of the package. When bundling a client, this will be a\n * relative path to the bundled client folder.\n */\nexport const clientModulePath = ({\n config,\n sourceOutput,\n}: {\n config: Config;\n sourceOutput: string;\n}): string => {\n const client = getClientPlugin(config);\n\n if ('bundle' in client && client.bundle) {\n return relativeModulePath({\n moduleOutput: 'client',\n sourceOutput,\n });\n }\n\n if (path.isAbsolute(client.name)) {\n const clientSrcPath = getClientSrcPath(client.name);\n const outputPath = path.resolve(config.output.path);\n return path.relative(outputPath, clientSrcPath).replace(/\\\\/g, '/');\n }\n\n return client.name;\n};\n\nexport const clientApi = {\n Options: {\n asType: true,\n name: 'Options',\n },\n OptionsLegacyParser: {\n asType: true,\n name: 'OptionsLegacyParser',\n },\n} satisfies Record<string, ImportExportItemObject>;\n\n/**\n * Creates a `client` folder containing the same modules as the client package.\n */\nexport const generateClientBundle = ({\n outputPath,\n plugin,\n}: {\n outputPath: string;\n plugin: Plugin.Config<Client.Config & { name: any }>;\n}): void => {\n // create folder for client modules\n const dirPath = path.resolve(outputPath, 'client');\n ensureDirSync(dirPath);\n\n let clientSrcPath = '';\n if (path.isAbsolute(plugin.name)) {\n clientSrcPath = getClientSrcPath(plugin.name);\n }\n\n if (plugin.bundleSource_EXPERIMENTAL && !clientSrcPath) {\n const clientModulePath = path.normalize(require.resolve(plugin.name));\n const clientModulePathComponents = clientModulePath.split(path.sep);\n clientSrcPath = [\n ...clientModulePathComponents.slice(\n 0,\n clientModulePathComponents.indexOf('dist'),\n ),\n 'src',\n ].join(path.sep);\n }\n\n if (clientSrcPath) {\n fs.cpSync(clientSrcPath, dirPath, {\n recursive: true,\n });\n return;\n }\n\n const clientModulePath = path.normalize(require.resolve(plugin.name));\n const clientModulePathComponents = clientModulePath.split(path.sep);\n const clientDistPath = clientModulePathComponents\n .slice(0, clientModulePathComponents.indexOf('dist') + 1)\n .join(path.sep);\n\n const indexJsFile =\n clientModulePathComponents[clientModulePathComponents.length - 1];\n const distFiles = [indexJsFile!, 'index.d.ts'];\n if (plugin.name !== '@hey-api/client-nuxt') {\n distFiles.push('index.d.cts');\n }\n for (const file of distFiles) {\n fs.copyFileSync(\n path.resolve(clientDistPath, file),\n path.resolve(dirPath, file),\n );\n }\n};\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport { getClientPlugin } from '../plugins/@hey-api/client-core/utils';\nimport type { Client } from '../types/client';\nimport { getConfig, legacyNameFromConfig } from '../utils/config';\nimport { getHttpRequestName } from '../utils/getHttpRequestName';\nimport type { Templates } from '../utils/handlebars';\n\n/**\n * Generate OpenAPI core files, this includes the basic boilerplate code to handle requests.\n * @param outputPath Directory to write the generated files to\n * @param client Client containing models, schemas, and services\n * @param templates The loaded handlebar templates\n */\nexport const generateLegacyCore = async (\n outputPath: string,\n client: Client,\n templates: Templates,\n): Promise<void> => {\n const config = getConfig();\n\n if (config.exportCore) {\n const clientPlugin = getClientPlugin(config);\n const context = {\n httpRequest: getHttpRequestName(clientPlugin.name),\n server: config.base !== undefined ? config.base : client.server,\n version: client.version,\n };\n\n fs.rmSync(path.resolve(outputPath), {\n force: true,\n recursive: true,\n });\n fs.mkdirSync(path.resolve(outputPath), {\n recursive: true,\n });\n\n await fs.writeFileSync(\n path.resolve(outputPath, 'OpenAPI.ts'),\n templates.core.settings({\n $config: config,\n ...context,\n }),\n );\n await fs.writeFileSync(\n path.resolve(outputPath, 'ApiError.ts'),\n templates.core.apiError({\n $config: config,\n ...context,\n }),\n );\n await fs.writeFileSync(\n path.resolve(outputPath, 'ApiRequestOptions.ts'),\n templates.core.apiRequestOptions({\n $config: config,\n ...context,\n }),\n );\n await fs.writeFileSync(\n path.resolve(outputPath, 'ApiResult.ts'),\n templates.core.apiResult({\n $config: config,\n ...context,\n }),\n );\n if (clientPlugin.name !== 'legacy/angular') {\n await fs.writeFileSync(\n path.resolve(outputPath, 'CancelablePromise.ts'),\n templates.core.cancelablePromise({\n $config: config,\n ...context,\n }),\n );\n }\n await fs.writeFileSync(\n path.resolve(outputPath, 'request.ts'),\n templates.core.request({\n $config: config,\n ...context,\n }),\n );\n\n if (legacyNameFromConfig(config)) {\n await fs.writeFileSync(\n path.resolve(outputPath, 'BaseHttpRequest.ts'),\n templates.core.baseHttpRequest({\n $config: config,\n ...context,\n }),\n );\n await fs.writeFileSync(\n path.resolve(outputPath, `${context.httpRequest}.ts`),\n templates.core.httpRequest({\n $config: config,\n ...context,\n }),\n );\n }\n\n if (config.request) {\n const requestFile = path.resolve(process.cwd(), config.request);\n const requestFileExists = await fs.existsSync(requestFile);\n if (!requestFileExists) {\n throw new Error(`Custom request file \"${requestFile}\" does not exists`);\n }\n await fs.copyFileSync(\n requestFile,\n path.resolve(outputPath, 'request.ts'),\n );\n }\n }\n};\n","import {\n illegalStartCharactersRegExp,\n reservedBrowserGlobalsRegExp,\n reservedJavaScriptGlobalsRegExp,\n reservedJavaScriptKeywordsRegExp,\n reservedNodeGlobalsRegExp,\n reservedTypeScriptKeywordsRegExp,\n} from '../../../utils/regexp';\n\nconst regexps = [\n reservedJavaScriptKeywordsRegExp,\n reservedTypeScriptKeywordsRegExp,\n reservedJavaScriptGlobalsRegExp,\n reservedNodeGlobalsRegExp,\n reservedBrowserGlobalsRegExp,\n];\n\nexport const ensureValidIdentifier = (name: string): string => {\n let identifier = name.replace(/[^$\\u200c\\u200d\\p{ID_Continue}]/gu, '_');\n\n illegalStartCharactersRegExp.lastIndex = 0;\n if (illegalStartCharactersRegExp.test(identifier)) {\n return `_${identifier}`;\n }\n\n for (const regexp of regexps) {\n if (identifier.startsWith('_')) {\n return identifier;\n }\n\n identifier = identifier.replace(regexp, '_$1');\n }\n\n return identifier;\n};\n","import type { StringCase } from '../types/config';\n\nconst uppercaseRegExp = /[\\p{Lu}]/u;\nconst lowercaseRegExp = /[\\p{Ll}]/u;\nconst identifierRegExp = /([\\p{Alpha}\\p{N}_]|$)/u;\nconst separatorsRegExp = /[_.\\- `\\\\[\\]{}\\\\/]+/;\n\nconst leadingSeparatorsRegExp = new RegExp(`^${separatorsRegExp.source}`);\nconst separatorsAndIdentifierRegExp = new RegExp(\n `${separatorsRegExp.source}${identifierRegExp.source}`,\n 'gu',\n);\nconst numbersAndIdentifierRegExp = new RegExp(\n `\\\\d+${identifierRegExp.source}`,\n 'gu',\n);\n\nconst preserveCase = ({\n case: _case,\n string,\n}: {\n readonly case: StringCase;\n string: string;\n}) => {\n let isLastCharLower = false;\n let isLastCharUpper = false;\n let isLastLastCharUpper = false;\n let isLastLastCharPreserved = false;\n\n const separator =\n _case === 'snake_case' || _case === 'SCREAMING_SNAKE_CASE' ? '_' : '-';\n\n for (let index = 0; index < string.length; index++) {\n const character = string[index]!;\n isLastLastCharPreserved =\n index > 2 ? string[index - 3] === separator : true;\n\n let nextIndex = index + 1;\n let nextCharacter = string[nextIndex];\n separatorsRegExp.lastIndex = 0;\n while (nextCharacter && separatorsRegExp.test(nextCharacter)) {\n nextIndex += 1;\n nextCharacter = string[nextIndex];\n }\n const isSeparatorBeforeNextCharacter = nextIndex !== index + 1;\n\n lowercaseRegExp.lastIndex = 0;\n uppercaseRegExp.lastIndex = 0;\n if (\n uppercaseRegExp.test(character) &&\n (isLastCharLower ||\n (nextCharacter &&\n !isSeparatorBeforeNextCharacter &&\n nextCharacter !== 's' &&\n lowercaseRegExp.test(nextCharacter)))\n ) {\n // insert separator behind character\n string = `${string.slice(0, index)}${separator}${string.slice(index)}`;\n index++;\n isLastLastCharUpper = isLastCharUpper;\n isLastCharLower = false;\n isLastCharUpper = true;\n } else if (\n isLastCharUpper &&\n isLastLastCharUpper &&\n lowercaseRegExp.test(character) &&\n !isLastLastCharPreserved &&\n // naive detection of plurals\n !(\n character === 's' &&\n (!nextCharacter || nextCharacter.toLocaleLowerCase() !== nextCharacter)\n )\n ) {\n // insert separator 2 characters behind\n string = `${string.slice(0, index - 1)}${separator}${string.slice(index - 1)}`;\n isLastLastCharUpper = isLastCharUpper;\n isLastCharLower = true;\n isLastCharUpper = false;\n } else {\n const characterLower = character.toLocaleLowerCase();\n const characterUpper = character.toLocaleUpperCase();\n isLastLastCharUpper = isLastCharUpper;\n isLastCharLower =\n characterLower === character && characterUpper !== character;\n isLastCharUpper =\n characterUpper === character && characterLower !== character;\n }\n }\n\n return string;\n};\n\nexport const stringCase = ({\n case: _case,\n stripLeadingSeparators = true,\n value,\n}: {\n readonly case: StringCase | undefined;\n /**\n * If leading separators have a semantic meaning, we might not want to\n * remove them.\n */\n stripLeadingSeparators?: boolean;\n value: string;\n}): string => {\n let result = value.trim();\n\n if (!result.length) {\n return '';\n }\n\n if (!_case || _case === 'preserve') {\n return result;\n }\n\n if (result.length === 1) {\n separatorsRegExp.lastIndex = 0;\n if (separatorsRegExp.test(result)) {\n return '';\n }\n\n return _case === 'PascalCase' || _case === 'SCREAMING_SNAKE_CASE'\n ? result.toLocaleUpperCase()\n : result.toLocaleLowerCase();\n }\n\n const hasUpperCase = result !== result.toLocaleLowerCase();\n\n if (hasUpperCase) {\n result = preserveCase({ case: _case, string: result });\n }\n\n if (stripLeadingSeparators || result[0] !== value[0]) {\n result = result.replace(leadingSeparatorsRegExp, '');\n }\n\n result =\n _case === 'SCREAMING_SNAKE_CASE'\n ? result.toLocaleUpperCase()\n : result.toLocaleLowerCase();\n\n if (_case === 'PascalCase') {\n result = `${result.charAt(0).toLocaleUpperCase()}${result.slice(1)}`;\n }\n\n if (_case === 'snake_case' || _case === 'SCREAMING_SNAKE_CASE') {\n result = result.replaceAll(\n separatorsAndIdentifierRegExp,\n (match, identifier, offset) => {\n if (offset === 0 && !stripLeadingSeparators) {\n return match;\n }\n return `_${identifier}`;\n },\n );\n\n if (result[result.length - 1] === '_') {\n // strip trailing underscore\n result = result.slice(0, result.length - 1);\n }\n } else {\n separatorsAndIdentifierRegExp.lastIndex = 0;\n numbersAndIdentifierRegExp.lastIndex = 0;\n\n result = result.replaceAll(\n numbersAndIdentifierRegExp,\n (match, _, offset) => {\n if (['_', '-', '.'].includes(result.charAt(offset + match.length))) {\n return match;\n }\n\n return match.toLocaleUpperCase();\n },\n );\n\n result = result.replaceAll(\n separatorsAndIdentifierRegExp,\n (match, identifier, offset) => {\n if (\n offset === 0 &&\n !stripLeadingSeparators &&\n match[0] &&\n value.startsWith(match[0])\n ) {\n return match;\n }\n return identifier.toLocaleUpperCase();\n },\n );\n }\n\n return result;\n};\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport type ts from 'typescript';\n\nimport { compiler } from '../compiler';\nimport { type ImportExportItemObject, tsNodeToString } from '../compiler/utils';\nimport type { IR } from '../ir/types';\nimport { ensureValidIdentifier } from '../openApi/shared/utils/identifier';\nimport type { StringCase } from '../types/config';\nimport { stringCase } from '../utils/stringCase';\nimport { ensureDirSync } from './utils';\n\nexport interface Identifier {\n /**\n * Did this function add a new property to the file's `identifiers` map?\n */\n created: boolean;\n /**\n * The resolved identifier name. False means the identifier has been blacklisted.\n */\n name: string | false;\n}\n\ntype Namespace = Record<\n string,\n Pick<Identifier, 'name'> & {\n /**\n * Ref to the type in OpenAPI specification.\n */\n $ref: string;\n }\n>;\n\ninterface Namespaces {\n /**\n * Type namespace. Types, interfaces, and type aliases exist here.\n * @example\n * ```ts\n * export type Foo = string;\n * ```\n */\n type: Namespace;\n /**\n * Value namespace. Variables, functions, classes, and constants exist here.\n * @example\n * ```js\n * export const foo = '';\n * ```\n */\n value: Namespace;\n}\n\nexport type FileImportResult = Pick<ImportExportItemObject, 'asType' | 'name'>;\n\nexport class TypeScriptFile {\n /**\n * Should the exports from this file be re-exported in the index barrel file?\n */\n private _exportFromIndex: boolean;\n private _headers: Array<string> = [];\n private _identifierCase: StringCase | undefined;\n private _imports = new Map<string, Map<string, ImportExportItemObject>>();\n private _items: Array<ts.Node | string> = [];\n private _name: string;\n private _path: string;\n\n public namespaces: Namespaces = {\n type: {},\n value: {},\n };\n /**\n * Path relative to the client output root.\n */\n // TODO: parser - add relative path property for quick access, currently\n // everything is resolved into an absolute path with cwd\n // public relativePath: string;\n\n public constructor({\n dir,\n exportFromIndex = false,\n header = true,\n identifierCase,\n name,\n }: {\n dir: string;\n /**\n * Should the exports from this file be re-exported in the index barrel file?\n */\n exportFromIndex?: boolean;\n header?: boolean;\n identifierCase?: StringCase;\n name: string;\n }) {\n this._exportFromIndex = exportFromIndex;\n this._identifierCase = identifierCase;\n this._name = this._setName(name);\n this._path = path.resolve(dir, this._name);\n\n if (header) {\n this._headers.push(\n '// This file is auto-generated by @hey-api/openapi-ts',\n );\n }\n }\n\n public add(...nodes: Array<ts.Node | string>) {\n this._items = this._items.concat(nodes);\n }\n\n /**\n * Prevents a specific identifier from being created. This is useful for\n * transformers where we know a certain transformer won't be needed, and\n * we want to avoid attempting to create since we know it won't happen.\n */\n public blockIdentifier({\n $ref,\n namespace,\n }: Pick<EnsureUniqueIdentifierData, '$ref'> & {\n namespace: keyof Namespaces;\n }): Identifier {\n const refValue = this.namespaces[namespace][$ref];\n if (!refValue) {\n throw new Error(\n `Identifier for $ref ${$ref} in namespace ${namespace} not found`,\n );\n }\n\n refValue.name = false;\n\n return {\n created: false,\n name: refValue.name,\n };\n }\n\n public get exportFromIndex(): boolean {\n return this._exportFromIndex;\n }\n\n public identifier({\n namespace,\n ...args\n }: Omit<EnsureUniqueIdentifierData, 'case' | 'namespace'> & {\n namespace: keyof Namespaces;\n }): Identifier {\n return ensureUniqueIdentifier({\n case: this._identifierCase,\n namespace: this.namespaces[namespace],\n ...args,\n });\n }\n\n /**\n * Adds an import to the provided module. Handles duplication, returns added\n * import. Returns the imported name. If we import an aliased export, `name`\n * will be equal to the specified `alias`.\n */\n public import({\n module,\n ...importedItem\n }: ImportExportItemObject & {\n module: string;\n }): FileImportResult {\n let moduleMap = this._imports.get(module);\n\n if (!moduleMap) {\n moduleMap = new Map<string, ImportExportItemObject>();\n this._imports.set(module, moduleMap);\n }\n\n const match = moduleMap.get(importedItem.name);\n if (match) {\n return {\n ...match,\n name: match.alias || match.name,\n };\n }\n\n moduleMap.set(importedItem.name, importedItem);\n return {\n ...importedItem,\n name: importedItem.alias || importedItem.name,\n };\n }\n\n public isEmpty() {\n return !this._items.length;\n }\n\n public nameWithoutExtension() {\n const { name } = splitNameAndExtension(this._name);\n return name;\n }\n\n public relativePathToFile({\n context,\n id,\n }: {\n context: IR.Context;\n id: string;\n }): string {\n let filePath = '';\n\n // relative file path\n if (id.startsWith('.')) {\n let configFileParts: Array<string> = [];\n // if providing a custom configuration file, relative paths must resolve\n // relative to the configuration file.\n if (context.config.configFile) {\n const cfgParts = context.config.configFile.split('/');\n configFileParts = cfgParts.slice(0, cfgParts.length - 1);\n }\n filePath = path.resolve(process.cwd(), ...configFileParts, id);\n } else {\n const file = context.file({ id });\n if (!file) {\n throw new Error(`File with id ${id} does not exist`);\n }\n filePath = file._path;\n }\n\n const thisPathParts = this._path.split(path.sep);\n const filePathParts = filePath.split(path.sep);\n\n let index = -1;\n let relativePath = '';\n for (const part of thisPathParts) {\n index += 1;\n if (filePathParts[index] !== part) {\n const pathArray = Array.from({\n length: thisPathParts.length - index,\n }).fill('');\n const relativePathToFile = filePathParts.slice(index);\n const relativeFolder = relativePathToFile.slice(\n 0,\n relativePathToFile.length - 1,\n );\n if (relativeFolder.length) {\n relativeFolder.push('');\n }\n relativePath =\n (pathArray.join('../') || './') + relativeFolder.join('/');\n break;\n }\n }\n\n const fileName = filePathParts[filePathParts.length - 1]!;\n // TODO: parser - cache responses\n return `${relativePath}${splitNameAndExtension(fileName).name}`;\n }\n\n public remove(options?: Parameters<typeof fs.rmSync>[1]) {\n fs.rmSync(this._path, options);\n }\n\n /**\n * Removes last node form the stack. Works as undo.\n */\n public removeNode() {\n this._items = this._items.slice(0, this._items.length - 1);\n }\n\n private _setName(fileName: string) {\n if (fileName.includes('index')) {\n return fileName;\n }\n\n const { extension, name } = splitNameAndExtension(fileName);\n return [name, 'gen', extension].filter(Boolean).join('.');\n }\n\n public toString(separator: string = '\\n') {\n let output: string[] = [];\n if (this._headers.length) {\n output.push(this._headers.join('\\n'));\n }\n const importsStringArray: string[] = [];\n for (const [_module, moduleMap] of this._imports.entries()) {\n const imports = Array.from(moduleMap.values());\n const node = compiler.namedImportDeclarations({\n imports,\n module: _module,\n });\n importsStringArray.push(tsNodeToString({ node }));\n }\n if (importsStringArray.length) {\n output.push(importsStringArray.join('\\n'));\n }\n output = output.concat(\n this._items.map((node) =>\n typeof node === 'string'\n ? node\n : tsNodeToString({ node, unescape: true }),\n ),\n );\n return output.join(separator);\n }\n\n public write(separator = '\\n') {\n if (this.isEmpty()) {\n this.remove({ force: true });\n return;\n }\n\n let dir = this._path;\n if (typeof this._path === 'string') {\n const parts = this._path.split(path.sep);\n dir = parts.slice(0, parts.length - 1).join(path.sep);\n }\n ensureDirSync(dir);\n fs.writeFileSync(this._path, this.toString(separator));\n }\n}\n\ninterface EnsureUniqueIdentifierData {\n $ref: string;\n case: StringCase | undefined;\n count?: number;\n create?: boolean;\n /**\n * Transforms name obtained from `$ref` before it's passed to `stringCase()`.\n */\n nameTransformer?: (name: string) => string;\n namespace: Namespace;\n}\n\nconst ensureUniqueIdentifier = ({\n $ref,\n case: identifierCase,\n count = 1,\n create = false,\n nameTransformer,\n namespace,\n}: EnsureUniqueIdentifierData): Identifier => {\n const parts = $ref.split('/');\n const name = parts[parts.length - 1] || '';\n\n if (!name) {\n return {\n created: false,\n name: '',\n };\n }\n\n const refValue = namespace[$ref];\n if (refValue) {\n return {\n created: false,\n name: refValue.name,\n };\n }\n\n const nameWithTransform = nameTransformer?.(name) ?? name;\n let nameWithCasing = stringCase({\n case: identifierCase,\n value: nameWithTransform,\n });\n\n if (count > 1) {\n nameWithCasing = `${nameWithCasing}${count}`;\n }\n\n let nameValue = namespace[nameWithCasing];\n if (nameValue) {\n if (nameValue.$ref === $ref) {\n return {\n created: false,\n name: nameValue.name,\n };\n }\n\n return ensureUniqueIdentifier({\n $ref,\n case: identifierCase,\n count: count + 1,\n create,\n nameTransformer,\n namespace,\n });\n }\n\n if (!create) {\n return {\n created: false,\n name: '',\n };\n }\n\n nameValue = {\n $ref,\n name: ensureValidIdentifier(nameWithCasing),\n };\n namespace[nameWithCasing] = nameValue;\n namespace[nameValue.$ref] = nameValue;\n\n return {\n created: true,\n name: nameValue.name,\n };\n};\n\nconst splitNameAndExtension = (fileName: string) => {\n const match = fileName.match(/\\.[0-9a-z]+$/i);\n const extension = match ? match[0].slice(1) : '';\n const name = fileName.slice(\n 0,\n fileName.length - (extension ? extension.length + 1 : 0),\n );\n return { extension, name };\n};\n","import { compiler } from '../compiler';\nimport { getClientPlugin } from '../plugins/@hey-api/client-core/utils';\nimport type { Files } from '../types/utils';\nimport { getConfig, legacyNameFromConfig } from '../utils/config';\nimport { TypeScriptFile } from './files';\n\nexport const generateIndexFile = ({ files }: { files: Files }): void => {\n const config = getConfig();\n\n files.index = new TypeScriptFile({\n dir: config.output.path,\n name: 'index.ts',\n });\n\n if (legacyNameFromConfig(config)) {\n files.index.add(\n compiler.exportNamedDeclaration({\n exports: legacyNameFromConfig(config)!,\n module: `./${legacyNameFromConfig(config)}`,\n }),\n );\n }\n\n if (config.exportCore) {\n files.index.add(\n compiler.exportNamedDeclaration({\n exports: 'ApiError',\n module: './core/ApiError',\n }),\n );\n if (config.plugins['@hey-api/sdk']?.response === 'response') {\n files.index.add(\n compiler.exportNamedDeclaration({\n exports: { asType: true, name: 'ApiResult' },\n module: './core/ApiResult',\n }),\n );\n }\n if (legacyNameFromConfig(config)) {\n files.index.add(\n compiler.exportNamedDeclaration({\n exports: 'BaseHttpRequest',\n module: './core/BaseHttpRequest',\n }),\n );\n }\n const clientPlugin = getClientPlugin(config);\n if (clientPlugin.name !== 'legacy/angular') {\n files.index.add(\n compiler.exportNamedDeclaration({\n exports: ['CancelablePromise', 'CancelError'],\n module: './core/CancelablePromise',\n }),\n );\n }\n files.index.add(\n compiler.exportNamedDeclaration({\n exports: ['OpenAPI', { asType: true, name: 'OpenAPIConfig' }],\n module: './core/OpenAPI',\n }),\n );\n }\n\n Object.keys(files)\n .sort()\n .forEach((name) => {\n const file = files[name]!;\n\n if (name === 'index' || file.isEmpty()) {\n return;\n }\n\n if (['sdk', 'types'].includes(name)) {\n files.index!.add(\n compiler.exportAllDeclaration({\n module: `./${file.nameWithoutExtension()}`,\n }),\n );\n }\n });\n};\n","import path from 'node:path';\n\nimport { compiler } from '../compiler';\nimport { parseIR } from '../ir/parser';\nimport type { IR } from '../ir/types';\nimport type { OpenApi } from '../openApi';\nimport { getClientPlugin } from '../plugins/@hey-api/client-core/utils';\nimport type { Client } from '../types/client';\nimport type { Files } from '../types/utils';\nimport { getConfig, isLegacyClient } from '../utils/config';\nimport type { Templates } from '../utils/handlebars';\nimport { generateLegacyClientClass } from './class';\nimport { generateClientBundle } from './client';\nimport { generateLegacyCore } from './core';\nimport { TypeScriptFile } from './files';\nimport { generateIndexFile } from './indexFile';\nimport { removeDirSync } from './utils';\n\n/**\n * Write our OpenAPI client, using the given templates at the given output\n * @param openApi {@link OpenApi} Dereferenced OpenAPI specification\n * @param client Client containing models, schemas, and services\n * @param templates Templates wrapper with all loaded Handlebars templates\n */\nexport const generateLegacyOutput = async ({\n client,\n openApi,\n templates,\n}: {\n client: Client;\n openApi: unknown;\n templates: Templates;\n}): Promise<void> => {\n const config = getConfig();\n\n const spec = openApi as OpenApi;\n\n // TODO: parser - move to config.input\n if (client) {\n if (\n config.plugins['@hey-api/sdk']?.include &&\n config.plugins['@hey-api/sdk'].asClass\n ) {\n const regexp = new RegExp(config.plugins['@hey-api/sdk'].include);\n client.services = client.services.filter((service) =>\n regexp.test(service.name),\n );\n }\n\n if (config.plugins['@hey-api/typescript']?.include) {\n const regexp = new RegExp(config.plugins['@hey-api/typescript'].include);\n client.models = client.models.filter((model) => regexp.test(model.name));\n }\n }\n\n const outputPath = path.resolve(config.output.path);\n\n if (config.output.clean) {\n removeDirSync(outputPath);\n }\n\n const clientPlugin = getClientPlugin(config);\n if (\n !isLegacyClient(config) &&\n 'bundle' in clientPlugin &&\n clientPlugin.bundle\n ) {\n generateClientBundle({\n outputPath,\n plugin: clientPlugin,\n });\n }\n\n // deprecated files\n await generateLegacyClientClass(spec, outputPath, client, templates);\n await generateLegacyCore(\n path.resolve(config.output.path, 'core'),\n client,\n templates,\n );\n\n const files: Files = {};\n\n for (const name of config.pluginOrder) {\n const plugin = config.plugins[name]!;\n const outputParts = (plugin.output ?? '').split('/');\n const outputDir = path.resolve(\n config.output.path,\n ...outputParts.slice(0, outputParts.length - 1),\n );\n files[plugin.name] = new TypeScriptFile({\n dir: outputDir,\n name: `${outputParts[outputParts.length - 1]}.ts`,\n });\n plugin._handlerLegacy({\n client,\n files,\n openApi: spec,\n plugin: plugin as never,\n });\n }\n\n generateIndexFile({ files });\n\n Object.entries(files).forEach(([name, file]) => {\n if (config.dryRun) {\n return;\n }\n\n if (name === 'index') {\n file.write();\n } else {\n file.write('\\n\\n');\n }\n });\n};\n\nexport const generateOutput = async ({ context }: { context: IR.Context }) => {\n const outputPath = path.resolve(context.config.output.path);\n\n if (context.config.output.clean) {\n removeDirSync(outputPath);\n }\n\n const client = getClientPlugin(context.config);\n if ('bundle' in client && client.bundle) {\n generateClientBundle({\n outputPath,\n plugin: client,\n });\n }\n\n for (const name of context.config.pluginOrder) {\n const plugin = context.config.plugins[name]!;\n plugin._handler({\n context,\n plugin: plugin as never,\n });\n }\n\n await parseIR({ context });\n\n if (!context.config.dryRun) {\n const indexFile = context.createFile({\n id: '_index',\n path: 'index',\n });\n\n for (const file of Object.values(context.files)) {\n const fileName = file.nameWithoutExtension();\n\n if (fileName === indexFile.nameWithoutExtension()) {\n continue;\n }\n\n if (\n !file.isEmpty() &&\n file.exportFromIndex &&\n context.config.output.indexFile\n ) {\n // TODO: parser - add export method for more granular control over\n // what's exported so we can support named exports\n indexFile.add(\n compiler.exportAllDeclaration({\n module: `./${fileName}`,\n }),\n );\n }\n\n file.write('\\n\\n');\n }\n\n if (context.config.output.indexFile) {\n indexFile.write();\n }\n }\n};\n","// copy-pasted from @hey-api/client-fetch\nexport const mergeHeaders = (\n ...headers: Array<RequestInit['headers'] | undefined>\n): Headers => {\n const mergedHeaders = new Headers();\n for (const header of headers) {\n if (!header || typeof header !== 'object') {\n continue;\n }\n\n const iterator =\n header instanceof Headers ? header.entries() : Object.entries(header);\n\n for (const [key, value] of iterator) {\n if (value === null) {\n mergedHeaders.delete(key);\n } else if (Array.isArray(value)) {\n for (const v of value) {\n mergedHeaders.append(key, v as string);\n }\n } else if (value !== undefined) {\n // assume object headers are meant to be JSON stringified, i.e. their\n // content value in OpenAPI specification is 'application/json'\n mergedHeaders.set(\n key,\n typeof value === 'object' ? JSON.stringify(value) : (value as string),\n );\n }\n }\n }\n return mergedHeaders;\n};\n","import {\n $RefParser,\n getResolvedInput,\n type JSONSchema,\n sendRequest,\n} from '@hey-api/json-schema-ref-parser';\n\nimport { mergeHeaders } from './mergeHeaders';\nimport type { Config } from './types/config';\nimport type { WatchValues } from './types/types';\n\ninterface SpecResponse {\n data: JSONSchema;\n error?: undefined;\n response?: undefined;\n}\n\ninterface SpecError {\n data?: undefined;\n error: 'not-modified' | 'not-ok';\n response: Response;\n}\n\nexport const getSpec = async ({\n fetchOptions,\n inputPath,\n timeout,\n watch,\n}: {\n fetchOptions?: RequestInit;\n inputPath: Config['input']['path'];\n timeout: number;\n watch: WatchValues;\n}): Promise<SpecResponse | SpecError> => {\n const refParser = new $RefParser();\n const resolvedInput = getResolvedInput({ pathOrUrlOrSchema: inputPath });\n\n let arrayBuffer: ArrayBuffer | undefined;\n // boolean signals whether the file has **definitely** changed\n let hasChanged: boolean | undefined;\n let response: Response | undefined;\n\n if (resolvedInput.type === 'url') {\n // do NOT send HEAD request on first run or if unsupported\n if (watch.lastValue && watch.isHeadMethodSupported !== false) {\n try {\n const request = await sendRequest({\n fetchOptions: {\n method: 'HEAD',\n ...fetchOptions,\n headers: mergeHeaders(fetchOptions?.headers, watch.headers),\n },\n timeout,\n url: resolvedInput.path,\n });\n\n if (request.response.status >= 300) {\n return {\n error: 'not-ok',\n response: request.response,\n };\n }\n\n response = request.response;\n } catch (error) {\n return {\n error: 'not-ok',\n response: new Response(error.message),\n };\n }\n\n if (!response.ok && watch.isHeadMethodSupported) {\n // assume the server is no longer running\n // do nothing, it might be restarted later\n return {\n error: 'not-ok',\n response,\n };\n }\n\n if (watch.isHeadMethodSupported === undefined) {\n watch.isHeadMethodSupported = response.ok;\n }\n\n if (response.status === 304) {\n return {\n error: 'not-modified',\n response,\n };\n }\n\n if (hasChanged === undefined) {\n const eTag = response.headers.get('ETag');\n if (eTag) {\n hasChanged = eTag !== watch.headers.get('If-None-Match');\n\n if (hasChanged) {\n watch.headers.set('If-None-Match', eTag);\n }\n }\n }\n\n if (hasChanged === undefined) {\n const lastModified = response.headers.get('Last-Modified');\n if (lastModified) {\n hasChanged = lastModified !== watch.headers.get('If-Modified-Since');\n\n if (hasChanged) {\n watch.headers.set('If-Modified-Since', lastModified);\n }\n }\n }\n\n // we definitely know the input has not changed\n if (hasChanged === false) {\n return {\n error: 'not-modified',\n response,\n };\n }\n }\n\n try {\n const request = await sendRequest({\n fetchOptions: {\n method: 'GET',\n ...fetchOptions,\n },\n timeout,\n url: resolvedInput.path,\n });\n\n if (request.response.status >= 300) {\n return {\n error: 'not-ok',\n response: request.response,\n };\n }\n\n response = request.response;\n } catch (error) {\n return {\n error: 'not-ok',\n response: new Response(error.message),\n };\n }\n\n if (!response.ok) {\n // assume the server is no longer running\n // do nothing, it might be restarted later\n return {\n error: 'not-ok',\n response,\n };\n }\n\n arrayBuffer = response.body\n ? await response.arrayBuffer()\n : new ArrayBuffer(0);\n\n if (hasChanged === undefined) {\n const content = new TextDecoder().decode(arrayBuffer);\n hasChanged = content !== watch.lastValue;\n watch.lastValue = content;\n }\n } else {\n // we do not support watch mode for files or raw spec data\n if (!watch.lastValue) {\n watch.lastValue = resolvedInput.type;\n } else {\n hasChanged = false;\n }\n }\n\n if (hasChanged === false) {\n return {\n error: 'not-modified',\n response: response!,\n };\n }\n\n const data = await refParser.bundle({\n arrayBuffer,\n pathOrUrlOrSchema: undefined,\n resolvedInput,\n });\n\n return {\n data,\n };\n};\n","export const irRef = '#/ir/';\n\nexport const isRefOpenApiComponent = ($ref: string): boolean => {\n const parts = refToParts($ref);\n // reusable components are nested within components/<namespace>/<name>\n return parts.length === 3 && parts[0] === 'components';\n};\n\n/**\n * Returns the reusable component name from `$ref`.\n */\nexport const refToName = ($ref: string): string => {\n const parts = refToParts($ref);\n const name = parts[parts.length - 1]!;\n // refs using unicode characters become encoded, didn't investigate why\n // but the suspicion is this comes from `@hey-api/json-schema-ref-parser`\n return decodeURI(name);\n};\n\nconst refToParts = ($ref: string): string[] => {\n // Remove the leading `#` and split by `/` to traverse the object\n const parts = $ref.replace(/^#\\//, '').split('/');\n return parts;\n};\n\nexport const resolveRef = <T>({\n $ref,\n spec,\n}: {\n $ref: string;\n spec: Record<string, any>;\n}): T => {\n // refs using unicode characters become encoded, didn't investigate why\n // but the suspicion is this comes from `@hey-api/json-schema-ref-parser`\n const parts = refToParts(decodeURI($ref));\n\n let current = spec;\n\n for (const part of parts) {\n const p = part as keyof typeof current;\n if (current[p] === undefined) {\n throw new Error(`Reference not found: ${$ref}`);\n }\n current = current[p];\n }\n\n return current as T;\n};\n","import path from 'node:path';\n\nimport { TypeScriptFile } from '../generate/files';\nimport type { Config, StringCase } from '../types/config';\nimport type { Files } from '../types/utils';\nimport { resolveRef } from '../utils/ref';\nimport type { IR } from './types';\n\ninterface ContextFile {\n /**\n * Should the exports from this file be re-exported in the index barrel file?\n */\n exportFromIndex?: boolean;\n /**\n * Unique file identifier.\n */\n id: string;\n /**\n * Define casing for identifiers in this file.\n */\n identifierCase?: StringCase;\n /**\n * Relative file path to the output path.\n * @example\n * 'bar/foo.ts'\n */\n path: string;\n}\n\ninterface Events {\n /**\n * Called after parsing.\n */\n after: () => void;\n /**\n * Called before parsing.\n */\n before: () => void;\n operation: (args: {\n method: keyof IR.PathItemObject;\n operation: IR.OperationObject;\n path: string;\n }) => void;\n parameter: (args: {\n $ref: string;\n name: string;\n parameter: IR.ParameterObject;\n }) => void;\n requestBody: (args: {\n $ref: string;\n name: string;\n requestBody: IR.RequestBodyObject;\n }) => void;\n schema: (args: {\n $ref: string;\n name: string;\n schema: IR.SchemaObject;\n }) => void;\n server: (args: { server: IR.ServerObject }) => void;\n}\n\ntype Listeners = {\n [T in keyof Events]?: Array<Events[T]>;\n};\n\nexport class IRContext<Spec extends Record<string, any> = any> {\n /**\n * Configuration for parsing and generating the output. This\n * is a mix of user-provided and default values.\n */\n public config: Config;\n /**\n * A map of files that will be generated from `spec`.\n */\n public files: Files;\n /**\n * Intermediate representation model obtained from `spec`.\n */\n public ir: IR.Model;\n /**\n * Resolved specification from `input`.\n */\n public spec: Spec;\n\n /**\n * A map of event listeners.\n */\n private listeners: Listeners;\n\n constructor({ config, spec }: { config: Config; spec: Spec }) {\n this.config = config;\n this.files = {};\n this.ir = {};\n this.listeners = {};\n this.spec = spec;\n }\n\n /**\n * Notify all event listeners about `event`.\n */\n public async broadcast<T extends keyof Events>(\n event: T,\n ...args: Parameters<Events[T]>\n ): Promise<void> {\n if (!this.listeners[event]) {\n return;\n }\n\n await Promise.all(\n this.listeners[event].map((callbackFn, index) => {\n try {\n // @ts-expect-error\n const response = callbackFn(...args);\n return Promise.resolve(response);\n } catch (error) {\n console.error(\n `🔥 Event broadcast: \"${event}\"\\nindex: ${index}\\narguments: ${JSON.stringify(args, null, 2)}`,\n );\n throw error;\n }\n }),\n );\n }\n\n /**\n * Create and return a new TypeScript file. Also set the current file context\n * to the newly created file.\n */\n public createFile(file: ContextFile): TypeScriptFile {\n // TODO: parser - handle attempt to create duplicate\n const outputParts = file.path.split('/');\n const outputDir = path.resolve(\n this.config.output.path,\n ...outputParts.slice(0, outputParts.length - 1),\n );\n const createdFile = new TypeScriptFile({\n dir: outputDir,\n exportFromIndex: file.exportFromIndex,\n identifierCase: file.identifierCase,\n name: `${outputParts[outputParts.length - 1]}.ts`,\n });\n this.files[file.id] = createdFile;\n return createdFile;\n }\n\n /**\n * Returns a specific file by ID from `files`.\n */\n public file({ id }: Pick<ContextFile, 'id'>): TypeScriptFile | undefined {\n return this.files[id];\n }\n\n // TODO: parser - works the same as resolveRef, but for IR schemas.\n // for now, they map 1:1, but if they diverge (like with OpenAPI 2.0),\n // we will want to rewrite $refs at parse time, so they continue pointing\n // to the correct IR location\n public resolveIrRef<T>($ref: string) {\n return resolveRef<T>({\n $ref,\n spec: this.ir,\n });\n }\n\n /**\n * Returns a resolved reference from `spec`.\n */\n public resolveRef<T>($ref: string) {\n return resolveRef<T>({\n $ref,\n spec: this.spec,\n });\n }\n\n /**\n * Register a new `event` listener.\n */\n public subscribe<T extends keyof Events>(\n event: T,\n callbackFn: Events[T],\n ): void {\n if (!this.listeners[event]) {\n this.listeners[event] = [];\n }\n this.listeners[event].push(callbackFn);\n }\n}\n","type Filter = RegExp | ReadonlyArray<string>;\ntype Filters = ReadonlyArray<Filter> | undefined;\n\nconst isFiltersMatch = ({\n $ref,\n filters,\n schema,\n}: {\n $ref: string;\n filters: NonNullable<Filters>;\n schema: Record<string, unknown>;\n}): boolean => {\n for (const filter of filters) {\n if (filter instanceof RegExp) {\n filter.lastIndex = 0;\n if (filter.test($ref)) {\n return true;\n }\n } else {\n const field = filter[0] || '';\n const value = filter[1];\n if (value === undefined) {\n if (schema[field]) {\n return true;\n }\n } else if (schema[field] === value) {\n return true;\n }\n }\n }\n\n return false;\n};\n\n/**\n * Exclude takes precedence over include.\n */\nexport const canProcessRef = ({\n excludeFilters,\n includeFilters,\n ...state\n}: {\n $ref: string;\n excludeFilters: Filters;\n includeFilters: Filters;\n schema: Record<string, unknown>;\n}): boolean => {\n if (!excludeFilters && !includeFilters) {\n return true;\n }\n\n if (excludeFilters) {\n if (isFiltersMatch({ ...state, filters: excludeFilters })) {\n return false;\n }\n }\n\n if (includeFilters) {\n return isFiltersMatch({ ...state, filters: includeFilters });\n }\n\n return true;\n};\n\nconst createFilter = (matcher: string): Filter => {\n if (matcher.startsWith('@')) {\n return matcher.slice(1).split(':');\n }\n\n return new RegExp(matcher);\n};\n\nexport const createFilters = (\n matchers: ReadonlyArray<string> | string | undefined,\n): Filters => {\n if (!matchers) {\n return;\n }\n\n if (typeof matchers === 'string') {\n return [createFilter(matchers)];\n }\n\n return matchers.map((matcher) => createFilter(matcher));\n};\n","import type { IR } from '../../../ir/types';\n\nexport const mergeParametersObjects = ({\n source,\n target,\n}: {\n source: IR.ParametersObject | undefined;\n target: IR.ParametersObject | undefined;\n}): IR.ParametersObject | undefined => {\n const result = { ...target };\n\n if (source) {\n if (source.cookie) {\n if (result.cookie) {\n result.cookie = {\n ...result.cookie,\n ...source.cookie,\n };\n } else {\n result.cookie = source.cookie;\n }\n }\n\n if (source.header) {\n if (result.header) {\n result.header = {\n ...result.header,\n ...source.header,\n };\n } else {\n result.header = source.header;\n }\n }\n\n if (source.path) {\n if (result.path) {\n result.path = {\n ...result.path,\n ...source.path,\n };\n } else {\n result.path = source.path;\n }\n }\n\n if (source.query) {\n if (result.query) {\n result.query = {\n ...result.query,\n ...source.query,\n };\n } else {\n result.query = source.query;\n }\n }\n }\n\n if (!Object.keys(result).length) {\n return;\n }\n\n return result;\n};\n","import { illegalStartCharactersRegExp } from '../../../utils/regexp';\n\nexport const ensureValidTypeScriptJavaScriptIdentifier = (name: string) => {\n const replaced = name.replace(/[^$\\u200c\\u200d\\p{ID_Continue}]/gu, '_');\n illegalStartCharactersRegExp.lastIndex = 0;\n const startsWithIllegalCharacter =\n illegalStartCharactersRegExp.test(replaced);\n const valid = startsWithIllegalCharacter ? `_${replaced}` : replaced;\n return valid;\n};\n\n/**\n * Sanitizes namespace identifiers so they are valid TypeScript identifiers of a certain form.\n *\n * 1: Remove any leading characters that are illegal as starting character of a typescript identifier.\n * 2: Replace illegal characters in remaining part of type name with hyphen (-).\n *\n * Step 1 should perhaps instead also replace illegal characters with underscore, or prefix with it, like sanitizeEnumName\n * does. The way this is now one could perhaps end up removing all characters, if all are illegal start characters. It\n * would be sort of a breaking change to do so, though, previously generated code might change then.\n *\n * JavaScript identifier regexp pattern retrieved from https://developer.mozilla.org/docs/Web/JavaScript/Reference/Lexical_grammar#identifiers\n *\n * The output of this is expected to be converted to PascalCase\n */\nexport const sanitizeNamespaceIdentifier = (name: string) =>\n name\n .replace(/^[^\\p{ID_Start}]+/u, '')\n .replace(/[^$\\u200c\\u200d\\p{ID_Continue}]/gu, '-')\n .replace(/[$+]/g, '-');\n\nexport const sanitizeOperationParameterName = (name: string) => {\n const withoutBrackets = name.replace('[]', 'Array');\n return sanitizeNamespaceIdentifier(withoutBrackets);\n};\n","import type { IR } from '../../../ir/types';\nimport { stringCase } from '../../../utils/stringCase';\nimport { sanitizeNamespaceIdentifier } from '../../common/parser/sanitize';\n\n/**\n * Verifies that operation ID is unique. For now, we only warn when this isn't\n * true as people like to not follow this part of the specification. In the\n * future, we should add a strict check and throw on duplicate identifiers.\n */\nexport const ensureUniqueOperationId = ({\n context,\n id,\n method,\n operationIds,\n path,\n}: {\n context: IR.Context;\n id: string | undefined;\n method: IR.OperationObject['method'];\n operationIds: Map<string, string>;\n path: keyof IR.PathsObject;\n}) => {\n if (!id) {\n return;\n }\n\n const operationKey = `${method.toUpperCase()} ${path}`;\n\n if (operationIds.has(id)) {\n if (context.config.logs.level !== 'silent') {\n // TODO: parser - support throw on duplicate\n console.warn(\n `❗️ Duplicate operationId: ${id} in ${operationKey}. Please ensure your operation IDs are unique. This behavior is not supported and will likely lead to unexpected results.`,\n );\n }\n } else {\n operationIds.set(id, operationKey);\n }\n};\n\n/**\n * Returns an operation ID to use across the application. By default, we try\n * to use the provided ID. If it's not provided or the SDK is configured\n * to exclude it, we generate operation ID from its location.\n */\nexport const operationToId = ({\n context,\n id,\n method,\n path,\n}: {\n context: IR.Context;\n id: string | undefined;\n method: string;\n path: string;\n}): string => {\n if (\n id &&\n (!context.config.plugins['@hey-api/sdk'] ||\n context.config.plugins['@hey-api/sdk'].operationId)\n ) {\n return stringCase({\n case: 'camelCase',\n value: sanitizeNamespaceIdentifier(id),\n });\n }\n\n const urlWithoutPlaceholders = path\n .replace(/{(.*?)}/g, 'by-$1')\n // replace slashes with hyphens for camelcase method at the end\n .replace(/[/:+]/g, '-');\n\n return stringCase({\n case: 'camelCase',\n value: `${method}-${urlWithoutPlaceholders}`,\n });\n};\n","const fileLikeRegExp =\n /^(application\\/(pdf|rtf|msword|vnd\\.(ms-|openxmlformats-officedocument\\.)|zip|x-(7z|tar|rar|zip|iso)|octet-stream|gzip|x-msdownload|json\\+download|xml|x-yaml|x-7z-compressed|x-tar)|text\\/(yaml|css|javascript)|audio\\/(mpeg|wav)|video\\/(mp4|x-matroska)|image\\/(vnd\\.adobe\\.photoshop|svg\\+xml))(; ?charset=[^;]+)?$/i;\nconst jsonMimeRegExp = /^application\\/(.*\\+)?json(;.*)?$/i;\nconst multipartFormDataMimeRegExp = /^multipart\\/form-data(;.*)?$/i;\nconst textMimeRegExp = /^text\\/[a-z0-9.+-]+(;.*)?$/i;\nconst xWwwFormUrlEncodedMimeRegExp =\n /^application\\/x-www-form-urlencoded(;.*)?$/i;\n\nexport type IRMediaType = 'form-data' | 'json' | 'text' | 'url-search-params';\n\nexport const isMediaTypeFileLike = ({\n mediaType,\n}: {\n mediaType: string;\n}): boolean => {\n fileLikeRegExp.lastIndex = 0;\n return fileLikeRegExp.test(mediaType);\n};\n\nexport const mediaTypeToIrMediaType = ({\n mediaType,\n}: {\n mediaType: string;\n}): IRMediaType | undefined => {\n jsonMimeRegExp.lastIndex = 0;\n if (jsonMimeRegExp.test(mediaType)) {\n return 'json';\n }\n\n multipartFormDataMimeRegExp.lastIndex = 0;\n if (multipartFormDataMimeRegExp.test(mediaType)) {\n return 'form-data';\n }\n\n textMimeRegExp.lastIndex = 0;\n if (textMimeRegExp.test(mediaType)) {\n return 'text';\n }\n\n xWwwFormUrlEncodedMimeRegExp.lastIndex = 0;\n if (xWwwFormUrlEncodedMimeRegExp.test(mediaType)) {\n return 'url-search-params';\n }\n};\n","import type { IRMediaType } from '../../../ir/mediaType';\nimport {\n isMediaTypeFileLike,\n mediaTypeToIrMediaType,\n} from '../../../ir/mediaType';\nimport type {\n ReferenceObject,\n ResponseObject,\n SchemaObject,\n} from '../types/spec';\n\ninterface Content {\n mediaType: string;\n schema: SchemaObject | ReferenceObject | undefined;\n type: IRMediaType | undefined;\n}\n\nexport const contentToSchema = ({\n content,\n}: {\n content: Content;\n}): SchemaObject | undefined => {\n const { mediaType, schema } = content;\n\n if (schema && '$ref' in schema) {\n return {\n allOf: [{ ...schema }],\n };\n }\n\n if (!schema) {\n if (isMediaTypeFileLike({ mediaType })) {\n return {\n format: 'binary',\n type: 'string',\n };\n }\n return;\n }\n\n if (\n schema.type === 'string' &&\n !schema.format &&\n isMediaTypeFileLike({ mediaType })\n ) {\n return {\n ...schema,\n format: 'binary',\n };\n }\n\n return schema;\n};\n\nexport const mediaTypeObject = ({\n mimeTypes,\n response,\n}: {\n mimeTypes: ReadonlyArray<string> | undefined;\n response: Pick<ResponseObject, 'schema'>;\n}): Content | undefined => {\n // return the first supported MIME type\n for (const mediaType of mimeTypes ?? []) {\n return {\n mediaType,\n schema: response.schema,\n type: mediaTypeToIrMediaType({ mediaType }),\n };\n }\n};\n","import type { Config } from '../types/config';\nimport type { IR } from './types';\n\nexport const DEFAULT_PAGINATION_KEYWORDS = [\n 'after',\n 'before',\n 'cursor',\n 'offset',\n 'page',\n 'start',\n] as const;\n\nexport function getPaginationKeywordsRegExp({\n keywords = DEFAULT_PAGINATION_KEYWORDS,\n}: Config['input']['pagination'] = {}): RegExp {\n if (keywords.length === 0) {\n keywords = DEFAULT_PAGINATION_KEYWORDS;\n }\n const pattern = `^(${keywords.join('|')})$`;\n return new RegExp(pattern);\n}\n\nexport interface Pagination {\n in: string;\n name: string;\n schema: IR.SchemaObject;\n}\n","import type { IR } from './types';\n\n/**\n * Simply adds `items` to the schema. Also handles setting the logical operator\n * and avoids setting it for a single item or tuples.\n */\nexport const addItemsToSchema = ({\n items,\n logicalOperator = 'or',\n mutateSchemaOneItem = false,\n schema,\n}: {\n items: Array<IR.SchemaObject>;\n logicalOperator?: IR.SchemaObject['logicalOperator'];\n mutateSchemaOneItem?: boolean;\n schema: IR.SchemaObject;\n}) => {\n if (!items.length) {\n return schema;\n }\n\n if (schema.type === 'tuple') {\n schema.items = items;\n return schema;\n }\n\n if (items.length !== 1) {\n schema.items = items;\n schema.logicalOperator = logicalOperator;\n return schema;\n }\n\n if (mutateSchemaOneItem) {\n // bring composition up to avoid extraneous brackets\n schema = {\n ...schema,\n ...items[0],\n };\n return schema;\n }\n\n schema.items = items;\n return schema;\n};\n","import { refToName } from '../../../utils/ref';\n\nexport const discriminatorValue = (\n $ref: string,\n mapping?: Record<string, string>,\n) => {\n for (const name in mapping) {\n const refMapped = mapping[name];\n if (refMapped === $ref) {\n return name;\n }\n }\n return refToName($ref);\n};\n","/**\n * Accepts `accessScopes` from two schemas and returns a merged and\n * deduplicated value.\n */\nexport const mergeSchemaAccessScopes = (\n a: ReadonlyArray<'read' | 'write'> | undefined,\n b: ReadonlyArray<'read' | 'write'> | undefined,\n): ReadonlyArray<'read' | 'write'> | undefined => {\n if (!a?.length) {\n return b?.length ? b : undefined;\n }\n\n if (!b?.length) {\n return a;\n }\n\n const mergedScopes = new Set(a);\n\n for (const scope of b) {\n mergedScopes.add(scope);\n }\n\n return mergedScopes.size > a.length ? Array.from(mergedScopes) : a;\n};\n","import type { IR } from '../../../ir/types';\nimport { addItemsToSchema } from '../../../ir/utils';\nimport { refToName } from '../../../utils/ref';\nimport type {\n SchemaState,\n SchemaType,\n SchemaWithRequired,\n} from '../../shared/types/schema';\nimport { discriminatorValue } from '../../shared/utils/discriminator';\nimport { mergeSchemaAccessScopes } from '../../shared/utils/schema';\nimport type { SchemaObject } from '../types/spec';\n\nexport const getSchemaType = ({\n schema,\n}: {\n schema: SchemaObject;\n}): SchemaType<SchemaObject> | undefined => {\n if (schema.type) {\n return schema.type;\n }\n\n // infer object based on the presence of properties\n if (schema.properties) {\n return 'object';\n }\n};\n\nconst parseSchemaJsDoc = ({\n irSchema,\n schema,\n}: {\n irSchema: IR.SchemaObject;\n schema: SchemaObject;\n}) => {\n if (schema.description) {\n irSchema.description = schema.description;\n }\n\n if (schema.title) {\n irSchema.title = schema.title;\n }\n};\n\nconst parseSchemaMeta = ({\n irSchema,\n schema,\n}: {\n irSchema: IR.SchemaObject;\n schema: SchemaObject;\n}) => {\n if (schema.default !== undefined) {\n irSchema.default = schema.default;\n }\n\n if (schema.exclusiveMaximum) {\n if (schema.maximum !== undefined) {\n irSchema.exclusiveMaximum = schema.maximum;\n }\n } else if (schema.maximum !== undefined) {\n irSchema.maximum = schema.maximum;\n }\n\n if (schema.exclusiveMinimum) {\n if (schema.minimum !== undefined) {\n irSchema.exclusiveMinimum = schema.minimum;\n }\n } else if (schema.minimum !== undefined) {\n irSchema.minimum = schema.minimum;\n }\n\n if (schema.format) {\n irSchema.format = schema.format;\n }\n\n if (schema.maxItems !== undefined) {\n irSchema.maxItems = schema.maxItems;\n }\n\n if (schema.maxLength !== undefined) {\n irSchema.maxLength = schema.maxLength;\n }\n\n if (schema.minItems !== undefined) {\n irSchema.minItems = schema.minItems;\n }\n\n if (schema.minLength !== undefined) {\n irSchema.minLength = schema.minLength;\n }\n\n if (schema.pattern) {\n irSchema.pattern = schema.pattern;\n }\n\n if (schema.readOnly) {\n irSchema.accessScope = 'read';\n irSchema.accessScopes = mergeSchemaAccessScopes(irSchema.accessScopes, [\n 'read',\n ]);\n }\n};\n\nconst parseArray = ({\n context,\n irSchema = {},\n schema,\n state,\n}: {\n context: IR.Context;\n irSchema?: IR.SchemaObject;\n schema: SchemaObject;\n state: SchemaState;\n}): IR.SchemaObject => {\n if (schema.maxItems && schema.maxItems === schema.minItems) {\n irSchema.type = 'tuple';\n } else {\n irSchema.type = 'array';\n }\n\n let schemaItems: Array<IR.SchemaObject> = [];\n\n if (schema.items) {\n const irItemsSchema = schemaToIrSchema({\n context,\n schema: schema.items,\n state,\n });\n\n irSchema.accessScopes = mergeSchemaAccessScopes(\n irSchema.accessScopes,\n irItemsSchema.accessScopes,\n );\n\n if (\n !schemaItems.length &&\n schema.maxItems &&\n schema.maxItems === schema.minItems\n ) {\n schemaItems = Array(schema.maxItems).fill(irItemsSchema);\n } else {\n if ('$ref' in schema.items) {\n schemaItems.push(irItemsSchema);\n } else {\n const ofArray = schema.items.allOf;\n if (ofArray && ofArray.length > 1 && !schema.items['x-nullable']) {\n // bring composition up to avoid incorrectly nested arrays\n irSchema = {\n ...irSchema,\n ...irItemsSchema,\n };\n } else {\n schemaItems.push(irItemsSchema);\n }\n }\n }\n }\n\n irSchema = addItemsToSchema({\n items: schemaItems,\n schema: irSchema,\n });\n\n return irSchema;\n};\n\nconst parseBoolean = ({\n irSchema = {},\n}: {\n context: IR.Context;\n irSchema?: IR.SchemaObject;\n schema: SchemaObject;\n state: SchemaState;\n}): IR.SchemaObject => {\n irSchema.type = 'boolean';\n\n return irSchema;\n};\n\nconst parseNumber = ({\n irSchema = {},\n schema,\n}: {\n context: IR.Context;\n irSchema?: IR.SchemaObject;\n schema: SchemaWithRequired<SchemaObject, 'type'>;\n state: SchemaState;\n}): IR.SchemaObject => {\n irSchema.type = schema.type;\n\n return irSchema;\n};\n\nconst parseObject = ({\n context,\n irSchema = {},\n schema,\n state,\n}: {\n context: IR.Context;\n irSchema?: IR.SchemaObject;\n schema: SchemaObject;\n state: SchemaState;\n}): IR.SchemaObject => {\n irSchema.type = 'object';\n\n const schemaProperties: Record<string, IR.SchemaObject> = {};\n\n for (const name in schema.properties) {\n const property = schema.properties[name]!;\n if (typeof property === 'boolean') {\n // TODO: parser - handle boolean properties\n } else {\n const irPropertySchema = schemaToIrSchema({\n context,\n schema: property,\n state,\n });\n irSchema.accessScopes = mergeSchemaAccessScopes(\n irSchema.accessScopes,\n irPropertySchema.accessScopes,\n );\n schemaProperties[name] = irPropertySchema;\n }\n }\n\n if (Object.keys(schemaProperties).length) {\n irSchema.properties = schemaProperties;\n }\n\n if (schema.additionalProperties === undefined) {\n if (!irSchema.properties) {\n irSchema.additionalProperties = {\n type: 'unknown',\n };\n }\n } else if (typeof schema.additionalProperties === 'boolean') {\n irSchema.additionalProperties = {\n type: schema.additionalProperties ? 'unknown' : 'never',\n };\n } else {\n const irAdditionalPropertiesSchema = schemaToIrSchema({\n context,\n schema: schema.additionalProperties,\n state,\n });\n // no need to add \"any\" additional properties if there are no defined properties\n if (\n irSchema.properties ||\n irAdditionalPropertiesSchema.type !== 'unknown'\n ) {\n irSchema.additionalProperties = irAdditionalPropertiesSchema;\n }\n }\n\n if (schema.required) {\n irSchema.required = schema.required;\n }\n\n return irSchema;\n};\n\nconst parseString = ({\n irSchema = {},\n}: {\n context: IR.Context;\n irSchema?: IR.SchemaObject;\n schema: SchemaObject;\n state: SchemaState;\n}): IR.SchemaObject => {\n irSchema.type = 'string';\n\n return irSchema;\n};\n\nconst initIrSchema = ({\n schema,\n}: {\n schema: SchemaObject;\n}): IR.SchemaObject => {\n const irSchema: IR.SchemaObject = {};\n\n parseSchemaJsDoc({\n irSchema,\n schema,\n });\n\n return irSchema;\n};\n\nconst parseAllOf = ({\n context,\n schema,\n state,\n}: {\n context: IR.Context;\n schema: SchemaWithRequired<SchemaObject, 'allOf'>;\n state: SchemaState;\n}): IR.SchemaObject => {\n let irSchema = initIrSchema({ schema });\n\n const schemaItems: Array<IR.SchemaObject> = [];\n const schemaType = getSchemaType({ schema });\n\n const compositionSchemas = schema.allOf;\n\n for (const compositionSchema of compositionSchemas) {\n const irCompositionSchema = schemaToIrSchema({\n context,\n schema: compositionSchema,\n state,\n });\n\n irSchema.accessScopes = mergeSchemaAccessScopes(\n irSchema.accessScopes,\n irCompositionSchema.accessScopes,\n );\n\n if (schema.required) {\n if (irCompositionSchema.required) {\n irCompositionSchema.required = [\n ...irCompositionSchema.required,\n ...schema.required,\n ];\n } else {\n irCompositionSchema.required = schema.required;\n }\n }\n\n schemaItems.push(irCompositionSchema);\n\n if (compositionSchema.$ref) {\n const ref = context.resolveRef<SchemaObject>(compositionSchema.$ref);\n // `$ref` should be passed from the root `parseSchema()` call\n if (ref.discriminator && state.$ref) {\n const irDiscriminatorSchema: IR.SchemaObject = {\n properties: {\n [ref.discriminator]: {\n const: discriminatorValue(state.$ref),\n type: 'string',\n },\n },\n type: 'object',\n };\n if (ref.required?.includes(ref.discriminator)) {\n irDiscriminatorSchema.required = [ref.discriminator];\n }\n schemaItems.push(irDiscriminatorSchema);\n }\n\n if (!state.circularReferenceTracker.has(compositionSchema.$ref)) {\n const irRefSchema = schemaToIrSchema({\n context,\n schema: ref,\n state: {\n ...state,\n $ref: compositionSchema.$ref,\n },\n });\n irSchema.accessScopes = mergeSchemaAccessScopes(\n irSchema.accessScopes,\n irRefSchema.accessScopes,\n );\n }\n }\n }\n\n if (schemaType === 'object') {\n const irObjectSchema = parseOneType({\n context,\n schema: {\n ...schema,\n type: 'object',\n },\n state,\n });\n\n irSchema.accessScopes = mergeSchemaAccessScopes(\n irSchema.accessScopes,\n irObjectSchema.accessScopes,\n );\n\n if (irObjectSchema.properties) {\n for (const requiredProperty of irObjectSchema.required ?? []) {\n if (!irObjectSchema.properties[requiredProperty]) {\n for (const compositionSchema of compositionSchemas) {\n // TODO: parser - this could be probably resolved more accurately\n const finalCompositionSchema = compositionSchema.$ref\n ? context.resolveRef<SchemaObject>(compositionSchema.$ref)\n : compositionSchema;\n\n if (\n getSchemaType({ schema: finalCompositionSchema }) === 'object'\n ) {\n const irCompositionSchema = parseOneType({\n context,\n schema: {\n ...finalCompositionSchema,\n type: 'object',\n },\n state,\n });\n\n irSchema.accessScopes = mergeSchemaAccessScopes(\n irSchema.accessScopes,\n irCompositionSchema.accessScopes,\n );\n\n if (irCompositionSchema.properties?.[requiredProperty]) {\n irObjectSchema.properties[requiredProperty] =\n irCompositionSchema.properties[requiredProperty];\n break;\n }\n }\n }\n }\n }\n schemaItems.push(irObjectSchema);\n }\n }\n\n irSchema = addItemsToSchema({\n items: schemaItems,\n logicalOperator: 'and',\n mutateSchemaOneItem: true,\n schema: irSchema,\n });\n\n if (schema['x-nullable']) {\n // nest composition to avoid producing an intersection with null\n const nestedItems: Array<IR.SchemaObject> = [\n {\n type: 'null',\n },\n ];\n\n if (schemaItems.length) {\n nestedItems.unshift(irSchema);\n }\n\n irSchema = {\n items: nestedItems,\n logicalOperator: 'or',\n };\n\n // TODO: parser - this is a hack to bring back up meta fields\n // without it, some schemas were missing original deprecated\n if (nestedItems[0]!.deprecated) {\n irSchema.deprecated = nestedItems[0]!.deprecated;\n }\n\n // TODO: parser - this is a hack to bring back up meta fields\n // without it, some schemas were missing original description\n if (nestedItems[0]!.description) {\n irSchema.description = nestedItems[0]!.description;\n }\n }\n\n return irSchema;\n};\n\nconst parseEnum = ({\n context,\n schema,\n state,\n}: {\n context: IR.Context;\n schema: SchemaWithRequired<SchemaObject, 'enum'>;\n state: SchemaState;\n}): IR.SchemaObject => {\n let irSchema = initIrSchema({ schema });\n\n irSchema.type = 'enum';\n\n const schemaItems: Array<IR.SchemaObject> = [];\n\n for (const [index, enumValue] of schema.enum.entries()) {\n const typeOfEnumValue = typeof enumValue;\n let enumType: SchemaType<SchemaObject> | 'null' | undefined;\n\n if (\n typeOfEnumValue === 'string' ||\n typeOfEnumValue === 'number' ||\n typeOfEnumValue === 'boolean'\n ) {\n enumType = typeOfEnumValue;\n } else if (enumValue === null) {\n // nullable must be true\n if (schema['x-nullable']) {\n enumType = 'null';\n }\n } else {\n console.warn(\n '🚨',\n `unhandled \"${typeOfEnumValue}\" typeof value \"${enumValue}\" for enum`,\n schema.enum,\n );\n }\n\n if (!enumType) {\n continue;\n }\n\n const irTypeSchema = parseOneType({\n context,\n schema: {\n description: schema['x-enum-descriptions']?.[index],\n title:\n schema['x-enum-varnames']?.[index] ?? schema['x-enumNames']?.[index],\n // cast enum to string temporarily\n type: enumType === 'null' ? 'string' : enumType,\n },\n state,\n });\n\n irTypeSchema.const = enumValue;\n\n // cast enum back\n if (enumType === 'null') {\n irTypeSchema.type = enumType;\n }\n\n irSchema.accessScopes = mergeSchemaAccessScopes(\n irSchema.accessScopes,\n irTypeSchema.accessScopes,\n );\n\n schemaItems.push(irTypeSchema);\n }\n\n irSchema = addItemsToSchema({\n items: schemaItems,\n schema: irSchema,\n });\n\n return irSchema;\n};\n\nconst parseRef = ({\n context,\n schema,\n state,\n}: {\n context: IR.Context;\n schema: SchemaWithRequired<SchemaObject, '$ref'>;\n state: SchemaState;\n}): IR.SchemaObject => {\n const irSchema: IR.SchemaObject = {};\n\n // refs using unicode characters become encoded, didn't investigate why\n // but the suspicion is this comes from `@hey-api/json-schema-ref-parser`\n irSchema.$ref = decodeURI(schema.$ref);\n\n // rewrite definitions refs as the internal schema follows OpenAPI 3.x syntax\n // and stores all definitions as reusable schemas\n irSchema.$ref = irSchema.$ref.replace(\n /#\\/definitions\\/([^/]+)/g,\n '#/components/schemas/$1',\n );\n\n if (!state.circularReferenceTracker.has(schema.$ref)) {\n const refSchema = context.resolveRef<SchemaObject>(schema.$ref);\n const irRefSchema = schemaToIrSchema({\n context,\n schema: refSchema,\n state: {\n ...state,\n $ref: schema.$ref,\n },\n });\n irSchema.accessScopes = mergeSchemaAccessScopes(\n irSchema.accessScopes,\n irRefSchema.accessScopes,\n );\n }\n\n return irSchema;\n};\n\nconst parseNullableType = ({\n context,\n irSchema,\n schema,\n state,\n}: {\n context: IR.Context;\n irSchema?: IR.SchemaObject;\n schema: SchemaWithRequired<SchemaObject, 'type'>;\n state: SchemaState;\n}): IR.SchemaObject => {\n if (!irSchema) {\n irSchema = initIrSchema({ schema });\n }\n\n const typeIrSchema: IR.SchemaObject = {};\n\n parseSchemaMeta({\n irSchema: typeIrSchema,\n schema,\n });\n\n if (typeIrSchema.default === null) {\n // clear to avoid duplicate default inside the non-null schema.\n // this would produce incorrect validator output\n delete typeIrSchema.default;\n }\n\n const schemaItems: Array<IR.SchemaObject> = [\n parseOneType({\n context,\n irSchema: typeIrSchema,\n schema,\n state,\n }),\n {\n type: 'null',\n },\n ];\n\n irSchema = addItemsToSchema({\n items: schemaItems,\n schema: irSchema,\n });\n\n return irSchema;\n};\n\nconst parseType = ({\n context,\n schema,\n state,\n}: {\n context: IR.Context;\n schema: SchemaWithRequired<SchemaObject, 'type'>;\n state: SchemaState;\n}): IR.SchemaObject => {\n const irSchema = initIrSchema({ schema });\n\n parseSchemaMeta({\n irSchema,\n schema,\n });\n\n const type = getSchemaType({ schema });\n\n if (!type) {\n return irSchema;\n }\n\n if (schema['x-nullable']) {\n return parseNullableType({\n context,\n irSchema,\n schema: {\n ...schema,\n type,\n },\n state,\n });\n }\n\n return parseOneType({\n context,\n irSchema,\n schema: {\n ...schema,\n type,\n },\n state,\n });\n};\n\nconst parseOneType = ({\n context,\n irSchema,\n schema,\n state,\n}: {\n context: IR.Context;\n irSchema?: IR.SchemaObject;\n schema: SchemaWithRequired<SchemaObject, 'type'>;\n state: SchemaState;\n}): IR.SchemaObject => {\n if (!irSchema) {\n irSchema = initIrSchema({ schema });\n\n parseSchemaMeta({\n irSchema,\n schema,\n });\n }\n\n switch (schema.type) {\n case 'array':\n return parseArray({\n context,\n irSchema,\n schema,\n state,\n });\n case 'boolean':\n return parseBoolean({\n context,\n irSchema,\n schema,\n state,\n });\n case 'integer':\n case 'number':\n return parseNumber({\n context,\n irSchema,\n schema,\n state,\n });\n case 'object':\n return parseObject({\n context,\n irSchema,\n schema,\n state,\n });\n case 'string':\n return parseString({\n context,\n irSchema,\n schema,\n state,\n });\n default:\n // gracefully handle invalid type\n return parseUnknown({\n context,\n irSchema,\n schema,\n state,\n });\n }\n};\n\nconst parseUnknown = ({\n irSchema,\n schema,\n}: {\n context: IR.Context;\n irSchema?: IR.SchemaObject;\n schema: SchemaObject;\n state: SchemaState;\n}): IR.SchemaObject => {\n if (!irSchema) {\n irSchema = initIrSchema({ schema });\n }\n\n irSchema.type = 'unknown';\n\n parseSchemaMeta({\n irSchema,\n schema,\n });\n\n return irSchema;\n};\n\nexport const schemaToIrSchema = ({\n context,\n schema,\n state,\n}: {\n context: IR.Context;\n schema: SchemaObject;\n state: SchemaState | undefined;\n}): IR.SchemaObject => {\n if (!state) {\n state = {\n circularReferenceTracker: new Set(),\n };\n }\n\n if (state.$ref) {\n state.circularReferenceTracker.add(state.$ref);\n }\n\n if (schema.$ref) {\n return parseRef({\n context,\n schema: schema as SchemaWithRequired<SchemaObject, '$ref'>,\n state,\n });\n }\n\n if (schema.enum) {\n return parseEnum({\n context,\n schema: schema as SchemaWithRequired<SchemaObject, 'enum'>,\n state,\n });\n }\n\n if (schema.allOf) {\n return parseAllOf({\n context,\n schema: schema as SchemaWithRequired<SchemaObject, 'allOf'>,\n state,\n });\n }\n\n // infer object based on the presence of properties\n if (schema.type || schema.properties) {\n return parseType({\n context,\n schema: schema as SchemaWithRequired<SchemaObject, 'type'>,\n state,\n });\n }\n\n return parseUnknown({\n context,\n schema,\n state,\n });\n};\n\nexport const parseSchema = ({\n $ref,\n context,\n schema,\n}: {\n $ref: string;\n context: IR.Context;\n schema: SchemaObject;\n}) => {\n if (!context.ir.components) {\n context.ir.components = {};\n }\n\n if (!context.ir.components.schemas) {\n context.ir.components.schemas = {};\n }\n\n context.ir.components.schemas[refToName($ref)] = schemaToIrSchema({\n context,\n schema,\n state: {\n $ref,\n circularReferenceTracker: new Set(),\n },\n });\n};\n","import { getPaginationKeywordsRegExp } from '../../../ir/pagination';\nimport type { IR } from '../../../ir/types';\nimport type { SchemaType } from '../../shared/types/schema';\nimport type { ParameterObject, ReferenceObject } from '../types/spec';\nimport type { SchemaObject } from '../types/spec';\nimport { getSchemaType } from './schema';\n\nconst isPaginationType = (\n schemaType: SchemaType<SchemaObject> | undefined,\n): boolean =>\n schemaType === 'boolean' ||\n schemaType === 'integer' ||\n schemaType === 'number' ||\n schemaType === 'string';\n\n// We handle only simple values for now, up to 1 nested field\nexport const paginationField = ({\n context,\n name,\n schema,\n}: {\n context: IR.Context;\n name: string;\n schema:\n | ParameterObject\n | SchemaObject\n | ReferenceObject\n | {\n in: undefined;\n };\n}): boolean | string => {\n const paginationRegExp = getPaginationKeywordsRegExp(\n context.config.input.pagination,\n );\n if (paginationRegExp.test(name)) {\n return true;\n }\n\n if ('$ref' in schema) {\n const ref = context.resolveRef<ParameterObject | SchemaObject>(\n schema.$ref ?? '',\n );\n\n if ('in' in ref && ref.in) {\n const refSchema =\n 'schema' in ref\n ? ref.schema\n : {\n ...ref,\n in: undefined,\n };\n\n return paginationField({\n context,\n name,\n schema: refSchema,\n });\n }\n\n return paginationField({\n context,\n name,\n schema: ref,\n });\n }\n\n if ('in' in schema) {\n if (!schema.in) {\n return false;\n }\n\n const finalSchema =\n 'schema' in schema\n ? schema.schema\n : {\n ...schema,\n in: undefined,\n };\n\n return paginationField({\n context,\n name,\n schema: finalSchema,\n });\n }\n\n for (const name in schema.properties) {\n const paginationRegExp = getPaginationKeywordsRegExp(\n context.config.input.pagination,\n );\n\n if (paginationRegExp.test(name)) {\n const property = schema.properties[name]!;\n\n if (typeof property !== 'boolean' && !('$ref' in property)) {\n const schemaType = getSchemaType({ schema: property });\n // TODO: resolve deeper references\n\n if (isPaginationType(schemaType)) {\n return name;\n }\n }\n }\n }\n\n for (const allOf of schema.allOf ?? []) {\n const pagination = paginationField({\n context,\n name,\n schema: allOf,\n });\n if (pagination) {\n return pagination;\n }\n }\n\n return false;\n};\n","import type { IR, IRBodyObject } from '../../../ir/types';\nimport {\n ensureUniqueOperationId,\n operationToId,\n} from '../../shared/utils/operation';\nimport type {\n OperationObject,\n ParameterObject,\n PathItemObject,\n ResponseObject,\n SchemaObject,\n SecuritySchemeObject,\n} from '../types/spec';\nimport { contentToSchema, mediaTypeObject } from './mediaType';\nimport { paginationField } from './pagination';\nimport { schemaToIrSchema } from './schema';\n\ninterface Operation\n extends Omit<OperationObject, 'parameters'>,\n Pick<IR.OperationObject, 'id' | 'parameters'> {\n requestBody?: OperationObject['parameters'];\n}\n\nconst parseOperationJsDoc = ({\n irOperation,\n operation,\n}: {\n irOperation: IR.OperationObject;\n operation: Operation;\n}) => {\n if (operation.deprecated !== undefined) {\n irOperation.deprecated = operation.deprecated;\n }\n\n if (operation.description) {\n irOperation.description = operation.description;\n }\n\n if (operation.summary) {\n irOperation.summary = operation.summary;\n }\n\n if (operation.tags?.length) {\n irOperation.tags = operation.tags;\n }\n};\n\nconst initIrOperation = ({\n method,\n operation,\n path,\n}: Pick<IR.OperationObject, 'method' | 'path'> & {\n operation: Operation;\n}): IR.OperationObject => {\n const irOperation: IR.OperationObject = {\n id: operation.id,\n method,\n path,\n };\n\n parseOperationJsDoc({\n irOperation,\n operation,\n });\n\n return irOperation;\n};\n\nconst operationToIrOperation = ({\n context,\n method,\n operation,\n path,\n securitySchemesMap,\n}: Pick<IR.OperationObject, 'method' | 'path'> & {\n context: IR.Context;\n operation: Operation;\n securitySchemesMap: Map<string, SecuritySchemeObject>;\n}): IR.OperationObject => {\n const irOperation = initIrOperation({ method, operation, path });\n\n if (operation.parameters) {\n irOperation.parameters = operation.parameters;\n }\n\n let isRequestBodyRequired = false;\n const requestBodyObject: IRBodyObject = {\n mediaType: '',\n schema: {\n properties: {},\n required: [],\n type: 'object',\n },\n };\n const requestBodyObjectRequired: Array<string> = [];\n\n for (const requestBodyParameter of operation.requestBody ?? []) {\n const requestBody =\n '$ref' in requestBodyParameter\n ? context.resolveRef<ParameterObject>(requestBodyParameter.$ref)\n : requestBodyParameter;\n const schema: SchemaObject =\n requestBody.in === 'body'\n ? requestBody.schema\n : {\n ...requestBody,\n format: requestBody.type === 'file' ? 'binary' : requestBody.format,\n required: undefined,\n type: requestBody.type === 'file' ? 'string' : requestBody.type,\n };\n const content = mediaTypeObject({\n mimeTypes: operation.consumes,\n response: { schema },\n });\n\n if (content) {\n const pagination = paginationField({\n context,\n name: '',\n schema:\n content.schema && '$ref' in content.schema\n ? {\n allOf: [{ ...content.schema }],\n description: requestBody.description,\n }\n : {\n description: requestBody.description,\n ...content.schema,\n },\n });\n\n const irSchema = schemaToIrSchema({\n context,\n schema:\n '$ref' in requestBody\n ? {\n allOf: [\n {\n ...requestBody,\n $ref: requestBody.$ref as string,\n required: [],\n type: 'string',\n },\n ],\n description: requestBody.description,\n }\n : content.schema && '$ref' in content.schema\n ? {\n allOf: [{ ...content.schema }],\n description: requestBody.description,\n }\n : {\n description: requestBody.description,\n ...content.schema,\n },\n state: undefined,\n });\n\n requestBodyObject.mediaType = content.mediaType;\n\n if (requestBody.in === 'body') {\n requestBodyObject.schema = irSchema;\n } else {\n requestBodyObject.schema.properties![requestBody.name] = irSchema;\n\n if (requestBody.required) {\n requestBodyObjectRequired.push(requestBody.name);\n }\n }\n\n if (pagination) {\n requestBodyObject.pagination = pagination;\n }\n\n if (content.type) {\n requestBodyObject.type = content.type;\n }\n }\n\n if (requestBody.required) {\n isRequestBodyRequired = true;\n }\n }\n\n if (requestBodyObject.mediaType) {\n if (requestBodyObjectRequired.length) {\n requestBodyObject.schema.required = requestBodyObjectRequired;\n }\n\n irOperation.body = requestBodyObject;\n\n if (isRequestBodyRequired) {\n irOperation.body.required = isRequestBodyRequired;\n }\n }\n\n for (const name in operation.responses) {\n if (!irOperation.responses) {\n irOperation.responses = {};\n }\n\n const response = operation.responses[name]!;\n const responseObject =\n '$ref' in response\n ? context.resolveRef<ResponseObject>(response.$ref)\n : response;\n const content = mediaTypeObject({\n // assume JSON by default\n mimeTypes: operation.produces ? operation.produces : ['application/json'],\n response: responseObject,\n });\n\n if (content) {\n irOperation.responses[name] = {\n mediaType: content.mediaType,\n schema: schemaToIrSchema({\n context,\n schema: {\n description: responseObject.description,\n ...contentToSchema({ content }),\n },\n state: undefined,\n }),\n };\n } else {\n irOperation.responses[name] = {\n schema: {\n description: responseObject.description,\n // TODO: parser - cover all statues with empty response bodies\n // 1xx, 204, 205, 304\n type: name === '204' ? 'void' : 'unknown',\n },\n };\n }\n }\n\n if (operation.security) {\n const securitySchemeObjects: Array<IR.SecurityObject> = [];\n\n for (const securityRequirementObject of operation.security) {\n for (const name in securityRequirementObject) {\n const securitySchemeObject = securitySchemesMap.get(name);\n\n if (!securitySchemeObject) {\n continue;\n }\n\n let irSecuritySchemeObject: IR.SecurityObject | undefined;\n\n if (securitySchemeObject.type === 'apiKey') {\n irSecuritySchemeObject = securitySchemeObject;\n }\n\n if (securitySchemeObject.type === 'basic') {\n irSecuritySchemeObject = {\n description: securitySchemeObject.description,\n scheme: 'basic',\n type: 'http',\n };\n }\n\n if (securitySchemeObject.type === 'oauth2') {\n irSecuritySchemeObject = {\n description: securitySchemeObject.description,\n flows: {},\n type: 'oauth2',\n };\n\n switch (securitySchemeObject.flow) {\n case 'accessCode':\n irSecuritySchemeObject.flows.authorizationCode = {\n authorizationUrl: securitySchemeObject.authorizationUrl!,\n scopes: securitySchemeObject.scopes,\n tokenUrl: securitySchemeObject.tokenUrl!,\n };\n break;\n case 'application':\n irSecuritySchemeObject.flows.clientCredentials = {\n scopes: securitySchemeObject.scopes,\n tokenUrl: securitySchemeObject.tokenUrl!,\n };\n break;\n case 'implicit':\n irSecuritySchemeObject.flows.implicit = {\n authorizationUrl: securitySchemeObject.authorizationUrl!,\n scopes: securitySchemeObject.scopes,\n };\n break;\n case 'password':\n irSecuritySchemeObject.flows.password = {\n scopes: securitySchemeObject.scopes,\n tokenUrl: securitySchemeObject.tokenUrl!,\n };\n break;\n }\n }\n\n if (!irSecuritySchemeObject) {\n continue;\n }\n\n securitySchemeObjects.push(irSecuritySchemeObject);\n }\n }\n\n if (securitySchemeObjects.length) {\n irOperation.security = securitySchemeObjects;\n }\n }\n\n // TODO: parser - handle servers\n // qux: operation.servers\n\n return irOperation;\n};\n\nexport const parseOperation = ({\n context,\n method,\n operation,\n operationIds,\n path,\n securitySchemesMap,\n}: {\n context: IR.Context;\n method: Extract<\n keyof PathItemObject,\n 'delete' | 'get' | 'head' | 'options' | 'patch' | 'post' | 'put' | 'trace'\n >;\n operation: Operation;\n operationIds: Map<string, string>;\n path: keyof IR.PathsObject;\n securitySchemesMap: Map<string, SecuritySchemeObject>;\n}) => {\n ensureUniqueOperationId({\n context,\n id: operation.operationId,\n method,\n operationIds,\n path,\n });\n\n if (!context.ir.paths) {\n context.ir.paths = {};\n }\n\n if (!context.ir.paths[path]) {\n context.ir.paths[path] = {};\n }\n\n operation.id = operationToId({\n context,\n id: operation.operationId,\n method,\n path,\n });\n\n context.ir.paths[path][method] = operationToIrOperation({\n context,\n method,\n operation,\n path,\n securitySchemesMap,\n });\n};\n","import type { IR } from '../../../ir/types';\nimport type {\n OperationObject,\n ParameterObject,\n ReferenceObject,\n SchemaObject,\n} from '../types/spec';\nimport { paginationField } from './pagination';\nimport { schemaToIrSchema } from './schema';\n\ntype Parameter = Exclude<ParameterObject, { in: 'body' }>;\n\n/**\n * Returns default parameter `explode` based on value of `collectionFormat`.\n */\nconst defaultExplode = (\n collectionFormat: Parameter['collectionFormat'],\n): boolean => {\n switch (collectionFormat) {\n case 'multi':\n return true;\n case 'csv':\n case 'pipes':\n case 'ssv':\n case 'tsv':\n default:\n return false;\n }\n};\n\n/**\n * Returns default parameter `style` based on value of `in`.\n */\nconst defaultStyle = (\n _in: Parameter['in'],\n): Required<IR.ParameterObject>['style'] => {\n switch (_in) {\n case 'header':\n case 'path':\n return 'simple';\n case 'query':\n default:\n return 'form';\n }\n};\n\nexport const parametersArrayToObject = ({\n context,\n operation,\n parameters,\n}: {\n context: IR.Context;\n operation: OperationObject;\n parameters?: ReadonlyArray<ParameterObject | ReferenceObject>;\n}): IR.ParametersObject | undefined => {\n if (!parameters || !Object.keys(parameters).length) {\n return;\n }\n\n const parametersObject: IR.ParametersObject = {};\n\n for (const parameterOrReference of parameters) {\n const parameter =\n '$ref' in parameterOrReference\n ? context.resolveRef<ParameterObject>(parameterOrReference.$ref)\n : parameterOrReference;\n\n // push request body parameters into a separate field\n if (parameter.in === 'body' || parameter.in === 'formData') {\n // @ts-expect-error\n if (!operation.requestBody) {\n // @ts-expect-error\n operation.requestBody = [];\n }\n\n // @ts-expect-error\n operation.requestBody.push(parameter);\n continue;\n }\n\n if (!parametersObject[parameter.in]) {\n parametersObject[parameter.in] = {};\n }\n\n parametersObject[parameter.in]![parameter.name] = parameterToIrParameter({\n context,\n parameter,\n });\n }\n\n return parametersObject;\n};\n\nconst parameterToIrParameter = ({\n context,\n parameter,\n}: {\n context: IR.Context;\n parameter: Parameter;\n}): IR.ParameterObject => {\n const schema = parameter;\n\n const finalSchema: SchemaObject =\n schema && '$ref' in schema\n ? {\n allOf: [\n {\n ...schema,\n $ref: schema.$ref as string,\n required: Array.isArray(schema.required) ? schema.required : [],\n type: schema.type as SchemaObject['type'],\n },\n ],\n description: parameter.description,\n }\n : {\n description: parameter.description,\n ...schema,\n required: Array.isArray(schema.required) ? schema.required : [],\n type: schema.type as SchemaObject['type'],\n };\n\n const pagination = paginationField({\n context,\n name: parameter.name,\n schema: finalSchema,\n });\n\n const style = defaultStyle(parameter.in);\n const explode = defaultExplode(parameter.collectionFormat);\n const allowReserved = false;\n\n const irParameter: IR.ParameterObject = {\n allowReserved,\n explode,\n location: parameter.in as IR.ParameterObject['location'],\n name: parameter.name,\n schema: schemaToIrSchema({\n context,\n schema: finalSchema,\n state: undefined,\n }),\n style,\n };\n\n if (parameter.description) {\n irParameter.description = parameter.description;\n }\n\n if (pagination) {\n irParameter.pagination = pagination;\n }\n\n if (parameter.required) {\n irParameter.required = parameter.required;\n }\n\n return irParameter;\n};\n","const parseUrlRegExp =\n /^(([^:/?#]+):)?((\\/\\/)?([^:/?#]*)(:?([^/?#]*)))?([^?#]*)(\\?([^#]*))?(#(.*))?/;\n\ninterface Url {\n host: string;\n path: string;\n port: string;\n protocol: string;\n}\n\nexport const parseUrl = (value: string): Url => {\n const errorResponse: Url = {\n host: '',\n path: '',\n port: '',\n protocol: '',\n };\n\n parseUrlRegExp.lastIndex = 0;\n const match = value.match(parseUrlRegExp);\n\n if (!match) {\n return errorResponse;\n }\n\n const host = match[5] || '';\n\n // value is a relative file system path\n if (host === '.' || host === '..') {\n return errorResponse;\n }\n\n const path = match[8] || '';\n const protocol = match[2] || '';\n\n // value is probably a Windows file system path\n if (protocol.length === 1) {\n return errorResponse;\n }\n\n return {\n host,\n path: path === '/' ? '' : path,\n port: match[7] || '',\n protocol,\n };\n};\n","import type { IR } from '../../../ir/types';\nimport { parseUrl } from '../../../utils/url';\n\nexport const parseServers = ({ context }: { context: IR.Context }) => {\n let schemes: ReadonlyArray<string> = context.spec.schemes ?? [];\n let host = context.spec.host ?? '';\n const path = context.spec.basePath ?? '';\n\n if (typeof context.config.input.path === 'string') {\n const url = parseUrl(context.config.input.path);\n\n if (!schemes.length) {\n if (url.protocol) {\n schemes = [url.protocol] as typeof schemes;\n }\n }\n\n if (!host) {\n host = `${url.host}${url.port ? `:${url.port}` : ''}`;\n }\n }\n\n if (!schemes.length) {\n schemes = [''];\n }\n\n const servers = schemes\n .map((scheme) => `${scheme ? `${scheme}://` : ''}${host}${path}`)\n .filter(Boolean);\n\n if (servers.length) {\n context.ir.servers = servers.map((url) => ({\n url,\n }));\n }\n};\n","import type { IR } from '../../../ir/types';\nimport { canProcessRef, createFilters } from '../../shared/utils/filter';\nimport { mergeParametersObjects } from '../../shared/utils/parameter';\nimport type {\n OpenApiV2_0_X,\n OperationObject,\n PathItemObject,\n PathsObject,\n SecuritySchemeObject,\n} from '../types/spec';\nimport { parseOperation } from './operation';\nimport { parametersArrayToObject } from './parameter';\nimport { parseSchema } from './schema';\nimport { parseServers } from './server';\n\ntype PathKeys<T extends keyof PathsObject = keyof PathsObject> =\n keyof T extends infer K ? (K extends `/${string}` ? K : never) : never;\n\nexport const parseV2_0_X = (context: IR.Context<OpenApiV2_0_X>) => {\n const operationIds = new Map<string, string>();\n const securitySchemesMap = new Map<string, SecuritySchemeObject>();\n\n const excludeFilters = createFilters(context.config.input.exclude);\n const includeFilters = createFilters(context.config.input.include);\n\n const shouldProcessRef = ($ref: string, schema: Record<string, any>) =>\n canProcessRef({\n $ref,\n excludeFilters,\n includeFilters,\n schema,\n });\n\n for (const name in context.spec.securityDefinitions) {\n const securitySchemeObject = context.spec.securityDefinitions[name]!;\n securitySchemesMap.set(name, securitySchemeObject);\n }\n\n if (context.spec.definitions) {\n for (const name in context.spec.definitions) {\n const $ref = `#/definitions/${name}`;\n const schema = context.spec.definitions[name]!;\n\n if (!shouldProcessRef($ref, schema)) {\n continue;\n }\n\n parseSchema({\n $ref,\n context,\n schema,\n });\n }\n }\n\n parseServers({ context });\n\n for (const path in context.spec.paths) {\n if (path.startsWith('x-')) {\n continue;\n }\n\n const pathItem = context.spec.paths[path as PathKeys]!;\n\n const finalPathItem = pathItem.$ref\n ? {\n ...context.resolveRef<PathItemObject>(pathItem.$ref),\n ...pathItem,\n }\n : pathItem;\n\n const commonOperation: OperationObject = {\n consumes: context.spec.consumes,\n produces: context.spec.produces,\n responses: {},\n security: context.spec.security,\n };\n const operationArgs: Omit<Parameters<typeof parseOperation>[0], 'method'> =\n {\n context,\n operation: {\n ...commonOperation,\n id: '',\n parameters: parametersArrayToObject({\n context,\n operation: commonOperation,\n parameters: finalPathItem.parameters,\n }),\n },\n operationIds,\n path: path as PathKeys,\n securitySchemesMap,\n };\n\n const $refDelete = `#/paths${path}/delete`;\n if (\n finalPathItem.delete &&\n shouldProcessRef($refDelete, finalPathItem.delete)\n ) {\n const parameters = mergeParametersObjects({\n source: parametersArrayToObject({\n context,\n operation: finalPathItem.delete,\n parameters: finalPathItem.delete.parameters,\n }),\n target: operationArgs.operation.parameters,\n });\n parseOperation({\n ...operationArgs,\n method: 'delete',\n operation: {\n ...operationArgs.operation,\n ...finalPathItem.delete,\n parameters,\n },\n });\n }\n\n const $refGet = `#/paths${path}/get`;\n if (finalPathItem.get && shouldProcessRef($refGet, finalPathItem.get)) {\n const parameters = mergeParametersObjects({\n source: parametersArrayToObject({\n context,\n operation: finalPathItem.get,\n parameters: finalPathItem.get.parameters,\n }),\n target: operationArgs.operation.parameters,\n });\n parseOperation({\n ...operationArgs,\n method: 'get',\n operation: {\n ...operationArgs.operation,\n ...finalPathItem.get,\n parameters,\n },\n });\n }\n\n const $refHead = `#/paths${path}/head`;\n if (finalPathItem.head && shouldProcessRef($refHead, finalPathItem.head)) {\n const parameters = mergeParametersObjects({\n source: parametersArrayToObject({\n context,\n operation: finalPathItem.head,\n parameters: finalPathItem.head.parameters,\n }),\n target: operationArgs.operation.parameters,\n });\n parseOperation({\n ...operationArgs,\n method: 'head',\n operation: {\n ...operationArgs.operation,\n ...finalPathItem.head,\n parameters,\n },\n });\n }\n\n const $refOptions = `#/paths${path}/options`;\n if (\n finalPathItem.options &&\n shouldProcessRef($refOptions, finalPathItem.options)\n ) {\n const parameters = mergeParametersObjects({\n source: parametersArrayToObject({\n context,\n operation: finalPathItem.options,\n parameters: finalPathItem.options.parameters,\n }),\n target: operationArgs.operation.parameters,\n });\n parseOperation({\n ...operationArgs,\n method: 'options',\n operation: {\n ...operationArgs.operation,\n ...finalPathItem.options,\n parameters,\n },\n });\n }\n\n const $refPatch = `#/paths${path}/patch`;\n if (\n finalPathItem.patch &&\n shouldProcessRef($refPatch, finalPathItem.patch)\n ) {\n const parameters = mergeParametersObjects({\n source: parametersArrayToObject({\n context,\n operation: finalPathItem.patch,\n parameters: finalPathItem.patch.parameters,\n }),\n target: operationArgs.operation.parameters,\n });\n parseOperation({\n ...operationArgs,\n method: 'patch',\n operation: {\n ...operationArgs.operation,\n ...finalPathItem.patch,\n parameters,\n },\n });\n }\n\n const $refPost = `#/paths${path}/post`;\n if (finalPathItem.post && shouldProcessRef($refPost, finalPathItem.post)) {\n const parameters = mergeParametersObjects({\n source: parametersArrayToObject({\n context,\n operation: finalPathItem.post,\n parameters: finalPathItem.post.parameters,\n }),\n target: operationArgs.operation.parameters,\n });\n parseOperation({\n ...operationArgs,\n method: 'post',\n operation: {\n ...operationArgs.operation,\n ...finalPathItem.post,\n parameters,\n },\n });\n }\n\n const $refPut = `#/paths${path}/put`;\n if (finalPathItem.put && shouldProcessRef($refPut, finalPathItem.put)) {\n const parameters = mergeParametersObjects({\n source: parametersArrayToObject({\n context,\n operation: finalPathItem.put,\n parameters: finalPathItem.put.parameters,\n }),\n target: operationArgs.operation.parameters,\n });\n parseOperation({\n ...operationArgs,\n method: 'put',\n operation: {\n ...operationArgs.operation,\n ...finalPathItem.put,\n parameters,\n },\n });\n }\n }\n};\n","import type { IRMediaType } from '../../../ir/mediaType';\nimport {\n isMediaTypeFileLike,\n mediaTypeToIrMediaType,\n} from '../../../ir/mediaType';\nimport type {\n MediaTypeObject,\n ReferenceObject,\n SchemaObject,\n} from '../types/spec';\n\ninterface Content {\n mediaType: string;\n schema: SchemaObject | ReferenceObject | undefined;\n type: IRMediaType | undefined;\n}\n\nexport const contentToSchema = ({\n content,\n}: {\n content: Content;\n}): SchemaObject | undefined => {\n const { mediaType, schema } = content;\n\n if (schema && '$ref' in schema) {\n return {\n allOf: [{ ...schema }],\n };\n }\n\n if (!schema) {\n if (isMediaTypeFileLike({ mediaType })) {\n return {\n format: 'binary',\n type: 'string',\n };\n }\n return;\n }\n\n if (\n schema.type === 'string' &&\n !schema.format &&\n isMediaTypeFileLike({ mediaType })\n ) {\n return {\n ...schema,\n format: 'binary',\n };\n }\n\n return schema;\n};\n\nexport const mediaTypeObject = ({\n content,\n}: {\n content: Record<string, MediaTypeObject> | undefined;\n}): Content | undefined => {\n // return the first supported MIME type\n for (const mediaType in content) {\n return {\n mediaType,\n schema: content[mediaType]!.schema,\n type: mediaTypeToIrMediaType({ mediaType }),\n };\n }\n};\n","import type { IR } from '../../../ir/types';\nimport { addItemsToSchema } from '../../../ir/utils';\nimport { refToName } from '../../../utils/ref';\nimport type {\n SchemaState,\n SchemaType,\n SchemaWithRequired,\n} from '../../shared/types/schema';\nimport { discriminatorValue } from '../../shared/utils/discriminator';\nimport { mergeSchemaAccessScopes } from '../../shared/utils/schema';\nimport type { ReferenceObject, SchemaObject } from '../types/spec';\n\nexport const getSchemaType = ({\n schema,\n}: {\n schema: SchemaObject;\n}): SchemaType<SchemaObject> | undefined => {\n if (schema.type) {\n return schema.type;\n }\n\n // infer object based on the presence of properties\n if (schema.properties) {\n return 'object';\n }\n};\n\nconst parseSchemaJsDoc = ({\n irSchema,\n schema,\n}: {\n irSchema: IR.SchemaObject;\n schema: SchemaObject;\n}) => {\n if (schema.deprecated !== undefined) {\n irSchema.deprecated = schema.deprecated;\n }\n\n if (schema.description) {\n irSchema.description = schema.description;\n }\n\n if (schema.title) {\n irSchema.title = schema.title;\n }\n};\n\nconst parseSchemaMeta = ({\n irSchema,\n schema,\n}: {\n irSchema: IR.SchemaObject;\n schema: SchemaObject;\n}) => {\n if (schema.default !== undefined) {\n irSchema.default = schema.default;\n }\n\n if (schema.exclusiveMaximum) {\n if (schema.maximum !== undefined) {\n irSchema.exclusiveMaximum = schema.maximum;\n }\n } else if (schema.maximum !== undefined) {\n irSchema.maximum = schema.maximum;\n }\n\n if (schema.exclusiveMinimum) {\n if (schema.minimum !== undefined) {\n irSchema.exclusiveMinimum = schema.minimum;\n }\n } else if (schema.minimum !== undefined) {\n irSchema.minimum = schema.minimum;\n }\n\n if (schema.format) {\n irSchema.format = schema.format;\n }\n\n if (schema.maxItems !== undefined) {\n irSchema.maxItems = schema.maxItems;\n }\n\n if (schema.maxLength !== undefined) {\n irSchema.maxLength = schema.maxLength;\n }\n\n if (schema.minItems !== undefined) {\n irSchema.minItems = schema.minItems;\n }\n\n if (schema.minLength !== undefined) {\n irSchema.minLength = schema.minLength;\n }\n\n if (schema.pattern) {\n irSchema.pattern = schema.pattern;\n }\n\n if (schema.readOnly) {\n irSchema.accessScope = 'read';\n irSchema.accessScopes = mergeSchemaAccessScopes(irSchema.accessScopes, [\n 'read',\n ]);\n } else if (schema.writeOnly) {\n irSchema.accessScope = 'write';\n irSchema.accessScopes = mergeSchemaAccessScopes(irSchema.accessScopes, [\n 'write',\n ]);\n }\n};\n\nconst parseArray = ({\n context,\n irSchema = {},\n schema,\n state,\n}: {\n context: IR.Context;\n irSchema?: IR.SchemaObject;\n schema: SchemaObject;\n state: SchemaState;\n}): IR.SchemaObject => {\n if (schema.maxItems && schema.maxItems === schema.minItems) {\n irSchema.type = 'tuple';\n } else {\n irSchema.type = 'array';\n }\n\n let schemaItems: Array<IR.SchemaObject> = [];\n\n if (schema.items) {\n const irItemsSchema = schemaToIrSchema({\n context,\n schema: schema.items,\n state,\n });\n\n irSchema.accessScopes = mergeSchemaAccessScopes(\n irSchema.accessScopes,\n irItemsSchema.accessScopes,\n );\n\n if (\n !schemaItems.length &&\n schema.maxItems &&\n schema.maxItems === schema.minItems\n ) {\n schemaItems = Array(schema.maxItems).fill(irItemsSchema);\n } else {\n if ('$ref' in schema.items) {\n schemaItems.push(irItemsSchema);\n } else {\n const ofArray =\n schema.items.allOf || schema.items.anyOf || schema.items.oneOf;\n if (ofArray && ofArray.length > 1 && !schema.items.nullable) {\n // bring composition up to avoid incorrectly nested arrays\n irSchema = {\n ...irSchema,\n ...irItemsSchema,\n };\n } else {\n schemaItems.push(irItemsSchema);\n }\n }\n }\n }\n\n irSchema = addItemsToSchema({\n items: schemaItems,\n schema: irSchema,\n });\n\n return irSchema;\n};\n\nconst parseBoolean = ({\n irSchema = {},\n}: {\n context: IR.Context;\n irSchema?: IR.SchemaObject;\n schema: SchemaObject;\n state: SchemaState;\n}): IR.SchemaObject => {\n irSchema.type = 'boolean';\n\n return irSchema;\n};\n\nconst parseNumber = ({\n irSchema = {},\n schema,\n}: {\n context: IR.Context;\n irSchema?: IR.SchemaObject;\n schema: SchemaWithRequired<SchemaObject, 'type'>;\n state: SchemaState;\n}): IR.SchemaObject => {\n irSchema.type = schema.type;\n\n return irSchema;\n};\n\nconst parseObject = ({\n context,\n irSchema = {},\n schema,\n state,\n}: {\n context: IR.Context;\n irSchema?: IR.SchemaObject;\n schema: SchemaObject;\n state: SchemaState;\n}): IR.SchemaObject => {\n irSchema.type = 'object';\n\n const schemaProperties: Record<string, IR.SchemaObject> = {};\n\n for (const name in schema.properties) {\n const property = schema.properties[name]!;\n if (typeof property === 'boolean') {\n // TODO: parser - handle boolean properties\n } else {\n const irPropertySchema = schemaToIrSchema({\n context,\n schema: property,\n state,\n });\n irSchema.accessScopes = mergeSchemaAccessScopes(\n irSchema.accessScopes,\n irPropertySchema.accessScopes,\n );\n schemaProperties[name] = irPropertySchema;\n }\n }\n\n if (Object.keys(schemaProperties).length) {\n irSchema.properties = schemaProperties;\n }\n\n if (schema.additionalProperties === undefined) {\n if (!irSchema.properties) {\n irSchema.additionalProperties = {\n type: 'unknown',\n };\n }\n } else if (typeof schema.additionalProperties === 'boolean') {\n irSchema.additionalProperties = {\n type: schema.additionalProperties ? 'unknown' : 'never',\n };\n } else {\n const irAdditionalPropertiesSchema = schemaToIrSchema({\n context,\n schema: schema.additionalProperties,\n state,\n });\n // no need to add \"any\" additional properties if there are no defined properties\n if (\n irSchema.properties ||\n irAdditionalPropertiesSchema.type !== 'unknown'\n ) {\n irSchema.additionalProperties = irAdditionalPropertiesSchema;\n }\n }\n\n if (schema.required) {\n irSchema.required = schema.required;\n }\n\n return irSchema;\n};\n\nconst parseString = ({\n irSchema = {},\n}: {\n context: IR.Context;\n irSchema?: IR.SchemaObject;\n schema: SchemaObject;\n state: SchemaState;\n}): IR.SchemaObject => {\n irSchema.type = 'string';\n\n return irSchema;\n};\n\nconst initIrSchema = ({\n schema,\n}: {\n schema: SchemaObject;\n}): IR.SchemaObject => {\n const irSchema: IR.SchemaObject = {};\n\n parseSchemaJsDoc({\n irSchema,\n schema,\n });\n\n return irSchema;\n};\n\nconst parseAllOf = ({\n context,\n schema,\n state,\n}: {\n context: IR.Context;\n schema: SchemaWithRequired<SchemaObject, 'allOf'>;\n state: SchemaState;\n}): IR.SchemaObject => {\n let irSchema = initIrSchema({ schema });\n\n const schemaItems: Array<IR.SchemaObject> = [];\n const schemaType = getSchemaType({ schema });\n\n const compositionSchemas = schema.allOf;\n\n for (const compositionSchema of compositionSchemas) {\n const irCompositionSchema = schemaToIrSchema({\n context,\n schema: compositionSchema,\n state,\n });\n\n irSchema.accessScopes = mergeSchemaAccessScopes(\n irSchema.accessScopes,\n irCompositionSchema.accessScopes,\n );\n\n if (schema.required) {\n if (irCompositionSchema.required) {\n irCompositionSchema.required = [\n ...irCompositionSchema.required,\n ...schema.required,\n ];\n } else {\n irCompositionSchema.required = schema.required;\n }\n }\n\n schemaItems.push(irCompositionSchema);\n\n if ('$ref' in compositionSchema) {\n const ref = context.resolveRef<SchemaObject>(compositionSchema.$ref);\n // `$ref` should be passed from the root `parseSchema()` call\n if (ref.discriminator && state.$ref) {\n const irDiscriminatorSchema: IR.SchemaObject = {\n properties: {\n [ref.discriminator.propertyName]: {\n const: discriminatorValue(state.$ref, ref.discriminator.mapping),\n type: 'string',\n },\n },\n type: 'object',\n };\n if (ref.required?.includes(ref.discriminator.propertyName)) {\n irDiscriminatorSchema.required = [ref.discriminator.propertyName];\n }\n schemaItems.push(irDiscriminatorSchema);\n }\n\n if (!state.circularReferenceTracker.has(compositionSchema.$ref)) {\n const irRefSchema = schemaToIrSchema({\n context,\n schema: ref,\n state: {\n ...state,\n $ref: compositionSchema.$ref,\n },\n });\n irSchema.accessScopes = mergeSchemaAccessScopes(\n irSchema.accessScopes,\n irRefSchema.accessScopes,\n );\n }\n }\n }\n\n if (schemaType === 'object') {\n const irObjectSchema = parseOneType({\n context,\n schema: {\n ...schema,\n type: 'object',\n },\n state,\n });\n\n irSchema.accessScopes = mergeSchemaAccessScopes(\n irSchema.accessScopes,\n irObjectSchema.accessScopes,\n );\n\n if (irObjectSchema.properties) {\n for (const requiredProperty of irObjectSchema.required ?? []) {\n if (!irObjectSchema.properties[requiredProperty]) {\n for (const compositionSchema of compositionSchemas) {\n // TODO: parser - this could be probably resolved more accurately\n const finalCompositionSchema =\n '$ref' in compositionSchema\n ? context.resolveRef<SchemaObject>(compositionSchema.$ref)\n : compositionSchema;\n\n if (\n getSchemaType({ schema: finalCompositionSchema }) === 'object'\n ) {\n const irCompositionSchema = parseOneType({\n context,\n schema: {\n ...finalCompositionSchema,\n type: 'object',\n },\n state,\n });\n\n irSchema.accessScopes = mergeSchemaAccessScopes(\n irSchema.accessScopes,\n irCompositionSchema.accessScopes,\n );\n\n if (irCompositionSchema.properties?.[requiredProperty]) {\n irObjectSchema.properties[requiredProperty] =\n irCompositionSchema.properties[requiredProperty];\n break;\n }\n }\n }\n }\n }\n schemaItems.push(irObjectSchema);\n }\n }\n\n irSchema = addItemsToSchema({\n items: schemaItems,\n logicalOperator: 'and',\n mutateSchemaOneItem: true,\n schema: irSchema,\n });\n\n if (schema.nullable) {\n // nest composition to avoid producing an intersection with null\n const nestedItems: Array<IR.SchemaObject> = [\n {\n type: 'null',\n },\n ];\n\n if (schemaItems.length) {\n nestedItems.unshift(irSchema);\n }\n\n irSchema = {\n items: nestedItems,\n logicalOperator: 'or',\n };\n\n // TODO: parser - this is a hack to bring back up meta fields\n // without it, some schemas were missing original deprecated\n if (nestedItems[0]!.deprecated) {\n irSchema.deprecated = nestedItems[0]!.deprecated;\n }\n\n // TODO: parser - this is a hack to bring back up meta fields\n // without it, some schemas were missing original description\n if (nestedItems[0]!.description) {\n irSchema.description = nestedItems[0]!.description;\n }\n }\n\n return irSchema;\n};\n\nconst parseAnyOf = ({\n context,\n schema,\n state,\n}: {\n context: IR.Context;\n schema: SchemaWithRequired<SchemaObject, 'anyOf'>;\n state: SchemaState;\n}): IR.SchemaObject => {\n let irSchema = initIrSchema({ schema });\n\n const schemaItems: Array<IR.SchemaObject> = [];\n const schemaType = getSchemaType({ schema });\n\n const compositionSchemas = schema.anyOf;\n\n for (const compositionSchema of compositionSchemas) {\n let irCompositionSchema = schemaToIrSchema({\n context,\n schema: compositionSchema,\n state,\n });\n\n irSchema.accessScopes = mergeSchemaAccessScopes(\n irSchema.accessScopes,\n irCompositionSchema.accessScopes,\n );\n\n // `$ref` should be defined with discriminators\n if (schema.discriminator && '$ref' in compositionSchema) {\n const irDiscriminatorSchema: IR.SchemaObject = {\n properties: {\n [schema.discriminator.propertyName]: {\n const: discriminatorValue(\n compositionSchema.$ref,\n schema.discriminator.mapping,\n ),\n type: 'string',\n },\n },\n type: 'object',\n };\n irCompositionSchema = {\n items: [irDiscriminatorSchema, irCompositionSchema],\n logicalOperator: 'and',\n };\n }\n\n schemaItems.push(irCompositionSchema);\n }\n\n if (schema.nullable) {\n schemaItems.push({ type: 'null' });\n }\n\n irSchema = addItemsToSchema({\n items: schemaItems,\n mutateSchemaOneItem: true,\n schema: irSchema,\n });\n\n if (schemaType === 'object') {\n // nest composition to avoid producing a union with object properties\n const irObjectSchema = parseOneType({\n context,\n schema: {\n ...schema,\n type: 'object',\n },\n state,\n });\n\n irSchema.accessScopes = mergeSchemaAccessScopes(\n irSchema.accessScopes,\n irObjectSchema.accessScopes,\n );\n\n if (irObjectSchema.properties) {\n irSchema = {\n items: [irSchema, irObjectSchema],\n logicalOperator: 'and',\n };\n }\n }\n\n return irSchema;\n};\n\nconst parseEnum = ({\n context,\n schema,\n state,\n}: {\n context: IR.Context;\n schema: SchemaWithRequired<SchemaObject, 'enum'>;\n state: SchemaState;\n}): IR.SchemaObject => {\n let irSchema = initIrSchema({ schema });\n\n irSchema.type = 'enum';\n\n const schemaItems: Array<IR.SchemaObject> = [];\n\n for (const [index, enumValue] of schema.enum.entries()) {\n const typeOfEnumValue = typeof enumValue;\n let enumType: SchemaType<SchemaObject> | 'null' | undefined;\n\n if (\n typeOfEnumValue === 'string' ||\n typeOfEnumValue === 'number' ||\n typeOfEnumValue === 'boolean'\n ) {\n enumType = typeOfEnumValue;\n } else if (enumValue === null) {\n // nullable must be true\n if (schema.nullable) {\n enumType = 'null';\n }\n } else {\n console.warn(\n '🚨',\n `unhandled \"${typeOfEnumValue}\" typeof value \"${enumValue}\" for enum`,\n schema.enum,\n );\n }\n\n if (!enumType) {\n continue;\n }\n\n const irTypeSchema = parseOneType({\n context,\n schema: {\n description: schema['x-enum-descriptions']?.[index],\n title:\n schema['x-enum-varnames']?.[index] ?? schema['x-enumNames']?.[index],\n // cast enum to string temporarily\n type: enumType === 'null' ? 'string' : enumType,\n },\n state,\n });\n\n irTypeSchema.const = enumValue;\n\n // cast enum back\n if (enumType === 'null') {\n irTypeSchema.type = enumType;\n }\n\n irSchema.accessScopes = mergeSchemaAccessScopes(\n irSchema.accessScopes,\n irTypeSchema.accessScopes,\n );\n\n schemaItems.push(irTypeSchema);\n }\n\n irSchema = addItemsToSchema({\n items: schemaItems,\n schema: irSchema,\n });\n\n return irSchema;\n};\n\nconst parseOneOf = ({\n context,\n schema,\n state,\n}: {\n context: IR.Context;\n schema: SchemaWithRequired<SchemaObject, 'oneOf'>;\n state: SchemaState;\n}): IR.SchemaObject => {\n let irSchema = initIrSchema({ schema });\n\n let schemaItems: Array<IR.SchemaObject> = [];\n const schemaType = getSchemaType({ schema });\n\n const compositionSchemas = schema.oneOf;\n\n for (const compositionSchema of compositionSchemas) {\n let irCompositionSchema = schemaToIrSchema({\n context,\n schema: compositionSchema,\n state,\n });\n\n irSchema.accessScopes = mergeSchemaAccessScopes(\n irSchema.accessScopes,\n irCompositionSchema.accessScopes,\n );\n\n // `$ref` should be defined with discriminators\n if (schema.discriminator && '$ref' in compositionSchema) {\n const irDiscriminatorSchema: IR.SchemaObject = {\n properties: {\n [schema.discriminator.propertyName]: {\n const: discriminatorValue(\n compositionSchema.$ref,\n schema.discriminator.mapping,\n ),\n type: 'string',\n },\n },\n type: 'object',\n };\n irCompositionSchema = {\n items: [irDiscriminatorSchema, irCompositionSchema],\n logicalOperator: 'and',\n };\n }\n\n // since we know oneOf will be using \"or\" logical operator, if the parsed\n // composition schema also has an \"or\" operator, we can bring it up\n // to avoid unnecessary brackets\n if (\n irCompositionSchema.logicalOperator === 'or' &&\n irCompositionSchema.items\n ) {\n schemaItems = schemaItems.concat(irCompositionSchema.items);\n } else {\n schemaItems.push(irCompositionSchema);\n }\n }\n\n if (schema.nullable) {\n schemaItems.push({ type: 'null' });\n }\n\n irSchema = addItemsToSchema({\n items: schemaItems,\n mutateSchemaOneItem: true,\n schema: irSchema,\n });\n\n if (schemaType === 'object') {\n // nest composition to avoid producing a union with object properties\n const irObjectSchema = parseOneType({\n context,\n schema: {\n ...schema,\n type: 'object',\n },\n state,\n });\n\n irSchema.accessScopes = mergeSchemaAccessScopes(\n irSchema.accessScopes,\n irObjectSchema.accessScopes,\n );\n\n if (irObjectSchema.properties) {\n irSchema = {\n items: [irSchema, irObjectSchema],\n logicalOperator: 'and',\n };\n }\n }\n\n return irSchema;\n};\n\nconst parseRef = ({\n context,\n schema,\n state,\n}: {\n context: IR.Context;\n schema: ReferenceObject;\n state: SchemaState;\n}): IR.SchemaObject => {\n const irSchema: IR.SchemaObject = {};\n\n // refs using unicode characters become encoded, didn't investigate why\n // but the suspicion is this comes from `@hey-api/json-schema-ref-parser`\n irSchema.$ref = decodeURI(schema.$ref);\n\n if (!state.circularReferenceTracker.has(schema.$ref)) {\n const refSchema = context.resolveRef<SchemaObject>(schema.$ref);\n const irRefSchema = schemaToIrSchema({\n context,\n schema: refSchema,\n state: {\n ...state,\n $ref: schema.$ref,\n },\n });\n irSchema.accessScopes = mergeSchemaAccessScopes(\n irSchema.accessScopes,\n irRefSchema.accessScopes,\n );\n }\n\n return irSchema;\n};\n\nconst parseNullableType = ({\n context,\n irSchema,\n schema,\n state,\n}: {\n context: IR.Context;\n irSchema?: IR.SchemaObject;\n schema: SchemaWithRequired<SchemaObject, 'type'>;\n state: SchemaState;\n}): IR.SchemaObject => {\n if (!irSchema) {\n irSchema = initIrSchema({ schema });\n }\n\n const typeIrSchema: IR.SchemaObject = {};\n\n parseSchemaMeta({\n irSchema: typeIrSchema,\n schema,\n });\n\n if (typeIrSchema.default === null) {\n // clear to avoid duplicate default inside the non-null schema.\n // this would produce incorrect validator output\n delete typeIrSchema.default;\n }\n\n const schemaItems: Array<IR.SchemaObject> = [\n parseOneType({\n context,\n irSchema: typeIrSchema,\n schema,\n state,\n }),\n {\n type: 'null',\n },\n ];\n\n irSchema = addItemsToSchema({\n items: schemaItems,\n schema: irSchema,\n });\n\n return irSchema;\n};\n\nconst parseType = ({\n context,\n schema,\n state,\n}: {\n context: IR.Context;\n schema: SchemaWithRequired<SchemaObject, 'type'>;\n state: SchemaState;\n}): IR.SchemaObject => {\n const irSchema = initIrSchema({ schema });\n\n parseSchemaMeta({\n irSchema,\n schema,\n });\n\n const type = getSchemaType({ schema });\n\n if (!type) {\n return irSchema;\n }\n\n if (!schema.nullable) {\n return parseOneType({\n context,\n irSchema,\n schema: {\n ...schema,\n type,\n },\n state,\n });\n }\n\n return parseNullableType({\n context,\n irSchema,\n schema: {\n ...schema,\n type,\n },\n state,\n });\n};\n\nconst parseOneType = ({\n context,\n irSchema,\n schema,\n state,\n}: {\n context: IR.Context;\n irSchema?: IR.SchemaObject;\n schema: SchemaWithRequired<SchemaObject, 'type'>;\n state: SchemaState;\n}): IR.SchemaObject => {\n if (!irSchema) {\n irSchema = initIrSchema({ schema });\n\n parseSchemaMeta({\n irSchema,\n schema,\n });\n }\n\n switch (schema.type) {\n case 'array':\n return parseArray({\n context,\n irSchema,\n schema,\n state,\n });\n case 'boolean':\n return parseBoolean({\n context,\n irSchema,\n schema,\n state,\n });\n case 'integer':\n case 'number':\n return parseNumber({\n context,\n irSchema,\n schema,\n state,\n });\n case 'object':\n return parseObject({\n context,\n irSchema,\n schema,\n state,\n });\n case 'string':\n return parseString({\n context,\n irSchema,\n schema,\n state,\n });\n default:\n // gracefully handle invalid type\n return parseUnknown({\n context,\n irSchema,\n schema,\n state,\n });\n }\n};\n\nconst parseUnknown = ({\n irSchema,\n schema,\n}: {\n context: IR.Context;\n irSchema?: IR.SchemaObject;\n schema: SchemaObject;\n state: SchemaState;\n}): IR.SchemaObject => {\n if (!irSchema) {\n irSchema = initIrSchema({ schema });\n }\n\n irSchema.type = 'unknown';\n\n parseSchemaMeta({\n irSchema,\n schema,\n });\n\n return irSchema;\n};\n\nexport const schemaToIrSchema = ({\n context,\n schema,\n state,\n}: {\n context: IR.Context;\n schema: SchemaObject | ReferenceObject;\n state: SchemaState | undefined;\n}): IR.SchemaObject => {\n if (!state) {\n state = {\n circularReferenceTracker: new Set(),\n };\n }\n\n if (state.$ref) {\n state.circularReferenceTracker.add(state.$ref);\n }\n\n if ('$ref' in schema) {\n return parseRef({\n context,\n schema,\n state,\n });\n }\n\n if (schema.enum) {\n return parseEnum({\n context,\n schema: schema as SchemaWithRequired<SchemaObject, 'enum'>,\n state,\n });\n }\n\n if (schema.allOf) {\n return parseAllOf({\n context,\n schema: schema as SchemaWithRequired<SchemaObject, 'allOf'>,\n state,\n });\n }\n\n if (schema.anyOf) {\n return parseAnyOf({\n context,\n schema: schema as SchemaWithRequired<SchemaObject, 'anyOf'>,\n state,\n });\n }\n\n if (schema.oneOf) {\n return parseOneOf({\n context,\n schema: schema as SchemaWithRequired<SchemaObject, 'oneOf'>,\n state,\n });\n }\n\n // infer object based on the presence of properties\n if (schema.type || schema.properties) {\n return parseType({\n context,\n schema: schema as SchemaWithRequired<SchemaObject, 'type'>,\n state,\n });\n }\n\n return parseUnknown({\n context,\n schema,\n state,\n });\n};\n\nexport const parseSchema = ({\n $ref,\n context,\n schema,\n}: {\n $ref: string;\n context: IR.Context;\n schema: SchemaObject | ReferenceObject;\n}) => {\n if (!context.ir.components) {\n context.ir.components = {};\n }\n\n if (!context.ir.components.schemas) {\n context.ir.components.schemas = {};\n }\n\n context.ir.components.schemas[refToName($ref)] = schemaToIrSchema({\n context,\n schema,\n state: {\n $ref,\n circularReferenceTracker: new Set(),\n },\n });\n};\n","import { getPaginationKeywordsRegExp } from '../../../ir/pagination';\nimport type { IR } from '../../../ir/types';\nimport type { SchemaType } from '../../shared/types/schema';\nimport type {\n ParameterObject,\n ReferenceObject,\n RequestBodyObject,\n} from '../types/spec';\nimport type { SchemaObject } from '../types/spec';\nimport { mediaTypeObject } from './mediaType';\nimport { getSchemaType } from './schema';\n\nconst isPaginationType = (\n schemaType: SchemaType<SchemaObject> | undefined,\n): boolean =>\n schemaType === 'boolean' ||\n schemaType === 'integer' ||\n schemaType === 'number' ||\n schemaType === 'string';\n\n// We handle only simple values for now, up to 1 nested field\nexport const paginationField = ({\n context,\n name,\n schema,\n}: {\n context: IR.Context;\n name: string;\n schema: SchemaObject | ReferenceObject;\n}): boolean | string => {\n const paginationRegExp = getPaginationKeywordsRegExp(\n context.config.input.pagination,\n );\n if (paginationRegExp.test(name)) {\n return true;\n }\n\n if ('$ref' in schema) {\n const ref = context.resolveRef<\n ParameterObject | RequestBodyObject | SchemaObject\n >(schema.$ref);\n\n if ('content' in ref || 'in' in ref) {\n let refSchema: SchemaObject | ReferenceObject | undefined;\n\n if ('in' in ref) {\n refSchema = ref.schema;\n }\n\n if (!refSchema) {\n // parameter or body\n const content = mediaTypeObject({ content: ref.content });\n if (content?.schema) {\n refSchema = content.schema;\n }\n }\n\n if (!refSchema) {\n return false;\n }\n\n return paginationField({\n context,\n name,\n schema: refSchema,\n });\n }\n\n return paginationField({\n context,\n name,\n schema: ref,\n });\n }\n\n for (const name in schema.properties) {\n const paginationRegExp = getPaginationKeywordsRegExp(\n context.config.input.pagination,\n );\n\n if (paginationRegExp.test(name)) {\n const property = schema.properties[name]!;\n\n if (typeof property !== 'boolean' && !('$ref' in property)) {\n const schemaType = getSchemaType({ schema: property });\n // TODO: resolve deeper references\n\n if (isPaginationType(schemaType)) {\n return name;\n }\n }\n }\n }\n\n for (const allOf of schema.allOf ?? []) {\n const pagination = paginationField({\n context,\n name,\n schema: allOf,\n });\n if (pagination) {\n return pagination;\n }\n }\n\n return false;\n};\n","import type { IR } from '../../../ir/types';\nimport {\n ensureUniqueOperationId,\n operationToId,\n} from '../../shared/utils/operation';\nimport type {\n OperationObject,\n PathItemObject,\n RequestBodyObject,\n ResponseObject,\n SecuritySchemeObject,\n} from '../types/spec';\nimport { contentToSchema, mediaTypeObject } from './mediaType';\nimport { paginationField } from './pagination';\nimport { schemaToIrSchema } from './schema';\n\ninterface Operation\n extends Omit<OperationObject, 'parameters'>,\n Pick<IR.OperationObject, 'id' | 'parameters'> {}\n\nconst parseOperationJsDoc = ({\n irOperation,\n operation,\n}: {\n irOperation: IR.OperationObject;\n operation: Operation;\n}) => {\n if (operation.deprecated !== undefined) {\n irOperation.deprecated = operation.deprecated;\n }\n\n if (operation.description) {\n irOperation.description = operation.description;\n }\n\n if (operation.summary) {\n irOperation.summary = operation.summary;\n }\n\n if (operation.tags?.length) {\n irOperation.tags = operation.tags;\n }\n};\n\nconst initIrOperation = ({\n method,\n operation,\n path,\n}: Pick<IR.OperationObject, 'method' | 'path'> & {\n operation: Operation;\n}): IR.OperationObject => {\n const irOperation: IR.OperationObject = {\n id: operation.id,\n method,\n path,\n };\n\n parseOperationJsDoc({\n irOperation,\n operation,\n });\n\n return irOperation;\n};\n\nconst operationToIrOperation = ({\n context,\n method,\n operation,\n path,\n securitySchemesMap,\n}: Pick<IR.OperationObject, 'method' | 'path'> & {\n context: IR.Context;\n operation: Operation;\n securitySchemesMap: Map<string, SecuritySchemeObject>;\n}): IR.OperationObject => {\n const irOperation = initIrOperation({ method, operation, path });\n\n if (operation.parameters) {\n irOperation.parameters = operation.parameters;\n }\n\n if (operation.requestBody) {\n const requestBody =\n '$ref' in operation.requestBody\n ? context.resolveRef<RequestBodyObject>(operation.requestBody.$ref)\n : operation.requestBody;\n const content = mediaTypeObject({\n content: requestBody.content,\n });\n if (content) {\n const pagination = paginationField({\n context,\n name: '',\n schema:\n content.schema && '$ref' in content.schema\n ? {\n allOf: [{ ...content.schema }],\n description: requestBody.description,\n }\n : {\n description: requestBody.description,\n ...content.schema,\n },\n });\n\n irOperation.body = {\n mediaType: content.mediaType,\n schema: schemaToIrSchema({\n context,\n schema:\n '$ref' in operation.requestBody\n ? {\n allOf: [{ ...operation.requestBody }],\n description: requestBody.description,\n }\n : content.schema && '$ref' in content.schema\n ? {\n allOf: [{ ...content.schema }],\n description: requestBody.description,\n }\n : {\n description: requestBody.description,\n ...content.schema,\n },\n state: undefined,\n }),\n };\n\n if (pagination) {\n irOperation.body.pagination = pagination;\n }\n\n if (requestBody.required) {\n irOperation.body.required = requestBody.required;\n }\n\n if (content.type) {\n irOperation.body.type = content.type;\n }\n }\n }\n\n for (const name in operation.responses) {\n if (!irOperation.responses) {\n irOperation.responses = {};\n }\n\n const response = operation.responses[name]!;\n const responseObject =\n '$ref' in response\n ? context.resolveRef<ResponseObject>(response.$ref)\n : response;\n const content = mediaTypeObject({\n content: responseObject.content,\n });\n\n if (content) {\n irOperation.responses[name] = {\n mediaType: content.mediaType,\n schema: schemaToIrSchema({\n context,\n schema: {\n description: responseObject.description,\n ...contentToSchema({ content }),\n },\n state: undefined,\n }),\n };\n } else {\n irOperation.responses[name] = {\n schema: {\n description: responseObject.description,\n // TODO: parser - cover all statues with empty response bodies\n // 1xx, 204, 205, 304\n type: name === '204' ? 'void' : 'unknown',\n },\n };\n }\n }\n\n if (operation.security) {\n const securitySchemeObjects: Array<IR.SecurityObject> = [];\n\n for (const securityRequirementObject of operation.security) {\n for (const name in securityRequirementObject) {\n const securitySchemeObject = securitySchemesMap.get(name);\n\n if (!securitySchemeObject) {\n continue;\n }\n\n securitySchemeObjects.push(securitySchemeObject);\n }\n }\n\n if (securitySchemeObjects.length) {\n irOperation.security = securitySchemeObjects;\n }\n }\n\n // TODO: parser - handle servers\n // qux: operation.servers\n\n return irOperation;\n};\n\nexport const parseOperation = ({\n context,\n method,\n operation,\n operationIds,\n path,\n securitySchemesMap,\n}: {\n context: IR.Context;\n method: Extract<\n keyof PathItemObject,\n 'delete' | 'get' | 'head' | 'options' | 'patch' | 'post' | 'put' | 'trace'\n >;\n operation: Operation;\n operationIds: Map<string, string>;\n path: keyof IR.PathsObject;\n securitySchemesMap: Map<string, SecuritySchemeObject>;\n}) => {\n ensureUniqueOperationId({\n context,\n id: operation.operationId,\n method,\n operationIds,\n path,\n });\n\n if (!context.ir.paths) {\n context.ir.paths = {};\n }\n\n if (!context.ir.paths[path]) {\n context.ir.paths[path] = {};\n }\n\n if (operation.servers) {\n context.ir.servers = [...(context.ir.servers ?? []), ...operation.servers];\n }\n\n operation.id = operationToId({\n context,\n id: operation.operationId,\n method,\n path,\n });\n\n context.ir.paths[path][method] = operationToIrOperation({\n context,\n method,\n operation,\n path,\n securitySchemesMap,\n });\n};\n","import type { IR } from '../../../ir/types';\nimport { refToName } from '../../../utils/ref';\nimport type {\n ParameterObject,\n ReferenceObject,\n SchemaObject,\n} from '../types/spec';\nimport { mediaTypeObject } from './mediaType';\nimport { paginationField } from './pagination';\nimport { schemaToIrSchema } from './schema';\n\n/**\n * Returns default parameter `allowReserved` based on value of `in`.\n */\nconst defaultAllowReserved = (\n _in: ParameterObject['in'],\n): boolean | undefined => {\n switch (_in) {\n // this keyword only applies to parameters with an `in` value of `query`\n case 'query':\n return false;\n default:\n return;\n }\n};\n\n/**\n * Returns default parameter `explode` based on value of `style`.\n */\nconst defaultExplode = (style: Required<ParameterObject>['style']): boolean => {\n switch (style) {\n // default value for `deepObject` is `false`, but that behavior is undefined\n // so we use `true` to make this work with the `client-fetch` package\n case 'deepObject':\n case 'form':\n return true;\n default:\n return false;\n }\n};\n\n/**\n * Returns default parameter `style` based on value of `in`.\n */\nconst defaultStyle = (\n _in: ParameterObject['in'],\n): Required<IR.ParameterObject>['style'] => {\n switch (_in) {\n case 'header':\n case 'path':\n return 'simple';\n case 'cookie':\n case 'query':\n return 'form';\n }\n};\n\nexport const parametersArrayToObject = ({\n context,\n parameters,\n}: {\n context: IR.Context;\n parameters?: ReadonlyArray<ParameterObject | ReferenceObject>;\n}): IR.ParametersObject | undefined => {\n if (!parameters || !Object.keys(parameters).length) {\n return;\n }\n\n const parametersObject: IR.ParametersObject = {};\n\n for (const parameterOrReference of parameters) {\n const parameter =\n '$ref' in parameterOrReference\n ? context.resolveRef<ParameterObject>(parameterOrReference.$ref)\n : parameterOrReference;\n\n if (!parametersObject[parameter.in]) {\n parametersObject[parameter.in] = {};\n }\n\n parametersObject[parameter.in]![parameter.name] = parameterToIrParameter({\n context,\n parameter,\n });\n }\n\n return parametersObject;\n};\n\nconst parameterToIrParameter = ({\n context,\n parameter,\n}: {\n context: IR.Context;\n parameter: ParameterObject;\n}): IR.ParameterObject => {\n // TODO: parser - fix\n let schema = parameter.schema;\n\n if (!schema) {\n const content = mediaTypeObject({\n content: parameter.content,\n });\n if (content) {\n schema = content.schema;\n }\n }\n\n const finalSchema: SchemaObject =\n schema && '$ref' in schema\n ? {\n allOf: [{ ...schema }],\n deprecated: parameter.deprecated,\n description: parameter.description,\n }\n : {\n deprecated: parameter.deprecated,\n description: parameter.description,\n ...schema,\n };\n\n const pagination = paginationField({\n context,\n name: parameter.name,\n schema: finalSchema,\n });\n\n const style = parameter.style || defaultStyle(parameter.in);\n const explode =\n parameter.explode !== undefined ? parameter.explode : defaultExplode(style);\n const allowReserved =\n parameter.allowReserved !== undefined\n ? parameter.allowReserved\n : defaultAllowReserved(parameter.in);\n\n const irParameter: IR.ParameterObject = {\n allowReserved,\n explode,\n location: parameter.in,\n name: parameter.name,\n schema: schemaToIrSchema({\n context,\n schema: finalSchema,\n state: undefined,\n }),\n style,\n };\n\n if (parameter.deprecated) {\n irParameter.deprecated = parameter.deprecated;\n }\n\n if (parameter.description) {\n irParameter.description = parameter.description;\n }\n\n if (pagination) {\n irParameter.pagination = pagination;\n }\n\n if (parameter.required) {\n irParameter.required = parameter.required;\n }\n\n return irParameter;\n};\n\nexport const parseParameter = ({\n $ref,\n context,\n parameter,\n}: {\n $ref: string;\n context: IR.Context;\n parameter: ParameterObject;\n}) => {\n if (!context.ir.components) {\n context.ir.components = {};\n }\n\n if (!context.ir.components.parameters) {\n context.ir.components.parameters = {};\n }\n\n context.ir.components.parameters[refToName($ref)] = parameterToIrParameter({\n context,\n parameter,\n });\n};\n","import type { IR } from '../../../ir/types';\nimport { refToName } from '../../../utils/ref';\nimport type { RequestBodyObject, SchemaObject } from '../types/spec';\nimport { mediaTypeObject } from './mediaType';\nimport { schemaToIrSchema } from './schema';\n\nconst requestBodyToIrRequestBody = ({\n context,\n requestBody,\n}: {\n context: IR.Context;\n requestBody: RequestBodyObject;\n}): IR.RequestBodyObject => {\n // TODO: parser - fix\n const content = mediaTypeObject({\n content: requestBody.content,\n });\n const schema = content ? content.schema : undefined;\n\n const finalSchema: SchemaObject = {\n description: requestBody.description,\n ...schema,\n };\n\n const irRequestBody: IR.RequestBodyObject = {\n schema: schemaToIrSchema({\n context,\n schema: finalSchema,\n state: undefined,\n }),\n };\n\n if (requestBody.description) {\n irRequestBody.description = requestBody.description;\n }\n\n if (requestBody.required) {\n irRequestBody.required = requestBody.required;\n }\n\n return irRequestBody;\n};\n\nexport const parseRequestBody = ({\n $ref,\n context,\n requestBody,\n}: {\n $ref: string;\n context: IR.Context;\n requestBody: RequestBodyObject;\n}) => {\n if (!context.ir.components) {\n context.ir.components = {};\n }\n\n if (!context.ir.components.requestBodies) {\n context.ir.components.requestBodies = {};\n }\n\n context.ir.components.requestBodies[refToName($ref)] =\n requestBodyToIrRequestBody({\n context,\n requestBody,\n });\n};\n","import type { IR } from '../../../ir/types';\nimport { parseUrl } from '../../../utils/url';\n\nexport const parseServers = ({ context }: { context: IR.Context }) => {\n if (context.spec.servers) {\n context.ir.servers = context.spec.servers;\n return;\n }\n\n if (typeof context.config.input.path === 'string') {\n const url = parseUrl(context.config.input.path);\n context.ir.servers = [\n {\n url: `${url.protocol ? `${url.protocol}://` : ''}${url.host}${url.port ? `:${url.port}` : ''}`,\n },\n ];\n }\n\n if (!context.ir.servers) {\n context.ir.servers = [\n {\n url: '/',\n },\n ];\n }\n};\n","import type { IR } from '../../../ir/types';\nimport { canProcessRef, createFilters } from '../../shared/utils/filter';\nimport { mergeParametersObjects } from '../../shared/utils/parameter';\nimport type {\n OpenApiV3_0_X,\n ParameterObject,\n PathItemObject,\n PathsObject,\n RequestBodyObject,\n SecuritySchemeObject,\n} from '../types/spec';\nimport { parseOperation } from './operation';\nimport { parametersArrayToObject, parseParameter } from './parameter';\nimport { parseRequestBody } from './requestBody';\nimport { parseSchema } from './schema';\nimport { parseServers } from './server';\n\nexport const parseV3_0_X = (context: IR.Context<OpenApiV3_0_X>) => {\n const operationIds = new Map<string, string>();\n const securitySchemesMap = new Map<string, SecuritySchemeObject>();\n\n const excludeFilters = createFilters(context.config.input.exclude);\n const includeFilters = createFilters(context.config.input.include);\n\n const shouldProcessRef = ($ref: string, schema: Record<string, any>) =>\n canProcessRef({\n $ref,\n excludeFilters,\n includeFilters,\n schema,\n });\n\n // TODO: parser - handle more component types, old parser handles only parameters and schemas\n if (context.spec.components) {\n for (const name in context.spec.components.securitySchemes) {\n const securityOrReference =\n context.spec.components.securitySchemes[name]!;\n const securitySchemeObject =\n '$ref' in securityOrReference\n ? context.resolveRef<SecuritySchemeObject>(securityOrReference.$ref)\n : securityOrReference;\n securitySchemesMap.set(name, securitySchemeObject);\n }\n\n for (const name in context.spec.components.parameters) {\n const $ref = `#/components/parameters/${name}`;\n const parameterOrReference = context.spec.components.parameters[name]!;\n const parameter =\n '$ref' in parameterOrReference\n ? context.resolveRef<ParameterObject>(parameterOrReference.$ref)\n : parameterOrReference;\n\n if (!shouldProcessRef($ref, parameter)) {\n continue;\n }\n\n parseParameter({\n $ref,\n context,\n parameter,\n });\n }\n\n for (const name in context.spec.components.requestBodies) {\n const $ref = `#/components/requestBodies/${name}`;\n const requestBodyOrReference =\n context.spec.components.requestBodies[name]!;\n const requestBody =\n '$ref' in requestBodyOrReference\n ? context.resolveRef<RequestBodyObject>(requestBodyOrReference.$ref)\n : requestBodyOrReference;\n\n if (!shouldProcessRef($ref, requestBody)) {\n continue;\n }\n\n parseRequestBody({\n $ref,\n context,\n requestBody,\n });\n }\n\n for (const name in context.spec.components.schemas) {\n const $ref = `#/components/schemas/${name}`;\n const schema = context.spec.components.schemas[name]!;\n\n if (!shouldProcessRef($ref, schema)) {\n continue;\n }\n\n parseSchema({\n $ref,\n context,\n schema,\n });\n }\n }\n\n parseServers({ context });\n\n for (const path in context.spec.paths) {\n const pathItem = context.spec.paths[path as keyof PathsObject]!;\n\n const finalPathItem = pathItem.$ref\n ? {\n ...context.resolveRef<PathItemObject>(pathItem.$ref),\n ...pathItem,\n }\n : pathItem;\n\n const operationArgs: Omit<\n Parameters<typeof parseOperation>[0],\n 'method' | 'operation'\n > & {\n operation: Omit<\n Parameters<typeof parseOperation>[0]['operation'],\n 'responses'\n >;\n } = {\n context,\n operation: {\n description: finalPathItem.description,\n id: '',\n parameters: parametersArrayToObject({\n context,\n parameters: finalPathItem.parameters,\n }),\n security: context.spec.security,\n servers: finalPathItem.servers,\n summary: finalPathItem.summary,\n },\n operationIds,\n path: path as keyof PathsObject,\n securitySchemesMap,\n };\n\n const $refDelete = `#/paths${path}/delete`;\n if (\n finalPathItem.delete &&\n shouldProcessRef($refDelete, finalPathItem.delete)\n ) {\n parseOperation({\n ...operationArgs,\n method: 'delete',\n operation: {\n ...operationArgs.operation,\n ...finalPathItem.delete,\n parameters: mergeParametersObjects({\n source: parametersArrayToObject({\n context,\n parameters: finalPathItem.delete.parameters,\n }),\n target: operationArgs.operation.parameters,\n }),\n },\n });\n }\n\n const $refGet = `#/paths${path}/get`;\n if (finalPathItem.get && shouldProcessRef($refGet, finalPathItem.get)) {\n parseOperation({\n ...operationArgs,\n method: 'get',\n operation: {\n ...operationArgs.operation,\n ...finalPathItem.get,\n parameters: mergeParametersObjects({\n source: parametersArrayToObject({\n context,\n parameters: finalPathItem.get.parameters,\n }),\n target: operationArgs.operation.parameters,\n }),\n },\n });\n }\n\n const $refHead = `#/paths${path}/head`;\n if (finalPathItem.head && shouldProcessRef($refHead, finalPathItem.head)) {\n parseOperation({\n ...operationArgs,\n method: 'head',\n operation: {\n ...operationArgs.operation,\n ...finalPathItem.head,\n parameters: mergeParametersObjects({\n source: parametersArrayToObject({\n context,\n parameters: finalPathItem.head.parameters,\n }),\n target: operationArgs.operation.parameters,\n }),\n },\n });\n }\n\n const $refOptions = `#/paths${path}/options`;\n if (\n finalPathItem.options &&\n shouldProcessRef($refOptions, finalPathItem.options)\n ) {\n parseOperation({\n ...operationArgs,\n method: 'options',\n operation: {\n ...operationArgs.operation,\n ...finalPathItem.options,\n parameters: mergeParametersObjects({\n source: parametersArrayToObject({\n context,\n parameters: finalPathItem.options.parameters,\n }),\n target: operationArgs.operation.parameters,\n }),\n },\n });\n }\n\n const $refPatch = `#/paths${path}/patch`;\n if (\n finalPathItem.patch &&\n shouldProcessRef($refPatch, finalPathItem.patch)\n ) {\n parseOperation({\n ...operationArgs,\n method: 'patch',\n operation: {\n ...operationArgs.operation,\n ...finalPathItem.patch,\n parameters: mergeParametersObjects({\n source: parametersArrayToObject({\n context,\n parameters: finalPathItem.patch.parameters,\n }),\n target: operationArgs.operation.parameters,\n }),\n },\n });\n }\n\n const $refPost = `#/paths${path}/post`;\n if (finalPathItem.post && shouldProcessRef($refPost, finalPathItem.post)) {\n parseOperation({\n ...operationArgs,\n method: 'post',\n operation: {\n ...operationArgs.operation,\n ...finalPathItem.post,\n parameters: mergeParametersObjects({\n source: parametersArrayToObject({\n context,\n parameters: finalPathItem.post.parameters,\n }),\n target: operationArgs.operation.parameters,\n }),\n },\n });\n }\n\n const $refPut = `#/paths${path}/put`;\n if (finalPathItem.put && shouldProcessRef($refPut, finalPathItem.put)) {\n parseOperation({\n ...operationArgs,\n method: 'put',\n operation: {\n ...operationArgs.operation,\n ...finalPathItem.put,\n parameters: mergeParametersObjects({\n source: parametersArrayToObject({\n context,\n parameters: finalPathItem.put.parameters,\n }),\n target: operationArgs.operation.parameters,\n }),\n },\n });\n }\n\n const $refTrace = `#/paths${path}/trace`;\n if (\n finalPathItem.trace &&\n shouldProcessRef($refTrace, finalPathItem.trace)\n ) {\n parseOperation({\n ...operationArgs,\n method: 'trace',\n operation: {\n ...operationArgs.operation,\n ...finalPathItem.trace,\n parameters: mergeParametersObjects({\n source: parametersArrayToObject({\n context,\n parameters: finalPathItem.trace.parameters,\n }),\n target: operationArgs.operation.parameters,\n }),\n },\n });\n }\n }\n};\n","import type { IRMediaType } from '../../../ir/mediaType';\nimport {\n isMediaTypeFileLike,\n mediaTypeToIrMediaType,\n} from '../../../ir/mediaType';\nimport type { MediaTypeObject, SchemaObject } from '../types/spec';\n\ninterface Content {\n mediaType: string;\n schema: SchemaObject | undefined;\n type: IRMediaType | undefined;\n}\n\nexport const contentToSchema = ({\n content,\n}: {\n content: Content;\n}): SchemaObject | undefined => {\n const { mediaType, schema } = content;\n\n if (!schema) {\n if (isMediaTypeFileLike({ mediaType })) {\n return {\n format: 'binary',\n type: 'string',\n };\n }\n return;\n }\n\n if (\n schema.type === 'string' &&\n !schema.format &&\n isMediaTypeFileLike({ mediaType })\n ) {\n return {\n ...schema,\n format: 'binary',\n };\n }\n\n return schema;\n};\n\nexport const mediaTypeObject = ({\n content,\n}: {\n content: Record<string, MediaTypeObject> | undefined;\n}): Content | undefined => {\n // return the first supported MIME type\n for (const mediaType in content) {\n return {\n mediaType,\n schema: content[mediaType]!.schema,\n type: mediaTypeToIrMediaType({ mediaType }),\n };\n }\n};\n","import type { IR } from '../../../ir/types';\nimport { addItemsToSchema } from '../../../ir/utils';\nimport { refToName } from '../../../utils/ref';\nimport type {\n SchemaState,\n SchemaType,\n SchemaWithRequired,\n} from '../../shared/types/schema';\nimport { discriminatorValue } from '../../shared/utils/discriminator';\nimport { mergeSchemaAccessScopes } from '../../shared/utils/schema';\nimport type { SchemaObject } from '../types/spec';\n\nexport const getSchemaTypes = ({\n schema,\n}: {\n schema: SchemaObject;\n}): ReadonlyArray<SchemaType<SchemaObject>> => {\n if (typeof schema.type === 'string') {\n return [schema.type];\n }\n\n if (schema.type) {\n return schema.type;\n }\n\n // infer object based on the presence of properties\n if (schema.properties) {\n return ['object'];\n }\n\n return [];\n};\n\nconst parseSchemaJsDoc = ({\n irSchema,\n schema,\n}: {\n irSchema: IR.SchemaObject;\n schema: SchemaObject;\n}) => {\n if (schema.deprecated !== undefined) {\n irSchema.deprecated = schema.deprecated;\n }\n\n if (schema.description) {\n irSchema.description = schema.description;\n }\n\n if (schema.title) {\n irSchema.title = schema.title;\n }\n};\n\nconst parseSchemaMeta = ({\n irSchema,\n schema,\n}: {\n irSchema: IR.SchemaObject;\n schema: SchemaObject;\n}) => {\n if (schema.const !== undefined) {\n irSchema.const = schema.const;\n\n // try to infer schema type\n if (!schema.type) {\n if (schema.const === null) {\n irSchema.type = 'null';\n } else {\n switch (typeof schema.const) {\n case 'bigint':\n case 'number':\n irSchema.type = 'number';\n break;\n case 'boolean':\n irSchema.type = 'boolean';\n break;\n case 'string':\n irSchema.type = 'string';\n break;\n }\n }\n }\n }\n\n if (schema.default !== undefined) {\n irSchema.default = schema.default;\n }\n\n if (schema.exclusiveMaximum) {\n irSchema.exclusiveMaximum = schema.exclusiveMaximum;\n }\n\n if (schema.exclusiveMinimum) {\n irSchema.exclusiveMinimum = schema.exclusiveMinimum;\n }\n\n if (schema.format) {\n irSchema.format = schema.format;\n }\n\n if (schema.maximum !== undefined) {\n irSchema.maximum = schema.maximum;\n }\n\n if (schema.maxItems !== undefined) {\n irSchema.maxItems = schema.maxItems;\n }\n\n if (schema.maxLength !== undefined) {\n irSchema.maxLength = schema.maxLength;\n }\n\n if (schema.minimum !== undefined) {\n irSchema.minimum = schema.minimum;\n }\n\n if (schema.minItems !== undefined) {\n irSchema.minItems = schema.minItems;\n }\n\n if (schema.minLength !== undefined) {\n irSchema.minLength = schema.minLength;\n }\n\n if (schema.pattern) {\n irSchema.pattern = schema.pattern;\n }\n\n if (schema.readOnly) {\n irSchema.accessScope = 'read';\n irSchema.accessScopes = mergeSchemaAccessScopes(irSchema.accessScopes, [\n 'read',\n ]);\n } else if (schema.writeOnly) {\n irSchema.accessScope = 'write';\n irSchema.accessScopes = mergeSchemaAccessScopes(irSchema.accessScopes, [\n 'write',\n ]);\n }\n};\n\nconst parseArray = ({\n context,\n irSchema = {},\n schema,\n state,\n}: {\n context: IR.Context;\n irSchema?: IR.SchemaObject;\n schema: SchemaObject;\n state: SchemaState;\n}): IR.SchemaObject => {\n if (\n (schema.prefixItems && schema.prefixItems.length) ||\n (schema.maxItems && schema.maxItems === schema.minItems) ||\n schema.const !== undefined\n ) {\n irSchema.type = 'tuple';\n } else {\n irSchema.type = 'array';\n }\n\n let schemaItems: Array<IR.SchemaObject> = [];\n\n for (const item of schema.prefixItems ?? []) {\n const irItemSchema = schemaToIrSchema({\n context,\n schema: item,\n state,\n });\n irSchema.accessScopes = mergeSchemaAccessScopes(\n irSchema.accessScopes,\n irItemSchema.accessScopes,\n );\n schemaItems.push(irItemSchema);\n }\n\n if (schema.items) {\n const irItemsSchema = schemaToIrSchema({\n context,\n schema: schema.items,\n state,\n });\n\n irSchema.accessScopes = mergeSchemaAccessScopes(\n irSchema.accessScopes,\n irItemsSchema.accessScopes,\n );\n\n if (\n !schemaItems.length &&\n schema.maxItems &&\n schema.maxItems === schema.minItems\n ) {\n schemaItems = Array(schema.maxItems).fill(irItemsSchema);\n } else {\n const ofArray =\n schema.items.allOf || schema.items.anyOf || schema.items.oneOf;\n if (\n ofArray &&\n ofArray.length > 1 &&\n !getSchemaTypes({ schema: schema.items }).includes('null')\n ) {\n // bring composition up to avoid incorrectly nested arrays\n irSchema = {\n ...irSchema,\n ...irItemsSchema,\n };\n } else {\n schemaItems.push(irItemsSchema);\n }\n }\n }\n\n irSchema = addItemsToSchema({\n items: schemaItems,\n schema: irSchema,\n });\n\n return irSchema;\n};\n\nconst parseBoolean = ({\n irSchema = {},\n}: {\n context: IR.Context;\n irSchema?: IR.SchemaObject;\n schema: SchemaObject;\n}): IR.SchemaObject => {\n irSchema.type = 'boolean';\n\n return irSchema;\n};\n\nconst parseNull = ({\n irSchema = {},\n}: {\n context: IR.Context;\n irSchema?: IR.SchemaObject;\n schema: SchemaObject;\n}) => {\n irSchema.type = 'null';\n\n return irSchema;\n};\n\nconst parseNumber = ({\n irSchema = {},\n schema,\n}: {\n context: IR.Context;\n irSchema?: IR.SchemaObject;\n schema: Omit<SchemaObject, 'type'> & {\n type: SchemaType<SchemaObject>;\n };\n}): IR.SchemaObject => {\n irSchema.type = schema.type;\n\n return irSchema;\n};\n\nconst parseObject = ({\n context,\n irSchema = {},\n schema,\n state,\n}: {\n context: IR.Context;\n irSchema?: IR.SchemaObject;\n schema: SchemaObject;\n state: SchemaState;\n}): IR.SchemaObject => {\n irSchema.type = 'object';\n\n const schemaProperties: Record<string, IR.SchemaObject> = {};\n\n for (const name in schema.properties) {\n const property = schema.properties[name]!;\n if (typeof property === 'boolean') {\n // TODO: parser - handle boolean properties\n } else {\n const irPropertySchema = schemaToIrSchema({\n context,\n schema: property,\n state,\n });\n irSchema.accessScopes = mergeSchemaAccessScopes(\n irSchema.accessScopes,\n irPropertySchema.accessScopes,\n );\n schemaProperties[name] = irPropertySchema;\n }\n }\n\n if (Object.keys(schemaProperties).length) {\n irSchema.properties = schemaProperties;\n }\n\n if (schema.additionalProperties === undefined) {\n if (!irSchema.properties) {\n irSchema.additionalProperties = {\n type: 'unknown',\n };\n }\n } else if (typeof schema.additionalProperties === 'boolean') {\n irSchema.additionalProperties = {\n type: schema.additionalProperties ? 'unknown' : 'never',\n };\n } else {\n const irAdditionalPropertiesSchema = schemaToIrSchema({\n context,\n schema: schema.additionalProperties,\n state,\n });\n // no need to add \"any\" additional properties if there are no defined properties\n if (\n irSchema.properties ||\n irAdditionalPropertiesSchema.type !== 'unknown'\n ) {\n irSchema.additionalProperties = irAdditionalPropertiesSchema;\n }\n }\n\n if (schema.required) {\n irSchema.required = schema.required;\n }\n\n return irSchema;\n};\n\nconst parseString = ({\n irSchema = {},\n}: {\n context: IR.Context;\n irSchema?: IR.SchemaObject;\n schema: SchemaObject;\n}): IR.SchemaObject => {\n irSchema.type = 'string';\n\n return irSchema;\n};\n\nconst initIrSchema = ({\n schema,\n}: {\n schema: SchemaObject;\n}): IR.SchemaObject => {\n const irSchema: IR.SchemaObject = {};\n\n parseSchemaJsDoc({\n irSchema,\n schema,\n });\n\n return irSchema;\n};\n\nconst parseAllOf = ({\n context,\n schema,\n state,\n}: {\n context: IR.Context;\n schema: SchemaWithRequired<SchemaObject, 'allOf'>;\n state: SchemaState;\n}): IR.SchemaObject => {\n let irSchema = initIrSchema({ schema });\n\n const schemaItems: Array<IR.SchemaObject> = [];\n const schemaTypes = getSchemaTypes({ schema });\n\n const compositionSchemas = schema.allOf;\n\n for (const compositionSchema of compositionSchemas) {\n const irCompositionSchema = schemaToIrSchema({\n context,\n schema: compositionSchema,\n state,\n });\n\n irSchema.accessScopes = mergeSchemaAccessScopes(\n irSchema.accessScopes,\n irCompositionSchema.accessScopes,\n );\n\n if (schema.required) {\n if (irCompositionSchema.required) {\n irCompositionSchema.required = [\n ...irCompositionSchema.required,\n ...schema.required,\n ];\n } else {\n irCompositionSchema.required = schema.required;\n }\n }\n\n schemaItems.push(irCompositionSchema);\n\n if (compositionSchema.$ref) {\n const ref = context.resolveRef<SchemaObject>(compositionSchema.$ref);\n // `$ref` should be passed from the root `parseSchema()` call\n if (ref.discriminator && state.$ref) {\n const irDiscriminatorSchema: IR.SchemaObject = {\n properties: {\n [ref.discriminator.propertyName]: {\n const: discriminatorValue(state.$ref, ref.discriminator.mapping),\n type: 'string',\n },\n },\n type: 'object',\n };\n if (ref.required?.includes(ref.discriminator.propertyName)) {\n irDiscriminatorSchema.required = [ref.discriminator.propertyName];\n }\n schemaItems.push(irDiscriminatorSchema);\n }\n\n if (!state.circularReferenceTracker.has(compositionSchema.$ref)) {\n const irRefSchema = schemaToIrSchema({\n context,\n schema: ref,\n state: {\n ...state,\n $ref: compositionSchema.$ref,\n },\n });\n irSchema.accessScopes = mergeSchemaAccessScopes(\n irSchema.accessScopes,\n irRefSchema.accessScopes,\n );\n }\n }\n }\n\n if (schemaTypes.includes('object')) {\n const irObjectSchema = parseOneType({\n context,\n schema: {\n ...schema,\n type: 'object',\n },\n state,\n });\n\n irSchema.accessScopes = mergeSchemaAccessScopes(\n irSchema.accessScopes,\n irObjectSchema.accessScopes,\n );\n\n if (irObjectSchema.properties) {\n for (const requiredProperty of irObjectSchema.required ?? []) {\n if (!irObjectSchema.properties[requiredProperty]) {\n for (const compositionSchema of compositionSchemas) {\n // TODO: parser - this could be probably resolved more accurately\n const finalCompositionSchema = compositionSchema.$ref\n ? context.resolveRef<SchemaObject>(compositionSchema.$ref)\n : compositionSchema;\n\n if (\n getSchemaTypes({ schema: finalCompositionSchema }).includes(\n 'object',\n )\n ) {\n const irCompositionSchema = parseOneType({\n context,\n schema: {\n ...finalCompositionSchema,\n type: 'object',\n },\n state,\n });\n\n irSchema.accessScopes = mergeSchemaAccessScopes(\n irSchema.accessScopes,\n irCompositionSchema.accessScopes,\n );\n\n if (irCompositionSchema.properties?.[requiredProperty]) {\n irObjectSchema.properties[requiredProperty] =\n irCompositionSchema.properties[requiredProperty];\n break;\n }\n }\n }\n }\n }\n schemaItems.push(irObjectSchema);\n }\n }\n\n irSchema = addItemsToSchema({\n items: schemaItems,\n logicalOperator: 'and',\n mutateSchemaOneItem: true,\n schema: irSchema,\n });\n\n if (schemaTypes.includes('null')) {\n // nest composition to avoid producing an intersection with null\n const nestedItems: Array<IR.SchemaObject> = [\n {\n type: 'null',\n },\n ];\n\n if (schemaItems.length) {\n nestedItems.unshift(irSchema);\n }\n\n irSchema = {\n items: nestedItems,\n logicalOperator: 'or',\n };\n }\n\n return irSchema;\n};\n\nconst parseAnyOf = ({\n context,\n schema,\n state,\n}: {\n context: IR.Context;\n schema: SchemaWithRequired<SchemaObject, 'anyOf'>;\n state: SchemaState;\n}): IR.SchemaObject => {\n let irSchema = initIrSchema({ schema });\n\n const schemaItems: Array<IR.SchemaObject> = [];\n const schemaTypes = getSchemaTypes({ schema });\n\n const compositionSchemas = schema.anyOf;\n\n for (const compositionSchema of compositionSchemas) {\n let irCompositionSchema = schemaToIrSchema({\n context,\n schema: compositionSchema,\n state,\n });\n\n irSchema.accessScopes = mergeSchemaAccessScopes(\n irSchema.accessScopes,\n irCompositionSchema.accessScopes,\n );\n\n // `$ref` should be defined with discriminators\n if (schema.discriminator && compositionSchema.$ref) {\n const irDiscriminatorSchema: IR.SchemaObject = {\n properties: {\n [schema.discriminator.propertyName]: {\n const: discriminatorValue(\n compositionSchema.$ref,\n schema.discriminator.mapping,\n ),\n type: 'string',\n },\n },\n type: 'object',\n };\n irCompositionSchema = {\n items: [irDiscriminatorSchema, irCompositionSchema],\n logicalOperator: 'and',\n };\n }\n\n schemaItems.push(irCompositionSchema);\n }\n\n if (schemaTypes.includes('null')) {\n schemaItems.push({ type: 'null' });\n }\n\n irSchema = addItemsToSchema({\n items: schemaItems,\n mutateSchemaOneItem: true,\n schema: irSchema,\n });\n\n if (schemaTypes.includes('object')) {\n // nest composition to avoid producing a union with object properties\n const irObjectSchema = parseOneType({\n context,\n schema: {\n ...schema,\n type: 'object',\n },\n state,\n });\n\n irSchema.accessScopes = mergeSchemaAccessScopes(\n irSchema.accessScopes,\n irObjectSchema.accessScopes,\n );\n\n if (irObjectSchema.properties) {\n irSchema = {\n items: [irSchema, irObjectSchema],\n logicalOperator: 'and',\n };\n }\n }\n\n return irSchema;\n};\n\nconst parseEnum = ({\n context,\n schema,\n state,\n}: {\n context: IR.Context;\n schema: SchemaWithRequired<SchemaObject, 'enum'>;\n state: SchemaState;\n}): IR.SchemaObject => {\n let irSchema = initIrSchema({ schema });\n\n irSchema.type = 'enum';\n\n const schemaItems: Array<IR.SchemaObject> = [];\n const schemaTypes = getSchemaTypes({ schema });\n\n for (const [index, enumValue] of schema.enum.entries()) {\n const typeOfEnumValue = typeof enumValue;\n let enumType: SchemaType<SchemaObject> | undefined;\n\n if (\n typeOfEnumValue === 'string' ||\n typeOfEnumValue === 'number' ||\n typeOfEnumValue === 'boolean'\n ) {\n enumType = typeOfEnumValue;\n } else if (enumValue === null) {\n // type must contain null\n if (schemaTypes.includes('null')) {\n enumType = 'null';\n }\n } else {\n console.warn(\n '🚨',\n `unhandled \"${typeOfEnumValue}\" typeof value \"${enumValue}\" for enum`,\n schema.enum,\n );\n }\n\n if (!enumType) {\n continue;\n }\n\n const irTypeSchema = parseOneType({\n context,\n schema: {\n const: enumValue,\n description: schema['x-enum-descriptions']?.[index],\n title:\n schema['x-enum-varnames']?.[index] ?? schema['x-enumNames']?.[index],\n type: enumType,\n },\n state,\n });\n\n irSchema.accessScopes = mergeSchemaAccessScopes(\n irSchema.accessScopes,\n irTypeSchema.accessScopes,\n );\n\n schemaItems.push(irTypeSchema);\n }\n\n irSchema = addItemsToSchema({\n items: schemaItems,\n schema: irSchema,\n });\n\n return irSchema;\n};\n\nconst parseOneOf = ({\n context,\n schema,\n state,\n}: {\n context: IR.Context;\n schema: SchemaWithRequired<SchemaObject, 'oneOf'>;\n state: SchemaState;\n}): IR.SchemaObject => {\n let irSchema = initIrSchema({ schema });\n\n let schemaItems: Array<IR.SchemaObject> = [];\n const schemaTypes = getSchemaTypes({ schema });\n\n const compositionSchemas = schema.oneOf;\n\n for (const compositionSchema of compositionSchemas) {\n let irCompositionSchema = schemaToIrSchema({\n context,\n schema: compositionSchema,\n state,\n });\n\n irSchema.accessScopes = mergeSchemaAccessScopes(\n irSchema.accessScopes,\n irCompositionSchema.accessScopes,\n );\n\n // `$ref` should be defined with discriminators\n if (schema.discriminator && compositionSchema.$ref) {\n const irDiscriminatorSchema: IR.SchemaObject = {\n properties: {\n [schema.discriminator.propertyName]: {\n const: discriminatorValue(\n compositionSchema.$ref,\n schema.discriminator.mapping,\n ),\n type: 'string',\n },\n },\n type: 'object',\n };\n irCompositionSchema = {\n items: [irDiscriminatorSchema, irCompositionSchema],\n logicalOperator: 'and',\n };\n }\n\n // since we know oneOf will be using \"or\" logical operator, if the parsed\n // composition schema also has an \"or\" operator, we can bring it up\n // to avoid unnecessary brackets\n if (\n irCompositionSchema.logicalOperator === 'or' &&\n irCompositionSchema.items\n ) {\n schemaItems = schemaItems.concat(irCompositionSchema.items);\n } else {\n schemaItems.push(irCompositionSchema);\n }\n }\n\n if (schemaTypes.includes('null')) {\n schemaItems.push({ type: 'null' });\n }\n\n irSchema = addItemsToSchema({\n items: schemaItems,\n mutateSchemaOneItem: true,\n schema: irSchema,\n });\n\n if (schemaTypes.includes('object')) {\n // nest composition to avoid producing a union with object properties\n const irObjectSchema = parseOneType({\n context,\n schema: {\n ...schema,\n type: 'object',\n },\n state,\n });\n\n irSchema.accessScopes = mergeSchemaAccessScopes(\n irSchema.accessScopes,\n irObjectSchema.accessScopes,\n );\n\n if (irObjectSchema.properties) {\n irSchema = {\n items: [irSchema, irObjectSchema],\n logicalOperator: 'and',\n };\n }\n }\n\n return irSchema;\n};\n\nconst parseRef = ({\n context,\n schema,\n state,\n}: {\n context: IR.Context;\n schema: SchemaWithRequired<SchemaObject, '$ref'>;\n state: SchemaState;\n}): IR.SchemaObject => {\n const irSchema = initIrSchema({ schema });\n\n // refs using unicode characters become encoded, didn't investigate why\n // but the suspicion is this comes from `@hey-api/json-schema-ref-parser`\n irSchema.$ref = decodeURI(schema.$ref);\n\n if (!state.circularReferenceTracker.has(schema.$ref)) {\n const refSchema = context.resolveRef<SchemaObject>(schema.$ref);\n const irRefSchema = schemaToIrSchema({\n context,\n schema: refSchema,\n state: {\n ...state,\n $ref: schema.$ref,\n },\n });\n irSchema.accessScopes = mergeSchemaAccessScopes(\n irSchema.accessScopes,\n irRefSchema.accessScopes,\n );\n }\n\n return irSchema;\n};\n\nconst parseOneType = ({\n context,\n irSchema,\n schema,\n state,\n}: {\n context: IR.Context;\n irSchema?: IR.SchemaObject;\n schema: Omit<SchemaObject, 'type'> & {\n type: SchemaType<SchemaObject>;\n };\n state: SchemaState;\n}): IR.SchemaObject => {\n if (!irSchema) {\n irSchema = initIrSchema({ schema });\n\n parseSchemaMeta({\n irSchema,\n schema,\n });\n }\n\n switch (schema.type) {\n case 'array':\n return parseArray({\n context,\n irSchema,\n schema,\n state,\n });\n case 'boolean':\n return parseBoolean({\n context,\n irSchema,\n schema,\n });\n case 'integer':\n case 'number':\n return parseNumber({\n context,\n irSchema,\n schema,\n });\n case 'null':\n return parseNull({\n context,\n irSchema,\n schema,\n });\n case 'object':\n return parseObject({\n context,\n irSchema,\n schema,\n state,\n });\n case 'string':\n return parseString({\n context,\n irSchema,\n schema,\n });\n default:\n // gracefully handle invalid type\n return parseUnknown({\n context,\n irSchema,\n schema,\n });\n }\n};\n\nconst parseManyTypes = ({\n context,\n irSchema,\n schema,\n state,\n}: {\n context: IR.Context;\n irSchema?: IR.SchemaObject;\n schema: Omit<SchemaObject, 'type'> & {\n type: ReadonlyArray<SchemaType<SchemaObject>>;\n };\n state: SchemaState;\n}): IR.SchemaObject => {\n if (!irSchema) {\n irSchema = initIrSchema({ schema });\n }\n\n const typeIrSchema: IR.SchemaObject = {};\n\n parseSchemaMeta({\n irSchema: typeIrSchema,\n schema,\n });\n\n if (schema.type.includes('null') && typeIrSchema.default === null) {\n // clear to avoid duplicate default inside the non-null schema.\n // this would produce incorrect validator output\n delete typeIrSchema.default;\n }\n\n const schemaItems: Array<IR.SchemaObject> = [];\n\n for (const type of schema.type) {\n if (type === 'null') {\n schemaItems.push({ type: 'null' });\n } else {\n const irTypeSchema = parseOneType({\n context,\n irSchema: typeIrSchema,\n schema: {\n ...schema,\n type,\n },\n state,\n });\n\n irSchema.accessScopes = mergeSchemaAccessScopes(\n irSchema.accessScopes,\n irTypeSchema.accessScopes,\n );\n\n schemaItems.push(irTypeSchema);\n }\n }\n\n irSchema = addItemsToSchema({\n items: schemaItems,\n schema: irSchema,\n });\n\n return irSchema;\n};\n\nconst parseType = ({\n context,\n schema,\n state,\n}: {\n context: IR.Context;\n schema: SchemaWithRequired<SchemaObject, 'type'>;\n state: SchemaState;\n}): IR.SchemaObject => {\n const irSchema = initIrSchema({ schema });\n\n parseSchemaMeta({\n irSchema,\n schema,\n });\n\n const schemaTypes = getSchemaTypes({ schema });\n\n if (schemaTypes.length === 1) {\n return parseOneType({\n context,\n irSchema,\n schema: {\n ...schema,\n type: schemaTypes[0]!,\n },\n state,\n });\n }\n\n return parseManyTypes({\n context,\n irSchema,\n schema: {\n ...schema,\n type: schemaTypes,\n },\n state,\n });\n};\n\nconst parseUnknown = ({\n irSchema,\n schema,\n}: {\n context: IR.Context;\n irSchema?: IR.SchemaObject;\n schema: SchemaObject;\n}): IR.SchemaObject => {\n if (!irSchema) {\n irSchema = initIrSchema({ schema });\n }\n\n irSchema.type = 'unknown';\n\n parseSchemaMeta({\n irSchema,\n schema,\n });\n\n return irSchema;\n};\n\nexport const schemaToIrSchema = ({\n context,\n schema,\n state,\n}: {\n context: IR.Context;\n schema: SchemaObject;\n state: SchemaState | undefined;\n}): IR.SchemaObject => {\n if (!state) {\n state = {\n circularReferenceTracker: new Set(),\n };\n }\n\n if (state.$ref) {\n state.circularReferenceTracker.add(state.$ref);\n }\n\n if (schema.$ref) {\n return parseRef({\n context,\n schema: schema as SchemaWithRequired<SchemaObject, '$ref'>,\n state,\n });\n }\n\n if (schema.enum) {\n return parseEnum({\n context,\n schema: schema as SchemaWithRequired<SchemaObject, 'enum'>,\n state,\n });\n }\n\n if (schema.allOf) {\n return parseAllOf({\n context,\n schema: schema as SchemaWithRequired<SchemaObject, 'allOf'>,\n state,\n });\n }\n\n if (schema.anyOf) {\n return parseAnyOf({\n context,\n schema: schema as SchemaWithRequired<SchemaObject, 'anyOf'>,\n state,\n });\n }\n\n if (schema.oneOf) {\n return parseOneOf({\n context,\n schema: schema as SchemaWithRequired<SchemaObject, 'oneOf'>,\n state,\n });\n }\n\n // infer object based on the presence of properties\n if (schema.type || schema.properties) {\n return parseType({\n context,\n schema: schema as SchemaWithRequired<SchemaObject, 'type'>,\n state,\n });\n }\n\n return parseUnknown({\n context,\n schema,\n });\n};\n\nexport const parseSchema = ({\n $ref,\n context,\n schema,\n}: {\n $ref: string;\n context: IR.Context;\n schema: SchemaObject;\n}) => {\n if (!context.ir.components) {\n context.ir.components = {};\n }\n\n if (!context.ir.components.schemas) {\n context.ir.components.schemas = {};\n }\n\n context.ir.components.schemas[refToName($ref)] = schemaToIrSchema({\n context,\n schema,\n state: {\n $ref,\n circularReferenceTracker: new Set(),\n },\n });\n};\n","import { getPaginationKeywordsRegExp } from '../../../ir/pagination';\nimport type { IR } from '../../../ir/types';\nimport type { SchemaType } from '../../shared/types/schema';\nimport type { ParameterObject, RequestBodyObject } from '../types/spec';\nimport type { SchemaObject } from '../types/spec';\nimport { mediaTypeObject } from './mediaType';\nimport { getSchemaTypes } from './schema';\n\nconst isPaginationType = (\n schemaTypes: ReadonlyArray<SchemaType<SchemaObject>>,\n): boolean =>\n schemaTypes.includes('boolean') ||\n schemaTypes.includes('integer') ||\n schemaTypes.includes('number') ||\n schemaTypes.includes('string');\n\n// We handle only simple values for now, up to 1 nested field\nexport const paginationField = ({\n context,\n name,\n schema,\n}: {\n context: IR.Context;\n name: string;\n schema: SchemaObject;\n}): boolean | string => {\n const paginationRegExp = getPaginationKeywordsRegExp(\n context.config.input.pagination,\n );\n if (paginationRegExp.test(name)) {\n return true;\n }\n\n if (schema.$ref) {\n const ref = context.resolveRef<\n ParameterObject | RequestBodyObject | SchemaObject\n >(schema.$ref);\n\n if ('content' in ref || 'in' in ref) {\n let refSchema: SchemaObject | undefined;\n\n if ('in' in ref) {\n refSchema = ref.schema;\n }\n\n if (!refSchema) {\n // parameter or body\n const content = mediaTypeObject({ content: ref.content });\n if (content?.schema) {\n refSchema = content.schema;\n }\n }\n\n if (!refSchema) {\n return false;\n }\n\n return paginationField({\n context,\n name,\n schema: refSchema,\n });\n }\n\n return paginationField({\n context,\n name,\n schema: ref,\n });\n }\n\n for (const name in schema.properties) {\n const paginationRegExp = getPaginationKeywordsRegExp(\n context.config.input.pagination,\n );\n\n if (paginationRegExp.test(name)) {\n const property = schema.properties[name]!;\n\n if (typeof property !== 'boolean') {\n // TODO: resolve deeper references\n const schemaTypes = getSchemaTypes({ schema: property });\n\n if (!schemaTypes.length) {\n const compositionSchemas = property.anyOf ?? property.oneOf;\n const nonNullCompositionSchemas = (compositionSchemas ?? []).filter(\n (schema) => schema.type !== 'null',\n );\n if (nonNullCompositionSchemas.length === 1) {\n const schemaTypes = getSchemaTypes({\n schema: nonNullCompositionSchemas[0]!,\n });\n if (isPaginationType(schemaTypes)) {\n return name;\n }\n }\n }\n\n if (isPaginationType(schemaTypes)) {\n return name;\n }\n }\n }\n }\n\n for (const allOf of schema.allOf ?? []) {\n const pagination = paginationField({\n context,\n name,\n schema: allOf,\n });\n if (pagination) {\n return pagination;\n }\n }\n\n return false;\n};\n","import type { IR } from '../../../ir/types';\nimport {\n ensureUniqueOperationId,\n operationToId,\n} from '../../shared/utils/operation';\nimport type {\n OperationObject,\n PathItemObject,\n RequestBodyObject,\n ResponseObject,\n SecuritySchemeObject,\n} from '../types/spec';\nimport { contentToSchema, mediaTypeObject } from './mediaType';\nimport { paginationField } from './pagination';\nimport { schemaToIrSchema } from './schema';\n\ninterface Operation\n extends Omit<OperationObject, 'parameters'>,\n Pick<IR.OperationObject, 'id' | 'parameters'> {}\n\nconst parseOperationJsDoc = ({\n irOperation,\n operation,\n}: {\n irOperation: IR.OperationObject;\n operation: Operation;\n}) => {\n if (operation.deprecated !== undefined) {\n irOperation.deprecated = operation.deprecated;\n }\n\n if (operation.description) {\n irOperation.description = operation.description;\n }\n\n if (operation.summary) {\n irOperation.summary = operation.summary;\n }\n\n if (operation.tags?.length) {\n irOperation.tags = operation.tags;\n }\n};\n\nconst initIrOperation = ({\n method,\n operation,\n path,\n}: Pick<IR.OperationObject, 'method' | 'path'> & {\n operation: Operation;\n}): IR.OperationObject => {\n const irOperation: IR.OperationObject = {\n id: operation.id,\n method,\n path,\n };\n\n parseOperationJsDoc({\n irOperation,\n operation,\n });\n\n return irOperation;\n};\n\nconst operationToIrOperation = ({\n context,\n method,\n operation,\n path,\n securitySchemesMap,\n}: Pick<IR.OperationObject, 'method' | 'path'> & {\n context: IR.Context;\n operation: Operation;\n securitySchemesMap: Map<string, SecuritySchemeObject>;\n}): IR.OperationObject => {\n const irOperation = initIrOperation({ method, operation, path });\n\n if (operation.parameters) {\n irOperation.parameters = operation.parameters;\n }\n\n if (operation.requestBody) {\n const requestBody =\n '$ref' in operation.requestBody\n ? context.resolveRef<RequestBodyObject>(operation.requestBody.$ref)\n : operation.requestBody;\n const content = mediaTypeObject({\n content: requestBody.content,\n });\n if (content) {\n const pagination = paginationField({\n context,\n name: '',\n schema: {\n description: requestBody.description,\n ...content.schema,\n },\n });\n\n irOperation.body = {\n mediaType: content.mediaType,\n schema: schemaToIrSchema({\n context,\n schema: {\n description: requestBody.description,\n ...('$ref' in operation.requestBody\n ? operation.requestBody\n : content.schema),\n },\n state: undefined,\n }),\n };\n\n if (pagination) {\n irOperation.body.pagination = pagination;\n }\n\n if (requestBody.required) {\n irOperation.body.required = requestBody.required;\n }\n\n if (content.type) {\n irOperation.body.type = content.type;\n }\n }\n }\n\n for (const name in operation.responses) {\n if (!irOperation.responses) {\n irOperation.responses = {};\n }\n\n const response = operation.responses[name]!;\n const responseObject =\n '$ref' in response\n ? context.resolveRef<ResponseObject>(response.$ref)\n : response;\n const content = mediaTypeObject({\n content: responseObject.content,\n });\n\n if (content) {\n irOperation.responses[name] = {\n mediaType: content.mediaType,\n schema: schemaToIrSchema({\n context,\n schema: {\n description: responseObject.description,\n ...contentToSchema({ content }),\n },\n state: undefined,\n }),\n };\n } else {\n irOperation.responses[name] = {\n schema: {\n description: responseObject.description,\n // TODO: parser - cover all statues with empty response bodies\n // 1xx, 204, 205, 304\n type: name === '204' ? 'void' : 'unknown',\n },\n };\n }\n }\n\n if (operation.security) {\n const securitySchemeObjects: Array<IR.SecurityObject> = [];\n\n for (const securityRequirementObject of operation.security) {\n for (const name in securityRequirementObject) {\n const securitySchemeObject = securitySchemesMap.get(name);\n\n if (!securitySchemeObject) {\n continue;\n }\n\n securitySchemeObjects.push(securitySchemeObject);\n }\n }\n\n if (securitySchemeObjects.length) {\n irOperation.security = securitySchemeObjects;\n }\n }\n\n // TODO: parser - handle servers\n // qux: operation.servers\n\n return irOperation;\n};\n\nexport const parseOperation = ({\n context,\n method,\n operation,\n operationIds,\n path,\n securitySchemesMap,\n}: {\n context: IR.Context;\n method: Extract<\n keyof PathItemObject,\n 'delete' | 'get' | 'head' | 'options' | 'patch' | 'post' | 'put' | 'trace'\n >;\n operation: Operation;\n operationIds: Map<string, string>;\n path: keyof IR.PathsObject;\n securitySchemesMap: Map<string, SecuritySchemeObject>;\n}) => {\n ensureUniqueOperationId({\n context,\n id: operation.operationId,\n method,\n operationIds,\n path,\n });\n\n if (!context.ir.paths) {\n context.ir.paths = {};\n }\n\n if (!context.ir.paths[path]) {\n context.ir.paths[path] = {};\n }\n\n if (operation.servers) {\n context.ir.servers = [...(context.ir.servers ?? []), ...operation.servers];\n }\n\n operation.id = operationToId({\n context,\n id: operation.operationId,\n method,\n path,\n });\n\n context.ir.paths[path][method] = operationToIrOperation({\n context,\n method,\n operation,\n path,\n securitySchemesMap,\n });\n};\n","import type { IR } from '../../../ir/types';\nimport { refToName } from '../../../utils/ref';\nimport type {\n ParameterObject,\n ReferenceObject,\n SchemaObject,\n} from '../types/spec';\nimport { mediaTypeObject } from './mediaType';\nimport { paginationField } from './pagination';\nimport { schemaToIrSchema } from './schema';\n\n/**\n * Returns default parameter `allowReserved` based on value of `in`.\n */\nconst defaultAllowReserved = (\n _in: ParameterObject['in'],\n): boolean | undefined => {\n switch (_in) {\n // this keyword only applies to parameters with an `in` value of `query`\n case 'query':\n return false;\n default:\n return;\n }\n};\n\n/**\n * Returns default parameter `explode` based on value of `style`.\n */\nconst defaultExplode = (style: Required<ParameterObject>['style']): boolean => {\n switch (style) {\n // default value for `deepObject` is `false`, but that behavior is undefined\n // so we use `true` to make this work with the `client-fetch` package\n case 'deepObject':\n case 'form':\n return true;\n default:\n return false;\n }\n};\n\n/**\n * Returns default parameter `style` based on value of `in`.\n */\nconst defaultStyle = (\n _in: ParameterObject['in'],\n): Required<ParameterObject>['style'] => {\n switch (_in) {\n case 'header':\n case 'path':\n return 'simple';\n case 'cookie':\n case 'query':\n return 'form';\n }\n};\n\nexport const parametersArrayToObject = ({\n context,\n parameters,\n}: {\n context: IR.Context;\n parameters?: ReadonlyArray<ParameterObject | ReferenceObject>;\n}): IR.ParametersObject | undefined => {\n if (!parameters || !Object.keys(parameters).length) {\n return;\n }\n\n const parametersObject: IR.ParametersObject = {};\n\n for (const parameterOrReference of parameters) {\n const parameter =\n '$ref' in parameterOrReference\n ? context.resolveRef<ParameterObject>(parameterOrReference.$ref)\n : parameterOrReference;\n\n if (!parametersObject[parameter.in]) {\n parametersObject[parameter.in] = {};\n }\n\n parametersObject[parameter.in]![parameter.name] = parameterToIrParameter({\n context,\n parameter,\n });\n }\n\n return parametersObject;\n};\n\nconst parameterToIrParameter = ({\n context,\n parameter,\n}: {\n context: IR.Context;\n parameter: ParameterObject;\n}): IR.ParameterObject => {\n // TODO: parser - fix\n let schema = parameter.schema;\n\n if (!schema) {\n const content = mediaTypeObject({\n content: parameter.content,\n });\n if (content) {\n schema = content.schema;\n }\n }\n\n const finalSchema: SchemaObject = {\n deprecated: parameter.deprecated,\n description: parameter.description,\n ...schema,\n };\n\n const pagination = paginationField({\n context,\n name: parameter.name,\n schema: finalSchema,\n });\n\n const style = parameter.style || defaultStyle(parameter.in);\n const explode =\n parameter.explode !== undefined ? parameter.explode : defaultExplode(style);\n const allowReserved =\n parameter.allowReserved !== undefined\n ? parameter.allowReserved\n : defaultAllowReserved(parameter.in);\n\n const irParameter: IR.ParameterObject = {\n allowReserved,\n explode,\n location: parameter.in,\n name: parameter.name,\n schema: schemaToIrSchema({\n context,\n schema: finalSchema,\n state: undefined,\n }),\n style,\n };\n\n if (parameter.deprecated) {\n irParameter.deprecated = parameter.deprecated;\n }\n\n if (parameter.description) {\n irParameter.description = parameter.description;\n }\n\n if (pagination) {\n irParameter.pagination = pagination;\n }\n\n if (parameter.required) {\n irParameter.required = parameter.required;\n }\n\n return irParameter;\n};\n\nexport const parseParameter = ({\n $ref,\n context,\n parameter,\n}: {\n $ref: string;\n context: IR.Context;\n parameter: ParameterObject;\n}) => {\n if (!context.ir.components) {\n context.ir.components = {};\n }\n\n if (!context.ir.components.parameters) {\n context.ir.components.parameters = {};\n }\n\n context.ir.components.parameters[refToName($ref)] = parameterToIrParameter({\n context,\n parameter,\n });\n};\n","import type { IR } from '../../../ir/types';\nimport { refToName } from '../../../utils/ref';\nimport type { RequestBodyObject, SchemaObject } from '../types/spec';\nimport { mediaTypeObject } from './mediaType';\nimport { schemaToIrSchema } from './schema';\n\nconst requestBodyToIrRequestBody = ({\n context,\n requestBody,\n}: {\n context: IR.Context;\n requestBody: RequestBodyObject;\n}): IR.RequestBodyObject => {\n // TODO: parser - fix\n const content = mediaTypeObject({\n content: requestBody.content,\n });\n const schema = content ? content.schema : undefined;\n\n const finalSchema: SchemaObject = {\n description: requestBody.description,\n ...schema,\n };\n\n const irRequestBody: IR.RequestBodyObject = {\n schema: schemaToIrSchema({\n context,\n schema: finalSchema,\n state: undefined,\n }),\n };\n\n if (requestBody.description) {\n irRequestBody.description = requestBody.description;\n }\n\n if (requestBody.required) {\n irRequestBody.required = requestBody.required;\n }\n\n return irRequestBody;\n};\n\nexport const parseRequestBody = ({\n $ref,\n context,\n requestBody,\n}: {\n $ref: string;\n context: IR.Context;\n requestBody: RequestBodyObject;\n}) => {\n if (!context.ir.components) {\n context.ir.components = {};\n }\n\n if (!context.ir.components.requestBodies) {\n context.ir.components.requestBodies = {};\n }\n\n context.ir.components.requestBodies[refToName($ref)] =\n requestBodyToIrRequestBody({\n context,\n requestBody,\n });\n};\n","import type { IR } from '../../../ir/types';\nimport { parseUrl } from '../../../utils/url';\n\nexport const parseServers = ({ context }: { context: IR.Context }) => {\n if (context.spec.servers) {\n context.ir.servers = context.spec.servers;\n return;\n }\n\n if (typeof context.config.input.path === 'string') {\n const url = parseUrl(context.config.input.path);\n context.ir.servers = [\n {\n url: `${url.protocol ? `${url.protocol}://` : ''}${url.host}${url.port ? `:${url.port}` : ''}`,\n },\n ];\n }\n\n if (!context.ir.servers) {\n context.ir.servers = [\n {\n url: '/',\n },\n ];\n }\n};\n","import type { IR } from '../../../ir/types';\nimport { canProcessRef, createFilters } from '../../shared/utils/filter';\nimport { mergeParametersObjects } from '../../shared/utils/parameter';\nimport type {\n OpenApiV3_1_X,\n ParameterObject,\n PathItemObject,\n PathsObject,\n RequestBodyObject,\n SecuritySchemeObject,\n} from '../types/spec';\nimport { parseOperation } from './operation';\nimport { parametersArrayToObject, parseParameter } from './parameter';\nimport { parseRequestBody } from './requestBody';\nimport { parseSchema } from './schema';\nimport { parseServers } from './server';\n\nexport const parseV3_1_X = (context: IR.Context<OpenApiV3_1_X>) => {\n const operationIds = new Map<string, string>();\n const securitySchemesMap = new Map<string, SecuritySchemeObject>();\n\n const excludeFilters = createFilters(context.config.input.exclude);\n const includeFilters = createFilters(context.config.input.include);\n\n const shouldProcessRef = ($ref: string, schema: Record<string, any>) =>\n canProcessRef({\n $ref,\n excludeFilters,\n includeFilters,\n schema,\n });\n\n // TODO: parser - handle more component types, old parser handles only parameters and schemas\n if (context.spec.components) {\n for (const name in context.spec.components.securitySchemes) {\n const securityOrReference =\n context.spec.components.securitySchemes[name]!;\n const securitySchemeObject =\n '$ref' in securityOrReference\n ? context.resolveRef<SecuritySchemeObject>(securityOrReference.$ref)\n : securityOrReference;\n securitySchemesMap.set(name, securitySchemeObject);\n }\n\n for (const name in context.spec.components.parameters) {\n const $ref = `#/components/parameters/${name}`;\n const parameterOrReference = context.spec.components.parameters[name]!;\n const parameter =\n '$ref' in parameterOrReference\n ? context.resolveRef<ParameterObject>(parameterOrReference.$ref)\n : parameterOrReference;\n\n if (!shouldProcessRef($ref, parameter)) {\n continue;\n }\n\n parseParameter({\n $ref,\n context,\n parameter,\n });\n }\n\n for (const name in context.spec.components.requestBodies) {\n const $ref = `#/components/requestBodies/${name}`;\n const requestBodyOrReference =\n context.spec.components.requestBodies[name]!;\n const requestBody =\n '$ref' in requestBodyOrReference\n ? context.resolveRef<RequestBodyObject>(requestBodyOrReference.$ref)\n : requestBodyOrReference;\n\n if (!shouldProcessRef($ref, requestBody)) {\n continue;\n }\n\n parseRequestBody({\n $ref,\n context,\n requestBody,\n });\n }\n\n for (const name in context.spec.components.schemas) {\n const $ref = `#/components/schemas/${name}`;\n const schema = context.spec.components.schemas[name]!;\n\n if (!shouldProcessRef($ref, schema)) {\n continue;\n }\n\n parseSchema({\n $ref,\n context,\n schema,\n });\n }\n }\n\n parseServers({ context });\n\n for (const path in context.spec.paths) {\n const pathItem = context.spec.paths[path as keyof PathsObject]!;\n\n const finalPathItem = pathItem.$ref\n ? {\n ...context.resolveRef<PathItemObject>(pathItem.$ref),\n ...pathItem,\n }\n : pathItem;\n\n const operationArgs: Omit<Parameters<typeof parseOperation>[0], 'method'> =\n {\n context,\n operation: {\n description: finalPathItem.description,\n id: '',\n parameters: parametersArrayToObject({\n context,\n parameters: finalPathItem.parameters,\n }),\n security: context.spec.security,\n servers: finalPathItem.servers,\n summary: finalPathItem.summary,\n },\n operationIds,\n path: path as keyof PathsObject,\n securitySchemesMap,\n };\n\n const $refDelete = `#/paths${path}/delete`;\n if (\n finalPathItem.delete &&\n shouldProcessRef($refDelete, finalPathItem.delete)\n ) {\n parseOperation({\n ...operationArgs,\n method: 'delete',\n operation: {\n ...operationArgs.operation,\n ...finalPathItem.delete,\n parameters: mergeParametersObjects({\n source: parametersArrayToObject({\n context,\n parameters: finalPathItem.delete.parameters,\n }),\n target: operationArgs.operation.parameters,\n }),\n },\n });\n }\n\n const $refGet = `#/paths${path}/get`;\n if (finalPathItem.get && shouldProcessRef($refGet, finalPathItem.get)) {\n parseOperation({\n ...operationArgs,\n method: 'get',\n operation: {\n ...operationArgs.operation,\n ...finalPathItem.get,\n parameters: mergeParametersObjects({\n source: parametersArrayToObject({\n context,\n parameters: finalPathItem.get.parameters,\n }),\n target: operationArgs.operation.parameters,\n }),\n },\n });\n }\n\n const $refHead = `#/paths${path}/head`;\n if (finalPathItem.head && shouldProcessRef($refHead, finalPathItem.head)) {\n parseOperation({\n ...operationArgs,\n method: 'head',\n operation: {\n ...operationArgs.operation,\n ...finalPathItem.head,\n parameters: mergeParametersObjects({\n source: parametersArrayToObject({\n context,\n parameters: finalPathItem.head.parameters,\n }),\n target: operationArgs.operation.parameters,\n }),\n },\n });\n }\n\n const $refOptions = `#/paths${path}/options`;\n if (\n finalPathItem.options &&\n shouldProcessRef($refOptions, finalPathItem.options)\n ) {\n parseOperation({\n ...operationArgs,\n method: 'options',\n operation: {\n ...operationArgs.operation,\n ...finalPathItem.options,\n parameters: mergeParametersObjects({\n source: parametersArrayToObject({\n context,\n parameters: finalPathItem.options.parameters,\n }),\n target: operationArgs.operation.parameters,\n }),\n },\n });\n }\n\n const $refPatch = `#/paths${path}/patch`;\n if (\n finalPathItem.patch &&\n shouldProcessRef($refPatch, finalPathItem.patch)\n ) {\n parseOperation({\n ...operationArgs,\n method: 'patch',\n operation: {\n ...operationArgs.operation,\n ...finalPathItem.patch,\n parameters: mergeParametersObjects({\n source: parametersArrayToObject({\n context,\n parameters: finalPathItem.patch.parameters,\n }),\n target: operationArgs.operation.parameters,\n }),\n },\n });\n }\n\n const $refPost = `#/paths${path}/post`;\n if (finalPathItem.post && shouldProcessRef($refPost, finalPathItem.post)) {\n parseOperation({\n ...operationArgs,\n method: 'post',\n operation: {\n ...operationArgs.operation,\n ...finalPathItem.post,\n parameters: mergeParametersObjects({\n source: parametersArrayToObject({\n context,\n parameters: finalPathItem.post.parameters,\n }),\n target: operationArgs.operation.parameters,\n }),\n },\n });\n }\n\n const $refPut = `#/paths${path}/put`;\n if (finalPathItem.put && shouldProcessRef($refPut, finalPathItem.put)) {\n parseOperation({\n ...operationArgs,\n method: 'put',\n operation: {\n ...operationArgs.operation,\n ...finalPathItem.put,\n parameters: mergeParametersObjects({\n source: parametersArrayToObject({\n context,\n parameters: finalPathItem.put.parameters,\n }),\n target: operationArgs.operation.parameters,\n }),\n },\n });\n }\n\n const $refTrace = `#/paths${path}/trace`;\n if (\n finalPathItem.trace &&\n shouldProcessRef($refTrace, finalPathItem.trace)\n ) {\n parseOperation({\n ...operationArgs,\n method: 'trace',\n operation: {\n ...operationArgs.operation,\n ...finalPathItem.trace,\n parameters: mergeParametersObjects({\n source: parametersArrayToObject({\n context,\n parameters: finalPathItem.trace.parameters,\n }),\n target: operationArgs.operation.parameters,\n }),\n },\n });\n }\n }\n};\n","export const allowedServiceMethods = [\n 'connect',\n 'delete',\n 'get',\n 'head',\n 'options',\n 'patch',\n 'post',\n 'put',\n 'trace',\n] as const;\n\n/**\n * Convert the service version to 'normal' version.\n * This basically removes any \"v\" prefix from the version string.\n * @param version\n */\nexport function getServiceVersion(version = '1.0'): string {\n return String(version).replace(/^v/gi, '');\n}\n","export const refParametersPartial = '#/components/parameters/';\n\nexport const refSchemasPartial = '#/components/schemas/';\n","import { ensureValidTypeScriptJavaScriptIdentifier } from '../openApi';\nimport type { Config } from '../types/config';\nimport { getConfig } from './config';\nimport { reservedJavaScriptKeywordsRegExp } from './regexp';\nimport { stringCase } from './stringCase';\n\nexport const transformServiceName = ({\n config,\n name,\n}: {\n config: Config;\n name: string;\n}) => {\n if (config.plugins['@hey-api/sdk']?.serviceNameBuilder) {\n return config.plugins['@hey-api/sdk'].serviceNameBuilder.replace(\n '{{name}}',\n name,\n );\n }\n\n return name;\n};\n\nexport const transformTypeName = (name: string) => {\n const config = getConfig();\n if (config.plugins['@hey-api/typescript']?.style === 'PascalCase') {\n return stringCase({\n case: 'PascalCase',\n value: name,\n });\n }\n return name;\n};\n\n/**\n * This method is meant to be used to process definition names\n * and return a cleaned up, transformed version that is legal\n * to use in the output code.\n *\n * For example, a definition with name \"400\" would result in \"_400\",\n * \"import\" would result in \"_import\", etc. This also respects the\n * casing configuration for types.\n *\n * @param name Name of the definition in OpenAPI specification.\n * @returns A cleaned up, transformed name usable in output code.\n */\nexport const cleanAndTransformTypeName = (name: string) => {\n const transformed = transformTypeName(name);\n const cleaned = ensureValidTypeScriptJavaScriptIdentifier(transformed);\n const result = cleaned.replace(reservedJavaScriptKeywordsRegExp, '_$1');\n return result;\n};\n","import type { OpenApiSchema } from '../interfaces/OpenApiSchema';\n\nexport const inferType = (\n definition: OpenApiSchema,\n definitionTypes: string[],\n) => {\n if (definition.enum && !definitionTypes.includes('boolean')) {\n return 'enum';\n }\n return undefined;\n};\n\nexport const isDefinitionTypeNullable = (\n definition: Pick<OpenApiSchema, 'type'>,\n) => getDefinitionTypes(definition).includes('null');\n\nexport const isDefinitionNullable = (\n definition: Pick<OpenApiSchema, 'nullable' | 'type'>,\n) => definition.nullable === true || isDefinitionTypeNullable(definition);\n\nexport const getDefinitionTypes = ({ type }: Pick<OpenApiSchema, 'type'>) => {\n if (Array.isArray(type)) {\n return type;\n }\n if (type) {\n return [type];\n }\n return [];\n};\n","/**\n * Strip (OpenAPI) namespaces from values.\n * @param value\n */\nexport const stripNamespace = (value: string): string =>\n value\n .trim()\n .replace(/^#\\/definitions\\//, '')\n .replace(/^#\\/parameters\\//, '')\n .replace(/^#\\/responses\\//, '')\n .replace(/^#\\/securityDefinitions\\//, '')\n .replace(/^#\\/components\\/schemas\\//, '')\n .replace(/^#\\/components\\/responses\\//, '')\n .replace(/^#\\/components\\/parameters\\//, '')\n .replace(/^#\\/components\\/examples\\//, '')\n .replace(/^#\\/components\\/requestBodies\\//, '')\n .replace(/^#\\/components\\/headers\\//, '')\n .replace(/^#\\/components\\/securitySchemes\\//, '')\n .replace(/^#\\/components\\/links\\//, '')\n .replace(/^#\\/components\\/callbacks\\//, '');\n","import { refParametersPartial } from '../../../utils/const';\nimport { transformTypeName } from '../../../utils/transform';\nimport { isDefinitionTypeNullable } from '../../v3/parser/inferType';\nimport type { Type } from '../interfaces/Type';\nimport { ensureValidTypeScriptJavaScriptIdentifier } from './sanitize';\nimport { stripNamespace } from './stripNamespace';\n\n/**\n * Get mapped type for given type to basic Typescript/Javascript type.\n */\nexport const getMappedType = (\n type: string,\n format?: string,\n): string | undefined => {\n if (format === 'binary') {\n return 'binary';\n }\n switch (type) {\n case 'any':\n case 'object':\n case 'unknown':\n return 'unknown';\n case 'array':\n return 'unknown[]';\n case 'boolean':\n return 'boolean';\n case 'byte':\n case 'double':\n case 'float':\n case 'int':\n case 'integer':\n case 'long':\n case 'number':\n case 'short':\n return 'number';\n case 'char':\n case 'date':\n case 'date-time':\n case 'password':\n case 'string':\n return 'string';\n case 'file':\n return 'binary';\n case 'null':\n return 'null';\n case 'void':\n return 'void';\n }\n};\n\n/**\n * Matches characters inside square brackets, including the brackets. Does not\n * match if the opening bracket is preceded by \"`1\" which is a syntax for generics\n * from C#.\n *\n * Hello[World] -> matches [World]\n * Hello`1[World] -> no match\n * string[] -> matches []\n */\nexport const hasSquareBracketsRegExp = /(?<!`1)\\[.*\\]$/g;\n\n/**\n * Parse any string value into a type object.\n * @param type String or String[] value like \"integer\", \"Link[Model]\" or [\"string\", \"null\"].\n * @param format String value like \"binary\" or \"date\".\n */\nexport const getType = ({\n debug,\n format,\n type = 'unknown',\n}: {\n debug?: boolean;\n format?: string;\n /**\n * Type can be the name of a schema component, a ref string, or any definition type.\n */\n type?: string | string[];\n}): Type => {\n const result: Type = {\n $refs: [],\n base: 'unknown',\n imports: [],\n isNullable: false,\n template: null,\n type: 'unknown',\n };\n\n // Special case for JSON Schema spec (december 2020, page 17),\n // that allows type to be an array of primitive types...\n if (Array.isArray(type)) {\n const joinedType = type\n .filter((value) => value !== 'null')\n .map((value) => getMappedType(value, format))\n .filter(Boolean)\n .join(' | ');\n result.type = joinedType;\n result.base = joinedType;\n result.isNullable = isDefinitionTypeNullable({ type });\n return result;\n }\n\n const mapped = getMappedType(type, format);\n if (mapped) {\n result.type = mapped;\n result.base = mapped;\n return result;\n }\n\n const typeWithoutNamespace = decodeURIComponent(stripNamespace(type));\n\n hasSquareBracketsRegExp.lastIndex = 0;\n if (hasSquareBracketsRegExp.test(typeWithoutNamespace)) {\n const matches = typeWithoutNamespace.match(/(.*?)\\[(.*)\\]$/);\n if (matches?.length) {\n const match1 = getType({\n debug,\n type: ensureValidTypeScriptJavaScriptIdentifier(matches[1]!),\n });\n const match2 = getType({\n debug,\n type: ensureValidTypeScriptJavaScriptIdentifier(matches[2]!),\n });\n\n if (match1.type === 'unknown[]') {\n result.type = `${match2.type}[]`;\n result.base = `${match2.type}`;\n match1.$refs = [];\n match1.imports = [];\n } else if (match2.type) {\n result.type = `${match1.type}<${match2.type}>`;\n result.base = match1.type;\n result.template = match2.type;\n } else {\n result.type = match1.type;\n result.base = match1.type;\n result.template = match1.type;\n }\n\n result.$refs = [...result.$refs, ...match1.$refs, ...match2.$refs];\n result.imports = [\n ...result.imports,\n ...match1.imports,\n ...match2.imports,\n ];\n return result;\n }\n }\n\n if (typeWithoutNamespace) {\n let encodedType = transformTypeName(\n ensureValidTypeScriptJavaScriptIdentifier(typeWithoutNamespace),\n );\n if (type.startsWith(refParametersPartial)) {\n // prefix parameter names to avoid conflicts, assuming people are mostly\n // interested in importing schema types and don't care about this naming\n encodedType = `Parameter${encodedType}`;\n }\n result.type = encodedType;\n result.base = encodedType;\n if (type.startsWith('#')) {\n result.$refs = [...result.$refs, decodeURIComponent(type)];\n }\n result.imports = [...result.imports, encodedType];\n return result;\n }\n\n return result;\n};\n","export function unique<T>(value: T, index: number, arr: T[]): boolean {\n return arr.indexOf(value) === index;\n}\n","import { unique } from '../../../utils/unique';\nimport type { Enum } from '../interfaces/client';\nimport type { WithEnumExtension } from '../interfaces/WithEnumExtension';\n\nexport const getEnums = (\n definition: WithEnumExtension,\n values?: ReadonlyArray<string | number>,\n): Enum[] => {\n if (!Array.isArray(values)) {\n return [];\n }\n\n const descriptions = (definition['x-enum-descriptions'] ?? []).filter(\n (value) => typeof value === 'string',\n );\n const names = (\n definition['x-enum-varnames'] ??\n definition['x-enumNames'] ??\n []\n ).filter((value) => typeof value === 'string');\n\n return values\n .filter(unique)\n .filter((value) => typeof value === 'number' || typeof value === 'string')\n .map((value, index) => ({\n customDescription: descriptions[index],\n customName: names[index],\n description: undefined,\n value,\n }));\n};\n","/**\n * The spec generates a pattern like this '^\\d{3}-\\d{2}-\\d{4}$'\n * However, to use it in HTML or inside new RegExp() we need to\n * escape the pattern to become: '^\\\\d{3}-\\\\d{2}-\\\\d{4}$' in order\n * to make it a valid regexp string.\n *\n * Also, escape single quote characters, because the output uses single quotes for strings\n *\n * @param pattern\n */\nexport const getPattern = (pattern?: string): string | undefined =>\n pattern?.replace(/\\\\/g, '\\\\\\\\').replace(/'/g, \"\\\\'\");\n","import type { Client } from '../../../types/client';\nimport { escapeName } from '../../../utils/escape';\nimport type { Model } from '../../common/interfaces/client';\nimport { getPattern } from '../../common/parser/getPattern';\nimport { getType } from '../../common/parser/type';\nimport type { GetModelFn } from '../interfaces/Model';\nimport type { OpenApi } from '../interfaces/OpenApi';\nimport type { OpenApiSchema } from '../interfaces/OpenApiSchema';\n\nexport const getModelProperties = ({\n definition,\n getModel,\n openApi,\n types,\n}: {\n definition: OpenApiSchema;\n getModel: GetModelFn;\n openApi: OpenApi;\n types: Client['types'];\n}): Model[] => {\n const models: Model[] = [];\n\n Object.entries(definition.properties ?? {}).forEach(\n ([propertyName, property]) => {\n const propertyRequired = Boolean(\n definition.required?.includes(propertyName),\n );\n if (property.$ref) {\n const model = getType({ type: property.$ref });\n models.push({\n $refs: [],\n base: model.base,\n description: property.description || null,\n enum: [],\n enums: [],\n exclusiveMaximum: property.exclusiveMaximum,\n exclusiveMinimum: property.exclusiveMinimum,\n export: 'reference',\n format: property.format,\n imports: model.imports,\n in: '',\n isDefinition: false,\n isNullable: property['x-nullable'] === true,\n isReadOnly: property.readOnly === true,\n isRequired: propertyRequired,\n link: null,\n maxItems: property.maxItems,\n maxLength: property.maxLength,\n maxProperties: property.maxProperties,\n maximum: property.maximum,\n minItems: property.minItems,\n minLength: property.minLength,\n minProperties: property.minProperties,\n minimum: property.minimum,\n multipleOf: property.multipleOf,\n name: escapeName(propertyName),\n pattern: getPattern(property.pattern),\n properties: [],\n template: model.template,\n type: model.type,\n uniqueItems: property.uniqueItems,\n });\n } else {\n const model = getModel({ definition: property, openApi, types });\n models.push({\n $refs: [],\n base: model.base,\n description: property.description || null,\n enum: model.enum,\n enums: model.enums,\n exclusiveMaximum: property.exclusiveMaximum,\n exclusiveMinimum: property.exclusiveMinimum,\n export: model.export,\n format: property.format,\n imports: model.imports,\n in: '',\n isDefinition: false,\n isNullable: property['x-nullable'] === true,\n isReadOnly: property.readOnly === true,\n isRequired: propertyRequired,\n link: model.link,\n maxItems: property.maxItems,\n maxLength: property.maxLength,\n maxProperties: property.maxProperties,\n maximum: property.maximum,\n minItems: property.minItems,\n minLength: property.minLength,\n minProperties: property.minProperties,\n minimum: property.minimum,\n multipleOf: property.multipleOf,\n name: escapeName(propertyName),\n pattern: getPattern(property.pattern),\n properties: model.properties,\n template: model.template,\n type: model.type,\n uniqueItems: property.uniqueItems,\n });\n }\n },\n );\n\n return models;\n};\n","import type { OpenApiReference as OpenApiReferenceV2 } from '../../v2/interfaces/OpenApiReference';\nimport type { OpenApiReference as OpenApiReferenceV3 } from '../../v3/interfaces/OpenApiReference';\nimport type { OpenApi } from '../interfaces/OpenApi';\n\nconst ESCAPED_REF_SLASH = /~1/g;\nconst ESCAPED_REF_TILDE = /~0/g;\n\nexport function getRef<T>(\n openApi: OpenApi,\n item: T & (OpenApiReferenceV2 | OpenApiReferenceV3),\n): T {\n if (item.$ref) {\n // Fetch the paths to the definitions, this converts:\n // \"#/components/schemas/Form\" to [\"components\", \"schemas\", \"Form\"]\n const paths = item.$ref.replace(/^#/g, '').split('/').filter(Boolean);\n\n // Try to find the reference by walking down the path,\n // if we cannot find it, then we throw an error.\n let result = openApi;\n paths.forEach((path) => {\n const decodedPath = decodeURIComponent(\n path.replace(ESCAPED_REF_SLASH, '/').replace(ESCAPED_REF_TILDE, '~'),\n );\n if (result.hasOwnProperty(decodedPath)) {\n // @ts-expect-error\n result = result[decodedPath];\n } else {\n throw new Error(`Could not find reference: \"${item.$ref}\"`);\n }\n });\n return result as T;\n }\n return item as T;\n}\n","import type { Client } from '../../../types/client';\nimport type { Model } from '../../common/interfaces/client';\nimport { getRef } from '../../common/parser/getRef';\nimport type { GetModelFn } from '../interfaces/Model';\nimport type { OpenApi } from '../interfaces/OpenApi';\nimport type { OpenApiSchema } from '../interfaces/OpenApiSchema';\n\nexport const getRequiredPropertiesFromComposition = ({\n definitions,\n getModel,\n openApi,\n required,\n types,\n}: {\n definitions: OpenApiSchema[];\n getModel: GetModelFn;\n openApi: OpenApi;\n required: string[];\n types: Client['types'];\n}): Model[] =>\n definitions\n .reduce((properties, definition) => {\n if (definition.$ref) {\n const schema = getRef<OpenApiSchema>(openApi, definition);\n return [\n ...properties,\n ...getModel({ definition: schema, openApi, types }).properties,\n ];\n }\n return [\n ...properties,\n ...getModel({ definition, openApi, types }).properties,\n ];\n }, [] as Model[])\n .filter(\n (property) => !property.isRequired && required.includes(property.name),\n )\n .map((property) => ({\n ...property,\n isRequired: true,\n }));\n","import type { Client } from '../../../types/client';\nimport type { Model, ModelComposition } from '../../common/interfaces/client';\nimport type { GetModelFn } from '../interfaces/Model';\nimport type { OpenApi } from '../interfaces/OpenApi';\nimport type { OpenApiSchema } from '../interfaces/OpenApiSchema';\nimport { getModelProperties } from './getModelProperties';\nimport { getRequiredPropertiesFromComposition } from './getRequiredPropertiesFromComposition';\n\nexport const getModelComposition = ({\n definition,\n definitions,\n getModel,\n openApi,\n type,\n types,\n}: {\n definition: OpenApiSchema;\n definitions: OpenApiSchema[];\n getModel: GetModelFn;\n openApi: OpenApi;\n type: 'one-of' | 'any-of' | 'all-of';\n types: Client['types'];\n}): ModelComposition => {\n const composition: ModelComposition = {\n $refs: [],\n enums: [],\n export: type,\n imports: [],\n properties: [],\n };\n\n const properties: Model[] = [];\n\n definitions\n .map((definition) => getModel({ definition, openApi, types }))\n .filter((model) => {\n const hasProperties = model.properties.length;\n const hasEnums = model.enums.length;\n const isObject = model.type === 'unknown';\n const isEmpty = isObject && !hasProperties && !hasEnums;\n return !isEmpty;\n })\n .forEach((model) => {\n composition.imports.push(...model.imports);\n composition.enums.push(...model.enums);\n composition.properties.push(model);\n });\n\n if (definition.required && type === 'all-of') {\n const requiredProperties = getRequiredPropertiesFromComposition({\n definitions,\n getModel,\n openApi,\n required: definition.required,\n types,\n });\n requiredProperties.forEach((requiredProperty) => {\n composition.imports.push(...requiredProperty.imports);\n composition.enums.push(...requiredProperty.enums);\n });\n properties.push(...requiredProperties);\n }\n\n if (definition.properties) {\n const modelProperties = getModelProperties({\n definition,\n getModel,\n openApi,\n types,\n });\n modelProperties.forEach((modelProperty) => {\n composition.imports.push(...modelProperty.imports);\n composition.enums.push(...modelProperty.enums);\n if (modelProperty.export === 'enum') {\n composition.enums.push(modelProperty);\n }\n });\n properties.push(...modelProperties);\n }\n\n if (properties.length) {\n composition.properties.push({\n $refs: [],\n base: 'unknown',\n description: '',\n enum: [],\n enums: [],\n export: 'interface',\n imports: [],\n in: '',\n isDefinition: false,\n isNullable: false,\n isReadOnly: false,\n isRequired: false,\n link: null,\n name: 'properties',\n properties,\n template: null,\n type: 'unknown',\n });\n }\n\n return composition;\n};\n","import type { Client } from '../../../types/client';\nimport type { Model, ModelMeta } from '../../common/interfaces/client';\nimport { getEnums } from '../../common/parser/getEnums';\nimport { getPattern } from '../../common/parser/getPattern';\nimport { getType } from '../../common/parser/type';\nimport type { OpenApi } from '../interfaces/OpenApi';\nimport type { OpenApiSchema } from '../interfaces/OpenApiSchema';\nimport { getModelComposition } from './getModelComposition';\nimport { getModelProperties } from './getModelProperties';\n\nexport const getModel = ({\n definition,\n isDefinition = false,\n meta,\n openApi,\n types,\n}: Pick<Client, 'types'> & {\n definition: OpenApiSchema;\n isDefinition?: boolean;\n meta?: ModelMeta;\n openApi: OpenApi;\n}): Model => {\n const model: Model = {\n $refs: [],\n base: 'unknown',\n description: definition.description || null,\n enum: [],\n enums: [],\n exclusiveMaximum: definition.exclusiveMaximum,\n exclusiveMinimum: definition.exclusiveMinimum,\n export: 'interface',\n format: definition.format,\n imports: [],\n in: '',\n isDefinition,\n isNullable: definition['x-nullable'] === true,\n isReadOnly: definition.readOnly === true,\n isRequired: false,\n link: null,\n maxItems: definition.maxItems,\n maxLength: definition.maxLength,\n maxProperties: definition.maxProperties,\n maximum: definition.maximum,\n meta,\n minItems: definition.minItems,\n minLength: definition.minLength,\n minProperties: definition.minProperties,\n minimum: definition.minimum,\n multipleOf: definition.multipleOf,\n name: meta?.name ?? '',\n pattern: getPattern(definition.pattern),\n properties: [],\n template: null,\n type: 'unknown',\n uniqueItems: definition.uniqueItems,\n };\n\n if (definition.$ref) {\n const definitionRef = getType({ type: definition.$ref });\n model.export = 'reference';\n model.type = definitionRef.type;\n model.base = definitionRef.base;\n model.template = definitionRef.template;\n model.imports.push(...definitionRef.imports);\n return model;\n }\n\n if (definition.enum && definition.type !== 'boolean') {\n const enums = getEnums(definition, definition.enum);\n if (enums.length) {\n model.base = 'string';\n model.enum = [...model.enum, ...enums];\n model.export = 'enum';\n model.type = 'string';\n return model;\n }\n }\n\n if (definition.type === 'array' && definition.items) {\n if (definition.items.$ref) {\n const arrayItems = getType({ type: definition.items.$ref });\n model.export = 'array';\n model.type = arrayItems.type;\n model.base = arrayItems.base;\n model.template = arrayItems.template;\n model.imports.push(...arrayItems.imports);\n return model;\n } else {\n const arrayItems = getModel({\n definition: definition.items,\n openApi,\n types,\n });\n model.export = 'array';\n model.type = arrayItems.type;\n model.base = arrayItems.base;\n model.template = arrayItems.template;\n model.link = arrayItems;\n model.imports.push(...arrayItems.imports);\n return model;\n }\n }\n\n if (\n definition.type === 'object' &&\n typeof definition.additionalProperties === 'object'\n ) {\n if (definition.additionalProperties.$ref) {\n const additionalProperties = getType({\n type: definition.additionalProperties.$ref,\n });\n model.export = 'dictionary';\n model.type = additionalProperties.type;\n model.base = additionalProperties.base;\n model.template = additionalProperties.template;\n model.imports.push(...additionalProperties.imports);\n return model;\n } else {\n const additionalProperties = getModel({\n definition: definition.additionalProperties,\n openApi,\n types,\n });\n model.export = 'dictionary';\n model.type = additionalProperties.type;\n model.base = additionalProperties.base;\n model.template = additionalProperties.template;\n model.link = additionalProperties;\n model.imports.push(...additionalProperties.imports);\n return model;\n }\n }\n\n if (definition.allOf?.length) {\n const composition = getModelComposition({\n definition,\n definitions: definition.allOf,\n getModel,\n openApi,\n type: 'all-of',\n types,\n });\n model.export = composition.export;\n model.imports.push(...composition.imports);\n model.properties.push(...composition.properties);\n model.enums = [...model.enums, ...composition.enums];\n return model;\n }\n\n if (definition.type === 'object') {\n model.export = 'interface';\n model.type = 'unknown';\n model.base = 'unknown';\n\n if (definition.properties) {\n const modelProperties = getModelProperties({\n definition,\n getModel,\n openApi,\n types,\n });\n modelProperties.forEach((modelProperty) => {\n model.imports.push(...modelProperty.imports);\n model.enums = [...model.enums, ...modelProperty.enums];\n model.properties.push(modelProperty);\n if (modelProperty.export === 'enum') {\n model.enums = [...model.enums, modelProperty];\n }\n });\n }\n return model;\n }\n\n // If the schema has a type than it can be a basic or generic type.\n if (definition.type) {\n const definitionType = getType({\n format: definition.format,\n type: definition.type,\n });\n model.export = 'generic';\n model.type = definitionType.type;\n model.base = definitionType.base;\n model.template = definitionType.template;\n model.imports.push(...definitionType.imports);\n return model;\n }\n\n return model;\n};\n","import type { Client } from '../../../types/client';\nimport { reservedJavaScriptKeywordsRegExp } from '../../../utils/regexp';\nimport { getType } from '../../common/parser/type';\nimport type { OpenApi } from '../interfaces/OpenApi';\nimport { getModel } from './getModel';\n\nexport const getModels = (\n openApi: OpenApi,\n): Pick<Client, 'models' | 'types'> => {\n const types: Client['types'] = {};\n let models: Client['models'] = [];\n\n Object.entries(openApi.definitions ?? {}).forEach(\n ([definitionName, definition]) => {\n const definitionType = getType({ type: definitionName });\n const name = definitionType.base.replace(\n reservedJavaScriptKeywordsRegExp,\n '_$1',\n );\n const meta = {\n $ref: `#/definitions/${definitionName}`,\n name,\n };\n types[name] = meta;\n const model = getModel({\n definition,\n isDefinition: true,\n meta,\n openApi,\n types,\n });\n models = [...models, model];\n },\n );\n\n return {\n models,\n types,\n };\n};\n","import type { Enum, Model } from '../openApi';\nimport { ensureValidTypeScriptJavaScriptIdentifier } from '../openApi';\nimport { unescapeName } from './escape';\nimport { sort } from './sort';\nimport { unique } from './unique';\n\n/**\n * Sanitizes names of enums, so they are valid typescript identifiers of a certain form.\n *\n * 1: Replace all characters not legal as part of identifier with '_'\n * 2: Add '_' prefix if first character of enum name has character not legal for start of identifier\n * 3: Add '_' where the string transitions from lowercase to uppercase\n * 4: Transform the whole string to uppercase\n *\n * Javascript identifier regexp pattern retrieved from https://developer.mozilla.org/docs/Web/JavaScript/Reference/Lexical_grammar#identifiers\n */\nexport const enumKey = (value?: string | number, customName?: string) => {\n if (customName) {\n return customName;\n }\n // prefix numbers with underscore\n if (typeof value === 'number') {\n return `'_${value}'`;\n }\n\n let key = '';\n if (typeof value === 'string') {\n key = value\n .replace(/[^$\\u200c\\u200d\\p{ID_Continue}]/gu, '_')\n .replace(/^([^$_\\p{ID_Start}])/u, '_$1')\n .replace(/(\\p{Lowercase})(\\p{Uppercase}+)/gu, '$1_$2');\n }\n key = key.trim();\n if (!key) {\n key = 'empty_string';\n }\n return key.toUpperCase();\n};\n\nexport const enumUnionType = (enums: Enum[]) =>\n enums\n .map((enumerator) => enumValue(enumerator.value, true))\n .filter(unique)\n .join(' | ');\n\nexport const enumValue = (value?: string | number, union: boolean = false) => {\n if (typeof value === 'string') {\n if (value.includes(\"'\") && union) {\n return `\"${value}\"`;\n }\n return `'${value}'`;\n }\n return value;\n};\n\nexport const enumEntry = (enumerator: Enum) => {\n const key = enumKey(enumerator.value, enumerator.customName);\n const value = enumValue(enumerator.value);\n return { key, value };\n};\n\n/**\n * Represent enum in `meta` object for deduplication\n */\nexport const enumMeta = (model: Model): Required<Model>['meta'] => {\n // serialize enum values in namespace for quick lookup\n const serialized = model.enum\n .map((enumerator) => enumEntry(enumerator))\n .sort((a, b) => sort(a.key, b.key))\n .map((enumerator) => `${enumerator.key}=${enumerator.value}`)\n .join('&');\n return {\n $ref: `enum/${model.name}/${serialized}`,\n name: ensureValidTypeScriptJavaScriptIdentifier(unescapeName(model.name)),\n };\n};\n","import { getType } from '../openApi';\nimport { refParametersPartial, refSchemasPartial } from './const';\nimport { reservedJavaScriptKeywordsRegExp } from './regexp';\nimport { cleanAndTransformTypeName } from './transform';\n\nexport const getParametersMeta = (definitionName: string) => {\n const definitionType = getType({ type: definitionName });\n /**\n * Prefix parameter names to avoid name conflicts with schemas.\n * Assuming people are mostly interested in importing schema types\n * and don't care about this name as much. It should be resolved in\n * a cleaner way, there just isn't a good deduplication strategy\n * today. This is a workaround in the meantime, hopefully reducing\n * the chance of conflicts.\n *\n * Example where this would break: schema named `ParameterFoo` and\n * parameter named `Foo` (this would transform to `ParameterFoo`)\n *\n * Note: there's a related code to this workaround in `getType()`\n * method that needs to be cleaned up when this is addressed.\n */\n const name = `Parameter${definitionType.base.replace(reservedJavaScriptKeywordsRegExp, '_$1')}`;\n const meta = {\n $ref: refParametersPartial + definitionName,\n name,\n };\n return meta;\n};\n\n/**\n * @param definitionName Name of the schema definition in OpenAPI specification.\n * @returns meta object\n */\nexport const getSchemasMeta = (definitionName: string) => {\n const name = cleanAndTransformTypeName(definitionName);\n const meta = {\n $ref: refSchemasPartial + definitionName,\n name,\n };\n return meta;\n};\n","import { compiler, type Property, type TypeNode } from '../compiler';\nimport type { Model } from '../openApi';\nimport { sanitizeOperationParameterName } from '../openApi';\nimport type { Client } from '../types/client';\nimport { getConfig, isLegacyClient } from './config';\nimport { refSchemasPartial } from './const';\nimport { enumValue } from './enum';\nimport { escapeComment, escapeName, unescapeName } from './escape';\nimport { getSchemasMeta } from './meta';\nimport { reservedJavaScriptKeywordsRegExp } from './regexp';\nimport { stringCase } from './stringCase';\nimport { unique } from './unique';\n\nexport const isModelDate = (model: Model): boolean =>\n model.format === 'date' || model.format === 'date-time';\n\nconst base = (model: Model) => {\n const config = getConfig();\n\n if (model.base === 'binary') {\n return compiler.typeUnionNode({\n types: ['Blob', 'File'],\n });\n }\n\n if (config.plugins['@hey-api/transformers']?.dates && isModelDate(model)) {\n return compiler.typeNode('Date');\n }\n\n return compiler.typeNode(model.base);\n};\n\nconst typeReference = (model: Model) => {\n // nullable is false when base is null to avoid duplicate null statements\n const isNullable = model.base === 'null' ? false : model.isNullable;\n let typeNode = base(model);\n /**\n * special handling for single reference. The current approach didn't handle\n * transformed names, this fixes that. We should add a more robust solution,\n * but this will work for now.\n * {@link https://github.com/hey-api/openapi-ts/issues/768}\n */\n if (model.export === 'reference' && model.$refs.length === 1) {\n if (model.$refs[0]!.startsWith(refSchemasPartial)) {\n const meta = getSchemasMeta(model.base);\n typeNode = compiler.typeNode(meta.name);\n }\n }\n const unionNode = compiler.typeUnionNode({\n isNullable,\n types: [typeNode],\n });\n return unionNode;\n};\n\nconst typeArray = (model: Model) => {\n if (model.link) {\n // We treat an array of `model.link` as constant size array definition.\n if (Array.isArray(model.link)) {\n const types = model.link.map((m) => toType(m));\n const tuple = compiler.typeTupleNode({\n isNullable: model.isNullable,\n types,\n });\n return tuple;\n }\n\n // Special case where we use tuple to define constant size array.\n if (\n model.export === 'array' &&\n model.maxItems &&\n model.minItems &&\n model.maxItems === model.minItems &&\n model.maxItems <= 100\n ) {\n const types = Array(model.maxItems).fill(toType(model.link));\n const tuple = compiler.typeTupleNode({\n isNullable: model.isNullable,\n types,\n });\n return tuple;\n }\n\n return compiler.typeArrayNode([toType(model.link)], model.isNullable);\n }\n\n return compiler.typeArrayNode([base(model)], model.isNullable);\n};\n\nconst typeEnum = (model: Model) => {\n const values = model.enum.map((enumerator) => enumValue(enumerator.value));\n return compiler.typeUnionNode({\n isNullable: model.isNullable,\n types: values,\n });\n};\n\nconst typeDict = (model: Model) => {\n const type =\n model.link && !Array.isArray(model.link) ? toType(model.link) : base(model);\n return compiler.typeRecordNode(['string'], [type], model.isNullable, true);\n};\n\nconst typeUnionOrIntersection = ({\n model,\n style,\n}: {\n model: Model;\n style: 'intersection' | 'union';\n}) => {\n const types = model.properties\n .map((model) => {\n const str = compiler.nodeToString({\n node: toType(model),\n unescape: true,\n });\n return str;\n })\n .filter(unique);\n\n const node =\n style === 'union'\n ? compiler.typeUnionNode({\n // avoid printing duplicate null statements\n isNullable:\n model.isNullable &&\n !model.properties.find((property) => property.isNullable),\n types,\n })\n : compiler.typeIntersectionNode({\n isNullable: model.isNullable,\n types,\n });\n\n // top-level models don't need parentheses around them\n if (model.meta) {\n return node;\n }\n\n return compiler.typeParenthesizedNode({\n type: node,\n });\n};\n\nconst typeInterface = (model: Model) => {\n if (!model.properties.length) {\n return compiler.typeNode('unknown');\n }\n\n const config = getConfig();\n\n const isLegacy = isLegacyClient(config);\n\n const properties: Property[] = model.properties.map((property) => {\n let maybeRequired = property.isRequired ? '' : '?';\n let value = toType(property);\n let name = !isLegacy\n ? escapeName(unescapeName(transformTypeKeyName(property.name)))\n : // special test for 1XX status codes. We need a more robust system\n // for escaping values depending on context in which they're printed,\n // but since this works for client packages, it's not worth it right now\n /^\\dXX$/.test(property.name)\n ? escapeName(property.name)\n : property.name;\n // special case for additional properties type\n if (property.name === '[key: string]') {\n name = property.name;\n if (maybeRequired) {\n maybeRequired = '';\n value = compiler.typeUnionNode({\n types: [value, 'undefined'],\n });\n }\n }\n return {\n comment: [\n property.description && escapeComment(property.description),\n property.deprecated && '@deprecated',\n ],\n isReadOnly: property.isReadOnly,\n isRequired: maybeRequired === '',\n name,\n type: value,\n };\n });\n\n return compiler.typeInterfaceNode({\n isNullable: model.isNullable,\n properties,\n useLegacyResolution: true,\n });\n};\n\nexport const toType = (model: Model): TypeNode => {\n switch (model.export) {\n case 'all-of':\n return typeUnionOrIntersection({\n model,\n style: 'intersection',\n });\n case 'any-of':\n case 'one-of':\n return typeUnionOrIntersection({\n model,\n style: 'union',\n });\n case 'array':\n return typeArray(model);\n case 'dictionary':\n return typeDict(model);\n case 'enum':\n return typeEnum(model);\n case 'interface':\n return typeInterface(model);\n case 'const':\n case 'generic':\n case 'reference':\n default:\n return typeReference(model);\n }\n};\n\nexport interface SetUniqueTypeNameResult {\n /**\n * Did this function add a new property to the `client.types` object?\n */\n created: boolean;\n /**\n * Unique name for the exported type.\n */\n name: string;\n}\n\n/**\n * Generates a unique name for the exported type for given model meta.\n * @param args.client Internal client instance\n * @param args.count Unique key for deduplication\n * @param args.create If a name record does not exist, should it be created?\n * @param args.meta Meta property from the model\n * @param args.nameTransformer Function for transforming name into the final\n * value. In different contexts, a different strategy might be used. For\n * example, slashes `/` are invalid in TypeScript identifiers, but okay in\n * a JavaScript object key name.\n * @returns {SetUniqueTypeNameResult}\n */\nexport const setUniqueTypeName = ({\n client,\n count = 1,\n create = false,\n meta,\n nameTransformer,\n}: Pick<Required<Model>, 'meta'> & {\n client: Client;\n count?: number;\n create?: boolean;\n nameTransformer?: (value: string) => string;\n}): SetUniqueTypeNameResult => {\n let result: SetUniqueTypeNameResult = {\n created: false,\n name: '',\n };\n let name = meta.name;\n if (nameTransformer) {\n name = nameTransformer(name);\n }\n if (count > 1) {\n name = `${name}${count}`;\n }\n const type = client.types[name];\n if (!type) {\n if (create) {\n client.types[name] = meta;\n result = {\n created: true,\n name,\n };\n }\n } else if (type.$ref === meta.$ref) {\n result = {\n created: false,\n name,\n };\n } else {\n result = setUniqueTypeName({\n client,\n count: count + 1,\n create,\n meta,\n nameTransformer,\n });\n }\n return result;\n};\n\nexport interface UnsetUniqueTypeNameResult {\n /**\n * Did this function delete a property from the `client.types` object?\n */\n deleted: boolean;\n /**\n * Unique name removed from the `client.types` object.\n */\n name: string;\n}\n\nexport const unsetUniqueTypeName = ({\n client,\n name,\n}: {\n client: Client;\n name: string;\n}): UnsetUniqueTypeNameResult => {\n let result: UnsetUniqueTypeNameResult = {\n deleted: false,\n name: '',\n };\n if (!client.types[name]) {\n return result;\n }\n delete client.types[name];\n result = {\n deleted: true,\n name,\n };\n return result;\n};\n\n/**\n * Replaces any invalid characters from a parameter name.\n * For example: 'filter.someProperty' becomes 'filterSomeProperty'.\n */\nexport const transformTypeKeyName = (value: string): string => {\n const config = getConfig();\n\n // transform only for legacy clients\n if (!isLegacyClient(config)) {\n return value;\n }\n\n const name = stringCase({\n case: 'camelCase',\n value: sanitizeOperationParameterName(value),\n }).replace(reservedJavaScriptKeywordsRegExp, '_$1');\n return name;\n};\n","import type { Config } from '../../../types/config';\nimport { getConfig, isLegacyClient } from '../../../utils/config';\nimport { stringCase } from '../../../utils/stringCase';\nimport { transformTypeKeyName } from '../../../utils/type';\nimport type {\n OperationParameter,\n OperationResponse,\n} from '../interfaces/client';\nimport { sanitizeNamespaceIdentifier } from './sanitize';\n\nexport const getOperationKey = (operation: {\n method: string;\n path: string;\n}) => {\n const operationKey = `${operation.method.toUpperCase()} ${operation.path}`;\n return operationKey;\n};\n\nexport const getOperationResponseHeader = (\n operationResponses: OperationResponse[],\n): string | null => {\n const header = operationResponses.find(\n (operationResponses) => operationResponses.in === 'header',\n );\n if (header) {\n return header.name;\n }\n return null;\n};\n\n/**\n * Does this operation have at least one required parameter?\n * @returns boolean\n */\nexport const isOperationParameterRequired = (\n parameters: OperationParameter[],\n) => {\n const isRequired = parameters.some((parameter) => parameter.isRequired);\n return isRequired;\n};\n\n/**\n * Attempts to parse response status code from string into number.\n * @param value string status code from OpenAPI definition\n * @returns Parsed status code or null if invalid value\n */\nexport const parseResponseStatusCode = (\n value: string,\n): OperationResponse['code'] | null => {\n if (value === 'default') {\n return 'default';\n }\n\n if (value === '1XX') {\n return '1XX';\n }\n\n if (value === '2XX') {\n return '2XX';\n }\n\n if (value === '3XX') {\n return '3XX';\n }\n\n if (value === '4XX') {\n return '4XX';\n }\n\n if (value === '5XX') {\n return '5XX';\n }\n\n if (/\\d{3}/g.test(value)) {\n const code = Number.parseInt(value, 10);\n if (code >= 100 && code < 600) {\n return code;\n }\n }\n\n return null;\n};\n\nexport const sorterByResponseStatusCode = (\n a: OperationResponse,\n b: OperationResponse,\n) => {\n if (a.code > b.code) {\n return 1;\n }\n\n if (a.code < b.code) {\n return -1;\n }\n\n return 0;\n};\n\nconst isErrorStatusCode = (code: OperationResponse['code']) =>\n code === '3XX' ||\n code === '4XX' ||\n code === '5XX' ||\n (typeof code === 'number' && code >= 300);\n\nconst isSuccessStatusCode = (code: OperationResponse['code']) =>\n code === '2XX' || (typeof code === 'number' && code >= 200 && code < 300);\n\n/**\n * Detects whether default response is meant to be used\n * for error or success response.\n */\nconst inferDefaultResponseTypes = (\n response: OperationResponse,\n responses: OperationResponse[],\n) => {\n let types: Array<'error' | 'success'> = [];\n\n const addResponseType = (type: (typeof types)[number]) => {\n if (!types.includes(type)) {\n types = [...types, type];\n }\n };\n\n const hasSuccessResponse = responses.some(({ code }) =>\n isSuccessStatusCode(code),\n );\n if (!hasSuccessResponse) {\n addResponseType('success');\n }\n\n const description = (response.description ?? '').toLocaleLowerCase();\n const $refs = response.$refs.join('|').toLocaleLowerCase();\n\n // must be in lowercase\n const errorKeywords = ['error', 'problem'];\n const successKeywords = ['success'];\n\n if (\n successKeywords.some(\n (keyword) => description.includes(keyword) || $refs.includes(keyword),\n )\n ) {\n addResponseType('success');\n }\n\n if (\n errorKeywords.some(\n (keyword) => description.includes(keyword) || $refs.includes(keyword),\n )\n ) {\n addResponseType('error');\n }\n\n if (!types.length) {\n addResponseType('error');\n }\n\n return types;\n};\n\nexport const operationFilterFn = ({\n config,\n operationKey,\n}: {\n config: Config;\n operationKey: string;\n}): boolean => {\n const regexp = config.plugins['@hey-api/sdk']?.filter\n ? new RegExp(config.plugins['@hey-api/sdk']?.filter)\n : undefined;\n return !regexp || regexp.test(operationKey);\n};\n\n/**\n * Convert the input value to a correct operation (method) class name.\n * This will use the operation ID - if available - and otherwise fallback\n * on a generated name from the URL\n */\nexport const operationNameFn = ({\n config,\n method,\n operationId,\n path,\n}: {\n config: Config;\n method: string;\n operationId: string | undefined;\n path: string;\n}): string => {\n if (config.plugins['@hey-api/sdk']?.operationId && operationId) {\n return stringCase({\n case: 'camelCase',\n value: sanitizeNamespaceIdentifier(operationId),\n });\n }\n\n let urlWithoutPlaceholders = path;\n\n // legacy clients ignore the \"api-version\" param since we do not want to\n // add it as the first/default parameter for each of the service calls\n if (isLegacyClient(config)) {\n urlWithoutPlaceholders = urlWithoutPlaceholders.replace(\n /[^/]*?{api-version}.*?\\//g,\n '',\n );\n }\n\n urlWithoutPlaceholders = urlWithoutPlaceholders\n .replace(/{(.*?)}/g, 'by-$1')\n // replace slashes with hyphens for camelcase method at the end\n .replace(/[/:+]/g, '-');\n\n return stringCase({\n case: 'camelCase',\n value: `${method}-${urlWithoutPlaceholders}`,\n });\n};\n\nexport const operationParameterFilterFn = (\n parameter: OperationParameter,\n): boolean => {\n const config = getConfig();\n\n // legacy clients ignore the \"api-version\" param since we do not want to\n // add it as the first/default parameter for each of the service calls\n return !isLegacyClient(config) || parameter.prop !== 'api-version';\n};\n\nexport const operationParameterNameFn = (\n parameter: Omit<OperationParameter, 'name'>,\n): string => {\n const config = getConfig();\n\n return !isLegacyClient(config)\n ? parameter.prop\n : transformTypeKeyName(parameter.prop);\n};\n\nexport const tagResponseTypes = (responses: OperationResponse[]) =>\n responses.map((response) => {\n const { code } = response;\n if (code === 'default') {\n response.responseTypes = inferDefaultResponseTypes(response, responses);\n } else if (isSuccessStatusCode(code)) {\n response.responseTypes = ['success'];\n } else if (isErrorStatusCode(code)) {\n response.responseTypes = ['error'];\n }\n return response;\n });\n","import type { Model } from '../../common/interfaces/client';\nimport type { OpenApiParameter } from '../../v2/interfaces/OpenApiParameter';\nimport type { OpenApiSchema } from '../../v3/interfaces/OpenApiSchema';\nimport { getDefinitionTypes } from '../../v3/parser/inferType';\nimport type { OperationParameter } from '../interfaces/client';\n\nexport const getDefault = (\n definition: OpenApiSchema | OpenApiParameter,\n model?: Model | OperationParameter,\n): unknown | undefined => {\n if (definition.default === undefined || definition.default === null) {\n return definition.default;\n }\n\n const definitionTypes = getDefinitionTypes(definition);\n\n const type =\n definitionTypes.find((type) => type !== 'null') ||\n typeof definition.default;\n\n switch (type) {\n case 'int':\n case 'integer':\n case 'number':\n if (\n model?.export === 'enum' &&\n model.enum?.[definition.default as number]\n ) {\n const { value } = model.enum[definition.default as number]!;\n return value;\n }\n return definition.default;\n case 'array':\n case 'boolean':\n case 'object':\n case 'string':\n return definition.default;\n default:\n return undefined;\n }\n};\n","import type { Client } from '../../../types/client';\nimport type { OperationParameter } from '../../common/interfaces/client';\nimport { getDefault } from '../../common/parser/getDefault';\nimport { getEnums } from '../../common/parser/getEnums';\nimport { getPattern } from '../../common/parser/getPattern';\nimport { getRef } from '../../common/parser/getRef';\nimport { operationParameterNameFn } from '../../common/parser/operation';\nimport { getType } from '../../common/parser/type';\nimport type { OpenApi } from '../interfaces/OpenApi';\nimport type { OpenApiParameter } from '../interfaces/OpenApiParameter';\nimport type { OpenApiSchema } from '../interfaces/OpenApiSchema';\nimport { getModel } from './getModel';\n\nexport const getOperationParameter = ({\n openApi,\n parameter,\n types,\n}: {\n openApi: OpenApi;\n parameter: OpenApiParameter;\n types: Client['types'];\n}): OperationParameter => {\n const operationParameterWithoutName: Omit<OperationParameter, 'name'> = {\n $refs: [],\n base: 'unknown',\n description: parameter.description || null,\n enum: [],\n enums: [],\n exclusiveMaximum: parameter.exclusiveMaximum,\n exclusiveMinimum: parameter.exclusiveMinimum,\n export: 'interface',\n format: parameter.format,\n imports: [],\n in: parameter.in,\n isDefinition: false,\n isNullable: parameter['x-nullable'] === true,\n isReadOnly: false,\n isRequired: parameter.required === true,\n link: null,\n maxItems: parameter.maxItems,\n maxLength: parameter.maxLength,\n maximum: parameter.maximum,\n mediaType: null,\n minItems: parameter.minItems,\n minLength: parameter.minLength,\n minimum: parameter.minimum,\n multipleOf: parameter.multipleOf,\n pattern: getPattern(parameter.pattern),\n prop: parameter.name,\n properties: [],\n template: null,\n type: 'unknown',\n uniqueItems: parameter.uniqueItems,\n };\n let operationParameter = {\n ...operationParameterWithoutName,\n name: operationParameterNameFn(operationParameterWithoutName),\n };\n\n if (parameter.$ref) {\n const model = getType({ type: parameter.$ref });\n operationParameter = {\n ...operationParameter,\n $refs: [...operationParameter.$refs, ...model.$refs],\n base: model.base,\n export: 'reference',\n imports: [...operationParameter.imports, ...model.imports],\n template: model.template,\n type: model.type,\n };\n operationParameter.default = getDefault(parameter, operationParameter);\n return operationParameter;\n }\n\n if (parameter.enum) {\n const model = getEnums(parameter, parameter.enum);\n if (model.length) {\n operationParameter = {\n ...operationParameter,\n base: 'string',\n enum: [...operationParameter.enum, ...model],\n export: 'enum',\n type: 'string',\n };\n operationParameter.default = getDefault(parameter, operationParameter);\n return operationParameter;\n }\n }\n\n if (parameter.type === 'array' && parameter.items) {\n const model = getType({\n format: parameter.items.format,\n type: parameter.items.type,\n });\n operationParameter = {\n ...operationParameter,\n $refs: [...operationParameter.$refs, ...model.$refs],\n base: model.base,\n export: 'array',\n imports: [...operationParameter.imports, ...model.imports],\n template: model.template,\n type: model.type,\n };\n operationParameter.default = getDefault(parameter, operationParameter);\n return operationParameter;\n }\n\n if (parameter.type === 'object' && parameter.items) {\n const model = getType({\n format: parameter.items.format,\n type: parameter.items.type,\n });\n operationParameter = {\n ...operationParameter,\n $refs: [...operationParameter.$refs, ...model.$refs],\n base: model.base,\n export: 'dictionary',\n imports: [...operationParameter.imports, ...model.imports],\n template: model.template,\n type: model.type,\n };\n operationParameter.default = getDefault(parameter, operationParameter);\n return operationParameter;\n }\n\n let schema = parameter.schema;\n if (schema) {\n if (schema.$ref?.startsWith('#/parameters/')) {\n schema = getRef<OpenApiSchema>(openApi, schema);\n }\n\n if (schema.$ref) {\n const model = getType({ type: schema.$ref });\n operationParameter = {\n ...operationParameter,\n $refs: [...operationParameter.$refs, ...model.$refs],\n base: model.base,\n export: 'reference',\n imports: [...operationParameter.imports, ...model.imports],\n template: model.template,\n type: model.type,\n };\n operationParameter.default = getDefault(parameter, operationParameter);\n return operationParameter;\n }\n\n const model = getModel({ definition: schema, openApi, types });\n operationParameter = {\n ...operationParameter,\n $refs: [...operationParameter.$refs, ...model.$refs],\n base: model.base,\n enum: [...operationParameter.enum, ...model.enum],\n enums: [...operationParameter.enums, ...model.enums],\n export: model.export,\n imports: [...operationParameter.imports, ...model.imports],\n link: model.link,\n properties: [...operationParameter.properties, ...model.properties],\n template: model.template,\n type: model.type,\n };\n operationParameter.default = getDefault(parameter, operationParameter);\n return operationParameter;\n }\n\n // If the parameter has a type than it can be a basic or generic type.\n if (parameter.type) {\n const model = getType({\n format: parameter.format,\n type: parameter.type,\n });\n operationParameter = {\n ...operationParameter,\n $refs: [...operationParameter.$refs, ...model.$refs],\n base: model.base,\n export: 'generic',\n imports: [...operationParameter.imports, ...model.imports],\n template: model.template,\n type: model.type,\n };\n operationParameter.default = getDefault(parameter, operationParameter);\n return operationParameter;\n }\n\n return operationParameter;\n};\n","import type { Client } from '../../../types/client';\nimport type { OperationParameters } from '../../common/interfaces/client';\nimport { getRef } from '../../common/parser/getRef';\nimport { operationParameterFilterFn } from '../../common/parser/operation';\nimport type { OpenApi } from '../interfaces/OpenApi';\nimport type { OpenApiParameter } from '../interfaces/OpenApiParameter';\nimport { getOperationParameter } from './getOperationParameter';\n\nconst allowedIn = ['body', 'formData', 'header', 'path', 'query'] as const;\n\nexport const getOperationParameters = ({\n openApi,\n parameters,\n types,\n}: {\n openApi: OpenApi;\n parameters: OpenApiParameter[];\n types: Client['types'];\n}): OperationParameters => {\n const operationParameters: OperationParameters = {\n $refs: [],\n imports: [],\n parameters: [],\n parametersBody: null,\n parametersCookie: [], // not used in v2\n parametersForm: [],\n parametersHeader: [],\n parametersPath: [],\n parametersQuery: [],\n };\n\n parameters.forEach((parameterOrReference) => {\n const parameterDef = getRef<OpenApiParameter>(\n openApi,\n parameterOrReference,\n );\n const parameter = getOperationParameter({\n openApi,\n parameter: parameterDef,\n types,\n });\n\n const skip = !operationParameterFilterFn(parameter);\n if (!allowedIn.includes(parameterDef.in) || skip) {\n return;\n }\n\n switch (parameterDef.in) {\n case 'body':\n operationParameters.parametersBody = parameter;\n break;\n case 'formData':\n operationParameters.parametersForm = [\n ...operationParameters.parametersForm,\n parameter,\n ];\n break;\n case 'header':\n operationParameters.parametersHeader = [\n ...operationParameters.parametersHeader,\n parameter,\n ];\n break;\n case 'path':\n operationParameters.parametersPath = [\n ...operationParameters.parametersPath,\n parameter,\n ];\n break;\n case 'query':\n operationParameters.parametersQuery = [\n ...operationParameters.parametersQuery,\n parameter,\n ];\n break;\n }\n\n operationParameters.$refs = [\n ...operationParameters.$refs,\n ...parameter.$refs,\n ];\n operationParameters.imports = [\n ...operationParameters.imports,\n ...parameter.imports,\n ];\n operationParameters.parameters = [\n ...operationParameters.parameters,\n parameter,\n ];\n });\n\n return operationParameters;\n};\n","/**\n * Sort list of values and ensure that required parameters are first so that we do not generate\n * invalid types. Optional parameters cannot be positioned after required ones.\n */\nexport function toSortedByRequired<\n T extends { default?: unknown; isRequired: boolean },\n>(values: T[]): T[] {\n return values.sort((a, b) => {\n const aNeedsValue = a.isRequired && a.default === undefined;\n const bNeedsValue = b.isRequired && b.default === undefined;\n if (aNeedsValue && !bNeedsValue) return -1;\n if (bNeedsValue && !aNeedsValue) return 1;\n return 0;\n });\n}\n","import type { Client } from '../../../types/client';\nimport type { OperationResponse } from '../../common/interfaces/client';\nimport { getPattern } from '../../common/parser/getPattern';\nimport { getRef } from '../../common/parser/getRef';\nimport { getType } from '../../common/parser/type';\nimport type { OpenApi } from '../interfaces/OpenApi';\nimport type { OpenApiResponse } from '../interfaces/OpenApiResponse';\nimport type { OpenApiSchema } from '../interfaces/OpenApiSchema';\nimport { getModel } from './getModel';\n\nexport const getOperationResponse = ({\n code,\n openApi,\n response,\n types,\n}: {\n code: OperationResponse['code'];\n openApi: OpenApi;\n response: OpenApiResponse;\n types: Client['types'];\n}): OperationResponse => {\n const operationResponse: OperationResponse = {\n $refs: [],\n base: code !== 204 ? 'unknown' : 'void',\n code,\n description: response.description || null,\n enum: [],\n enums: [],\n export: 'generic',\n imports: [],\n in: 'response',\n isDefinition: false,\n isNullable: false,\n isReadOnly: false,\n isRequired: false,\n link: null,\n name: '',\n properties: [],\n responseTypes: [],\n template: null,\n type: code !== 204 ? 'unknown' : 'void',\n };\n\n let schema = response.schema;\n if (schema) {\n if (schema.$ref?.startsWith('#/responses/')) {\n schema = getRef<OpenApiSchema>(openApi, schema);\n }\n\n if (schema.$ref) {\n const model = getType({ type: schema.$ref });\n operationResponse.export = 'reference';\n operationResponse.type = model.type;\n operationResponse.base = model.base;\n operationResponse.template = model.template;\n operationResponse.imports = [\n ...operationResponse.imports,\n ...model.imports,\n ];\n return operationResponse;\n }\n\n const model = getModel({ definition: schema, openApi, types });\n operationResponse.export = model.export;\n operationResponse.type = model.type;\n operationResponse.base = model.base;\n operationResponse.template = model.template;\n operationResponse.link = model.link;\n operationResponse.isReadOnly = model.isReadOnly;\n operationResponse.isRequired = model.isRequired;\n operationResponse.isNullable = model.isNullable;\n operationResponse.format = model.format;\n operationResponse.maximum = model.maximum;\n operationResponse.exclusiveMaximum = model.exclusiveMaximum;\n operationResponse.minimum = model.minimum;\n operationResponse.exclusiveMinimum = model.exclusiveMinimum;\n operationResponse.multipleOf = model.multipleOf;\n operationResponse.maxLength = model.maxLength;\n operationResponse.minLength = model.minLength;\n operationResponse.maxItems = model.maxItems;\n operationResponse.minItems = model.minItems;\n operationResponse.uniqueItems = model.uniqueItems;\n operationResponse.maxProperties = model.maxProperties;\n operationResponse.minProperties = model.minProperties;\n operationResponse.pattern = getPattern(model.pattern);\n operationResponse.imports = [\n ...operationResponse.imports,\n ...model.imports,\n ];\n operationResponse.enum = [...operationResponse.enum, ...model.enum];\n operationResponse.enums = [...operationResponse.enums, ...model.enums];\n operationResponse.properties = [\n ...operationResponse.properties,\n ...model.properties,\n ];\n return operationResponse;\n }\n\n // We support basic properties from response headers, since both\n // fetch and XHR client just support string types.\n if (response.headers) {\n for (const name in response.headers) {\n operationResponse.in = 'header';\n operationResponse.name = name;\n operationResponse.type = 'string';\n operationResponse.base = 'string';\n return operationResponse;\n }\n }\n\n return operationResponse;\n};\n","import type { Client } from '../../../types/client';\nimport type { OperationResponse } from '../../common/interfaces/client';\nimport { getRef } from '../../common/parser/getRef';\nimport {\n parseResponseStatusCode,\n sorterByResponseStatusCode,\n tagResponseTypes,\n} from '../../common/parser/operation';\nimport type { OpenApi } from '../interfaces/OpenApi';\nimport type { OpenApiResponse } from '../interfaces/OpenApiResponse';\nimport type { OpenApiResponses } from '../interfaces/OpenApiResponses';\nimport { getOperationResponse } from './getOperationResponse';\n\nexport const getOperationResponses = ({\n openApi,\n responses,\n types,\n}: {\n openApi: OpenApi;\n responses: OpenApiResponses;\n types: Client['types'];\n}): OperationResponse[] => {\n let operationResponses: OperationResponse[] = [];\n\n Object.entries(responses).forEach(([responseCode, responseOrReference]) => {\n const code = parseResponseStatusCode(responseCode);\n if (!code) {\n return;\n }\n\n const response = getRef<OpenApiResponse>(openApi, responseOrReference);\n const operationResponse = getOperationResponse({\n code,\n openApi,\n response,\n types,\n });\n operationResponses = [...operationResponses, operationResponse];\n });\n\n operationResponses = tagResponseTypes(operationResponses);\n\n return operationResponses.sort(sorterByResponseStatusCode);\n};\n","import type { Client } from '../../../types/client';\nimport { getConfig } from '../../../utils/config';\nimport type {\n Operation,\n OperationParameters,\n} from '../../common/interfaces/client';\nimport {\n getOperationResponseHeader,\n operationNameFn,\n} from '../../common/parser/operation';\nimport { toSortedByRequired } from '../../common/parser/sort';\nimport type { OpenApi } from '../interfaces/OpenApi';\nimport type { OpenApiOperation } from '../interfaces/OpenApiOperation';\nimport { getOperationParameters } from './getOperationParameters';\nimport { getOperationResponses } from './getOperationResponses';\n\nexport const getOperation = ({\n method,\n op,\n openApi,\n pathParams,\n types,\n url,\n}: {\n method: Lowercase<Operation['method']>;\n op: OpenApiOperation;\n openApi: OpenApi;\n pathParams: OperationParameters;\n types: Client['types'];\n url: string;\n}): Operation => {\n const operationWithoutName: Omit<Operation, 'name'> = {\n $refs: [],\n deprecated: op.deprecated === true,\n description: op.description || null,\n id: op.operationId || null,\n imports: [],\n method: method.toUpperCase() as Operation['method'],\n parameters: [...pathParams.parameters],\n parametersBody: pathParams.parametersBody,\n parametersCookie: [...pathParams.parametersCookie],\n parametersForm: [...pathParams.parametersForm],\n parametersHeader: [...pathParams.parametersHeader],\n parametersPath: [...pathParams.parametersPath],\n parametersQuery: [...pathParams.parametersQuery],\n path: url,\n responseHeader: null,\n responses: [],\n summary: op.summary || null,\n tags: op.tags || null,\n };\n const operation = {\n ...operationWithoutName,\n name: operationNameFn({\n config: getConfig(),\n method: operationWithoutName.method,\n operationId: op.operationId,\n path: operationWithoutName.path,\n }),\n };\n\n if (op.parameters) {\n const parameters = getOperationParameters({\n openApi,\n parameters: op.parameters,\n types,\n });\n operation.$refs = [...operation.$refs, ...parameters.$refs];\n operation.imports = [...operation.imports, ...parameters.imports];\n operation.parameters = [...operation.parameters, ...parameters.parameters];\n operation.parametersBody = parameters.parametersBody;\n operation.parametersCookie = [\n ...operation.parametersCookie,\n ...parameters.parametersCookie,\n ];\n operation.parametersForm = [\n ...operation.parametersForm,\n ...parameters.parametersForm,\n ];\n operation.parametersHeader = [\n ...operation.parametersHeader,\n ...parameters.parametersHeader,\n ];\n operation.parametersPath = [\n ...operation.parametersPath,\n ...parameters.parametersPath,\n ];\n operation.parametersQuery = [\n ...operation.parametersQuery,\n ...parameters.parametersQuery,\n ];\n }\n\n if (op.responses) {\n operation.responses = getOperationResponses({\n openApi,\n responses: op.responses,\n types,\n });\n const successResponses = operation.responses.filter((response) =>\n response.responseTypes.includes('success'),\n );\n\n operation.responseHeader = getOperationResponseHeader(successResponses);\n\n successResponses.forEach((response) => {\n operation.$refs = [...operation.$refs, ...response.$refs];\n operation.imports = [...operation.imports, ...response.imports];\n });\n }\n\n operation.parameters = toSortedByRequired(operation.parameters);\n\n return operation;\n};\n","import { getConfig } from '../../../utils/config';\nimport type { Client, Operation } from '../../common/interfaces/client';\nimport {\n getOperationKey,\n operationFilterFn,\n} from '../../common/parser/operation';\nimport { allowedServiceMethods } from '../../common/parser/service';\nimport type { OpenApi } from '../interfaces/OpenApi';\nimport { getOperationParameters } from './getOperationParameters';\nimport { getOperation } from './operation';\n\nexport const getOperations = ({\n openApi,\n types,\n}: {\n openApi: OpenApi;\n types: Client['types'];\n}): Operation[] => {\n const operationIds = new Map<string, string>();\n const operations: Operation[] = [];\n\n const config = getConfig();\n\n for (const path in openApi.paths) {\n const pathItem = openApi.paths[path]!;\n const pathParameters = getOperationParameters({\n openApi,\n parameters: pathItem.parameters ?? [],\n types,\n });\n\n for (const name in pathItem) {\n const method = name as Lowercase<Operation['method']>;\n\n const operationKey = getOperationKey({\n method,\n path,\n });\n\n if (allowedServiceMethods.includes(method)) {\n const op = pathItem[method]!;\n\n if (op.operationId) {\n if (operationIds.has(op.operationId)) {\n if (config.logs.level !== 'silent') {\n console.warn(\n `❗️ Duplicate operationId: ${op.operationId} in ${operationKey}. Please ensure your operation IDs are unique. This behavior is not supported and will likely lead to unexpected results.`,\n );\n }\n } else {\n operationIds.set(op.operationId, operationKey);\n }\n }\n\n if (\n operationFilterFn({\n config,\n operationKey,\n })\n ) {\n const operation = getOperation({\n method,\n op,\n openApi,\n pathParams: pathParameters,\n types,\n url: path,\n });\n operations.push(operation);\n }\n }\n }\n }\n\n return operations;\n};\n","import type { OpenApi } from '../interfaces/OpenApi';\n\n/**\n * Get the base server url.\n * @param openApi\n */\nexport const getServer = (openApi: OpenApi): string => {\n const scheme = openApi.schemes?.[0] || 'http';\n const host = openApi.host;\n const basePath = openApi.basePath || '';\n const url = host ? `${scheme}://${host}${basePath}` : basePath;\n return url.replace(/\\/$/g, '');\n};\n","import type { Client } from '../common/interfaces/client';\nimport { getServiceVersion } from '../common/parser/service';\nimport type { OpenApi } from './interfaces/OpenApi';\nimport { getModels } from './parser/getModels';\nimport { getOperations } from './parser/getOperations';\nimport { getServer } from './parser/getServer';\n\n/**\n * Parse the OpenAPI specification to a Client model that contains\n * all the models, operations and schema's we should output.\n * @param openApi The OpenAPI spec that we have loaded from disk.\n */\nexport const parse = (openApi: OpenApi): Omit<Client, 'config'> => {\n const version = getServiceVersion(openApi.info.version);\n const server = getServer(openApi);\n const { models, types } = getModels(openApi);\n const operations = getOperations({ openApi, types });\n\n return {\n models,\n operations,\n server,\n types,\n version,\n };\n};\n","import type { Model } from '../../common/interfaces/client';\nimport type { Dictionary } from '../../common/interfaces/Dictionary';\nimport { stripNamespace } from '../../common/parser/stripNamespace';\nimport type { OpenApi } from '../interfaces/OpenApi';\nimport type { OpenApiDiscriminator } from '../interfaces/OpenApiDiscriminator';\n\nconst inverseDictionary = (map: Dictionary<string>): Dictionary<string> => {\n const m2: Dictionary<string> = {};\n for (const name in map) {\n m2[map[name]!] = name;\n }\n return m2;\n};\n\nexport const findOneOfParentDiscriminator = (\n openApi: OpenApi,\n parent?: Model,\n): OpenApiDiscriminator | undefined => {\n if (openApi.components && parent) {\n for (const definitionName in openApi.components.schemas) {\n if (openApi.components.schemas.hasOwnProperty(definitionName)) {\n const schema = openApi.components.schemas[definitionName]!;\n if (\n schema.discriminator &&\n schema.oneOf?.length &&\n schema.oneOf.some(\n (definition) =>\n definition.$ref && stripNamespace(definition.$ref) == parent.name,\n )\n ) {\n return schema.discriminator;\n }\n }\n }\n }\n return undefined;\n};\n\nexport const mapPropertyValue = (\n discriminator: OpenApiDiscriminator,\n parent: Model,\n): string => {\n if (discriminator.mapping) {\n const mapping = inverseDictionary(discriminator.mapping);\n const key = Object.keys(mapping).find(\n (item) => stripNamespace(item) == parent.name,\n );\n if (key && mapping[key]) {\n return mapping[key];\n }\n }\n return parent.name;\n};\n","import type { Client } from '../../../types/client';\nimport { escapeName } from '../../../utils/escape';\nimport { unique } from '../../../utils/unique';\nimport type { Model } from '../../common/interfaces/client';\nimport { getDefault } from '../../common/parser/getDefault';\nimport { getPattern } from '../../common/parser/getPattern';\nimport { getType } from '../../common/parser/type';\nimport type { GetModelFn } from '../interfaces/Model';\nimport type { OpenApi } from '../interfaces/OpenApi';\nimport type { OpenApiSchema } from '../interfaces/OpenApiSchema';\nimport {\n findOneOfParentDiscriminator,\n mapPropertyValue,\n} from './discriminator';\nimport { isDefinitionNullable } from './inferType';\n\nexport const getAdditionalPropertiesModel = ({\n debug,\n definition,\n getModel,\n model,\n openApi,\n types,\n}: {\n debug?: boolean;\n definition: OpenApiSchema;\n getModel: GetModelFn;\n model: Model;\n openApi: OpenApi;\n types: Client['types'];\n}): Model => {\n const ap =\n typeof definition.additionalProperties === 'object'\n ? definition.additionalProperties\n : {};\n const apModel = getModel({\n debug,\n definition: ap,\n openApi,\n parentDefinition: definition,\n types,\n });\n\n if (ap.$ref) {\n const apType = getType({ type: ap.$ref });\n model.base = apType.base;\n model.default = getDefault(definition, model);\n model.export = 'dictionary';\n model.imports.push(...apType.imports);\n model.template = apType.template;\n model.type = apType.type;\n return model;\n }\n\n if (\n definition.additionalProperties &&\n definition.properties &&\n Object.keys(definition.properties).length > 0\n ) {\n const additionalPropertiesType =\n typeof definition.additionalProperties === 'object' &&\n definition.additionalProperties.type &&\n !Array.isArray(definition.additionalProperties.type)\n ? definition.additionalProperties.type\n : apModel.base;\n const additionalProperties = [\n getType({ type: additionalPropertiesType }).base,\n ...model.properties.map((property) => property.base),\n ];\n apModel.base = additionalProperties.filter(unique).join(' | ');\n apModel.default = getDefault(definition, model);\n apModel.export = 'generic';\n apModel.isRequired = definition.additionalProperties === true;\n apModel.name = '[key: string]';\n return apModel;\n }\n\n model.base = apModel.base;\n model.default = getDefault(definition, model);\n model.export = 'dictionary';\n model.imports.push(...apModel.imports);\n model.link = apModel;\n model.template = apModel.template;\n model.type = apModel.type;\n return model;\n};\n\nexport const getModelProperties = ({\n debug,\n definition,\n getModel,\n openApi,\n parent,\n types,\n}: {\n debug?: boolean;\n definition: OpenApiSchema;\n getModel: GetModelFn;\n openApi: OpenApi;\n parent?: Model;\n types: Client['types'];\n}): Model[] => {\n let models: Model[] = [];\n const discriminator = findOneOfParentDiscriminator(openApi, parent);\n\n Object.entries(definition.properties ?? {}).forEach(\n ([propertyName, property]) => {\n const propertyRequired = Boolean(\n definition.required?.includes(propertyName),\n );\n\n const propertyValues: Omit<\n Model,\n | '$refs'\n | 'base'\n | 'enum'\n | 'enums'\n | 'export'\n | 'imports'\n | 'isNullable'\n | 'link'\n | 'properties'\n | 'template'\n | 'type'\n > = {\n default: property.default,\n deprecated: property.deprecated === true,\n description: property.description || null,\n exclusiveMaximum: property.exclusiveMaximum,\n exclusiveMinimum: property.exclusiveMinimum,\n format:\n property.type === 'array'\n ? (property.items?.format ?? property.format)\n : property.format,\n in: '',\n isDefinition: false,\n isReadOnly: property.readOnly === true,\n isRequired: propertyRequired,\n maxItems: property.maxItems,\n maxLength: property.maxLength,\n maxProperties: property.maxProperties,\n maximum: property.maximum,\n minItems: property.minItems,\n minLength: property.minLength,\n minProperties: property.minProperties,\n minimum: property.minimum,\n multipleOf: property.multipleOf,\n name: escapeName(propertyName),\n pattern: getPattern(property.pattern),\n uniqueItems: property.uniqueItems,\n };\n\n if (parent && discriminator?.propertyName == propertyName) {\n models = [\n ...models,\n {\n ...propertyValues,\n $refs: [],\n base: `'${mapPropertyValue(discriminator, parent)}'`,\n enum: [],\n enums: [],\n export: 'reference',\n imports: [],\n isNullable: isDefinitionNullable(property),\n link: null,\n properties: [],\n template: null,\n type: 'string',\n },\n ];\n return;\n }\n\n if (property.$ref) {\n const model = getType({ type: property.$ref });\n models = [\n ...models,\n {\n ...propertyValues,\n $refs: model.$refs,\n base: model.base,\n enum: [],\n enums: [],\n export: 'reference',\n imports: model.imports,\n isNullable: model.isNullable || isDefinitionNullable(property),\n link: null,\n properties: [],\n template: model.template,\n type: model.type,\n },\n ];\n return;\n }\n\n const model = getModel({\n debug,\n definition: property,\n initialValues: propertyValues,\n openApi,\n parentDefinition: definition,\n types,\n });\n model.isNullable = model.isNullable || isDefinitionNullable(property);\n models = [...models, model];\n },\n );\n\n return models;\n};\n","import type { Client } from '../../../types/client';\nimport type { Model } from '../../common/interfaces/client';\nimport { getRef } from '../../common/parser/getRef';\nimport { getType } from '../../common/parser/type';\nimport type { GetModelFn } from '../interfaces/Model';\nimport type { OpenApi } from '../interfaces/OpenApi';\nimport type { OpenApiSchema } from '../interfaces/OpenApiSchema';\n\nexport const getRequiredPropertiesFromComposition = ({\n debug,\n definitions,\n getModel,\n openApi,\n required,\n types,\n}: {\n debug?: boolean;\n definitions: OpenApiSchema[];\n getModel: GetModelFn;\n openApi: OpenApi;\n required: string[];\n types: Client['types'];\n}): Model[] => {\n const requiredProperties = definitions\n .reduce((properties, definition) => {\n if (definition.$ref) {\n const type = getType({ type: definition.$ref });\n // avoid circular references if two refs reference each other\n // if (types[type.base] && types[type.base].$ref === definition.$ref) {\n // const schema = getRef<OpenApiSchema>(openApi, definition);\n // return [...properties]\n // }\n\n const meta = {\n $ref: definition.$ref,\n name: type.base,\n };\n types[type.base] = meta;\n const schema = getRef<OpenApiSchema>(openApi, definition);\n return [\n ...properties,\n ...getModel({\n debug,\n definition: schema,\n meta,\n openApi,\n types,\n }).properties,\n ];\n }\n\n return [\n ...properties,\n ...getModel({\n debug,\n definition,\n openApi,\n parentDefinition: definition,\n types,\n }).properties,\n ];\n }, [] as Model[])\n .filter(\n (property) => !property.isRequired && required.includes(property.name),\n )\n .map((property) => ({\n ...property,\n isRequired: true,\n }));\n\n return requiredProperties;\n};\n","import type { Client } from '../../../types/client';\nimport type { Model, ModelComposition } from '../../common/interfaces/client';\nimport type { GetModelFn } from '../interfaces/Model';\nimport type { OpenApi } from '../interfaces/OpenApi';\nimport type { OpenApiSchema } from '../interfaces/OpenApiSchema';\nimport { getModelProperties } from './getModelProperties';\nimport { getRequiredPropertiesFromComposition } from './getRequiredPropertiesFromComposition';\n\ntype Composition = {\n definitions: OpenApiSchema[];\n type: ModelComposition['export'];\n};\n\nexport const findModelComposition = (\n definition: OpenApiSchema,\n): Composition | undefined => {\n const compositions: ReadonlyArray<{\n definitions: Composition['definitions'] | undefined;\n type: Composition['type'];\n }> = [\n {\n definitions: definition.allOf,\n type: 'all-of',\n },\n {\n definitions: definition.anyOf,\n type: 'any-of',\n },\n {\n definitions: definition.oneOf,\n type: 'one-of',\n },\n ];\n return compositions.find(\n (composition) => composition.definitions?.length,\n ) as ReturnType<typeof findModelComposition>;\n};\n\nexport const getModelComposition = ({\n debug,\n definition,\n definitions,\n getModel,\n model,\n openApi,\n type,\n types,\n}: Composition &\n Pick<Client, 'types'> & {\n debug?: boolean;\n definition: OpenApiSchema;\n getModel: GetModelFn;\n model: Model;\n openApi: OpenApi;\n }): ModelComposition => {\n const composition: ModelComposition = {\n $refs: model.$refs,\n enums: model.enums,\n export: type,\n imports: model.imports,\n properties: model.properties,\n };\n\n let properties: Model[] = [];\n\n definitions\n .map((def) => {\n const modelFromDef = getModel({\n debug,\n definition: def,\n openApi,\n parentDefinition: definition,\n types,\n });\n return modelFromDef;\n })\n .forEach((model) => {\n composition.$refs = [...composition.$refs, ...model.$refs];\n composition.imports = [...composition.imports, ...model.imports];\n composition.enums = [...composition.enums, ...model.enums];\n composition.properties = [...composition.properties, model];\n });\n\n if (definition.required && type === 'all-of') {\n const requiredProperties = getRequiredPropertiesFromComposition({\n debug,\n definitions,\n getModel,\n openApi,\n required: definition.required,\n types,\n });\n requiredProperties.forEach((requiredProperty) => {\n composition.$refs = [...composition.$refs, ...requiredProperty.$refs];\n composition.imports = [\n ...composition.imports,\n ...requiredProperty.imports,\n ];\n composition.enums = [...composition.enums, ...requiredProperty.enums];\n });\n properties = [...properties, ...requiredProperties];\n }\n\n if (definition.properties) {\n const modelProperties = getModelProperties({\n definition,\n getModel,\n openApi,\n types,\n });\n modelProperties.forEach((modelProperty) => {\n composition.$refs = [...composition.$refs, ...modelProperty.$refs];\n composition.imports = [...composition.imports, ...modelProperty.imports];\n composition.enums = [...composition.enums, ...modelProperty.enums];\n if (modelProperty.export === 'enum') {\n composition.enums = [...composition.enums, modelProperty];\n }\n });\n properties = [...properties, ...modelProperties];\n }\n\n if (properties.length) {\n const foundComposition = findModelComposition(definition);\n if (foundComposition) {\n const propertiesProperty: Model = {\n $refs: [],\n base: 'unknown',\n description: '',\n enum: [],\n enums: [],\n export: 'interface',\n imports: [],\n in: '',\n isDefinition: false,\n isNullable: false,\n isReadOnly: false,\n isRequired: false,\n link: null,\n name: 'properties',\n properties,\n template: null,\n type: 'unknown',\n };\n\n if (foundComposition.type === 'one-of') {\n composition.properties = [\n {\n ...composition,\n base: '',\n description: null,\n enum: [],\n in: '',\n isDefinition: false,\n isNullable: false,\n isReadOnly: false,\n isRequired: true,\n link: null,\n name: '',\n template: null,\n type: '',\n },\n propertiesProperty,\n ];\n composition.export = 'all-of';\n } else {\n composition.properties = [\n ...composition.properties,\n propertiesProperty,\n ];\n }\n }\n }\n\n return composition;\n};\n","import type { Client } from '../../../types/client';\nimport { enumMeta } from '../../../utils/enum';\nimport type { Model, ModelMeta } from '../../common/interfaces/client';\nimport { getDefault } from '../../common/parser/getDefault';\nimport { getEnums } from '../../common/parser/getEnums';\nimport { getPattern } from '../../common/parser/getPattern';\nimport { getType } from '../../common/parser/type';\nimport type { OpenApi } from '../interfaces/OpenApi';\nimport type { OpenApiSchema } from '../interfaces/OpenApiSchema';\nimport {\n findModelComposition,\n getModelComposition,\n} from './getModelComposition';\nimport {\n getAdditionalPropertiesModel,\n getModelProperties,\n} from './getModelProperties';\nimport {\n getDefinitionTypes,\n inferType,\n isDefinitionNullable,\n} from './inferType';\n\nexport const getModel = ({\n debug,\n definition,\n initialValues = {},\n isDefinition = false,\n meta,\n openApi,\n parentDefinition = null,\n types,\n}: Pick<Client, 'types'> & {\n debug?: boolean;\n definition: OpenApiSchema;\n /**\n * Pass through initial model values\n */\n initialValues?: Partial<Model>;\n isDefinition?: boolean;\n meta?: ModelMeta;\n openApi: OpenApi;\n parentDefinition?: OpenApiSchema | null;\n}): Model => {\n const definitionTypes = getDefinitionTypes(definition);\n const inferredType = inferType(definition, definitionTypes);\n\n const model: Model = {\n $refs: [],\n base: 'unknown',\n deprecated: Boolean(definition.deprecated),\n description: definition.description || null,\n enum: [],\n enums: [],\n exclusiveMaximum: definition.exclusiveMaximum,\n exclusiveMinimum: definition.exclusiveMinimum,\n export: 'interface',\n format: definition.format,\n imports: [],\n in: '',\n isDefinition,\n isNullable: isDefinitionNullable(definition),\n isReadOnly: definition.readOnly === true,\n isRequired: false,\n link: null,\n maxItems: definition.maxItems,\n maxLength: definition.maxLength,\n maxProperties: definition.maxProperties,\n maximum: definition.maximum,\n meta,\n minItems: definition.minItems,\n minLength: definition.minLength,\n minProperties: definition.minProperties,\n minimum: definition.minimum,\n multipleOf: definition.multipleOf,\n name: meta?.name ?? '',\n pattern: getPattern(definition.pattern),\n properties: [],\n template: null,\n type: 'unknown',\n uniqueItems: definition.uniqueItems,\n ...initialValues,\n };\n\n if (definition.$ref) {\n const definitionRef = getType({\n debug,\n type: definition.$ref,\n });\n model.$refs = [...model.$refs, decodeURIComponent(definition.$ref)];\n model.base = definitionRef.base;\n model.export = 'reference';\n model.imports = [...model.imports, ...definitionRef.imports];\n model.template = definitionRef.template;\n model.type = definitionRef.type;\n model.default = getDefault(definition, model);\n return model;\n }\n\n if (inferredType === 'enum') {\n const enums = getEnums(definition, definition.enum);\n if (enums.length) {\n model.base = 'string';\n model.enum = [...model.enum, ...enums];\n model.export = 'enum';\n model.type = 'string';\n model.default = getDefault(definition, model);\n if (!model.meta) {\n model.meta = enumMeta(model);\n }\n return model;\n }\n }\n\n if (\n definitionTypes.includes('array') &&\n (definition.items || definition.prefixItems)\n ) {\n if (definition.prefixItems) {\n const arrayItems = definition.prefixItems.map((item) =>\n getModel({\n definition: item,\n openApi,\n parentDefinition: definition,\n types,\n }),\n );\n\n model.export = 'array';\n model.$refs = [\n ...model.$refs,\n ...arrayItems.reduce(\n (acc, m) => [...acc, ...m.$refs],\n [] as Model['$refs'],\n ),\n ];\n model.imports = [\n ...model.imports,\n ...arrayItems.reduce(\n (acc, m) => [...acc, ...m.imports],\n [] as Model['imports'],\n ),\n ];\n model.link = arrayItems;\n model.default = getDefault(definition, model);\n return model;\n }\n\n if (!definition.items) {\n return model;\n }\n\n if (definition.items.$ref) {\n const arrayItems = getType({ type: definition.items.$ref });\n model.$refs = [...model.$refs, decodeURIComponent(definition.items.$ref)];\n model.base = arrayItems.base;\n model.export = 'array';\n model.imports = [...model.imports, ...arrayItems.imports];\n model.template = arrayItems.template;\n model.type = arrayItems.type;\n model.default = getDefault(definition, model);\n return model;\n }\n\n if (definition.items.anyOf && parentDefinition && parentDefinition.type) {\n const foundComposition = findModelComposition(parentDefinition);\n if (\n foundComposition &&\n foundComposition.definitions.some(\n (definition) => !getDefinitionTypes(definition).includes('array'),\n )\n ) {\n return getModel({\n definition: definition.items,\n openApi,\n parentDefinition: definition,\n types,\n });\n }\n }\n\n /**\n * if items are a plain array, infer any-of composition\n * {@link} https://github.com/ferdikoomen/openapi-typescript-codegen/issues/2062\n */\n const arrayItemsDefinition: OpenApiSchema = Array.isArray(definition.items)\n ? {\n anyOf: definition.items,\n }\n : definition.items;\n const arrayItems = getModel({\n definition: arrayItemsDefinition,\n openApi,\n parentDefinition: definition,\n types,\n });\n model.base = arrayItems.base;\n model.export = 'array';\n model.$refs = [...model.$refs, ...arrayItems.$refs];\n model.imports = [...model.imports, ...arrayItems.imports];\n model.link = arrayItems;\n model.template = arrayItems.template;\n model.type = arrayItems.type;\n model.default = getDefault(definition, model);\n return model;\n }\n\n const foundComposition = findModelComposition(definition);\n if (foundComposition) {\n const composition = getModelComposition({\n ...foundComposition,\n debug,\n definition,\n getModel,\n model,\n openApi,\n types,\n });\n const result = { ...model, ...composition };\n return result;\n }\n\n if (\n definitionTypes.includes('object') ||\n definition.properties ||\n definition.additionalProperties\n ) {\n if (\n definition.properties &&\n (Object.keys(definition.properties).length > 0 ||\n !definition.additionalProperties)\n ) {\n model.base = 'unknown';\n model.export = 'interface';\n model.type = 'unknown';\n model.default = getDefault(definition, model);\n\n const modelProperties = getModelProperties({\n debug,\n definition,\n getModel,\n openApi,\n parent: model,\n types,\n });\n modelProperties.forEach((modelProperty) => {\n model.$refs = [...model.$refs, ...modelProperty.$refs];\n model.enums = [...model.enums, ...modelProperty.enums];\n model.imports = [...model.imports, ...modelProperty.imports];\n model.properties = [...model.properties, modelProperty];\n if (modelProperty.export === 'enum') {\n model.enums = [...model.enums, modelProperty];\n }\n });\n\n if (definition.additionalProperties) {\n const modelProperty = getAdditionalPropertiesModel({\n debug,\n definition,\n getModel,\n model,\n openApi,\n types,\n });\n model.properties = [...model.properties, modelProperty];\n }\n\n // objects with no explicit properties accept any key/value pair\n if (\n !model.properties.length &&\n model.base === 'unknown' &&\n model.type === 'unknown'\n ) {\n model.export = 'dictionary';\n if (!model.name) {\n model.name = '[key: string]';\n }\n }\n\n return model;\n }\n\n const result = getAdditionalPropertiesModel({\n debug,\n definition,\n getModel,\n model,\n openApi,\n types,\n });\n return result;\n }\n\n if (definition.const !== undefined) {\n const definitionConst = definition.const;\n const modelConst =\n typeof definitionConst === 'string'\n ? `\"${definitionConst}\"`\n : `${definitionConst}`;\n model.base = modelConst;\n model.export = 'const';\n model.type = modelConst;\n return model;\n }\n\n // If the schema has a type than it can be a basic or generic type.\n if (definitionTypes.length) {\n const definitionType = getType({\n format: definition.format,\n type: definition.type,\n });\n model.base = definitionType.base;\n model.export = 'generic';\n model.$refs = [...model.$refs, ...definitionType.$refs];\n model.imports = [...model.imports, ...definitionType.imports];\n model.isNullable = definitionType.isNullable || model.isNullable;\n model.template = definitionType.template;\n model.type = definitionType.type;\n model.default = getDefault(definition, model);\n return model;\n }\n\n return model;\n};\n","import type { OpenApiParameter } from '../interfaces/OpenApiParameter';\nimport type { OpenApiSchema } from '../interfaces/OpenApiSchema';\n\nexport const getParameterSchema = (\n definition: OpenApiParameter,\n): OpenApiSchema | undefined => {\n if (definition.schema) {\n return definition.schema;\n }\n\n if (definition.content) {\n // treat every media type the same for now, types should be modified to\n // preserve this data so client knows which headers to use and how to\n // parse response bodies\n const contents = Object.entries(definition.content);\n for (const [key, mediaTypeObject] of contents) {\n if (mediaTypeObject.schema) {\n const mediaType = key as keyof Required<OpenApiParameter>['content'];\n return definition.content[mediaType].schema;\n }\n }\n }\n};\n","import type { Client } from '../../../types/client';\nimport { getParametersMeta, getSchemasMeta } from '../../../utils/meta';\nimport type { OpenApi } from '../interfaces/OpenApi';\nimport { getModel } from './getModel';\nimport { getParameterSchema } from './parameter';\n\nexport const getModels = (\n openApi: OpenApi,\n): Pick<Client, 'models' | 'types'> => {\n const types: Client['types'] = {};\n let models: Client['models'] = [];\n\n if (!openApi.components) {\n return {\n models,\n types,\n };\n }\n\n Object.entries(openApi.components.schemas ?? {}).forEach(\n ([definitionName, definition]) => {\n const meta = getSchemasMeta(definitionName);\n types[meta.name] = meta;\n const model = getModel({\n definition,\n isDefinition: true,\n meta,\n openApi,\n types,\n });\n models = [...models, model];\n },\n );\n\n Object.entries(openApi.components.parameters ?? {}).forEach(\n ([definitionName, definition]) => {\n const schema = getParameterSchema(definition);\n if (!schema) {\n return;\n }\n\n const meta = getParametersMeta(definitionName);\n types[meta.name] = meta;\n const model = getModel({\n definition: schema,\n isDefinition: true,\n meta,\n openApi,\n types,\n });\n model.deprecated = definition.deprecated;\n model.description = definition.description || null;\n models = [...models, model];\n },\n );\n\n return {\n models,\n types,\n };\n};\n","import type { Client } from '../../../types/client';\nimport { refParametersPartial } from '../../../utils/const';\nimport { enumMeta } from '../../../utils/enum';\nimport type { OperationParameter } from '../../common/interfaces/client';\nimport { getDefault } from '../../common/parser/getDefault';\nimport { getPattern } from '../../common/parser/getPattern';\nimport { getRef } from '../../common/parser/getRef';\nimport { operationParameterNameFn } from '../../common/parser/operation';\nimport { getType } from '../../common/parser/type';\nimport type { OpenApi } from '../interfaces/OpenApi';\nimport type { OpenApiParameter } from '../interfaces/OpenApiParameter';\nimport type { OpenApiSchema } from '../interfaces/OpenApiSchema';\nimport { getModel } from './getModel';\nimport { isDefinitionNullable } from './inferType';\nimport { getParameterSchema } from './parameter';\n\nexport const getOperationParameter = ({\n openApi,\n parameter,\n types,\n}: {\n openApi: OpenApi;\n parameter: OpenApiParameter;\n types: Client['types'];\n}): OperationParameter => {\n const operationParameterWithoutName: Omit<OperationParameter, 'name'> = {\n $refs: [],\n base: 'unknown',\n deprecated: parameter.deprecated === true,\n description: parameter.description || null,\n enum: [],\n enums: [],\n export: 'interface',\n imports: [],\n in: parameter.in,\n isDefinition: false,\n isNullable: isDefinitionNullable(parameter),\n isReadOnly: false,\n isRequired: parameter.required === true,\n link: null,\n mediaType: null,\n prop: parameter.name,\n properties: [],\n template: null,\n type: 'unknown',\n };\n let operationParameter = {\n ...operationParameterWithoutName,\n name: operationParameterNameFn(operationParameterWithoutName),\n };\n\n if (parameter.$ref) {\n const model = getType({ type: parameter.$ref });\n operationParameter = {\n ...operationParameter,\n $refs: [...operationParameter.$refs, ...model.$refs],\n base: model.base,\n export: 'reference',\n imports: [...operationParameter.imports, ...model.imports],\n template: model.template,\n type: model.type,\n };\n return operationParameter;\n }\n\n let schema = getParameterSchema(parameter);\n if (schema) {\n if (schema.$ref?.startsWith(refParametersPartial)) {\n schema = getRef<OpenApiSchema>(openApi, schema);\n }\n\n if (schema.$ref) {\n const model = getType({ type: schema.$ref });\n operationParameter = {\n ...operationParameter,\n $refs: [...operationParameter.$refs, ...model.$refs],\n base: model.base,\n export: 'reference',\n imports: [...operationParameter.imports, ...model.imports],\n template: model.template,\n type: model.type,\n };\n operationParameter.default = getDefault(schema);\n return operationParameter;\n }\n\n const model = getModel({ definition: schema, openApi, types });\n operationParameter = {\n ...operationParameter,\n $refs: [...operationParameter.$refs, ...model.$refs],\n base: model.base,\n enum: [...operationParameter.enum, ...model.enum],\n enums: [...operationParameter.enums, ...model.enums],\n exclusiveMaximum: model.exclusiveMaximum,\n exclusiveMinimum: model.exclusiveMinimum,\n export: model.export,\n format: model.format,\n imports: [...operationParameter.imports, ...model.imports],\n isNullable: operationParameter.isNullable || model.isNullable,\n isReadOnly: model.isReadOnly,\n isRequired: operationParameter.isRequired || model.isRequired,\n link: model.link,\n maxItems: model.maxItems,\n maxLength: model.maxLength,\n maxProperties: model.maxProperties,\n maximum: model.maximum,\n minItems: model.minItems,\n minLength: model.minLength,\n minProperties: model.minProperties,\n minimum: model.minimum,\n multipleOf: model.multipleOf,\n pattern: getPattern(model.pattern),\n properties: [...operationParameter.properties, ...model.properties],\n template: model.template,\n type: model.type,\n uniqueItems: model.uniqueItems,\n };\n if (\n (operationParameter.enum.length || operationParameter.enums.length) &&\n !operationParameter.meta\n ) {\n operationParameter.meta = enumMeta(operationParameter);\n }\n operationParameter.default = model.default;\n return operationParameter;\n }\n\n return operationParameter;\n};\n","import type { Client } from '../../../types/client';\nimport type { OperationParameters } from '../../common/interfaces/client';\nimport { getRef } from '../../common/parser/getRef';\nimport { operationParameterFilterFn } from '../../common/parser/operation';\nimport type { OpenApi } from '../interfaces/OpenApi';\nimport type { OpenApiParameter } from '../interfaces/OpenApiParameter';\nimport { getOperationParameter } from './getOperationParameter';\n\nconst allowedIn = ['cookie', 'formData', 'header', 'path', 'query'] as const;\n\nexport const getOperationParameters = ({\n openApi,\n parameters,\n types,\n}: {\n openApi: OpenApi;\n parameters: OpenApiParameter[];\n types: Client['types'];\n}): OperationParameters => {\n const operationParameters: OperationParameters = {\n $refs: [],\n imports: [],\n parameters: [],\n parametersBody: null,\n parametersCookie: [],\n parametersForm: [],\n parametersHeader: [],\n parametersPath: [],\n parametersQuery: [], // not used in v3 -> @see requestBody\n };\n\n parameters.forEach((parameterOrReference) => {\n const parameterDef = getRef<OpenApiParameter>(\n openApi,\n parameterOrReference,\n );\n const parameter = getOperationParameter({\n openApi,\n parameter: parameterDef,\n types,\n });\n\n const skip = !operationParameterFilterFn(parameter);\n if (!allowedIn.includes(parameterDef.in) || skip) {\n return;\n }\n\n switch (parameterDef.in) {\n case 'cookie':\n operationParameters.parametersCookie = [\n ...operationParameters.parametersCookie,\n parameter,\n ];\n break;\n case 'formData':\n operationParameters.parametersForm = [\n ...operationParameters.parametersForm,\n parameter,\n ];\n break;\n case 'header':\n operationParameters.parametersHeader = [\n ...operationParameters.parametersHeader,\n parameter,\n ];\n break;\n case 'path':\n operationParameters.parametersPath = [\n ...operationParameters.parametersPath,\n parameter,\n ];\n break;\n case 'query':\n operationParameters.parametersQuery = [\n ...operationParameters.parametersQuery,\n parameter,\n ];\n break;\n }\n\n operationParameters.$refs = [\n ...operationParameters.$refs,\n ...parameter.$refs,\n ];\n operationParameters.imports = [\n ...operationParameters.imports,\n ...parameter.imports,\n ];\n operationParameters.parameters = [\n ...operationParameters.parameters,\n parameter,\n ];\n });\n\n return operationParameters;\n};\n","import type { Dictionary } from '../../common/interfaces/Dictionary';\nimport type { OpenApi } from '../interfaces/OpenApi';\nimport type { OpenApiMediaType } from '../interfaces/OpenApiMediaType';\nimport type { OpenApiSchema } from '../interfaces/OpenApiSchema';\n\nexport interface Content {\n mediaType: string;\n schema: OpenApiSchema;\n}\n\nconst BASIC_MEDIA_TYPES = [\n 'application/json-patch+json',\n 'application/json',\n 'application/ld+json',\n 'application/x-www-form-urlencoded',\n 'multipart/batch',\n 'multipart/form-data',\n 'multipart/mixed',\n 'multipart/related',\n 'text/json',\n 'text/plain',\n];\n\nexport const getContent = (\n openApi: OpenApi,\n content: Dictionary<OpenApiMediaType>,\n): Content | undefined => {\n const basicMediaTypeWithSchema = Object.keys(content)\n .filter((mediaType) => {\n const cleanMediaType = mediaType.split(';')[0]!.trim();\n return BASIC_MEDIA_TYPES.includes(cleanMediaType);\n })\n .find((mediaType) => Boolean(content[mediaType]?.schema));\n\n if (basicMediaTypeWithSchema) {\n return {\n mediaType: basicMediaTypeWithSchema,\n schema: content[basicMediaTypeWithSchema]!.schema as OpenApiSchema,\n };\n }\n\n const firstMediaTypeWithSchema = Object.keys(content).find((mediaType) =>\n Boolean(content[mediaType]?.schema),\n );\n\n if (firstMediaTypeWithSchema) {\n return {\n mediaType: firstMediaTypeWithSchema,\n schema: content[firstMediaTypeWithSchema]!.schema as OpenApiSchema,\n };\n }\n};\n","import type { Client } from '../../../types/client';\nimport type { OperationParameter } from '../../common/interfaces/client';\nimport { getPattern } from '../../common/parser/getPattern';\nimport { getType } from '../../common/parser/type';\nimport type { OpenApi } from '../interfaces/OpenApi';\nimport type { OpenApiRequestBody } from '../interfaces/OpenApiRequestBody';\nimport { getContent } from './getContent';\nimport { getModel } from './getModel';\n\nexport const getOperationRequestBody = ({\n body,\n debug,\n openApi,\n types,\n}: {\n body: OpenApiRequestBody;\n debug?: boolean;\n openApi: OpenApi;\n types: Client['types'];\n}): OperationParameter => {\n const name = body['x-body-name'] ?? 'requestBody';\n\n const requestBody: OperationParameter = {\n $refs: [],\n base: 'unknown',\n default: undefined,\n description: body.description || null,\n enum: [],\n enums: [],\n export: 'interface',\n imports: [],\n in: 'body',\n isDefinition: false,\n isNullable: body.nullable === true,\n isReadOnly: false,\n isRequired: body.required === true,\n link: null,\n mediaType: null,\n name,\n prop: name,\n properties: [],\n template: null,\n type: 'unknown',\n };\n\n if (!body.content) {\n return requestBody;\n }\n\n const content = getContent(openApi, body.content);\n if (!content) {\n return requestBody;\n }\n\n requestBody.mediaType = content.mediaType;\n\n switch (requestBody.mediaType) {\n case 'application/x-www-form-urlencoded':\n case 'multipart/form-data':\n requestBody.in = 'formData';\n requestBody.name = 'formData';\n requestBody.prop = 'formData';\n break;\n }\n\n if (content.schema.$ref) {\n const model = getType({ type: content.schema.$ref });\n requestBody.export = 'reference';\n requestBody.type = model.type;\n requestBody.base = model.base;\n requestBody.template = model.template;\n requestBody.$refs = [...requestBody.$refs, ...model.$refs];\n requestBody.imports = [...requestBody.imports, ...model.imports];\n return requestBody;\n }\n\n const model = getModel({\n debug,\n definition: content.schema,\n openApi,\n types,\n });\n requestBody.$refs = [...requestBody.$refs, ...model.$refs];\n requestBody.base = model.base;\n requestBody.enum = [...requestBody.enum, ...model.enum];\n requestBody.enums = [...requestBody.enums, ...model.enums];\n requestBody.exclusiveMaximum = model.exclusiveMaximum;\n requestBody.exclusiveMinimum = model.exclusiveMinimum;\n requestBody.export = model.export;\n requestBody.format = model.format;\n requestBody.imports = [...requestBody.imports, ...model.imports];\n requestBody.isNullable = requestBody.isNullable || model.isNullable;\n requestBody.isReadOnly = model.isReadOnly;\n requestBody.isRequired = requestBody.isRequired || model.isRequired;\n requestBody.link = model.link;\n requestBody.maximum = model.maximum;\n requestBody.maxItems = model.maxItems;\n requestBody.maxLength = model.maxLength;\n requestBody.maxProperties = model.maxProperties;\n requestBody.minimum = model.minimum;\n requestBody.minItems = model.minItems;\n requestBody.minLength = model.minLength;\n requestBody.minProperties = model.minProperties;\n requestBody.multipleOf = model.multipleOf;\n requestBody.pattern = getPattern(model.pattern);\n requestBody.properties = [...requestBody.properties, ...model.properties];\n requestBody.template = model.template;\n requestBody.type = model.type;\n requestBody.uniqueItems = model.uniqueItems;\n return requestBody;\n};\n","import type { Client } from '../../../types/client';\nimport type { OperationResponse } from '../../common/interfaces/client';\nimport { getPattern } from '../../common/parser/getPattern';\nimport { getRef } from '../../common/parser/getRef';\nimport { getType } from '../../common/parser/type';\nimport type { OpenApi } from '../interfaces/OpenApi';\nimport type { OpenApiResponse } from '../interfaces/OpenApiResponse';\nimport type { OpenApiSchema } from '../interfaces/OpenApiSchema';\nimport { getContent } from './getContent';\nimport { getModel } from './getModel';\n\nexport const getOperationResponse = ({\n code,\n openApi,\n response,\n types,\n}: {\n code: OperationResponse['code'];\n openApi: OpenApi;\n response: OpenApiResponse;\n types: Client['types'];\n}): OperationResponse => {\n const operationResponse: OperationResponse = {\n $refs: [],\n base: code !== 204 ? 'unknown' : 'void',\n code,\n description: response.description || null,\n enum: [],\n enums: [],\n export: 'generic',\n imports: [],\n in: 'response',\n isDefinition: false,\n isNullable: false,\n isReadOnly: false,\n isRequired: false,\n link: null,\n name: '',\n properties: [],\n responseTypes: [],\n template: null,\n type: code !== 204 ? 'unknown' : 'void',\n };\n\n if (response.content) {\n const content = getContent(openApi, response.content);\n if (content) {\n if (content.schema.$ref?.startsWith('#/components/responses/')) {\n content.schema = getRef<OpenApiSchema>(openApi, content.schema);\n }\n\n if (content.schema.$ref) {\n const model = getType({ type: content.schema.$ref });\n operationResponse.base = model.base;\n operationResponse.export = 'reference';\n operationResponse.$refs = [...operationResponse.$refs, ...model.$refs];\n operationResponse.imports = [\n ...operationResponse.imports,\n ...model.imports,\n ];\n operationResponse.template = model.template;\n operationResponse.type = model.type;\n return operationResponse;\n }\n\n const model = getModel({ definition: content.schema, openApi, types });\n operationResponse.export = model.export;\n operationResponse.type = model.type;\n operationResponse.base = model.base;\n operationResponse.template = model.template;\n operationResponse.link = model.link;\n operationResponse.isReadOnly = model.isReadOnly;\n operationResponse.isRequired = model.isRequired;\n operationResponse.isNullable = model.isNullable;\n operationResponse.format = model.format;\n operationResponse.maximum = model.maximum;\n operationResponse.exclusiveMaximum = model.exclusiveMaximum;\n operationResponse.minimum = model.minimum;\n operationResponse.exclusiveMinimum = model.exclusiveMinimum;\n operationResponse.multipleOf = model.multipleOf;\n operationResponse.maxLength = model.maxLength;\n operationResponse.minLength = model.minLength;\n operationResponse.maxItems = model.maxItems;\n operationResponse.minItems = model.minItems;\n operationResponse.uniqueItems = model.uniqueItems;\n operationResponse.maxProperties = model.maxProperties;\n operationResponse.minProperties = model.minProperties;\n operationResponse.pattern = getPattern(model.pattern);\n operationResponse.$refs = [...operationResponse.$refs, ...model.$refs];\n operationResponse.imports = [\n ...operationResponse.imports,\n ...model.imports,\n ];\n operationResponse.enum = [...operationResponse.enum, ...model.enum];\n operationResponse.enums = [...operationResponse.enums, ...model.enums];\n operationResponse.properties = [\n ...operationResponse.properties,\n ...model.properties,\n ];\n return operationResponse;\n }\n }\n\n // We support basic properties from response headers, since both\n // fetch and XHR client just support string types.\n if (response.headers) {\n for (const name in response.headers) {\n operationResponse.in = 'header';\n operationResponse.name = name;\n operationResponse.type = 'string';\n operationResponse.base = 'string';\n return operationResponse;\n }\n }\n\n return operationResponse;\n};\n","import type { Client } from '../../../types/client';\nimport type { OperationResponse } from '../../common/interfaces/client';\nimport { getRef } from '../../common/parser/getRef';\nimport {\n parseResponseStatusCode,\n sorterByResponseStatusCode,\n tagResponseTypes,\n} from '../../common/parser/operation';\nimport type { OpenApi } from '../interfaces/OpenApi';\nimport type { OpenApiResponse } from '../interfaces/OpenApiResponse';\nimport type { OpenApiResponses } from '../interfaces/OpenApiResponses';\nimport { getOperationResponse } from './getOperationResponse';\n\nexport const getOperationResponses = ({\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n debug,\n openApi,\n responses,\n types,\n}: {\n debug?: boolean;\n openApi: OpenApi;\n responses: OpenApiResponses;\n types: Client['types'];\n}): OperationResponse[] => {\n let operationResponses: OperationResponse[] = [];\n\n Object.entries(responses).forEach(([responseCode, responseOrReference]) => {\n const code = parseResponseStatusCode(responseCode);\n if (!code) {\n return;\n }\n\n const response = getRef<OpenApiResponse>(openApi, responseOrReference);\n const operationResponse = getOperationResponse({\n code,\n openApi,\n response,\n types,\n });\n operationResponses = [...operationResponses, operationResponse];\n });\n\n operationResponses = tagResponseTypes(operationResponses);\n\n return operationResponses.sort(sorterByResponseStatusCode);\n};\n","import type { Client } from '../../../types/client';\nimport { getConfig } from '../../../utils/config';\nimport type {\n Operation,\n OperationParameter,\n OperationParameters,\n} from '../../common/interfaces/client';\nimport { getRef } from '../../common/parser/getRef';\nimport {\n getOperationResponseHeader,\n operationNameFn,\n} from '../../common/parser/operation';\nimport { toSortedByRequired } from '../../common/parser/sort';\nimport type { OpenApi } from '../interfaces/OpenApi';\nimport type { OpenApiOperation } from '../interfaces/OpenApiOperation';\nimport type { OpenApiRequestBody } from '../interfaces/OpenApiRequestBody';\nimport { getOperationParameters } from './getOperationParameters';\nimport { getOperationRequestBody } from './getOperationRequestBody';\nimport { getOperationResponses } from './getOperationResponses';\n\n// add global path parameters, skip duplicate names\nconst mergeParameters = (\n opParams: OperationParameter[],\n globalParams: OperationParameter[],\n): OperationParameter[] => {\n let mergedParameters = [...opParams];\n let pendingParameters = [...globalParams];\n while (pendingParameters.length > 0) {\n const pendingParam = pendingParameters[0]!;\n pendingParameters = pendingParameters.slice(1);\n const canMerge = mergedParameters.every(\n (param) =>\n param.in !== pendingParam.in || param.name !== pendingParam.name,\n );\n if (canMerge) {\n mergedParameters = [...mergedParameters, pendingParam];\n }\n }\n return mergedParameters;\n};\n\nexport const getOperation = ({\n debug,\n method,\n op,\n openApi,\n pathParams,\n types,\n url,\n}: {\n debug?: boolean;\n method: Lowercase<Operation['method']>;\n op: OpenApiOperation;\n openApi: OpenApi;\n pathParams: OperationParameters;\n types: Client['types'];\n url: string;\n}): Operation => {\n const operationWithoutName: Omit<Operation, 'name'> = {\n $refs: [],\n deprecated: Boolean(op.deprecated),\n description: op.description || null,\n id: op.operationId || null,\n imports: [],\n method: method.toUpperCase() as Operation['method'],\n parameters: [],\n parametersBody: pathParams.parametersBody,\n parametersCookie: [],\n parametersForm: [],\n parametersHeader: [],\n parametersPath: [],\n parametersQuery: [],\n path: url,\n responseHeader: null,\n responses: [],\n summary: op.summary || null,\n tags: op.tags || null,\n };\n const operation = {\n ...operationWithoutName,\n name: operationNameFn({\n config: getConfig(),\n method: operationWithoutName.method,\n operationId: op.operationId,\n path: operationWithoutName.path,\n }),\n };\n\n if (op.parameters) {\n const parameters = getOperationParameters({\n openApi,\n parameters: op.parameters,\n types,\n });\n operation.$refs = [...operation.$refs, ...parameters.$refs];\n operation.imports = [...operation.imports, ...parameters.imports];\n operation.parameters = [...operation.parameters, ...parameters.parameters];\n operation.parametersBody = parameters.parametersBody;\n operation.parametersCookie = [\n ...operation.parametersCookie,\n ...parameters.parametersCookie,\n ];\n operation.parametersForm = [\n ...operation.parametersForm,\n ...parameters.parametersForm,\n ];\n operation.parametersHeader = [\n ...operation.parametersHeader,\n ...parameters.parametersHeader,\n ];\n operation.parametersPath = [\n ...operation.parametersPath,\n ...parameters.parametersPath,\n ];\n operation.parametersQuery = [\n ...operation.parametersQuery,\n ...parameters.parametersQuery,\n ];\n }\n\n if (op.requestBody) {\n const requestBodyDef = getRef<OpenApiRequestBody>(openApi, op.requestBody);\n const requestBody = getOperationRequestBody({\n body: requestBodyDef,\n debug,\n openApi,\n types,\n });\n operation.$refs = [...operation.$refs, ...requestBody.$refs];\n operation.imports = [...operation.imports, ...requestBody.imports];\n operation.parameters = [...operation.parameters, requestBody];\n operation.parametersBody = requestBody;\n }\n\n if (op.responses) {\n operation.responses = getOperationResponses({\n openApi,\n responses: op.responses,\n types,\n });\n const successResponses = operation.responses.filter((response) =>\n response.responseTypes.includes('success'),\n );\n\n operation.responseHeader = getOperationResponseHeader(successResponses);\n\n successResponses.forEach((response) => {\n operation.$refs = [...operation.$refs, ...response.$refs];\n operation.imports = [...operation.imports, ...response.imports];\n });\n }\n\n operation.parameters = mergeParameters(\n operation.parameters,\n pathParams.parameters,\n );\n operation.parametersCookie = mergeParameters(\n operation.parametersCookie,\n pathParams.parametersCookie,\n );\n operation.parametersForm = mergeParameters(\n operation.parametersForm,\n pathParams.parametersForm,\n );\n operation.parametersHeader = mergeParameters(\n operation.parametersHeader,\n pathParams.parametersHeader,\n );\n operation.parametersPath = mergeParameters(\n operation.parametersPath,\n pathParams.parametersPath,\n );\n operation.parametersQuery = mergeParameters(\n operation.parametersQuery,\n pathParams.parametersQuery,\n );\n\n operation.parameters = toSortedByRequired(operation.parameters);\n\n return operation;\n};\n","import { getConfig } from '../../../utils/config';\nimport type { Client, Operation } from '../../common/interfaces/client';\nimport {\n getOperationKey,\n operationFilterFn,\n} from '../../common/parser/operation';\nimport { allowedServiceMethods } from '../../common/parser/service';\nimport type { OpenApi } from '../interfaces/OpenApi';\nimport { getOperationParameters } from './getOperationParameters';\nimport { getOperation } from './operation';\n\nexport const getOperations = ({\n openApi,\n types,\n}: {\n openApi: OpenApi;\n types: Client['types'];\n}): Operation[] => {\n const operationIds = new Map<string, string>();\n const operations: Operation[] = [];\n\n const config = getConfig();\n\n for (const path in openApi.paths) {\n const pathItem = openApi.paths[path]!;\n const pathParameters = getOperationParameters({\n openApi,\n parameters: pathItem.parameters ?? [],\n types,\n });\n\n for (const name in pathItem) {\n const method = name as Lowercase<Operation['method']>;\n\n const operationKey = getOperationKey({\n method,\n path,\n });\n\n if (allowedServiceMethods.includes(method)) {\n const op = pathItem[method]!;\n\n if (op.operationId) {\n if (operationIds.has(op.operationId)) {\n if (config.logs.level !== 'silent') {\n console.warn(\n `❗️ Duplicate operationId: ${op.operationId} in ${operationKey}. Please ensure your operation IDs are unique. This behavior is not supported and will likely lead to unexpected results.`,\n );\n }\n } else {\n operationIds.set(op.operationId, operationKey);\n }\n }\n\n if (\n operationFilterFn({\n config,\n operationKey,\n })\n ) {\n const operation = getOperation({\n method,\n op,\n openApi,\n pathParams: pathParameters,\n types,\n url: path,\n });\n operations.push(operation);\n }\n }\n }\n }\n\n return operations;\n};\n","import type { OpenApi } from '../interfaces/OpenApi';\n\nexport const getServer = (openApi: OpenApi): string => {\n const server = openApi.servers?.[0];\n const variables = server?.variables || {};\n let url = server?.url || '';\n Object.entries(variables).forEach(([name, variable]) => {\n url = url.replace(`{${name}}`, variable.default);\n });\n return url.replace(/\\/$/g, '');\n};\n","import type { Client } from '../common/interfaces/client';\nimport { getServiceVersion } from '../common/parser/service';\nimport type { OpenApi } from './interfaces/OpenApi';\nimport { getModels } from './parser/getModels';\nimport { getOperations } from './parser/getOperations';\nimport { getServer } from './parser/getServer';\n\n/**\n * Parse the OpenAPI specification to a Client model that contains\n * all the models, operations and schema's we should output.\n * @param openApi The OpenAPI spec that we have loaded from disk.\n */\nexport const parse = (openApi: OpenApi): Omit<Client, 'config'> => {\n const version = getServiceVersion(openApi.info.version);\n const server = getServer(openApi);\n const { models, types } = getModels(openApi);\n const operations = getOperations({ openApi, types });\n\n return {\n models,\n operations,\n server,\n types,\n version,\n };\n};\n","import { IRContext } from '../ir/context';\nimport type { IR } from '../ir/types';\nimport type { Config } from '../types/config';\nimport { parseV2_0_X } from './2.0.x';\nimport { parseV3_0_X } from './3.0.x';\nimport { parseV3_1_X } from './3.1.x';\nimport type { Client } from './common/interfaces/client';\nimport type { OpenApi as LegacyOpenApi } from './common/interfaces/OpenApi';\nimport type { OpenApi } from './types';\nimport { parse as parseV2 } from './v2';\nimport { parse as parseV3 } from './v3';\n\nexport type {\n Client,\n Enum,\n Method,\n Model,\n ModelMeta,\n Operation,\n OperationParameter,\n OperationResponse,\n} from './common/interfaces/client';\nexport type { OpenApi } from './common/interfaces/OpenApi';\nexport { isOperationParameterRequired } from './common/parser/operation';\nexport {\n ensureValidTypeScriptJavaScriptIdentifier,\n sanitizeNamespaceIdentifier,\n sanitizeOperationParameterName,\n} from './common/parser/sanitize';\nexport { getType } from './common/parser/type';\nexport type { OpenApiSchema as OpenApiV2Schema } from './v2/interfaces/OpenApiSchema';\nexport type { OpenApiSchema as OpenApiV3Schema } from './v3/interfaces/OpenApiSchema';\n\n/**\n * Parse the OpenAPI specification to a Client model that contains\n * all the models, services and schema's we should output.\n * @param openApi The OpenAPI spec that we have loaded from disk.\n */\nexport function parseLegacy({\n openApi,\n}: {\n openApi: unknown;\n}): Omit<Client, 'config'> {\n const spec = openApi as LegacyOpenApi;\n\n if ('openapi' in spec) {\n return parseV3(spec);\n }\n\n if ('swagger' in spec) {\n return parseV2(spec);\n }\n\n throw new Error(\n `Unsupported OpenAPI specification: ${JSON.stringify(spec, null, 2)}`,\n );\n}\n\n/**\n * Parse the resolved OpenAPI specification. This will populate and return\n * `context` with intermediate representation obtained from the parsed spec.\n */\nexport const parseOpenApiSpec = ({\n config,\n spec,\n}: {\n config: Config;\n spec: unknown;\n}): IR.Context | undefined => {\n const context = new IRContext({\n config,\n spec: spec as OpenApi.V2_0_X | OpenApi.V3_0_X | OpenApi.V3_1_X,\n });\n\n if ('swagger' in context.spec) {\n parseV2_0_X(context as IR.Context<OpenApi.V2_0_X>);\n return context;\n }\n\n switch (context.spec.openapi) {\n case '3.0.0':\n case '3.0.1':\n case '3.0.2':\n case '3.0.3':\n case '3.0.4':\n parseV3_0_X(context as IR.Context<OpenApi.V3_0_X>);\n return context;\n case '3.1.0':\n case '3.1.1':\n parseV3_1_X(context as IR.Context<OpenApi.V3_1_X>);\n return context;\n default:\n break;\n }\n\n throw new Error('Unsupported OpenAPI specification');\n};\n","import { sync } from 'cross-spawn';\n\nimport type { Config, Formatters, Linters } from './types/config';\n\ntype OutputProcessor = {\n args: (path: string) => ReadonlyArray<string>;\n command: string;\n name: string;\n};\n\n/**\n * Map of supported formatters\n */\nconst formatters: Record<Formatters, OutputProcessor> = {\n biome: {\n args: (path) => ['format', '--write', path],\n command: 'biome',\n name: 'Biome (Format)',\n },\n prettier: {\n args: (path) => [\n '--ignore-unknown',\n path,\n '--write',\n '--ignore-path',\n './.prettierignore',\n ],\n command: 'prettier',\n name: 'Prettier',\n },\n};\n\n/**\n * Map of supported linters\n */\nconst linters: Record<Linters, OutputProcessor> = {\n biome: {\n args: (path) => ['lint', '--apply', path],\n command: 'biome',\n name: 'Biome (Lint)',\n },\n eslint: {\n args: (path) => [path, '--fix'],\n command: 'eslint',\n name: 'ESLint',\n },\n oxlint: {\n args: (path) => ['--fix', path],\n command: 'oxlint',\n name: 'oxlint',\n },\n};\n\nexport const processOutput = ({ config }: { config: Config }) => {\n if (config.output.format) {\n const module = formatters[config.output.format];\n console.log(`✨ Running ${module.name}`);\n sync(module.command, module.args(config.output.path));\n }\n\n if (config.output.lint) {\n const module = linters[config.output.lint];\n console.log(`✨ Running ${module.name}`);\n sync(module.command, module.args(config.output.path));\n }\n};\n","const idEnd = (id: string) => `${id}-end`;\n\nconst idLength = (id: string) => `${id}-length`;\n\nconst idStart = (id: string) => `${id}-start`;\n\nexport const Performance = {\n clear: (): void => {\n performance.clearMarks();\n performance.clearMeasures();\n },\n end: (id: string): PerformanceMark => performance.mark(idEnd(id)),\n getEntriesByName: (id: string): PerformanceEntryList =>\n performance.getEntriesByName(idLength(id)),\n measure: (id: string): PerformanceMeasure =>\n performance.measure(idLength(id), idStart(id), idEnd(id)),\n start: (id: string): PerformanceMark => performance.mark(idStart(id)),\n};\n\nexport class PerformanceReport {\n totalMeasure: PerformanceMeasure;\n\n constructor({ totalMark }: { totalMark: string }) {\n this.totalMeasure = Performance.measure(totalMark);\n }\n\n public report({ marks }: { marks: ReadonlyArray<string> }) {\n const totalDuration = Math.ceil(this.totalMeasure.duration * 100) / 100;\n const totalName = this.totalMeasure.name;\n console.warn(\n `${totalName.substring(0, totalName.length - idLength('').length)}: ${totalDuration.toFixed(2)}ms`,\n );\n\n marks.forEach((mark) => {\n try {\n const markMeasure = Performance.measure(mark);\n const markDuration = Math.ceil(markMeasure.duration * 100) / 100;\n const percentage =\n Math.ceil(\n (markMeasure.duration / this.totalMeasure.duration) * 100 * 100,\n ) / 100;\n console.warn(\n `${mark}: ${markDuration.toFixed(2)}ms (${percentage.toFixed(2)}%)`,\n );\n } catch {\n // noop\n }\n });\n }\n}\n","import type { Client as ParserClient, Model } from '../openApi';\nimport { sanitizeNamespaceIdentifier } from '../openApi';\nimport type { Client, Operation, Service } from '../types/client';\nimport type { Config } from '../types/config';\nimport { getConfig, legacyNameFromConfig } from './config';\nimport { sort } from './sort';\nimport { stringCase } from './stringCase';\nimport { unique } from './unique';\n\n/**\n * Post process client\n * @param client Client object with all the models, services, etc.\n */\nexport function postProcessClient(\n client: Omit<ParserClient, 'config'>,\n config: Config,\n): Client {\n return {\n ...client,\n config,\n models: client.models.map((model) => postProcessModel(model)),\n services: postProcessOperations(client.operations).map(postProcessService),\n types: {},\n };\n}\n\nconst postProcessModel = (model: Model): Model => ({\n ...model,\n $refs: model.$refs.filter((value, index, arr) => unique(value, index, arr)),\n enum: model.enum.filter(\n (value, index, arr) =>\n arr.findIndex((item) => item.value === value.value) === index,\n ),\n enums: model.enums.filter(\n (value, index, arr) =>\n arr.findIndex((item) => item.name === value.name) === index,\n ),\n imports: model.imports\n .filter(\n (value, index, arr) => unique(value, index, arr) && value !== model.name,\n )\n .sort(sort),\n});\n\nconst postProcessOperations = (\n operations: ParserClient['operations'],\n): Client['services'] => {\n const config = getConfig();\n\n const services = new Map<string, Service>();\n\n operations.forEach((parserOperation) => {\n const tags =\n parserOperation.tags?.length &&\n (config.plugins['@hey-api/sdk']?.asClass || legacyNameFromConfig(config))\n ? parserOperation.tags.filter(unique)\n : ['Default'];\n tags.forEach((tag) => {\n const operation: Operation = {\n ...parserOperation,\n service: getServiceName(tag),\n };\n const service =\n services.get(operation.service) || getNewService(operation);\n service.$refs = [...service.$refs, ...operation.$refs];\n service.imports = [...service.imports, ...operation.imports];\n service.operations = [...service.operations, operation];\n services.set(operation.service, service);\n });\n });\n\n return Array.from(services.values());\n};\n\nconst postProcessService = (service: Service): Service => {\n const clone = { ...service };\n clone.operations = postProcessServiceOperations(clone);\n clone.operations.forEach((operation) => {\n clone.imports.push(...operation.imports);\n });\n clone.imports = clone.imports.filter(unique).sort(sort);\n return clone;\n};\n\nconst postProcessServiceOperations = (service: Service): Operation[] => {\n const names = new Map<string, number>();\n\n return service.operations.map((operation) => {\n const clone = { ...operation };\n\n // Parse the service parameters and successes, very similar to how we parse\n // properties of models. These methods will extend the type if needed.\n clone.imports.push(\n ...clone.parameters.flatMap((parameter) => parameter.imports),\n );\n const successResponses = clone.responses.filter((response) =>\n response.responseTypes.includes('success'),\n );\n clone.imports.push(...successResponses.flatMap((result) => result.imports));\n\n // Check if the operation name is unique, if not then prefix this with a number\n const name = clone.name;\n const index = names.get(name) || 0;\n if (index > 0) {\n clone.name = `${name}${index}`;\n }\n names.set(name, index + 1);\n\n return clone;\n });\n};\n\nexport const getNewService = (operation: Operation): Service => ({\n $refs: [],\n imports: [],\n name: operation.service,\n operations: [],\n});\n\n/**\n * Convert the input value to a correct service name. This converts\n * the input string to PascalCase.\n */\nexport const getServiceName = (value: string): string =>\n stringCase({\n case: 'PascalCase',\n value: sanitizeNamespaceIdentifier(value),\n });\n","import path from 'node:path';\n\nimport { generateLegacyOutput, generateOutput } from './generate/output';\nimport { getSpec } from './getSpec';\nimport type { IR } from './ir/types';\nimport { parseLegacy, parseOpenApiSpec } from './openApi';\nimport { processOutput } from './processOutput';\nimport type { Client } from './types/client';\nimport type { Config } from './types/config';\nimport type { WatchValues } from './types/types';\nimport { isLegacyClient, legacyNameFromConfig } from './utils/config';\nimport type { Templates } from './utils/handlebars';\nimport { Performance } from './utils/performance';\nimport { postProcessClient } from './utils/postprocess';\n\nconst isPlatformPath = (path: string) =>\n path.startsWith('https://get.heyapi.dev');\n// || path.startsWith('http://localhost:4000')\n\nexport const compileInputPath = (input: Config['input']) => {\n const result: Pick<\n Partial<Config['input']>,\n | 'api_key'\n | 'branch'\n | 'commit_sha'\n | 'organization'\n | 'project'\n | 'tags'\n | 'version'\n > &\n Pick<Required<Config['input']>, 'path'> = {\n path: '',\n };\n\n if (\n input.path &&\n (typeof input.path !== 'string' || !isPlatformPath(input.path))\n ) {\n result.path = input.path;\n return result;\n }\n\n const [basePath, baseQuery] = input.path.split('?');\n const queryParts = (baseQuery || '').split('&');\n const queryPath = queryParts.map((part) => part.split('='));\n\n let path = basePath || '';\n if (path.endsWith('/')) {\n path = path.slice(0, path.length - 1);\n }\n\n const [, pathUrl] = path.split('://');\n const [baseUrl, organization, project] = (pathUrl || '').split('/');\n result.organization = organization || input.organization;\n result.project = project || input.project;\n\n const queryParams: Array<string> = [];\n\n const kApiKey = 'api_key';\n result.api_key =\n queryPath.find(([key]) => key === kApiKey)?.[1] ||\n input.api_key ||\n process.env.HEY_API_TOKEN;\n if (result.api_key) {\n queryParams.push(`${kApiKey}=${result.api_key}`);\n }\n\n const kBranch = 'branch';\n result.branch =\n queryPath.find(([key]) => key === kBranch)?.[1] || input.branch;\n if (result.branch) {\n queryParams.push(`${kBranch}=${result.branch}`);\n }\n\n const kCommitSha = 'commit_sha';\n result.commit_sha =\n queryPath.find(([key]) => key === kCommitSha)?.[1] || input.commit_sha;\n if (result.commit_sha) {\n queryParams.push(`${kCommitSha}=${result.commit_sha}`);\n }\n\n const kTags = 'tags';\n result.tags =\n queryPath.find(([key]) => key === kTags)?.[1]?.split(',') || input.tags;\n if (result.tags?.length) {\n queryParams.push(`${kTags}=${result.tags.join(',')}`);\n }\n\n const kVersion = 'version';\n result.version =\n queryPath.find(([key]) => key === kVersion)?.[1] || input.version;\n if (result.version) {\n queryParams.push(`${kVersion}=${result.version}`);\n }\n\n if (!result.organization) {\n throw new Error(\n '🚫 missing organization - from which Hey API platform organization do you want to generate your output?',\n );\n }\n\n if (!result.project) {\n throw new Error(\n '🚫 missing project - from which Hey API platform project do you want to generate your output?',\n );\n }\n\n const query = queryParams.join('&');\n const platformUrl = baseUrl || 'get.heyapi.dev';\n const isLocalhost = platformUrl.startsWith('localhost');\n const platformUrlWithProtocol = [\n isLocalhost ? 'http' : 'https',\n platformUrl,\n ].join('://');\n const compiledPath = isLocalhost\n ? [\n platformUrlWithProtocol,\n 'v1',\n 'get',\n result.organization,\n result.project,\n ].join('/')\n : [platformUrlWithProtocol, result.organization, result.project].join('/');\n result.path = query ? `${compiledPath}?${query}` : compiledPath;\n\n return result;\n};\n\nconst logInputPath = ({\n config,\n inputPath,\n watch,\n}: {\n config: Config;\n inputPath: ReturnType<typeof compileInputPath>;\n watch?: boolean;\n}) => {\n if (config.logs.level === 'silent') {\n return;\n }\n\n if (watch) {\n console.clear();\n }\n\n const baseString = watch\n ? 'Input changed, generating from'\n : 'Generating from';\n\n if (typeof inputPath.path === 'string') {\n const baseInput = isPlatformPath(inputPath.path)\n ? `${inputPath.organization}/${inputPath.project}`\n : inputPath.path;\n console.log(`⏳ ${baseString} ${baseInput}`);\n if (isPlatformPath(inputPath.path)) {\n if (inputPath.branch) {\n console.log(`branch: ${inputPath.branch}`);\n }\n if (inputPath.commit_sha) {\n console.log(`commit: ${inputPath.commit_sha}`);\n }\n if (inputPath.tags?.length) {\n console.log(`tags: ${inputPath.tags.join(', ')}`);\n }\n if (inputPath.version) {\n console.log(`version: ${inputPath.version}`);\n }\n }\n } else {\n console.log(`⏳ ${baseString} raw OpenAPI specification`);\n }\n};\n\nexport const createClient = async ({\n config,\n templates,\n watch: _watch,\n}: {\n config: Config;\n templates: Templates;\n watch?: WatchValues;\n}) => {\n const inputPath = compileInputPath(config.input);\n const timeout = config.watch.timeout;\n\n const watch: WatchValues = _watch || { headers: new Headers() };\n\n logInputPath({\n config,\n inputPath,\n watch: Boolean(_watch),\n });\n\n Performance.start('spec');\n const { data, error, response } = await getSpec({\n fetchOptions: config.input.fetch,\n inputPath: inputPath.path,\n timeout,\n watch,\n });\n Performance.end('spec');\n\n // throw on first run if there's an error to preserve user experience\n // if in watch mode, subsequent errors won't throw to gracefully handle\n // cases where server might be reloading\n if (error && !_watch) {\n throw new Error(\n `Request failed with status ${response.status}: ${response.statusText}`,\n );\n }\n\n let client: Client | undefined;\n let context: IR.Context | undefined;\n\n if (data) {\n Performance.start('parser');\n if (\n config.experimentalParser &&\n !isLegacyClient(config) &&\n !legacyNameFromConfig(config)\n ) {\n context = parseOpenApiSpec({ config, spec: data });\n }\n\n // fallback to legacy parser\n if (!context) {\n const parsed = parseLegacy({ openApi: data });\n client = postProcessClient(parsed, config);\n }\n Performance.end('parser');\n\n Performance.start('generator');\n if (context) {\n await generateOutput({ context });\n } else if (client) {\n await generateLegacyOutput({ client, openApi: data, templates });\n }\n Performance.end('generator');\n\n Performance.start('postprocess');\n if (!config.dryRun) {\n processOutput({ config });\n\n if (config.logs.level !== 'silent') {\n const outputPath = process.env.INIT_CWD\n ? `./${path.relative(process.env.INIT_CWD, config.output.path)}`\n : config.output.path;\n console.log(`🚀 Done! Your output is in ${outputPath}`);\n }\n }\n Performance.end('postprocess');\n }\n\n if (config.watch.enabled && typeof inputPath.path === 'string') {\n setTimeout(() => {\n createClient({ config, templates, watch });\n }, config.watch.interval);\n }\n\n return context || client;\n};\n","import type { Config, UserConfig } from './types/config';\n\nexport const getLogs = (userConfig: UserConfig | undefined): Config['logs'] => {\n let logs: Config['logs'] = {\n file: true,\n level: 'info',\n path: process.cwd(),\n };\n if (typeof userConfig?.logs === 'string') {\n logs.path = userConfig.logs;\n } else {\n logs = {\n ...logs,\n ...userConfig?.logs,\n };\n }\n return logs;\n};\n","export const clientDefaultConfig = {\n _dependencies: ['@hey-api/typescript'],\n _tags: ['client'],\n baseUrl: true,\n bundle: false,\n exportFromIndex: false,\n output: 'client',\n} as const;\n","import type { StringCase } from '../../../types/config';\nimport { irRef } from '../../../utils/ref';\nimport { stringCase } from '../../../utils/stringCase';\n\ninterface OperationIRRef {\n /**\n * Operation ID\n */\n id: string;\n}\n\nexport const operationIrRef = ({\n case: _case = 'PascalCase',\n id,\n type,\n}: OperationIRRef & {\n readonly case?: StringCase;\n type: 'data' | 'error' | 'errors' | 'response' | 'responses';\n}): string => {\n let affix = '';\n switch (type) {\n case 'data':\n affix = 'Data';\n break;\n case 'error':\n // error union\n affix = 'Error';\n break;\n case 'errors':\n // errors map\n affix = 'Errors';\n break;\n case 'response':\n // response union\n affix = 'Response';\n break;\n case 'responses':\n // responses map\n affix = 'Responses';\n break;\n }\n return `${irRef}${stringCase({\n case: _case,\n value: id,\n })}-${affix}`;\n};\n","import type { Identifier, TypeScriptFile } from '../../../generate/files';\nimport type { IR } from '../../../ir/types';\nimport { operationIrRef } from '../../shared/utils/ref';\n\nexport const typesId = 'types';\n\nfunction refIdentifier<T extends Identifier>(\n identifier: T,\n onGet?: (identifier: T) => void,\n): T {\n return {\n ...identifier,\n get name() {\n onGet?.(identifier);\n return identifier.name;\n },\n };\n}\n\nexport const importIdentifierData = ({\n context,\n file,\n operation,\n}: {\n context: IR.Context;\n file: TypeScriptFile;\n operation: IR.OperationObject;\n}): Identifier => {\n const identifierData = context.file({ id: typesId })!.identifier({\n $ref: operationIrRef({ id: operation.id, type: 'data' }),\n namespace: 'type',\n });\n return refIdentifier(identifierData, (identifier) => {\n if (identifier.name) {\n file.import({\n asType: true,\n module: file.relativePathToFile({ context, id: typesId }),\n name: identifier.name,\n });\n }\n });\n};\n\nexport const importIdentifierError = ({\n context,\n file,\n operation,\n}: {\n context: IR.Context;\n file: TypeScriptFile;\n operation: IR.OperationObject;\n}): Identifier => {\n const identifierError = context.file({ id: typesId })!.identifier({\n $ref: operationIrRef({ id: operation.id, type: 'error' }),\n namespace: 'type',\n });\n return refIdentifier(identifierError, (identifier) => {\n if (identifier.name) {\n file.import({\n asType: true,\n module: file.relativePathToFile({ context, id: typesId }),\n name: identifier.name,\n });\n }\n });\n};\n\nexport const importIdentifierResponse = ({\n context,\n file,\n operation,\n}: {\n context: IR.Context;\n file: TypeScriptFile;\n operation: IR.OperationObject;\n}): Identifier => {\n const identifierResponse = context.file({ id: typesId })!.identifier({\n $ref: operationIrRef({ id: operation.id, type: 'response' }),\n namespace: 'type',\n });\n return refIdentifier(identifierResponse, (identifier) => {\n if (identifier.name) {\n file.import({\n asType: true,\n module: file.relativePathToFile({ context, id: typesId }),\n name: identifier.name,\n });\n }\n });\n};\n","import { compiler } from '../../../compiler';\nimport { clientModulePath } from '../../../generate/client';\nimport { parseUrl } from '../../../utils/url';\nimport { clientId, getClientBaseUrlKey } from '../client-core/utils';\nimport { typesId } from '../typescript/ref';\nimport type { PluginHandler } from './types';\n\nconst resolveBaseUrlString: PluginHandler<string | undefined> = ({\n context,\n plugin,\n}) => {\n const { baseUrl } = plugin;\n\n if (baseUrl === false) {\n return;\n }\n\n if (typeof baseUrl === 'string') {\n return baseUrl;\n }\n\n const { servers } = context.ir;\n\n if (!servers) {\n return;\n }\n\n return servers[typeof baseUrl === 'number' ? baseUrl : 0]?.url;\n};\n\nexport const createClient: PluginHandler = ({ context, plugin }) => {\n const file = context.file({ id: clientId })!;\n\n const clientModule = clientModulePath({\n config: context.config,\n sourceOutput: file.nameWithoutExtension(),\n });\n const createClient = file.import({\n module: clientModule,\n name: 'createClient',\n });\n const createConfig = file.import({\n module: clientModule,\n name: 'createConfig',\n });\n const clientOptions = file.import({\n asType: true,\n module: file.relativePathToFile({ context, id: typesId }),\n name: 'ClientOptions',\n });\n\n const createClientConfig = plugin.runtimeConfigPath\n ? file.import({\n module: file.relativePathToFile({\n context,\n id: plugin.runtimeConfigPath,\n }),\n name: 'createClientConfig',\n })\n : undefined;\n\n const defaultValues: Array<unknown> = [];\n\n const resolvedBaseUrl = resolveBaseUrlString({ context, plugin });\n if (resolvedBaseUrl) {\n const url = parseUrl(resolvedBaseUrl);\n if (url.protocol && url.host && !resolvedBaseUrl.includes('{')) {\n defaultValues.push({\n key: getClientBaseUrlKey(context.config),\n value: resolvedBaseUrl,\n });\n }\n }\n\n if ('throwOnError' in plugin && plugin.throwOnError) {\n defaultValues.push({\n key: 'throwOnError',\n value: true,\n });\n }\n\n const createConfigParameters = [\n compiler.callExpression({\n functionName: createConfig.name,\n parameters: defaultValues.length\n ? [compiler.objectExpression({ obj: defaultValues })]\n : undefined,\n types: [compiler.typeReferenceNode({ typeName: clientOptions.name })],\n }),\n ];\n\n const statement = compiler.constVariable({\n exportConst: true,\n expression: compiler.callExpression({\n functionName: createClient.name,\n parameters: createClientConfig\n ? [\n compiler.callExpression({\n functionName: createClientConfig.name,\n parameters: createConfigParameters,\n }),\n ]\n : createConfigParameters,\n }),\n name: 'client',\n });\n file.add(statement);\n};\n","import { compiler } from '../../../compiler';\nimport { clientModulePath } from '../../../generate/client';\nimport { clientId } from '../client-core/utils';\nimport { typesId } from '../typescript/ref';\nimport type { PluginHandler } from './types';\n\nexport const createClientConfigType: PluginHandler = ({ context }) => {\n const file = context.file({ id: clientId })!;\n\n const clientModule = clientModulePath({\n config: context.config,\n sourceOutput: file.nameWithoutExtension(),\n });\n const clientOptions = file.import({\n asType: true,\n module: file.relativePathToFile({ context, id: typesId }),\n name: 'ClientOptions',\n });\n const configType = file.import({\n asType: true,\n module: clientModule,\n name: 'Config',\n });\n const defaultClientOptions = file.import({\n alias: 'DefaultClientOptions',\n asType: true,\n module: clientModule,\n name: 'ClientOptions',\n });\n\n const defaultClientOptionsType = compiler.typeReferenceNode({\n typeName: defaultClientOptions.name,\n });\n const tType = compiler.typeReferenceNode({ typeName: 'T' });\n\n const typeCreateClientConfig = compiler.typeAliasDeclaration({\n comment: [\n 'The `createClientConfig()` function will be called on client initialization',\n \"and the returned object will become the client's initial configuration.\",\n '',\n 'You may want to initialize your client this way instead of calling',\n \"`setConfig()`. This is useful for example if you're using Next.js\",\n 'to ensure your client always has the correct values.',\n ],\n exportType: true,\n name: 'CreateClientConfig',\n type: compiler.functionTypeNode({\n parameters: [\n compiler.parameterDeclaration({\n name: 'override',\n required: false,\n type: compiler.typeReferenceNode({\n typeArguments: [\n compiler.typeIntersectionNode({\n types: [defaultClientOptionsType, tType],\n }),\n ],\n typeName: configType.name,\n }),\n }),\n ],\n returnType: compiler.typeReferenceNode({\n typeArguments: [\n compiler.typeIntersectionNode({\n types: [\n compiler.typeReferenceNode({\n typeArguments: [defaultClientOptionsType],\n typeName: 'Required',\n }),\n tType,\n ],\n }),\n ],\n typeName: configType.name,\n }),\n }),\n typeParameters: [\n {\n default: compiler.typeReferenceNode({ typeName: clientOptions.name }),\n extends: defaultClientOptionsType,\n name: 'T',\n },\n ],\n });\n\n file.add(typeCreateClientConfig);\n};\n","import { clientId } from '../client-core/utils';\nimport { createClient } from './client';\nimport { createClientConfigType } from './createClientConfig';\nimport type { PluginHandler } from './types';\n\nexport const clientPluginHandler: PluginHandler = ({ context, plugin }) => {\n context.createFile({\n exportFromIndex: plugin.exportFromIndex,\n id: clientId,\n path: plugin.output,\n });\n\n createClientConfigType({ context, plugin });\n createClient({ context, plugin });\n};\n","import type { Plugin } from '../../types';\nimport { clientDefaultConfig } from '../client-core/config';\nimport { clientPluginHandler } from '../client-core/plugin';\nimport type { Config } from './types';\n\nexport const defaultConfig: Plugin.Config<Config> = {\n ...clientDefaultConfig,\n _handler: clientPluginHandler,\n _handlerLegacy: () => {},\n name: '@hey-api/client-axios',\n throwOnError: false,\n};\n\n/**\n * Type helper for `@hey-api/client-axios` plugin, returns {@link Plugin.Config} object\n */\nexport const defineConfig: Plugin.DefineConfig<Config> = (config) => ({\n ...defaultConfig,\n ...config,\n});\n","import type { Plugin } from '../../types';\nimport { clientDefaultConfig } from '../client-core/config';\nimport { clientPluginHandler } from '../client-core/plugin';\nimport type { Config } from './types';\n\nexport const defaultConfig: Plugin.Config<Config> = {\n ...clientDefaultConfig,\n _handler: clientPluginHandler,\n _handlerLegacy: () => {},\n name: '@hey-api/client-fetch',\n throwOnError: false,\n};\n\n/**\n * Type helper for `@hey-api/client-fetch` plugin, returns {@link Plugin.Config} object\n */\nexport const defineConfig: Plugin.DefineConfig<Config> = (config) => ({\n ...defaultConfig,\n ...config,\n});\n","import type { Plugin } from '../../types';\nimport { clientDefaultConfig } from '../client-core/config';\nimport { clientPluginHandler } from '../client-core/plugin';\nimport type { Config } from './types';\n\nexport const defaultConfig: Plugin.Config<Config> = {\n ...clientDefaultConfig,\n _handler: clientPluginHandler,\n _handlerLegacy: () => {},\n name: '@hey-api/client-next',\n throwOnError: false,\n};\n\n/**\n * Type helper for `@hey-api/client-next` plugin, returns {@link Plugin.Config} object\n */\nexport const defineConfig: Plugin.DefineConfig<Config> = (config) => ({\n ...defaultConfig,\n ...config,\n});\n","import type { Plugin } from '../../types';\nimport { clientDefaultConfig } from '../client-core/config';\nimport { clientPluginHandler } from '../client-core/plugin';\nimport type { Config } from './types';\n\nexport const defaultConfig: Plugin.Config<Config> = {\n ...clientDefaultConfig,\n _handler: clientPluginHandler,\n _handlerLegacy: () => {},\n name: '@hey-api/client-nuxt',\n};\n\n/**\n * Type helper for `@hey-api/client-nuxt` plugin, returns {@link Plugin.Config} object\n */\nexport const defineConfig: Plugin.DefineConfig<Config> = (config) => ({\n ...defaultConfig,\n ...config,\n});\n","import type { Plugin } from '../../types';\nimport type { Config } from './types';\n\nexport const defaultConfig: Plugin.Config<Config> = {\n _handler: () => {},\n _handlerLegacy: () => {},\n _tags: ['client'],\n name: 'legacy/angular',\n output: 'client',\n};\n\n/**\n * Type helper for `legacy/angular` plugin, returns {@link Plugin.Config} object\n */\nexport const defineConfig: Plugin.DefineConfig<Config> = (config) => ({\n ...defaultConfig,\n ...config,\n});\n","import type { Plugin } from '../../types';\nimport type { Config } from './types';\n\nexport const defaultConfig: Plugin.Config<Config> = {\n _handler: () => {},\n _handlerLegacy: () => {},\n _tags: ['client'],\n name: 'legacy/axios',\n output: 'client',\n};\n\n/**\n * Type helper for `legacy/axios` plugin, returns {@link Plugin.Config} object\n */\nexport const defineConfig: Plugin.DefineConfig<Config> = (config) => ({\n ...defaultConfig,\n ...config,\n});\n","import type { Plugin } from '../../types';\nimport type { Config } from './types';\n\nexport const defaultConfig: Plugin.Config<Config> = {\n _handler: () => {},\n _handlerLegacy: () => {},\n _tags: ['client'],\n name: 'legacy/fetch',\n output: 'client',\n};\n\n/**\n * Type helper for `legacy/fetch` plugin, returns {@link Plugin.Config} object\n */\nexport const defineConfig: Plugin.DefineConfig<Config> = (config) => ({\n ...defaultConfig,\n ...config,\n});\n","import type { Plugin } from '../../types';\nimport type { Config } from './types';\n\nexport const defaultConfig: Plugin.Config<Config> = {\n _handler: () => {},\n _handlerLegacy: () => {},\n _tags: ['client'],\n name: 'legacy/node',\n output: 'client',\n};\n\n/**\n * Type helper for `legacy/node` plugin, returns {@link Plugin.Config} object\n */\nexport const defineConfig: Plugin.DefineConfig<Config> = (config) => ({\n ...defaultConfig,\n ...config,\n});\n","import type { Plugin } from '../../types';\nimport type { Config } from './types';\n\nexport const defaultConfig: Plugin.Config<Config> = {\n _handler: () => {},\n _handlerLegacy: () => {},\n _tags: ['client'],\n name: 'legacy/xhr',\n output: 'client',\n};\n\n/**\n * Type helper for `legacy/xhr` plugin, returns {@link Plugin.Config} object\n */\nexport const defineConfig: Plugin.DefineConfig<Config> = (config) => ({\n ...defaultConfig,\n ...config,\n});\n","import { compiler } from '../../../compiler';\nimport type { IR } from '../../../ir/types';\nimport type { SchemaObject as OpenApiV2_0_XSchemaObject } from '../../../openApi/2.0.x/types/spec';\nimport type {\n ReferenceObject as OpenApiV3_0_XReferenceObject,\n SchemaObject as OpenApiV3_0_XSchemaObject,\n} from '../../../openApi/3.0.x/types/spec';\nimport type { SchemaObject as OpenApiV3_1_XSchemaObject } from '../../../openApi/3.1.x/types/spec';\nimport { ensureValidIdentifier } from '../../../openApi/shared/utils/identifier';\nimport type { OpenApi } from '../../../openApi/types';\nimport type { Plugin } from '../../types';\nimport type { Config } from './types';\n\nconst schemasId = 'schemas';\n\nconst stripSchema = ({\n plugin,\n schema,\n}: {\n plugin: Plugin.Instance<Config>;\n schema:\n | OpenApiV2_0_XSchemaObject\n | OpenApiV3_0_XSchemaObject\n | OpenApiV3_1_XSchemaObject;\n}) => {\n if (plugin.type === 'form') {\n if (schema.description) {\n delete schema.description;\n }\n\n if (schema['x-enum-descriptions']) {\n delete schema['x-enum-descriptions'];\n }\n\n if (schema['x-enum-varnames']) {\n delete schema['x-enum-varnames'];\n }\n\n if (schema['x-enumNames']) {\n delete schema['x-enumNames'];\n }\n\n if (schema.title) {\n delete schema.title;\n }\n }\n};\n\nconst schemaToJsonSchemaDraft_04 = ({\n context,\n plugin,\n schema: _schema,\n}: {\n context: IR.Context;\n plugin: Plugin.Instance<Config>;\n schema: OpenApiV2_0_XSchemaObject;\n}): OpenApiV2_0_XSchemaObject => {\n if (Array.isArray(_schema)) {\n return _schema.map((item) =>\n schemaToJsonSchemaDraft_04({\n context,\n plugin,\n schema: item,\n }),\n ) as unknown as OpenApiV2_0_XSchemaObject;\n }\n\n const schema = structuredClone(_schema);\n\n if (schema.$ref) {\n // refs using unicode characters become encoded, didn't investigate why\n // but the suspicion is this comes from `@hey-api/json-schema-ref-parser`\n schema.$ref = decodeURI(schema.$ref);\n return schema;\n }\n\n stripSchema({ plugin, schema });\n\n if (\n schema.additionalProperties &&\n typeof schema.additionalProperties !== 'boolean'\n ) {\n schema.additionalProperties = schemaToJsonSchemaDraft_04({\n context,\n plugin,\n schema: schema.additionalProperties,\n });\n }\n\n if (schema.allOf) {\n schema.allOf = schema.allOf.map((item) =>\n schemaToJsonSchemaDraft_04({\n context,\n plugin,\n schema: item,\n }),\n );\n }\n\n if (schema.items) {\n schema.items = schemaToJsonSchemaDraft_04({\n context,\n plugin,\n schema: schema.items as OpenApiV2_0_XSchemaObject,\n });\n }\n\n if (schema.properties) {\n for (const name in schema.properties) {\n const property = schema.properties[name]!;\n\n if (typeof property !== 'boolean') {\n schema.properties[name] = schemaToJsonSchemaDraft_04({\n context,\n plugin,\n schema: property,\n });\n }\n }\n }\n\n return schema;\n};\n\nconst schemaToJsonSchemaDraft_05 = ({\n context,\n plugin,\n schema: _schema,\n}: {\n context: IR.Context;\n plugin: Plugin.Instance<Config>;\n schema: OpenApiV3_0_XSchemaObject | OpenApiV3_0_XReferenceObject;\n}): OpenApiV3_0_XSchemaObject | OpenApiV3_0_XReferenceObject => {\n if (Array.isArray(_schema)) {\n return _schema.map((item) =>\n schemaToJsonSchemaDraft_05({\n context,\n plugin,\n schema: item,\n }),\n ) as OpenApiV3_0_XSchemaObject | OpenApiV3_0_XReferenceObject;\n }\n\n const schema = structuredClone(_schema);\n\n if ('$ref' in schema) {\n // refs using unicode characters become encoded, didn't investigate why\n // but the suspicion is this comes from `@hey-api/json-schema-ref-parser`\n schema.$ref = decodeURI(schema.$ref);\n return schema;\n }\n\n stripSchema({ plugin, schema });\n\n if (\n schema.additionalProperties &&\n typeof schema.additionalProperties !== 'boolean'\n ) {\n schema.additionalProperties = schemaToJsonSchemaDraft_05({\n context,\n plugin,\n schema: schema.additionalProperties,\n });\n }\n\n if (schema.allOf) {\n schema.allOf = schema.allOf.map((item) =>\n schemaToJsonSchemaDraft_05({\n context,\n plugin,\n schema: item,\n }),\n );\n }\n\n if (schema.anyOf) {\n schema.anyOf = schema.anyOf.map((item) =>\n schemaToJsonSchemaDraft_05({\n context,\n plugin,\n schema: item,\n }),\n );\n }\n\n if (schema.items) {\n schema.items = schemaToJsonSchemaDraft_05({\n context,\n plugin,\n schema: schema.items,\n });\n }\n\n if (schema.oneOf) {\n schema.oneOf = schema.oneOf.map((item) =>\n schemaToJsonSchemaDraft_05({\n context,\n plugin,\n schema: item,\n }),\n );\n }\n\n if (schema.properties) {\n for (const name in schema.properties) {\n const property = schema.properties[name]!;\n\n if (typeof property !== 'boolean') {\n schema.properties[name] = schemaToJsonSchemaDraft_05({\n context,\n plugin,\n schema: property,\n });\n }\n }\n }\n\n return schema;\n};\n\nconst schemaToJsonSchema2020_12 = ({\n context,\n plugin,\n schema: _schema,\n}: {\n context: IR.Context;\n plugin: Plugin.Instance<Config>;\n schema: OpenApiV3_1_XSchemaObject;\n}): OpenApiV3_1_XSchemaObject => {\n if (Array.isArray(_schema)) {\n return _schema.map((item) =>\n schemaToJsonSchema2020_12({\n context,\n plugin,\n schema: item,\n }),\n ) as OpenApiV3_1_XSchemaObject;\n }\n\n const schema = structuredClone(_schema);\n\n stripSchema({ plugin, schema });\n\n if (schema.$ref) {\n // refs using unicode characters become encoded, didn't investigate why\n // but the suspicion is this comes from `@hey-api/json-schema-ref-parser`\n schema.$ref = decodeURI(schema.$ref);\n }\n\n if (\n schema.additionalProperties &&\n typeof schema.additionalProperties !== 'boolean'\n ) {\n schema.additionalProperties = schemaToJsonSchema2020_12({\n context,\n plugin,\n schema: schema.additionalProperties,\n });\n }\n\n if (schema.allOf) {\n schema.allOf = schema.allOf.map((item) =>\n schemaToJsonSchema2020_12({\n context,\n plugin,\n schema: item,\n }),\n );\n }\n\n if (schema.anyOf) {\n schema.anyOf = schema.anyOf.map((item) =>\n schemaToJsonSchema2020_12({\n context,\n plugin,\n schema: item,\n }),\n );\n }\n\n if (schema.items) {\n schema.items = schemaToJsonSchema2020_12({\n context,\n plugin,\n schema: schema.items,\n });\n }\n\n if (schema.oneOf) {\n schema.oneOf = schema.oneOf.map((item) =>\n schemaToJsonSchema2020_12({\n context,\n plugin,\n schema: item,\n }),\n );\n }\n\n if (schema.prefixItems) {\n schema.prefixItems = schema.prefixItems.map((item) =>\n schemaToJsonSchema2020_12({\n context,\n plugin,\n schema: item,\n }),\n );\n }\n\n if (schema.properties) {\n for (const name in schema.properties) {\n const property = schema.properties[name]!;\n\n if (typeof property !== 'boolean') {\n schema.properties[name] = schemaToJsonSchema2020_12({\n context,\n plugin,\n schema: property,\n });\n }\n }\n }\n\n return schema;\n};\n\nconst schemaName = ({\n name,\n plugin,\n schema,\n}: {\n name: string;\n plugin: Plugin.Instance<Config>;\n schema:\n | OpenApiV2_0_XSchemaObject\n | OpenApiV3_0_XReferenceObject\n | OpenApiV3_0_XSchemaObject\n | OpenApiV3_1_XSchemaObject;\n}): string => {\n const customName = plugin.nameBuilder?.(name, schema) ?? `${name}Schema`;\n return ensureValidIdentifier(customName);\n};\n\nconst schemasV2_0_X = ({\n context,\n plugin,\n}: {\n context: IR.Context<OpenApi.V2_0_X>;\n plugin: Plugin.Instance<Config>;\n}) => {\n if (!context.spec.definitions) {\n return;\n }\n\n for (const name in context.spec.definitions) {\n const schema = context.spec.definitions[name]!;\n const obj = schemaToJsonSchemaDraft_04({\n context,\n plugin,\n schema,\n });\n const statement = compiler.constVariable({\n assertion: 'const',\n exportConst: true,\n expression: compiler.objectExpression({ obj }),\n name: schemaName({ name, plugin, schema }),\n });\n context.file({ id: schemasId })!.add(statement);\n }\n};\n\nconst schemasV3_0_X = ({\n context,\n plugin,\n}: {\n context: IR.Context<OpenApi.V3_0_X>;\n plugin: Plugin.Instance<Config>;\n}) => {\n if (!context.spec.components) {\n return;\n }\n\n for (const name in context.spec.components.schemas) {\n const schema = context.spec.components.schemas[name]!;\n const obj = schemaToJsonSchemaDraft_05({\n context,\n plugin,\n schema,\n });\n const statement = compiler.constVariable({\n assertion: 'const',\n exportConst: true,\n expression: compiler.objectExpression({ obj }),\n name: schemaName({ name, plugin, schema }),\n });\n context.file({ id: schemasId })!.add(statement);\n }\n};\n\nconst schemasV3_1_X = ({\n context,\n plugin,\n}: {\n context: IR.Context<OpenApi.V3_1_X>;\n plugin: Plugin.Instance<Config>;\n}) => {\n if (!context.spec.components) {\n return;\n }\n\n for (const name in context.spec.components.schemas) {\n const schema = context.spec.components.schemas[name]!;\n const obj = schemaToJsonSchema2020_12({\n context,\n plugin,\n schema,\n });\n const statement = compiler.constVariable({\n assertion: 'const',\n exportConst: true,\n expression: compiler.objectExpression({ obj }),\n name: schemaName({ name, plugin, schema }),\n });\n context.file({ id: schemasId })!.add(statement);\n }\n};\n\nexport const handler: Plugin.Handler<Config> = ({ context, plugin }) => {\n context.createFile({\n exportFromIndex: plugin.exportFromIndex,\n id: schemasId,\n path: plugin.output,\n });\n\n if ('swagger' in context.spec) {\n schemasV2_0_X({\n context: context as IR.Context<OpenApi.V2_0_X>,\n plugin,\n });\n return;\n }\n\n switch (context.spec.openapi) {\n case '3.0.0':\n case '3.0.1':\n case '3.0.2':\n case '3.0.3':\n case '3.0.4':\n schemasV3_0_X({\n context: context as IR.Context<OpenApi.V3_0_X>,\n plugin,\n });\n break;\n case '3.1.0':\n case '3.1.1':\n schemasV3_1_X({\n context: context as IR.Context<OpenApi.V3_1_X>,\n plugin,\n });\n break;\n default:\n break;\n }\n};\n","import { compiler } from '../../../compiler';\nimport { TypeScriptFile } from '../../../generate/files';\nimport type { OpenApiV2Schema, OpenApiV3Schema } from '../../../openApi';\nimport { ensureValidTypeScriptJavaScriptIdentifier } from '../../../openApi';\nimport { getConfig } from '../../../utils/config';\nimport type { Plugin } from '../../types';\nimport type { Config } from './types';\n\nconst ensureValidSchemaOutput = (\n schema: unknown,\n parentKey?: string,\n): object => {\n const config = getConfig();\n\n if (Array.isArray(schema)) {\n return schema.map((item) => ensureValidSchemaOutput(item));\n }\n\n if (typeof schema !== 'object' || schema === null) {\n return schema as object;\n }\n\n const result = { ...schema };\n Object.entries(result).forEach(([key, value]) => {\n if (config.plugins['@hey-api/schemas']?.type === 'form') {\n if (\n [\n 'description',\n 'x-enum-descriptions',\n 'x-enum-varnames',\n 'x-enumNames',\n 'title',\n ].includes(key) &&\n parentKey !== 'properties'\n ) {\n // @ts-expect-error\n delete result[key];\n return;\n }\n }\n\n // refs are encoded probably by json-schema-ref-parser, didn't investigate\n // further\n if (key === '$ref' && typeof value === 'string') {\n // @ts-expect-error\n result[key] = decodeURIComponent(value);\n }\n\n if (value && typeof value === 'object') {\n // @ts-expect-error\n result[key] = ensureValidSchemaOutput(value, key);\n }\n });\n return result;\n};\n\nconst toSchemaName = (\n name: string,\n schema: OpenApiV2Schema | OpenApiV3Schema,\n): string => {\n const config = getConfig();\n\n const validName = ensureValidTypeScriptJavaScriptIdentifier(name);\n\n if (config.plugins['@hey-api/schemas']?.nameBuilder) {\n return config.plugins['@hey-api/schemas'].nameBuilder(validName, schema);\n }\n\n return `${validName}Schema`;\n};\n\nexport const handlerLegacy: Plugin.LegacyHandler<Config> = ({\n files,\n openApi,\n}) => {\n const config = getConfig();\n\n files.schemas = new TypeScriptFile({\n dir: config.output.path,\n name: 'schemas.ts',\n });\n\n const addSchema = (\n name: string,\n schema: OpenApiV2Schema | OpenApiV3Schema,\n ) => {\n const obj = ensureValidSchemaOutput(schema);\n const expression = compiler.objectExpression({ obj });\n const statement = compiler.constVariable({\n assertion: 'const',\n exportConst: true,\n expression,\n name: toSchemaName(name, schema),\n });\n files.schemas!.add(statement);\n };\n\n // OpenAPI 2.0\n if ('swagger' in openApi) {\n Object.entries(openApi.definitions ?? {}).forEach(([name, definition]) => {\n addSchema(name, definition);\n });\n }\n\n // OpenAPI 3.x\n if ('openapi' in openApi) {\n Object.entries(openApi.components?.schemas ?? {}).forEach(\n ([name, schema]) => {\n addSchema(name, schema);\n },\n );\n }\n};\n","import type { Plugin } from '../../types';\nimport { handler } from './plugin';\nimport { handlerLegacy } from './plugin-legacy';\nimport type { Config } from './types';\n\nexport const defaultConfig: Plugin.Config<Config> = {\n _handler: handler,\n _handlerLegacy: handlerLegacy,\n exportFromIndex: false,\n name: '@hey-api/schemas',\n nameBuilder: (name) => `${name}Schema`,\n output: 'schemas',\n type: 'json',\n};\n\n/**\n * Type helper for `@hey-api/schemas` plugin, returns {@link Plugin.Config} object\n */\nexport const defineConfig: Plugin.DefineConfig<Config> = (config) => ({\n ...defaultConfig,\n ...config,\n});\n","import type { Pagination } from './pagination';\nimport type { IR } from './types';\n\nexport const hasParameterGroupObjectRequired = (\n parameterGroup?: Record<string, IR.ParameterObject>,\n): boolean => {\n for (const name in parameterGroup) {\n if (parameterGroup[name]!.required) {\n return true;\n }\n }\n\n return false;\n};\n\nexport const hasParametersObjectRequired = (\n parameters: IR.ParametersObject | undefined,\n): boolean => {\n if (!parameters) {\n return false;\n }\n\n if (hasParameterGroupObjectRequired(parameters.cookie)) {\n return true;\n }\n\n if (hasParameterGroupObjectRequired(parameters.header)) {\n return true;\n }\n\n if (hasParameterGroupObjectRequired(parameters.path)) {\n return true;\n }\n\n if (hasParameterGroupObjectRequired(parameters.query)) {\n return true;\n }\n\n return false;\n};\n\nexport const parameterWithPagination = (\n parameters: IR.ParametersObject | undefined,\n): Pagination | undefined => {\n if (!parameters) {\n return;\n }\n\n for (const name in parameters.cookie) {\n const parameter = parameters.cookie[name]!;\n if (parameter.pagination) {\n return {\n in: parameter.location,\n name:\n parameter.pagination === true\n ? name\n : `${name}.${parameter.pagination}`,\n schema:\n parameter.pagination === true\n ? parameter.schema\n : parameter.schema.properties![parameter.pagination]!,\n };\n }\n }\n\n for (const name in parameters.header) {\n const parameter = parameters.header[name]!;\n if (parameter.pagination) {\n return {\n in: parameter.location,\n name:\n parameter.pagination === true\n ? name\n : `${name}.${parameter.pagination}`,\n schema:\n parameter.pagination === true\n ? parameter.schema\n : parameter.schema.properties![parameter.pagination]!,\n };\n }\n }\n\n for (const name in parameters.path) {\n const parameter = parameters.path[name]!;\n if (parameter.pagination) {\n return {\n in: parameter.location,\n name:\n parameter.pagination === true\n ? name\n : `${name}.${parameter.pagination}`,\n schema:\n parameter.pagination === true\n ? parameter.schema\n : parameter.schema.properties![parameter.pagination]!,\n };\n }\n }\n\n for (const name in parameters.query) {\n const parameter = parameters.query[name]!;\n if (parameter.pagination) {\n return {\n in: parameter.location,\n name:\n parameter.pagination === true\n ? name\n : `${name}.${parameter.pagination}`,\n schema:\n parameter.pagination === true\n ? parameter.schema\n : parameter.schema.properties![parameter.pagination]!,\n };\n }\n }\n};\n","import type { IR } from './types';\n\n/**\n * Ensure we don't produce redundant types, e.g. string | string.\n */\nexport const deduplicateSchema = <T extends IR.SchemaObject>({\n schema,\n}: {\n schema: T;\n}): T => {\n if (!schema.items) {\n return schema;\n }\n\n const uniqueItems: Array<IR.SchemaObject> = [];\n const typeIds: Array<string> = [];\n\n for (const item of schema.items) {\n // skip nested schemas for now, handle if necessary\n if (!item.type && item.items) {\n uniqueItems.push(item);\n continue;\n }\n\n if (\n // no `type` might still include `$ref` or `const`\n !item.type ||\n item.type === 'boolean' ||\n item.type === 'integer' ||\n item.type === 'null' ||\n item.type === 'number' ||\n item.type === 'string' ||\n item.type === 'unknown' ||\n item.type === 'void'\n ) {\n // const needs namespace to handle empty string values, otherwise\n // fallback would equal an actual value and we would skip an item\n const typeId = `${item.$ref ?? ''}${item.type ?? ''}${item.const !== undefined ? `const-${item.const}` : ''}`;\n if (!typeIds.includes(typeId)) {\n typeIds.push(typeId);\n uniqueItems.push(item);\n }\n continue;\n }\n\n uniqueItems.push(item);\n }\n\n schema.items = uniqueItems;\n\n if (\n schema.items.length <= 1 &&\n schema.type !== 'array' &&\n schema.type !== 'enum' &&\n schema.type !== 'tuple'\n ) {\n // bring the only item up to clean up the schema\n const liftedSchema = schema.items[0];\n delete schema.logicalOperator;\n delete schema.items;\n schema = {\n ...schema,\n ...liftedSchema,\n };\n }\n\n // exclude unknown if it's the only type left\n if (schema.type === 'unknown') {\n return {} as T;\n }\n\n return schema;\n};\n","import type { Pagination } from './pagination';\nimport {\n hasParametersObjectRequired,\n parameterWithPagination,\n} from './parameter';\nimport { deduplicateSchema } from './schema';\nimport type { IR } from './types';\nimport { addItemsToSchema } from './utils';\n\nexport const hasOperationDataRequired = (\n operation: IR.OperationObject,\n): boolean => {\n if (hasParametersObjectRequired(operation.parameters)) {\n return true;\n }\n\n if (operation.body?.required) {\n return true;\n }\n\n return false;\n};\n\nexport const operationPagination = ({\n context,\n operation,\n}: {\n context: IR.Context;\n operation: IR.OperationObject;\n}): Pagination | undefined => {\n const body = operation.body;\n\n if (!body || !body.pagination) {\n return parameterWithPagination(operation.parameters);\n }\n\n if (body.pagination === true) {\n return {\n in: 'body',\n name: 'body',\n schema: body.schema,\n };\n }\n\n const schema = body.schema;\n const resolvedSchema = schema.$ref\n ? context.resolveIrRef<IR.RequestBodyObject | IR.SchemaObject>(schema.$ref)\n : schema;\n\n const finalSchema =\n 'schema' in resolvedSchema ? resolvedSchema.schema : resolvedSchema;\n const paginationProp = finalSchema?.properties?.[body.pagination];\n\n if (!paginationProp) {\n return parameterWithPagination(operation.parameters);\n }\n\n return {\n in: 'body',\n name: body.pagination,\n schema: paginationProp,\n };\n};\n\ntype StatusGroup = '1XX' | '2XX' | '3XX' | '4XX' | '5XX' | 'default';\n\nexport const statusCodeToGroup = ({\n statusCode,\n}: {\n statusCode: string;\n}): StatusGroup => {\n switch (statusCode) {\n case '1XX':\n return '1XX';\n case '2XX':\n return '2XX';\n case '3XX':\n return '3XX';\n case '4XX':\n return '4XX';\n case '5XX':\n return '5XX';\n case 'default':\n return 'default';\n default:\n return `${statusCode[0]}XX` as StatusGroup;\n }\n};\n\ninterface OperationResponsesMap {\n /**\n * A deduplicated union of all error types. Unknown types are omitted.\n */\n error?: IR.SchemaObject;\n /**\n * An object containing a map of status codes for each error type.\n */\n errors?: IR.SchemaObject;\n /**\n * A deduplicated union of all response types. Unknown types are omitted.\n */\n response?: IR.SchemaObject;\n /**\n * An object containing a map of status codes for each response type.\n */\n responses?: IR.SchemaObject;\n}\n\nexport const operationResponsesMap = (\n operation: IR.OperationObject,\n): OperationResponsesMap => {\n const result: OperationResponsesMap = {};\n\n if (!operation.responses) {\n return result;\n }\n\n const errors: Omit<IR.SchemaObject, 'properties'> &\n Pick<Required<IR.SchemaObject>, 'properties'> = {\n properties: {},\n type: 'object',\n };\n\n const responses: Omit<IR.SchemaObject, 'properties'> &\n Pick<Required<IR.SchemaObject>, 'properties'> = {\n properties: {},\n type: 'object',\n };\n\n // store default response to be evaluated last\n let defaultResponse: IR.ResponseObject | undefined;\n\n for (const name in operation.responses) {\n const response = operation.responses[name]!;\n\n switch (statusCodeToGroup({ statusCode: name })) {\n case '1XX':\n case '3XX':\n // TODO: parser - handle informational and redirection status codes\n break;\n case '2XX':\n responses.properties[name] = response.schema;\n break;\n case '4XX':\n case '5XX':\n errors.properties[name] = response.schema;\n break;\n case 'default':\n defaultResponse = response;\n break;\n }\n }\n\n // infer default response type\n if (defaultResponse) {\n let inferred = false;\n\n // assume default is intended for success if none exists yet\n if (!Object.keys(responses.properties).length) {\n responses.properties.default = defaultResponse.schema;\n inferred = true;\n }\n\n const description = (\n defaultResponse.schema.description ?? ''\n ).toLocaleLowerCase();\n const $ref = (defaultResponse.schema.$ref ?? '').toLocaleLowerCase();\n\n // TODO: parser - this could be rewritten using regular expressions\n const successKeywords = ['success'];\n if (\n successKeywords.some(\n (keyword) => description.includes(keyword) || $ref.includes(keyword),\n )\n ) {\n responses.properties.default = defaultResponse.schema;\n inferred = true;\n }\n\n // TODO: parser - this could be rewritten using regular expressions\n const errorKeywords = ['error', 'problem'];\n if (\n errorKeywords.some(\n (keyword) => description.includes(keyword) || $ref.includes(keyword),\n )\n ) {\n errors.properties.default = defaultResponse.schema;\n inferred = true;\n }\n\n // if no keyword match, assume default schema is intended for error\n if (!inferred) {\n errors.properties.default = defaultResponse.schema;\n }\n }\n\n const errorKeys = Object.keys(errors.properties);\n if (errorKeys.length) {\n errors.required = errorKeys;\n result.errors = errors;\n\n let errorUnion = addItemsToSchema({\n items: Object.values(errors.properties),\n mutateSchemaOneItem: true,\n schema: {},\n });\n errorUnion = deduplicateSchema({ schema: errorUnion });\n if (Object.keys(errorUnion).length && errorUnion.type !== 'unknown') {\n result.error = errorUnion;\n }\n }\n\n const responseKeys = Object.keys(responses.properties);\n if (responseKeys.length) {\n responses.required = responseKeys;\n result.responses = responses;\n\n let responseUnion = addItemsToSchema({\n items: Object.values(responses.properties),\n mutateSchemaOneItem: true,\n schema: {},\n });\n responseUnion = deduplicateSchema({ schema: responseUnion });\n if (Object.keys(responseUnion).length && responseUnion.type !== 'unknown') {\n result.response = responseUnion;\n }\n }\n\n return result;\n};\n","import ts from 'typescript';\n\nimport { compiler } from '../../compiler';\nimport { operationResponsesMap } from '../../ir/operation';\nimport { deduplicateSchema } from '../../ir/schema';\nimport type { IR } from '../../ir/types';\nimport { numberRegExp } from '../../utils/regexp';\nimport { operationIrRef } from '../shared/utils/ref';\nimport type { Plugin } from '../types';\nimport type { Config } from './types';\n\ninterface SchemaWithType<T extends Required<IR.SchemaObject>['type']>\n extends Omit<IR.SchemaObject, 'type'> {\n type: Extract<Required<IR.SchemaObject>['type'], T>;\n}\n\ninterface Result {\n circularReferenceTracker: Set<string>;\n hasCircularReference: boolean;\n}\n\nexport const zodId = 'zod';\n\n// frequently used identifiers\nconst coerceIdentifier = compiler.identifier({ text: 'coerce' });\nconst defaultIdentifier = compiler.identifier({ text: 'default' });\nconst intersectionIdentifier = compiler.identifier({ text: 'intersection' });\nconst lazyIdentifier = compiler.identifier({ text: 'lazy' });\nconst lengthIdentifier = compiler.identifier({ text: 'length' });\nconst literalIdentifier = compiler.identifier({ text: 'literal' });\nconst maxIdentifier = compiler.identifier({ text: 'max' });\nconst mergeIdentifier = compiler.identifier({ text: 'merge' });\nconst minIdentifier = compiler.identifier({ text: 'min' });\nconst optionalIdentifier = compiler.identifier({ text: 'optional' });\nconst readonlyIdentifier = compiler.identifier({ text: 'readonly' });\nconst regexIdentifier = compiler.identifier({ text: 'regex' });\nconst unionIdentifier = compiler.identifier({ text: 'union' });\nconst zIdentifier = compiler.identifier({ text: 'z' });\n\nconst nameTransformer = (name: string) => `z-${name}`;\n\nconst arrayTypeToZodSchema = ({\n context,\n result,\n schema,\n}: {\n context: IR.Context;\n result: Result;\n schema: SchemaWithType<'array'>;\n}): ts.CallExpression => {\n const functionName = compiler.propertyAccessExpression({\n expression: zIdentifier,\n name: compiler.identifier({ text: schema.type }),\n });\n\n let arrayExpression: ts.CallExpression | undefined;\n\n if (!schema.items) {\n arrayExpression = compiler.callExpression({\n functionName,\n parameters: [\n unknownTypeToZodSchema({\n context,\n schema: {\n type: 'unknown',\n },\n }),\n ],\n });\n } else {\n schema = deduplicateSchema({ schema });\n\n // at least one item is guaranteed\n const itemExpressions = schema.items!.map((item) =>\n schemaToZodSchema({\n context,\n result,\n schema: item,\n }),\n );\n\n if (itemExpressions.length === 1) {\n arrayExpression = compiler.callExpression({\n functionName,\n parameters: itemExpressions,\n });\n } else {\n if (schema.logicalOperator === 'and') {\n // TODO: parser - handle intersection\n // return compiler.typeArrayNode(\n // compiler.typeIntersectionNode({ types: itemExpressions }),\n // );\n }\n\n // TODO: parser - handle union\n // return compiler.typeArrayNode(compiler.typeUnionNode({ types: itemExpressions }));\n\n arrayExpression = compiler.callExpression({\n functionName,\n parameters: [\n unknownTypeToZodSchema({\n context,\n schema: {\n type: 'unknown',\n },\n }),\n ],\n });\n }\n }\n\n if (schema.minItems === schema.maxItems && schema.minItems !== undefined) {\n arrayExpression = compiler.callExpression({\n functionName: compiler.propertyAccessExpression({\n expression: arrayExpression,\n name: lengthIdentifier,\n }),\n parameters: [compiler.valueToExpression({ value: schema.minItems })],\n });\n } else {\n if (schema.minItems !== undefined) {\n arrayExpression = compiler.callExpression({\n functionName: compiler.propertyAccessExpression({\n expression: arrayExpression,\n name: minIdentifier,\n }),\n parameters: [compiler.valueToExpression({ value: schema.minItems })],\n });\n }\n\n if (schema.maxItems !== undefined) {\n arrayExpression = compiler.callExpression({\n functionName: compiler.propertyAccessExpression({\n expression: arrayExpression,\n name: maxIdentifier,\n }),\n parameters: [compiler.valueToExpression({ value: schema.maxItems })],\n });\n }\n }\n\n return arrayExpression;\n};\n\nconst booleanTypeToZodSchema = ({\n schema,\n}: {\n context: IR.Context;\n schema: SchemaWithType<'boolean'>;\n}) => {\n if (typeof schema.const === 'boolean') {\n const expression = compiler.callExpression({\n functionName: compiler.propertyAccessExpression({\n expression: zIdentifier,\n name: literalIdentifier,\n }),\n parameters: [compiler.ots.boolean(schema.const)],\n });\n return expression;\n }\n\n const expression = compiler.callExpression({\n functionName: compiler.propertyAccessExpression({\n expression: zIdentifier,\n name: compiler.identifier({ text: schema.type }),\n }),\n });\n return expression;\n};\n\nconst enumTypeToZodSchema = ({\n context,\n schema,\n}: {\n context: IR.Context;\n schema: SchemaWithType<'enum'>;\n}): ts.CallExpression => {\n const enumMembers: Array<ts.LiteralExpression> = [];\n\n for (const item of schema.items ?? []) {\n // Zod supports only string enums\n if (item.type === 'string' && typeof item.const === 'string') {\n enumMembers.push(\n compiler.stringLiteral({\n text: item.const,\n }),\n );\n }\n }\n\n if (!enumMembers.length) {\n return unknownTypeToZodSchema({\n context,\n schema: {\n type: 'unknown',\n },\n });\n }\n\n const enumExpression = compiler.callExpression({\n functionName: compiler.propertyAccessExpression({\n expression: zIdentifier,\n name: compiler.identifier({ text: schema.type }),\n }),\n parameters: [\n compiler.arrayLiteralExpression({\n elements: enumMembers,\n multiLine: false,\n }),\n ],\n });\n\n return enumExpression;\n};\n\nconst neverTypeToZodSchema = ({\n schema,\n}: {\n context: IR.Context;\n schema: SchemaWithType<'never'>;\n}) => {\n const expression = compiler.callExpression({\n functionName: compiler.propertyAccessExpression({\n expression: zIdentifier,\n name: compiler.identifier({ text: schema.type }),\n }),\n });\n return expression;\n};\n\nconst nullTypeToZodSchema = ({\n schema,\n}: {\n context: IR.Context;\n schema: SchemaWithType<'null'>;\n}) => {\n const expression = compiler.callExpression({\n functionName: compiler.propertyAccessExpression({\n expression: zIdentifier,\n name: compiler.identifier({ text: schema.type }),\n }),\n });\n return expression;\n};\n\nconst numberTypeToZodSchema = ({\n schema,\n}: {\n context: IR.Context;\n schema: SchemaWithType<'integer' | 'number'>;\n}) => {\n const isBigInt = schema.type === 'integer' && schema.format === 'int64';\n\n if (typeof schema.const === 'number') {\n // TODO: parser - handle bigint constants\n const expression = compiler.callExpression({\n functionName: compiler.propertyAccessExpression({\n expression: zIdentifier,\n name: literalIdentifier,\n }),\n parameters: [compiler.ots.number(schema.const)],\n });\n return expression;\n }\n\n let numberExpression = compiler.callExpression({\n functionName: isBigInt\n ? compiler.propertyAccessExpression({\n expression: compiler.propertyAccessExpression({\n expression: zIdentifier,\n name: coerceIdentifier,\n }),\n name: compiler.identifier({ text: 'bigint' }),\n })\n : compiler.propertyAccessExpression({\n expression: zIdentifier,\n name: compiler.identifier({ text: 'number' }),\n }),\n });\n\n if (!isBigInt && schema.type === 'integer') {\n numberExpression = compiler.callExpression({\n functionName: compiler.propertyAccessExpression({\n expression: numberExpression,\n name: compiler.identifier({ text: 'int' }),\n }),\n });\n }\n\n if (schema.exclusiveMinimum !== undefined) {\n numberExpression = compiler.callExpression({\n functionName: compiler.propertyAccessExpression({\n expression: numberExpression,\n name: compiler.identifier({ text: 'gt' }),\n }),\n parameters: [\n compiler.valueToExpression({ value: schema.exclusiveMinimum }),\n ],\n });\n } else if (schema.minimum !== undefined) {\n numberExpression = compiler.callExpression({\n functionName: compiler.propertyAccessExpression({\n expression: numberExpression,\n name: compiler.identifier({ text: 'gte' }),\n }),\n parameters: [compiler.valueToExpression({ value: schema.minimum })],\n });\n }\n\n if (schema.exclusiveMaximum !== undefined) {\n numberExpression = compiler.callExpression({\n functionName: compiler.propertyAccessExpression({\n expression: numberExpression,\n name: compiler.identifier({ text: 'lt' }),\n }),\n parameters: [\n compiler.valueToExpression({ value: schema.exclusiveMaximum }),\n ],\n });\n } else if (schema.maximum !== undefined) {\n numberExpression = compiler.callExpression({\n functionName: compiler.propertyAccessExpression({\n expression: numberExpression,\n name: compiler.identifier({ text: 'lte' }),\n }),\n parameters: [compiler.valueToExpression({ value: schema.maximum })],\n });\n }\n\n return numberExpression;\n};\n\nconst objectTypeToZodSchema = ({\n context,\n result,\n schema,\n}: {\n context: IR.Context;\n result: Result;\n schema: SchemaWithType<'object'>;\n}) => {\n // TODO: parser - handle constants\n const properties: Array<ts.PropertyAssignment> = [];\n\n // let indexProperty: Property | undefined;\n // const schemaProperties: Array<Property> = [];\n // let indexPropertyItems: Array<IR.SchemaObject> = [];\n const required = schema.required ?? [];\n // let hasOptionalProperties = false;\n\n for (const name in schema.properties) {\n const property = schema.properties[name]!;\n const isRequired = required.includes(name);\n\n const propertyExpression = schemaToZodSchema({\n context,\n optional: !isRequired,\n result,\n schema: property,\n });\n\n numberRegExp.lastIndex = 0;\n let propertyName = numberRegExp.test(name)\n ? ts.factory.createNumericLiteral(name)\n : name;\n // TODO: parser - abstract safe property name logic\n if (\n ((name.match(/^[0-9]/) && name.match(/\\D+/g)) || name.match(/\\W/g)) &&\n !name.startsWith(\"'\") &&\n !name.endsWith(\"'\")\n ) {\n propertyName = `'${name}'`;\n }\n properties.push(\n compiler.propertyAssignment({\n initializer: propertyExpression,\n name: propertyName,\n }),\n );\n\n // indexPropertyItems.push(property);\n // if (!isRequired) {\n // hasOptionalProperties = true;\n // }\n }\n\n // if (\n // schema.additionalProperties &&\n // (schema.additionalProperties.type !== 'never' || !indexPropertyItems.length)\n // ) {\n // if (schema.additionalProperties.type === 'never') {\n // indexPropertyItems = [schema.additionalProperties];\n // } else {\n // indexPropertyItems.unshift(schema.additionalProperties);\n // }\n\n // if (hasOptionalProperties) {\n // indexPropertyItems.push({\n // type: 'undefined',\n // });\n // }\n\n // indexProperty = {\n // isRequired: true,\n // name: 'key',\n // type: schemaToZodSchema({\n // context,\n // schema:\n // indexPropertyItems.length === 1\n // ? indexPropertyItems[0]\n // : {\n // items: indexPropertyItems,\n // logicalOperator: 'or',\n // },\n // }),\n // };\n // }\n\n // return compiler.typeInterfaceNode({\n // indexProperty,\n // properties: schemaProperties,\n // useLegacyResolution: false,\n // });\n const expression = compiler.callExpression({\n functionName: compiler.propertyAccessExpression({\n expression: zIdentifier,\n name: compiler.identifier({ text: schema.type }),\n }),\n parameters: [ts.factory.createObjectLiteralExpression(properties, true)],\n });\n return expression;\n};\n\nconst stringTypeToZodSchema = ({\n schema,\n}: {\n context: IR.Context;\n schema: SchemaWithType<'string'>;\n}) => {\n if (typeof schema.const === 'string') {\n const expression = compiler.callExpression({\n functionName: compiler.propertyAccessExpression({\n expression: zIdentifier,\n name: literalIdentifier,\n }),\n parameters: [compiler.ots.string(schema.const)],\n });\n return expression;\n }\n\n let stringExpression = compiler.callExpression({\n functionName: compiler.propertyAccessExpression({\n expression: zIdentifier,\n name: compiler.identifier({ text: schema.type }),\n }),\n });\n\n if (schema.format) {\n switch (schema.format) {\n case 'date-time':\n stringExpression = compiler.callExpression({\n functionName: compiler.propertyAccessExpression({\n expression: stringExpression,\n name: compiler.identifier({ text: 'datetime' }),\n }),\n });\n break;\n case 'ipv4':\n case 'ipv6':\n stringExpression = compiler.callExpression({\n functionName: compiler.propertyAccessExpression({\n expression: stringExpression,\n name: compiler.identifier({ text: 'ip' }),\n }),\n });\n break;\n case 'uri':\n stringExpression = compiler.callExpression({\n functionName: compiler.propertyAccessExpression({\n expression: stringExpression,\n name: compiler.identifier({ text: 'url' }),\n }),\n });\n break;\n case 'date':\n case 'email':\n case 'time':\n case 'uuid':\n stringExpression = compiler.callExpression({\n functionName: compiler.propertyAccessExpression({\n expression: stringExpression,\n name: compiler.identifier({ text: schema.format }),\n }),\n });\n break;\n }\n }\n\n if (schema.minLength === schema.maxLength && schema.minLength !== undefined) {\n stringExpression = compiler.callExpression({\n functionName: compiler.propertyAccessExpression({\n expression: stringExpression,\n name: lengthIdentifier,\n }),\n parameters: [compiler.valueToExpression({ value: schema.minLength })],\n });\n } else {\n if (schema.minLength !== undefined) {\n stringExpression = compiler.callExpression({\n functionName: compiler.propertyAccessExpression({\n expression: stringExpression,\n name: minIdentifier,\n }),\n parameters: [compiler.valueToExpression({ value: schema.minLength })],\n });\n }\n\n if (schema.maxLength !== undefined) {\n stringExpression = compiler.callExpression({\n functionName: compiler.propertyAccessExpression({\n expression: stringExpression,\n name: maxIdentifier,\n }),\n parameters: [compiler.valueToExpression({ value: schema.maxLength })],\n });\n }\n }\n\n if (schema.pattern) {\n stringExpression = compiler.callExpression({\n functionName: compiler.propertyAccessExpression({\n expression: stringExpression,\n name: regexIdentifier,\n }),\n parameters: [compiler.regularExpressionLiteral({ text: schema.pattern })],\n });\n }\n\n return stringExpression;\n};\n\nconst tupleTypeToZodSchema = ({\n context,\n schema,\n}: {\n context: IR.Context;\n schema: SchemaWithType<'tuple'>;\n}) => {\n if (schema.const && Array.isArray(schema.const)) {\n const tupleElements = schema.const.map((value) =>\n compiler.callExpression({\n functionName: compiler.propertyAccessExpression({\n expression: zIdentifier,\n name: literalIdentifier,\n }),\n parameters: [compiler.valueToExpression({ value })],\n }),\n );\n const expression = compiler.callExpression({\n functionName: compiler.propertyAccessExpression({\n expression: zIdentifier,\n name: compiler.identifier({ text: 'tuple' }),\n }),\n parameters: [\n compiler.arrayLiteralExpression({\n elements: tupleElements,\n }),\n ],\n });\n return expression;\n }\n\n // TODO: parser - handle tuple items\n // const itemTypes: Array<ts.TypeNode> = [];\n\n // for (const item of schema.items ?? []) {\n // itemTypes.push(\n // schemaToType({\n // context,\n // namespace,\n // plugin,\n // schema: item,\n // }),\n // );\n // }\n\n // return compiler.typeTupleNode({\n // types: itemTypes,\n // });\n\n return unknownTypeToZodSchema({\n context,\n schema: {\n type: 'unknown',\n },\n });\n};\n\nconst undefinedTypeToZodSchema = ({\n schema,\n}: {\n context: IR.Context;\n schema: SchemaWithType<'undefined'>;\n}) => {\n const expression = compiler.callExpression({\n functionName: compiler.propertyAccessExpression({\n expression: zIdentifier,\n name: compiler.identifier({ text: schema.type }),\n }),\n });\n return expression;\n};\n\nconst unknownTypeToZodSchema = ({\n schema,\n}: {\n context: IR.Context;\n schema: SchemaWithType<'unknown'>;\n}) => {\n const expression = compiler.callExpression({\n functionName: compiler.propertyAccessExpression({\n expression: zIdentifier,\n name: compiler.identifier({ text: schema.type }),\n }),\n });\n return expression;\n};\n\nconst voidTypeToZodSchema = ({\n schema,\n}: {\n context: IR.Context;\n schema: SchemaWithType<'void'>;\n}) => {\n const expression = compiler.callExpression({\n functionName: compiler.propertyAccessExpression({\n expression: zIdentifier,\n name: compiler.identifier({ text: schema.type }),\n }),\n });\n return expression;\n};\n\nconst schemaTypeToZodSchema = ({\n context,\n result,\n schema,\n}: {\n context: IR.Context;\n result: Result;\n schema: IR.SchemaObject;\n}): ts.Expression => {\n switch (schema.type as Required<IR.SchemaObject>['type']) {\n case 'array':\n return arrayTypeToZodSchema({\n context,\n result,\n schema: schema as SchemaWithType<'array'>,\n });\n case 'boolean':\n return booleanTypeToZodSchema({\n context,\n schema: schema as SchemaWithType<'boolean'>,\n });\n case 'enum':\n return enumTypeToZodSchema({\n context,\n schema: schema as SchemaWithType<'enum'>,\n });\n case 'integer':\n case 'number':\n return numberTypeToZodSchema({\n context,\n schema: schema as SchemaWithType<'integer' | 'number'>,\n });\n case 'never':\n return neverTypeToZodSchema({\n context,\n schema: schema as SchemaWithType<'never'>,\n });\n case 'null':\n return nullTypeToZodSchema({\n context,\n schema: schema as SchemaWithType<'null'>,\n });\n case 'object':\n return objectTypeToZodSchema({\n context,\n result,\n schema: schema as SchemaWithType<'object'>,\n });\n case 'string':\n return stringTypeToZodSchema({\n context,\n schema: schema as SchemaWithType<'string'>,\n });\n case 'tuple':\n return tupleTypeToZodSchema({\n context,\n schema: schema as SchemaWithType<'tuple'>,\n });\n case 'undefined':\n return undefinedTypeToZodSchema({\n context,\n schema: schema as SchemaWithType<'undefined'>,\n });\n case 'unknown':\n return unknownTypeToZodSchema({\n context,\n schema: schema as SchemaWithType<'unknown'>,\n });\n case 'void':\n return voidTypeToZodSchema({\n context,\n schema: schema as SchemaWithType<'void'>,\n });\n }\n};\n\nconst operationToZodSchema = ({\n context,\n operation,\n result,\n}: {\n context: IR.Context;\n operation: IR.OperationObject;\n result: Result;\n}) => {\n if (operation.responses) {\n const { response } = operationResponsesMap(operation);\n\n if (response) {\n schemaToZodSchema({\n $ref: operationIrRef({\n case: 'camelCase',\n id: operation.id,\n type: 'response',\n }),\n context,\n result,\n schema: response,\n });\n }\n }\n};\n\nconst schemaToZodSchema = ({\n $ref,\n context,\n optional,\n result,\n schema,\n}: {\n /**\n * When $ref is supplied, a node will be emitted to the file.\n */\n $ref?: string;\n context: IR.Context;\n /**\n * Accept `optional` to handle optional object properties. We can't handle\n * this inside the object function because `.optional()` must come before\n * `.default()` which is handled in this function.\n */\n optional?: boolean;\n result: Result;\n schema: IR.SchemaObject;\n}): ts.Expression => {\n const file = context.file({ id: zodId })!;\n\n let expression: ts.Expression | undefined;\n let identifier: ReturnType<typeof file.identifier> | undefined;\n\n if ($ref) {\n result.circularReferenceTracker.add($ref);\n\n identifier = file.identifier({\n $ref,\n create: true,\n nameTransformer,\n namespace: 'value',\n });\n }\n\n if (schema.$ref) {\n const isCircularReference = result.circularReferenceTracker.has(\n schema.$ref,\n );\n\n // if $ref hasn't been processed yet, inline it to avoid the\n // \"Block-scoped variable used before its declaration.\" error\n // this could be (maybe?) fixed by reshuffling the generation order\n let identifierRef = file.identifier({\n $ref: schema.$ref,\n nameTransformer,\n namespace: 'value',\n });\n\n if (!identifierRef.name) {\n const ref = context.resolveIrRef<IR.SchemaObject>(schema.$ref);\n expression = schemaToZodSchema({\n context,\n result,\n schema: ref,\n });\n\n identifierRef = file.identifier({\n $ref: schema.$ref,\n nameTransformer,\n namespace: 'value',\n });\n }\n\n // if `identifierRef.name` is falsy, we already set expression above\n if (identifierRef.name) {\n const refIdentifier = compiler.identifier({ text: identifierRef.name });\n if (isCircularReference) {\n expression = compiler.callExpression({\n functionName: compiler.propertyAccessExpression({\n expression: zIdentifier,\n name: lazyIdentifier,\n }),\n parameters: [\n compiler.arrowFunction({\n statements: [\n compiler.returnStatement({\n expression: refIdentifier,\n }),\n ],\n }),\n ],\n });\n result.hasCircularReference = true;\n } else {\n expression = refIdentifier;\n }\n }\n } else if (schema.type) {\n expression = schemaTypeToZodSchema({\n context,\n result,\n schema,\n });\n } else if (schema.items) {\n schema = deduplicateSchema({ schema });\n\n if (schema.items) {\n const itemTypes = schema.items.map((item) =>\n schemaToZodSchema({\n context,\n result,\n schema: item,\n }),\n );\n\n if (schema.logicalOperator === 'and') {\n const firstSchema = schema.items[0]!;\n // we want to add an intersection, but not every schema can use the same API.\n // if the first item contains another array or not an object, we cannot use\n // `.merge()` as that does not exist on `.union()` and non-object schemas.\n if (\n firstSchema.logicalOperator === 'or' ||\n (firstSchema.type && firstSchema.type !== 'object')\n ) {\n expression = compiler.callExpression({\n functionName: compiler.propertyAccessExpression({\n expression: zIdentifier,\n name: intersectionIdentifier,\n }),\n parameters: itemTypes,\n });\n } else {\n expression = itemTypes[0];\n itemTypes.slice(1).forEach((item) => {\n expression = compiler.callExpression({\n functionName: compiler.propertyAccessExpression({\n expression: expression!,\n name: mergeIdentifier,\n }),\n parameters: [item],\n });\n });\n }\n } else {\n expression = compiler.callExpression({\n functionName: compiler.propertyAccessExpression({\n expression: zIdentifier,\n name: unionIdentifier,\n }),\n parameters: [\n compiler.arrayLiteralExpression({\n elements: itemTypes,\n }),\n ],\n });\n }\n } else {\n expression = schemaToZodSchema({\n context,\n result,\n schema,\n });\n }\n } else {\n // catch-all fallback for failed schemas\n expression = schemaTypeToZodSchema({\n context,\n result,\n schema: {\n type: 'unknown',\n },\n });\n }\n\n if ($ref) {\n result.circularReferenceTracker.delete($ref);\n }\n\n if (expression) {\n if (schema.accessScope === 'read') {\n expression = compiler.callExpression({\n functionName: compiler.propertyAccessExpression({\n expression,\n name: readonlyIdentifier,\n }),\n });\n }\n\n if (optional) {\n expression = compiler.callExpression({\n functionName: compiler.propertyAccessExpression({\n expression,\n name: optionalIdentifier,\n }),\n });\n }\n\n if (schema.default !== undefined) {\n const callParameter = compiler.valueToExpression({\n value: schema.default,\n });\n if (callParameter) {\n expression = compiler.callExpression({\n functionName: compiler.propertyAccessExpression({\n expression,\n name: defaultIdentifier,\n }),\n parameters: [callParameter],\n });\n }\n }\n }\n\n // emit nodes only if $ref points to a reusable component\n if (identifier?.name) {\n const statement = compiler.constVariable({\n exportConst: true,\n expression: expression!,\n name: identifier.name,\n typeName: result.hasCircularReference\n ? (compiler.propertyAccessExpression({\n expression: zIdentifier,\n name: 'ZodTypeAny',\n }) as unknown as ts.TypeNode)\n : undefined,\n });\n file.add(statement);\n }\n\n return expression!;\n};\n\nexport const handler: Plugin.Handler<Config> = ({ context, plugin }) => {\n const file = context.createFile({\n exportFromIndex: plugin.exportFromIndex,\n id: zodId,\n identifierCase: 'camelCase',\n path: plugin.output,\n });\n\n file.import({\n module: 'zod',\n name: 'z',\n });\n\n context.subscribe('operation', ({ operation }) => {\n const result: Result = {\n circularReferenceTracker: new Set(),\n hasCircularReference: false,\n };\n\n operationToZodSchema({\n context,\n operation,\n result,\n });\n });\n\n context.subscribe('schema', ({ $ref, schema }) => {\n const result: Result = {\n circularReferenceTracker: new Set(),\n hasCircularReference: false,\n };\n\n schemaToZodSchema({\n $ref,\n context,\n result,\n schema,\n });\n });\n};\n","import ts from 'typescript';\n\nimport { compiler } from '../../../compiler';\nimport { operationResponsesMap } from '../../../ir/operation';\nimport type { IR } from '../../../ir/types';\nimport { irRef } from '../../../utils/ref';\nimport { stringCase } from '../../../utils/stringCase';\nimport { operationIrRef } from '../../shared/utils/ref';\nimport type { Plugin } from '../../types';\nimport { typesId } from '../typescript/ref';\nimport type { Config } from './types';\n\ninterface OperationIRRef {\n /**\n * Operation ID\n */\n id: string;\n}\n\nconst bigIntExpressions = ({\n dataExpression,\n}: {\n dataExpression?: ts.Expression | string;\n}): Array<ts.Expression> => {\n const bigIntCallExpression =\n dataExpression !== undefined\n ? compiler.callExpression({\n functionName: 'BigInt',\n parameters: [\n compiler.callExpression({\n functionName: compiler.propertyAccessExpression({\n expression: dataExpression,\n name: 'toString',\n }),\n }),\n ],\n })\n : undefined;\n\n if (bigIntCallExpression) {\n if (typeof dataExpression === 'string') {\n return [bigIntCallExpression];\n }\n\n if (dataExpression) {\n return [\n compiler.assignment({\n left: dataExpression,\n right: bigIntCallExpression,\n }),\n ];\n }\n }\n\n return [];\n};\n\nconst dateExpressions = ({\n dataExpression,\n}: {\n dataExpression?: ts.Expression | string;\n}): Array<ts.Expression> => {\n const identifierDate = compiler.identifier({ text: 'Date' });\n\n if (typeof dataExpression === 'string') {\n return [\n compiler.newExpression({\n argumentsArray: [compiler.identifier({ text: dataExpression })],\n expression: identifierDate,\n }),\n ];\n }\n\n if (dataExpression) {\n return [\n compiler.assignment({\n left: dataExpression,\n right: compiler.newExpression({\n argumentsArray: [dataExpression],\n expression: identifierDate,\n }),\n }),\n ];\n }\n\n return [];\n};\n\nexport const operationTransformerIrRef = ({\n id,\n type,\n}: OperationIRRef & {\n type: 'data' | 'error' | 'response';\n}): string => {\n let affix = '';\n switch (type) {\n case 'data':\n affix = 'DataResponseTransformer';\n break;\n case 'error':\n affix = 'ErrorResponseTransformer';\n break;\n case 'response':\n affix = 'ResponseTransformer';\n break;\n }\n return `${irRef}${stringCase({\n // TODO: parser - do not pascalcase for functions, only for types\n case: 'camelCase',\n value: id,\n })}${affix}`;\n};\n\nconst schemaIrRef = ({\n $ref,\n type,\n}: {\n $ref: string;\n type: 'response';\n}): string => {\n let affix = '';\n switch (type) {\n case 'response':\n affix = 'SchemaResponseTransformer';\n break;\n }\n const parts = $ref.split('/');\n return `${parts.slice(0, parts.length - 1).join('/')}/${stringCase({\n case: 'camelCase',\n value: parts[parts.length - 1]!,\n })}${affix}`;\n};\n\nexport const schemaResponseTransformerRef = ({\n $ref,\n}: {\n $ref: string;\n}): string => schemaIrRef({ $ref, type: 'response' });\n\nexport const transformersId = 'transformers';\nconst dataVariableName = 'data';\n\nconst ensureStatements = (\n nodes: Array<ts.Expression | ts.Statement>,\n): Array<ts.Statement> =>\n nodes.map((node) =>\n ts.isStatement(node)\n ? node\n : compiler.expressionToStatement({ expression: node }),\n );\n\nconst isNodeReturnStatement = ({\n node,\n}: {\n node: ts.Expression | ts.Statement;\n}) => node.kind === ts.SyntaxKind.ReturnStatement;\n\nconst schemaResponseTransformerNodes = ({\n context,\n plugin,\n schema,\n}: {\n context: IR.Context;\n plugin: Plugin.Instance<Config>;\n schema: IR.SchemaObject;\n}): Array<ts.Expression | ts.Statement> => {\n const identifierData = compiler.identifier({ text: dataVariableName });\n const nodes = processSchemaType({\n context,\n dataExpression: identifierData,\n plugin,\n schema,\n });\n // append return statement if one does not already exist\n if (\n nodes.length &&\n !isNodeReturnStatement({ node: nodes[nodes.length - 1]! })\n ) {\n nodes.push(compiler.returnStatement({ expression: identifierData }));\n }\n return nodes;\n};\n\nconst processSchemaType = ({\n context,\n dataExpression,\n plugin,\n schema,\n}: {\n context: IR.Context;\n dataExpression?: ts.Expression | string;\n plugin: Plugin.Instance<Config>;\n schema: IR.SchemaObject;\n}): Array<ts.Expression | ts.Statement> => {\n const file = context.file({ id: transformersId })!;\n\n if (schema.$ref) {\n let identifier = file.identifier({\n $ref: schemaResponseTransformerRef({ $ref: schema.$ref }),\n create: true,\n namespace: 'value',\n });\n\n if (identifier.created && identifier.name) {\n // create each schema response transformer only once\n const refSchema = context.resolveIrRef<IR.SchemaObject>(schema.$ref);\n const nodes = schemaResponseTransformerNodes({\n context,\n plugin,\n schema: refSchema,\n });\n if (nodes.length) {\n const node = compiler.constVariable({\n expression: compiler.arrowFunction({\n async: false,\n multiLine: true,\n parameters: [\n {\n name: dataVariableName,\n // TODO: parser - add types, generate types without transforms\n type: compiler.keywordTypeNode({ keyword: 'any' }),\n },\n ],\n statements: ensureStatements(nodes),\n }),\n name: identifier.name,\n });\n file.add(node);\n } else {\n // the created schema response transformer was empty, do not generate\n // it and prevent any future attempts\n identifier = file.blockIdentifier({\n $ref: schemaResponseTransformerRef({ $ref: schema.$ref }),\n namespace: 'value',\n });\n }\n }\n\n if (identifier.name) {\n const callExpression = compiler.callExpression({\n functionName: identifier.name,\n parameters: [dataExpression],\n });\n\n if (dataExpression) {\n // In a map callback, the item needs to be returned, not just the transformation result\n if (typeof dataExpression === 'string' && dataExpression === 'item') {\n return [\n compiler.returnStatement({\n expression: callExpression,\n }),\n ];\n }\n\n return [\n typeof dataExpression === 'string'\n ? callExpression\n : compiler.assignment({\n left: dataExpression,\n right: callExpression,\n }),\n ];\n }\n }\n\n return [];\n }\n\n if (schema.type === 'array') {\n if (!dataExpression || typeof dataExpression === 'string') {\n return [];\n }\n\n // TODO: parser - handle tuples and complex arrays\n const nodes = !schema.items\n ? []\n : processSchemaType({\n context,\n dataExpression: 'item',\n plugin,\n schema: schema.items?.[0]\n ? schema.items[0]\n : {\n ...schema,\n type: undefined,\n },\n });\n\n if (!nodes.length) {\n return [];\n }\n\n // Ensure the map callback has a return statement for the item\n const mapCallbackStatements = ensureStatements(nodes);\n const hasReturnStatement = mapCallbackStatements.some((stmt) =>\n isNodeReturnStatement({ node: stmt }),\n );\n\n if (!hasReturnStatement) {\n mapCallbackStatements.push(\n compiler.returnStatement({\n expression: compiler.identifier({ text: 'item' }),\n }),\n );\n }\n\n return [\n compiler.assignment({\n left: dataExpression,\n right: compiler.callExpression({\n functionName: compiler.propertyAccessExpression({\n expression: dataExpression,\n name: 'map',\n }),\n parameters: [\n compiler.arrowFunction({\n multiLine: true,\n parameters: [\n {\n name: 'item',\n type: 'any',\n },\n ],\n statements: mapCallbackStatements,\n }),\n ],\n }),\n }),\n ];\n }\n\n if (schema.type === 'object') {\n let nodes: Array<ts.Expression | ts.Statement> = [];\n const required = schema.required ?? [];\n\n for (const name in schema.properties) {\n const property = schema.properties[name]!;\n const propertyAccessExpression = compiler.propertyAccessExpression({\n expression: dataExpression || dataVariableName,\n name,\n });\n const propertyNodes = processSchemaType({\n context,\n dataExpression: propertyAccessExpression,\n plugin,\n schema: property,\n });\n if (!propertyNodes.length) {\n continue;\n }\n const noNullableTypesInSchema = !property.items?.find(\n (x) => x.type === 'null',\n );\n const requiredField = required.includes(name);\n // Cannot fully rely on required fields\n // Such value has to be present, but it doesn't guarantee that this value is not nullish\n if (requiredField && noNullableTypesInSchema) {\n nodes = nodes.concat(propertyNodes);\n } else {\n nodes.push(\n // todo: Probably, it would make more sense to go with if(x !== undefined && x !== null) instead of if(x)\n // this place influences all underlying transformers, while it's not exactly transformer itself\n // Keep in mind that !!0 === false, so it already makes output for Bigint undesirable\n compiler.ifStatement({\n expression: propertyAccessExpression,\n thenStatement: compiler.block({\n statements: ensureStatements(propertyNodes),\n }),\n }),\n );\n }\n }\n\n return nodes;\n }\n\n if (\n plugin.dates &&\n schema.type === 'string' &&\n (schema.format === 'date' || schema.format === 'date-time')\n ) {\n return dateExpressions({ dataExpression });\n }\n\n if (plugin.bigInt && schema.type === 'integer' && schema.format === 'int64') {\n return bigIntExpressions({ dataExpression });\n }\n\n if (schema.items) {\n if (schema.items.length === 1) {\n return processSchemaType({\n context,\n dataExpression: 'item',\n plugin,\n schema: schema.items[0]!,\n });\n }\n\n let arrayNodes: Array<ts.Expression | ts.Statement> = [];\n // process 2 items if one of them is null\n if (\n schema.logicalOperator === 'and' ||\n (schema.items.length === 2 &&\n schema.items.find(\n (item) => item.type === 'null' || item.type === 'void',\n ))\n ) {\n for (const item of schema.items) {\n const nodes = processSchemaType({\n context,\n dataExpression: dataExpression || 'item',\n plugin,\n schema: item,\n });\n if (nodes.length) {\n if (dataExpression) {\n arrayNodes = arrayNodes.concat(nodes);\n } else {\n const identifierItem = compiler.identifier({ text: 'item' });\n // processed means the item was transformed\n arrayNodes.push(\n compiler.ifStatement({\n expression: identifierItem,\n thenStatement: compiler.block({\n statements: ensureStatements(nodes),\n }),\n }),\n compiler.returnStatement({ expression: identifierItem }),\n );\n }\n }\n }\n return arrayNodes;\n }\n\n // assume enums do not contain transformable values\n if (schema.type !== 'enum') {\n console.warn(\n `❗️ Transformers warning: schema ${JSON.stringify(schema)} is too complex and won't be currently processed. This will likely produce an incomplete transformer which is not what you want. Please open an issue if you'd like this improved https://github.com/hey-api/openapi-ts/issues`,\n );\n }\n }\n\n return [];\n};\n\n// handles only response transformers for now\nexport const handler: Plugin.Handler<Config> = ({ context, plugin }) => {\n const file = context.createFile({\n exportFromIndex: plugin.exportFromIndex,\n id: transformersId,\n path: plugin.output,\n });\n\n context.subscribe('operation', ({ operation }) => {\n const { response } = operationResponsesMap(operation);\n\n if (!response) {\n return;\n }\n\n if (response.items && response.items.length > 1) {\n if (context.config.logs.level === 'debug') {\n console.warn(\n `❗️ Transformers warning: route ${`${operation.method.toUpperCase()} ${operation.path}`} has ${response.items.length} non-void success responses. This is currently not handled and we will not generate a response transformer. Please open an issue if you'd like this feature https://github.com/hey-api/openapi-ts/issues`,\n );\n }\n return;\n }\n\n const identifierResponse = context.file({ id: typesId })!.identifier({\n $ref: operationIrRef({ id: operation.id, type: 'response' }),\n namespace: 'type',\n });\n if (!identifierResponse.name) {\n return;\n }\n\n let identifierResponseTransformer = file.identifier({\n $ref: operationTransformerIrRef({ id: operation.id, type: 'response' }),\n create: true,\n namespace: 'value',\n });\n if (!identifierResponseTransformer.name) {\n return;\n }\n\n // TODO: parser - consider handling simple string response which is also a date\n const nodes = schemaResponseTransformerNodes({\n context,\n plugin,\n schema: response,\n });\n if (nodes.length) {\n file.import({\n asType: true,\n module: file.relativePathToFile({ context, id: typesId }),\n name: identifierResponse.name,\n });\n const responseTransformerNode = compiler.constVariable({\n exportConst: true,\n expression: compiler.arrowFunction({\n async: true,\n multiLine: true,\n parameters: [\n {\n name: dataVariableName,\n // TODO: parser - add types, generate types without transforms\n type: compiler.keywordTypeNode({ keyword: 'any' }),\n },\n ],\n returnType: compiler.typeReferenceNode({\n typeArguments: [\n compiler.typeReferenceNode({\n typeName: identifierResponse.name,\n }),\n ],\n typeName: 'Promise',\n }),\n statements: ensureStatements(nodes),\n }),\n name: identifierResponseTransformer.name,\n });\n file.add(responseTransformerNode);\n } else {\n // the created schema response transformer was empty, do not generate\n // it and prevent any future attempts\n identifierResponseTransformer = file.blockIdentifier({\n $ref: operationTransformerIrRef({\n id: operation.id,\n type: 'response',\n }),\n namespace: 'value',\n });\n }\n });\n};\n","export const nuxtTypeComposable = 'TComposable';\nexport const nuxtTypeDefault = 'DefaultT';\nexport const nuxtTypeResponse = 'ResT';\n","import type {\n ClassElement,\n Comments,\n FunctionParameter,\n Node,\n} from '../../../compiler';\nimport { compiler } from '../../../compiler';\nimport type {\n FunctionTypeParameter,\n ObjectValue,\n} from '../../../compiler/types';\nimport { clientApi, clientModulePath } from '../../../generate/client';\nimport { TypeScriptFile } from '../../../generate/files';\nimport type { IR } from '../../../ir/types';\nimport { isOperationParameterRequired } from '../../../openApi';\nimport type {\n Client,\n Model,\n Operation,\n OperationParameter,\n Service,\n} from '../../../types/client';\nimport type { Config as ClientConfig } from '../../../types/config';\nimport {\n getConfig,\n isLegacyClient,\n legacyNameFromConfig,\n} from '../../../utils/config';\nimport { escapeComment, escapeName } from '../../../utils/escape';\nimport { reservedJavaScriptKeywordsRegExp } from '../../../utils/regexp';\nimport { stringCase } from '../../../utils/stringCase';\nimport { transformServiceName } from '../../../utils/transform';\nimport { setUniqueTypeName } from '../../../utils/type';\nimport { unique } from '../../../utils/unique';\nimport type { Plugin } from '../../types';\nimport { getClientPlugin } from '../client-core/utils';\nimport type { Config } from './types';\n\ntype OnNode = (node: Node) => void;\ntype OnImport = (name: string) => void;\n\nexport const generateImport = ({\n meta,\n onImport,\n ...setUniqueTypeNameArgs\n}: Pick<Parameters<typeof setUniqueTypeName>[0], 'client' | 'nameTransformer'> &\n Pick<Model, 'meta'> & {\n onImport: OnImport;\n }) => {\n // generate imports only for top-level models\n if (!meta) {\n // TODO: this used to return undefined. We could refactor this function to\n // return undefined again, but we will need to improve types so we can safely\n // do `const { name } = generateImport({ meta: ... })` (note when meta is defined\n // we guarantee the response to be an object). For now, nothing relies on this\n // response shape except for plugins, so it was acceptable to patch it that way\n return { created: false, name: '' };\n }\n\n const { created, name } = setUniqueTypeName({\n meta,\n ...setUniqueTypeNameArgs,\n });\n if (name) {\n onImport(name);\n }\n return { created, name };\n};\n\nexport const modelResponseTransformerTypeName = (name: string) =>\n `${name}ModelResponseTransformer`;\n\nexport const operationDataTypeName = (name: string) =>\n `${stringCase({\n case: 'PascalCase',\n value: name,\n })}Data`;\n\nexport const operationErrorTypeName = (name: string) =>\n `${stringCase({\n case: 'PascalCase',\n value: name,\n })}Error`;\n\n// operation response type ends with \"Response\", it's enough to append \"Transformer\"\nexport const operationResponseTransformerTypeName = (name: string) =>\n `${name}Transformer`;\n\nexport const operationResponseTypeName = (name: string) =>\n `${stringCase({\n case: 'PascalCase',\n value: name,\n })}Response`;\n\n/**\n * @param importedType unique type name returned from `setUniqueTypeName()`\n * @returns options type\n */\nexport const operationOptionsLegacyParserType = ({\n importedType,\n throwOnError,\n}: {\n importedType?: string | false;\n throwOnError?: string;\n}) => {\n const optionsName = clientApi.OptionsLegacyParser.name;\n // TODO: refactor this to be more generic, works for now\n if (throwOnError) {\n return `${optionsName}<${importedType || 'unknown'}, ${throwOnError}>`;\n }\n return importedType ? `${optionsName}<${importedType}>` : optionsName;\n};\n\nconst toOperationParamType = (\n client: Client,\n operation: Operation,\n): FunctionParameter[] => {\n const config = getConfig();\n\n const { name: importedType } = setUniqueTypeName({\n client,\n meta: {\n // TODO: this should be exact ref to operation for consistency,\n // but name should work too as operation ID is unique\n $ref: operation.name,\n name: operation.name,\n },\n nameTransformer: operationDataTypeName,\n });\n\n const isRequired = isOperationParameterRequired(operation.parameters);\n\n if (!isLegacyClient(config)) {\n return [\n {\n isRequired,\n name: 'options',\n type: operationOptionsLegacyParserType({\n importedType,\n throwOnError: 'ThrowOnError',\n }),\n },\n ];\n }\n\n if (!operation.parameters.length) {\n return [];\n }\n\n const getDefaultPrintable = (\n p: OperationParameter | Model,\n ): string | undefined => {\n if (p.default === undefined) {\n return undefined;\n }\n return JSON.stringify(p.default, null, 4);\n };\n\n // legacy configuration\n if (!config.useOptions) {\n return operation.parameters.map((p) => {\n const typePath = `${importedType}['${p.name}']`;\n return {\n default: p?.default,\n isRequired:\n (!p.isRequired && !getDefaultPrintable(p) ? '?' : '') === '',\n name: p.name,\n type: typePath,\n };\n });\n }\n\n return [\n {\n default: isRequired ? undefined : {},\n name: 'data',\n type: importedType,\n },\n ];\n};\n\nconst toOperationReturnType = (client: Client, operation: Operation) => {\n const config = getConfig();\n\n let returnType = compiler.typeNode('void');\n\n const successResponses = operation.responses.filter((response) =>\n response.responseTypes.includes('success'),\n );\n\n // TODO: we should return nothing when successes don't exist\n // can't remove this logic without removing request/name config\n // as it complicates things\n if (successResponses.length) {\n const { name: importedType } = setUniqueTypeName({\n client,\n meta: {\n // TODO: this should be exact ref to operation for consistency,\n // but name should work too as operation ID is unique\n $ref: operation.name,\n name: operation.name,\n },\n nameTransformer: operationResponseTypeName,\n });\n returnType = compiler.typeUnionNode({\n types: [importedType],\n });\n }\n\n if (\n config.useOptions &&\n config.plugins['@hey-api/sdk']?.response === 'response'\n ) {\n returnType = compiler.typeNode('ApiResult', [returnType]);\n }\n\n const clientPlugin = getClientPlugin(config);\n if (clientPlugin.name === 'legacy/angular') {\n returnType = compiler.typeNode('Observable', [returnType]);\n } else {\n returnType = compiler.typeNode('CancelablePromise', [returnType]);\n }\n\n return returnType;\n};\n\nconst toOperationComment = (operation: Operation): Comments => {\n const config = getConfig();\n\n if (!isLegacyClient(config)) {\n const comment = [\n operation.deprecated && '@deprecated',\n operation.summary && escapeComment(operation.summary),\n operation.description && escapeComment(operation.description),\n ];\n return comment;\n }\n\n let params: string[] = [];\n\n if (operation.parameters.length) {\n if (config.useOptions) {\n params = [\n '@param data The data for the request.',\n ...operation.parameters.map(\n (parameter) =>\n `@param data.${parameter.name} ${parameter.description ? escapeComment(parameter.description) : ''}`,\n ),\n ];\n } else {\n params = operation.parameters.map(\n (parameter) =>\n `@param ${parameter.name} ${parameter.description ? escapeComment(parameter.description) : ''}`,\n );\n }\n }\n\n const successResponses = operation.responses.filter((response) =>\n response.responseTypes.includes('success'),\n );\n\n const comment = [\n operation.deprecated && '@deprecated',\n operation.summary && escapeComment(operation.summary),\n operation.description && escapeComment(operation.description),\n ...params,\n ...successResponses.map(\n (response) =>\n `@returns ${response.type} ${response.description ? escapeComment(response.description) : ''}`,\n ),\n '@throws ApiError',\n ];\n return comment;\n};\n\nconst toRequestOptions = ({\n client,\n onClientImport,\n onImport,\n operation,\n}: {\n client: Client;\n onClientImport: OnImport | undefined;\n onImport: OnImport;\n operation: Operation;\n}) => {\n const config = getConfig();\n\n const name = operationResponseTypeName(operation.name);\n const { name: responseTransformerName } = setUniqueTypeName({\n client,\n meta: {\n $ref: `transformers/${name}`,\n name,\n },\n nameTransformer: operationResponseTransformerTypeName,\n });\n\n if (responseTransformerName) {\n onImport(responseTransformerName);\n }\n\n if (!isLegacyClient(config)) {\n let obj: ObjectValue[] = [\n {\n spread: 'options',\n },\n ];\n\n const bodyParameters = operation.parameters.filter(\n (parameter) => parameter.in === 'body' || parameter.in === 'formData',\n );\n const contents = bodyParameters\n .map(\n (parameter) =>\n parameter.mediaType ||\n (parameter.in === 'formData' ? 'multipart/form-data' : undefined),\n )\n .filter(Boolean)\n .filter(unique);\n if (contents.length === 1) {\n if (contents[0] === 'multipart/form-data') {\n obj = [\n ...obj,\n {\n spread: 'formDataBodySerializer',\n },\n {\n key: 'headers',\n value: [\n {\n // no need for Content-Type header, browser will set it automatically\n key: 'Content-Type',\n value: null,\n },\n {\n spread: 'options?.headers',\n },\n ],\n },\n ];\n onClientImport?.('formDataBodySerializer');\n }\n\n if (contents[0] === 'application/x-www-form-urlencoded') {\n obj = [\n ...obj,\n {\n spread: 'urlSearchParamsBodySerializer',\n },\n {\n key: 'headers',\n value: [\n {\n key: 'Content-Type',\n value: contents[0],\n },\n {\n spread: 'options?.headers',\n },\n ],\n },\n ];\n onClientImport?.('urlSearchParamsBodySerializer');\n }\n }\n\n // TODO: set parseAs to skip inference if every result has the same\n // content type. currently impossible because successes do not contain\n // header information\n\n obj = [\n ...obj,\n {\n key: 'url',\n value: operation.path,\n },\n ];\n\n if (responseTransformerName) {\n obj = [\n ...obj,\n {\n key: 'responseTransformer',\n value: responseTransformerName,\n },\n ];\n }\n\n return compiler.objectExpression({\n identifiers: ['responseTransformer'],\n obj,\n });\n }\n\n const toObj = (parameters: OperationParameter[]) =>\n parameters.reduce(\n (prev, curr) => {\n const key = curr.prop;\n const value = config.useOptions ? `data.${curr.name}` : curr.name;\n if (key === value) {\n prev[key] = key;\n } else if (escapeName(key) === key) {\n prev[key] = value;\n } else {\n prev[`'${key}'`] = value;\n }\n return prev;\n },\n {} as Record<string, unknown>,\n );\n\n const obj: Record<string, any> = {\n method: operation.method,\n url: operation.path,\n };\n\n if (operation.parametersPath.length) {\n obj.path = toObj(operation.parametersPath);\n }\n\n if (operation.parametersCookie.length) {\n obj.cookies = toObj(operation.parametersCookie);\n }\n\n if (operation.parametersHeader.length) {\n obj.headers = toObj(operation.parametersHeader);\n }\n\n if (operation.parametersQuery.length) {\n obj.query = toObj(operation.parametersQuery);\n }\n\n if (operation.parametersForm.length) {\n obj.formData = toObj(operation.parametersForm);\n }\n\n if (operation.parametersBody) {\n if (operation.parametersBody.in === 'formData') {\n if (config.useOptions) {\n obj.formData = `data.${operation.parametersBody.name}`;\n } else {\n obj.formData = operation.parametersBody.name;\n }\n }\n if (operation.parametersBody.in === 'body') {\n if (config.useOptions) {\n obj.body = `data.${operation.parametersBody.name}`;\n } else {\n obj.body = operation.parametersBody.name;\n }\n }\n }\n\n if (operation.parametersBody?.mediaType) {\n obj.mediaType = operation.parametersBody?.mediaType;\n }\n\n if (operation.responseHeader) {\n obj.responseHeader = operation.responseHeader;\n }\n\n if (responseTransformerName) {\n obj.responseTransformer = responseTransformerName;\n }\n\n const errorResponses = operation.responses.filter((response) =>\n response.responseTypes.includes('error'),\n );\n if (errorResponses.length > 0) {\n const errors: Record<number | string, string> = {};\n errorResponses.forEach((response) => {\n errors[response.code] = response.description ?? '';\n });\n obj.errors = errors;\n }\n\n return compiler.objectExpression({\n identifiers: [\n 'body',\n 'cookies',\n 'formData',\n 'headers',\n 'path',\n 'query',\n 'responseTransformer',\n ],\n obj,\n shorthand: true,\n });\n};\n\nexport const serviceFunctionIdentifier = ({\n config,\n handleIllegal,\n id,\n operation,\n}: {\n config: ClientConfig;\n handleIllegal?: boolean;\n id: string;\n operation: IR.OperationObject | Operation;\n}) => {\n if (config.plugins['@hey-api/sdk']?.methodNameBuilder) {\n return config.plugins['@hey-api/sdk'].methodNameBuilder(operation);\n }\n\n if (handleIllegal && id.match(reservedJavaScriptKeywordsRegExp)) {\n return `${id}_`;\n }\n\n return id;\n};\n\nconst toOperationStatements = ({\n client,\n onClientImport,\n onImport,\n operation,\n}: {\n client: Client;\n onClientImport?: OnImport;\n onImport: OnImport;\n operation: Operation;\n}) => {\n const config = getConfig();\n\n const options = toRequestOptions({\n client,\n onClientImport,\n onImport,\n operation,\n });\n\n if (!isLegacyClient(config)) {\n const errorType = setUniqueTypeName({\n client,\n meta: {\n // TODO: this should be exact ref to operation for consistency,\n // but name should work too as operation ID is unique\n $ref: operation.name,\n name: operation.name,\n },\n nameTransformer: operationErrorTypeName,\n }).name;\n const successResponses = operation.responses.filter((response) =>\n response.responseTypes.includes('success'),\n );\n const responseType = successResponses.length\n ? setUniqueTypeName({\n client,\n meta: {\n // TODO: this should be exact ref to operation for consistency,\n // but name should work too as operation ID is unique\n $ref: operation.name,\n name: operation.name,\n },\n nameTransformer: operationResponseTypeName,\n }).name\n : 'void';\n return [\n compiler.returnFunctionCall({\n args: [options],\n name: `(options?.client ?? client).${operation.method.toLocaleLowerCase()}`,\n types:\n errorType && responseType\n ? [responseType, errorType, 'ThrowOnError']\n : errorType\n ? ['unknown', errorType, 'ThrowOnError']\n : responseType\n ? [responseType, 'unknown', 'ThrowOnError']\n : [],\n }),\n ];\n }\n\n if (legacyNameFromConfig(config)) {\n return [\n compiler.returnFunctionCall({\n args: [options],\n name: 'this.httpRequest.request',\n }),\n ];\n }\n\n const clientPlugin = getClientPlugin(config);\n if (clientPlugin.name === 'legacy/angular') {\n return [\n compiler.returnFunctionCall({\n args: ['OpenAPI', 'this.http', options],\n name: '__request',\n }),\n ];\n }\n\n return [\n compiler.returnFunctionCall({\n args: ['OpenAPI', options],\n name: '__request',\n }),\n ];\n};\n\nconst processService = ({\n client,\n onClientImport,\n onImport,\n onNode,\n service,\n}: {\n client: Client;\n onClientImport: OnImport;\n onImport: OnImport;\n onNode: OnNode;\n service: Service;\n}) => {\n const config = getConfig();\n\n const clientPlugin = getClientPlugin(config);\n const isLegacy = isLegacyClient(config);\n\n for (const operation of service.operations) {\n if (operation.parameters.length) {\n generateImport({\n client,\n meta: {\n // TODO: this should be exact ref to operation for consistency,\n // but name should work too as operation ID is unique\n $ref: operation.name,\n name: operation.name,\n },\n nameTransformer: operationDataTypeName,\n onImport,\n });\n }\n\n if (!isLegacy) {\n generateImport({\n client,\n meta: {\n // TODO: this should be exact ref to operation for consistency,\n // but name should work too as operation ID is unique\n $ref: operation.name,\n name: operation.name,\n },\n nameTransformer: operationErrorTypeName,\n onImport,\n });\n }\n\n const successResponses = operation.responses.filter((response) =>\n response.responseTypes.includes('success'),\n );\n if (successResponses.length) {\n generateImport({\n client,\n meta: {\n // TODO: this should be exact ref to operation for consistency,\n // but name should work too as operation ID is unique\n $ref: operation.name,\n name: operation.name,\n },\n nameTransformer: operationResponseTypeName,\n onImport,\n });\n }\n }\n\n const throwOnErrorTypeGeneric: FunctionTypeParameter = {\n default:\n ('throwOnError' in clientPlugin ? clientPlugin.throwOnError : false) ??\n false,\n extends: 'boolean',\n name: 'ThrowOnError',\n };\n\n if (\n !config.plugins['@hey-api/sdk']?.asClass &&\n !legacyNameFromConfig(config)\n ) {\n for (const operation of service.operations) {\n const compileFunctionParams = {\n parameters: toOperationParamType(client, operation),\n returnType: !isLegacy\n ? undefined\n : toOperationReturnType(client, operation),\n statements: toOperationStatements({\n client,\n onClientImport,\n onImport,\n operation,\n }),\n types: !isLegacy ? [throwOnErrorTypeGeneric] : undefined,\n };\n const expression =\n clientPlugin.name === 'legacy/angular'\n ? compiler.anonymousFunction(compileFunctionParams)\n : compiler.arrowFunction(compileFunctionParams);\n const statement = compiler.constVariable({\n comment: toOperationComment(operation),\n exportConst: true,\n expression,\n name: serviceFunctionIdentifier({\n config,\n handleIllegal: true,\n id: operation.name,\n operation,\n }),\n });\n onNode(statement);\n }\n return;\n }\n\n let members: ClassElement[] = service.operations.map((operation) => {\n const node = compiler.methodDeclaration({\n accessLevel: 'public',\n comment: toOperationComment(operation),\n isStatic:\n legacyNameFromConfig(config) === undefined &&\n clientPlugin.name !== 'legacy/angular',\n name: serviceFunctionIdentifier({\n config,\n id: operation.name,\n operation,\n }),\n parameters: toOperationParamType(client, operation),\n returnType: !isLegacy\n ? undefined\n : toOperationReturnType(client, operation),\n statements: toOperationStatements({\n client,\n onClientImport,\n onImport,\n operation,\n }),\n types: !isLegacy ? [throwOnErrorTypeGeneric] : undefined,\n });\n return node;\n });\n\n if (!members.length) {\n return;\n }\n\n // Push constructor to front if needed\n if (legacyNameFromConfig(config)) {\n members = [\n compiler.constructorDeclaration({\n multiLine: false,\n parameters: [\n {\n accessLevel: 'public',\n isReadOnly: true,\n name: 'httpRequest',\n type: 'BaseHttpRequest',\n },\n ],\n }),\n ...members,\n ];\n } else if (clientPlugin.name === 'legacy/angular') {\n members = [\n compiler.constructorDeclaration({\n multiLine: false,\n parameters: [\n {\n accessLevel: 'public',\n isReadOnly: true,\n name: 'http',\n type: 'HttpClient',\n },\n ],\n }),\n ...members,\n ];\n }\n\n const statement = compiler.classDeclaration({\n decorator:\n clientPlugin.name === 'legacy/angular'\n ? { args: [{ providedIn: 'root' }], name: 'Injectable' }\n : undefined,\n members,\n name: transformServiceName({\n config,\n name: service.name,\n }),\n });\n onNode(statement);\n};\n\nexport const handlerLegacy: Plugin.LegacyHandler<Config> = ({\n client,\n files,\n}) => {\n const config = getConfig();\n\n const isLegacy = isLegacyClient(config);\n\n const sdkOutput = 'sdk';\n\n files.sdk = new TypeScriptFile({\n dir: config.output.path,\n name: `${sdkOutput}.ts`,\n });\n\n // Import required packages and core files.\n if (!isLegacy) {\n files.sdk.import({\n module: clientModulePath({ config, sourceOutput: sdkOutput }),\n name: 'createClient',\n });\n files.sdk.import({\n module: clientModulePath({ config, sourceOutput: sdkOutput }),\n name: 'createConfig',\n });\n files.sdk.import({\n ...clientApi.OptionsLegacyParser,\n module: clientModulePath({ config, sourceOutput: sdkOutput }),\n });\n } else {\n const clientPlugin = getClientPlugin(config);\n if (clientPlugin.name === 'legacy/angular') {\n files.sdk.import({\n module: '@angular/core',\n name: 'Injectable',\n });\n\n if (!legacyNameFromConfig(config)) {\n files.sdk.import({\n module: '@angular/common/http',\n name: 'HttpClient',\n });\n }\n\n files.sdk.import({\n asType: true,\n module: 'rxjs',\n name: 'Observable',\n });\n } else {\n files.sdk.import({\n asType: true,\n module: './core/CancelablePromise',\n name: 'CancelablePromise',\n });\n }\n\n if (config.plugins['@hey-api/sdk']?.response === 'response') {\n files.sdk.import({\n asType: true,\n module: './core/ApiResult',\n name: 'ApiResult',\n });\n }\n\n if (legacyNameFromConfig(config)) {\n const clientPlugin = getClientPlugin(config);\n files.sdk.import({\n asType: clientPlugin.name !== 'legacy/angular',\n module: './core/BaseHttpRequest',\n name: 'BaseHttpRequest',\n });\n } else {\n files.sdk.import({\n module: './core/OpenAPI',\n name: 'OpenAPI',\n });\n files.sdk.import({\n alias: '__request',\n module: './core/request',\n name: 'request',\n });\n }\n }\n\n // define client first\n if (!isLegacy) {\n const clientPlugin = getClientPlugin(config);\n const statement = compiler.constVariable({\n exportConst: true,\n expression: compiler.callExpression({\n functionName: 'createClient',\n parameters: [\n compiler.callExpression({\n functionName: 'createConfig',\n parameters: [\n 'throwOnError' in clientPlugin && clientPlugin.throwOnError\n ? compiler.objectExpression({\n obj: [\n {\n key: 'throwOnError',\n value: true,\n },\n ],\n })\n : undefined,\n ],\n }),\n ],\n }),\n name: 'client',\n });\n files.sdk.add(statement);\n }\n\n for (const service of client.services) {\n processService({\n client,\n onClientImport: (imported) => {\n files.sdk!.import({\n module: clientModulePath({ config, sourceOutput: sdkOutput }),\n name: imported,\n });\n },\n onImport: (imported) => {\n files.sdk!.import({\n // this detection could be done safer, but it shouldn't cause any issues\n asType: !imported.endsWith('Transformer'),\n module: `./${files.types!.nameWithoutExtension()}`,\n name: imported,\n });\n },\n onNode: (node) => {\n files.sdk!.add(node);\n },\n service,\n });\n }\n};\n","import { compiler } from '../../../compiler';\nimport { clientModulePath } from '../../../generate/client';\nimport type { FileImportResult } from '../../../generate/files';\nimport type { IR } from '../../../ir/types';\nimport type { Plugin } from '../../types';\nimport { getClientPlugin } from '../client-core/utils';\nimport { nuxtTypeDefault, nuxtTypeResponse } from './constants';\nimport { sdkId } from './plugin';\nimport type { Config } from './types';\n\nexport const createTypeOptions = ({\n clientOptions,\n context,\n plugin,\n}: {\n clientOptions: FileImportResult;\n context: IR.Context;\n plugin: Plugin.Instance<Config>;\n}) => {\n const file = context.file({ id: sdkId })!;\n const client = getClientPlugin(context.config);\n const isNuxtClient = client.name === '@hey-api/client-nuxt';\n\n const clientModule = clientModulePath({\n config: context.config,\n sourceOutput: file.nameWithoutExtension(),\n });\n const tDataShape = file.import({\n asType: true,\n module: clientModule,\n name: 'TDataShape',\n });\n const clientType = file.import({\n asType: true,\n module: clientModule,\n name: 'Client',\n });\n\n const typeOptions = compiler.typeAliasDeclaration({\n exportType: true,\n name: 'Options',\n type: compiler.typeIntersectionNode({\n types: [\n compiler.typeReferenceNode({\n typeArguments: isNuxtClient\n ? [\n compiler.typeReferenceNode({ typeName: 'TComposable' }),\n compiler.typeReferenceNode({ typeName: 'TData' }),\n compiler.typeReferenceNode({ typeName: nuxtTypeResponse }),\n compiler.typeReferenceNode({ typeName: nuxtTypeDefault }),\n ]\n : [\n compiler.typeReferenceNode({ typeName: 'TData' }),\n compiler.typeReferenceNode({ typeName: 'ThrowOnError' }),\n ],\n typeName: clientOptions.name,\n }),\n compiler.typeInterfaceNode({\n properties: [\n {\n comment: [\n 'You can provide a client instance returned by `createClient()` instead of',\n 'individual options. This might be also useful if you want to implement a',\n 'custom client.',\n ],\n isRequired: !plugin.client,\n name: 'client',\n type: compiler.typeReferenceNode({ typeName: clientType.name }),\n },\n {\n comment: [\n 'You can pass arbitrary values through the `meta` object. This can be',\n \"used to access values that aren't defined as part of the SDK function.\",\n ],\n isRequired: false,\n name: 'meta',\n type: compiler.typeReferenceNode({\n typeArguments: [\n compiler.keywordTypeNode({ keyword: 'string' }),\n compiler.keywordTypeNode({ keyword: 'unknown' }),\n ],\n typeName: 'Record',\n }),\n },\n ],\n useLegacyResolution: false,\n }),\n ],\n }),\n typeParameters: isNuxtClient\n ? [\n compiler.typeParameterDeclaration({\n constraint: compiler.typeReferenceNode({ typeName: 'Composable' }),\n name: 'TComposable',\n }),\n compiler.typeParameterDeclaration({\n constraint: compiler.typeReferenceNode({\n typeName: tDataShape.name,\n }),\n defaultType: compiler.typeReferenceNode({\n typeName: tDataShape.name,\n }),\n name: 'TData',\n }),\n compiler.typeParameterDeclaration({\n defaultType: compiler.keywordTypeNode({ keyword: 'unknown' }),\n name: nuxtTypeResponse,\n }),\n compiler.typeParameterDeclaration({\n defaultType: compiler.keywordTypeNode({ keyword: 'undefined' }),\n name: nuxtTypeDefault,\n }),\n ]\n : [\n compiler.typeParameterDeclaration({\n constraint: compiler.typeReferenceNode({\n typeName: tDataShape.name,\n }),\n defaultType: compiler.typeReferenceNode({\n typeName: tDataShape.name,\n }),\n name: 'TData',\n }),\n compiler.typeParameterDeclaration({\n constraint: compiler.keywordTypeNode({ keyword: 'boolean' }),\n defaultType: compiler.keywordTypeNode({ keyword: 'boolean' }),\n name: 'ThrowOnError',\n }),\n ],\n });\n\n file.add(typeOptions);\n};\n","import type ts from 'typescript';\n\nimport { compiler } from '../../../compiler';\nimport type { ObjectValue } from '../../../compiler/types';\nimport { clientApi, clientModulePath } from '../../../generate/client';\nimport type { TypeScriptFile } from '../../../generate/files';\nimport {\n hasOperationDataRequired,\n statusCodeToGroup,\n} from '../../../ir/operation';\nimport type { IR } from '../../../ir/types';\nimport { escapeComment } from '../../../utils/escape';\nimport { getServiceName } from '../../../utils/postprocess';\nimport { transformServiceName } from '../../../utils/transform';\nimport { operationIrRef } from '../../shared/utils/ref';\nimport type { Plugin } from '../../types';\nimport { zodId } from '../../zod/plugin';\nimport { clientId, getClientPlugin } from '../client-core/utils';\nimport {\n operationTransformerIrRef,\n transformersId,\n} from '../transformers/plugin';\nimport {\n importIdentifierData,\n importIdentifierError,\n importIdentifierResponse,\n} from '../typescript/ref';\nimport { nuxtTypeComposable, nuxtTypeDefault } from './constants';\nimport { serviceFunctionIdentifier } from './plugin-legacy';\nimport { createTypeOptions } from './typeOptions';\nimport type { Config } from './types';\n\n// copy-pasted from @hey-api/client-core\nexport interface Auth {\n /**\n * Which part of the request do we use to send the auth?\n *\n * @default 'header'\n */\n in?: 'header' | 'query' | 'cookie';\n /**\n * Header or query parameter name.\n *\n * @default 'Authorization'\n */\n name?: string;\n scheme?: 'basic' | 'bearer';\n type: 'apiKey' | 'http';\n}\n\nexport const operationOptionsType = ({\n context,\n file,\n operation,\n throwOnError,\n}: {\n context: IR.Context;\n file: TypeScriptFile;\n operation: IR.OperationObject;\n throwOnError?: string;\n}) => {\n const identifierData = importIdentifierData({ context, file, operation });\n const identifierResponse = importIdentifierResponse({\n context,\n file,\n operation,\n });\n\n const optionsName = clientApi.Options.name;\n\n const client = getClientPlugin(context.config);\n if (client.name === '@hey-api/client-nuxt') {\n return `${optionsName}<${nuxtTypeComposable}, ${identifierData.name || 'unknown'}, ${identifierResponse.name || 'unknown'}, ${nuxtTypeDefault}>`;\n }\n\n // TODO: refactor this to be more generic, works for now\n if (throwOnError) {\n return `${optionsName}<${identifierData.name || 'unknown'}, ${throwOnError}>`;\n }\n return identifierData.name\n ? `${optionsName}<${identifierData.name}>`\n : optionsName;\n};\n\nexport const sdkId = 'sdk';\n\n/**\n * Infers `responseType` value from provided response content type. This is\n * an adapted version of `getParseAs()` from the Fetch API client.\n *\n * From Axios documentation:\n * `responseType` indicates the type of data that the server will respond with\n * options are: 'arraybuffer', 'document', 'json', 'text', 'stream'\n * browser only: 'blob'\n */\nexport const getResponseType = (\n contentType: string | null | undefined,\n):\n | 'arraybuffer'\n | 'blob'\n | 'document'\n | 'json'\n | 'stream'\n | 'text'\n | undefined => {\n if (!contentType) {\n return;\n }\n\n const cleanContent = contentType.split(';')[0]?.trim();\n\n if (!cleanContent) {\n return;\n }\n\n if (\n cleanContent.startsWith('application/json') ||\n cleanContent.endsWith('+json')\n ) {\n return 'json';\n }\n\n // Axios does not handle form data out of the box\n // if (cleanContent === 'multipart/form-data') {\n // return 'formData';\n // }\n\n if (\n ['application/', 'audio/', 'image/', 'video/'].some((type) =>\n cleanContent.startsWith(type),\n )\n ) {\n return 'blob';\n }\n\n if (cleanContent.startsWith('text/')) {\n return 'text';\n }\n};\n\n// TODO: parser - handle more security types\nconst securitySchemeObjectToAuthObject = ({\n securitySchemeObject,\n}: {\n securitySchemeObject: IR.SecurityObject;\n}): Auth | undefined => {\n if (securitySchemeObject.type === 'openIdConnect') {\n return {\n scheme: 'bearer',\n type: 'http',\n };\n }\n\n if (securitySchemeObject.type === 'oauth2') {\n if (\n securitySchemeObject.flows.password ||\n securitySchemeObject.flows.authorizationCode ||\n securitySchemeObject.flows.clientCredentials ||\n securitySchemeObject.flows.implicit\n ) {\n return {\n scheme: 'bearer',\n type: 'http',\n };\n }\n\n return;\n }\n\n if (securitySchemeObject.type === 'apiKey') {\n if (securitySchemeObject.in === 'header') {\n return {\n name: securitySchemeObject.name,\n type: 'apiKey',\n };\n }\n\n if (\n securitySchemeObject.in === 'query' ||\n securitySchemeObject.in == 'cookie'\n ) {\n return {\n in: securitySchemeObject.in,\n name: securitySchemeObject.name,\n type: 'apiKey',\n };\n }\n\n return;\n }\n\n if (securitySchemeObject.type === 'http') {\n const scheme = securitySchemeObject.scheme.toLowerCase();\n if (scheme === 'bearer' || scheme === 'basic') {\n return {\n scheme: scheme as 'bearer' | 'basic',\n type: 'http',\n };\n }\n\n return;\n }\n};\n\nconst operationAuth = ({\n operation,\n plugin,\n}: {\n context: IR.Context;\n operation: IR.OperationObject;\n plugin: Plugin.Instance<Config>;\n}): Array<Auth> => {\n if (!operation.security || !plugin.auth) {\n return [];\n }\n\n const auth: Array<Auth> = [];\n\n for (const securitySchemeObject of operation.security) {\n const authObject = securitySchemeObjectToAuthObject({\n securitySchemeObject,\n });\n if (authObject) {\n auth.push(authObject);\n } else {\n console.warn(\n `❗️ SDK warning: unsupported security scheme. Please open an issue if you'd like it added https://github.com/hey-api/openapi-ts/issues\\n${JSON.stringify(securitySchemeObject, null, 2)}`,\n );\n }\n }\n\n return auth;\n};\n\nconst operationStatements = ({\n context,\n isRequiredOptions,\n operation,\n plugin,\n}: {\n context: IR.Context;\n isRequiredOptions: boolean;\n operation: IR.OperationObject;\n plugin: Plugin.Instance<Config>;\n}): Array<ts.Statement> => {\n const file = context.file({ id: sdkId })!;\n const sdkOutput = file.nameWithoutExtension();\n\n const identifierError = importIdentifierError({ context, file, operation });\n const identifierResponse = importIdentifierResponse({\n context,\n file,\n operation,\n });\n\n // TODO: transform parameters\n // const query = {\n // BarBaz: options.query.bar_baz,\n // qux_quux: options.query.qux_quux,\n // fooBar: options.query.foo_bar,\n // };\n\n // if (operation.parameters) {\n // for (const name in operation.parameters.query) {\n // const parameter = operation.parameters.query[name]\n // if (parameter.name !== fieldName({ context, name: parameter.name })) {\n // console.warn(parameter.name)\n // }\n // }\n // }\n\n const requestOptions: ObjectValue[] = [];\n\n if (operation.body) {\n switch (operation.body.type) {\n case 'form-data':\n requestOptions.push({ spread: 'formDataBodySerializer' });\n file.import({\n module: clientModulePath({\n config: context.config,\n sourceOutput: sdkOutput,\n }),\n name: 'formDataBodySerializer',\n });\n break;\n case 'json':\n // jsonBodySerializer is the default, no need to specify\n break;\n case 'text':\n // ensure we don't use any serializer by default\n requestOptions.push({\n key: 'bodySerializer',\n value: null,\n });\n break;\n case 'url-search-params':\n requestOptions.push({ spread: 'urlSearchParamsBodySerializer' });\n file.import({\n module: clientModulePath({\n config: context.config,\n sourceOutput: sdkOutput,\n }),\n name: 'urlSearchParamsBodySerializer',\n });\n break;\n }\n }\n\n const client = getClientPlugin(context.config);\n if (client.name === '@hey-api/client-axios') {\n // try to infer `responseType` option for Axios. We don't need this in\n // Fetch API client because it automatically detects the correct response\n // during runtime.\n for (const statusCode in operation.responses) {\n // this doesn't handle default status code for now\n if (statusCodeToGroup({ statusCode }) === '2XX') {\n const response = operation.responses[statusCode];\n const responseType = getResponseType(response?.mediaType);\n // json is the default, skip it\n if (responseType && responseType !== 'json') {\n requestOptions.push({\n key: 'responseType',\n value: responseType,\n });\n }\n }\n }\n }\n\n // TODO: parser - set parseAs to skip inference if every response has the same\n // content type. currently impossible because successes do not contain\n // header information\n\n const auth = operationAuth({ context, operation, plugin });\n if (auth.length) {\n requestOptions.push({\n key: 'security',\n value: compiler.arrayLiteralExpression({ elements: auth }),\n });\n }\n\n for (const name in operation.parameters?.query) {\n const parameter = operation.parameters.query[name]!;\n if (\n (parameter.schema.type === 'array' ||\n parameter.schema.type === 'tuple') &&\n (parameter.style !== 'form' || !parameter.explode)\n ) {\n // override the default settings for `querySerializer`\n requestOptions.push({\n key: 'querySerializer',\n value: [\n {\n key: 'array',\n value: [\n {\n key: 'explode',\n value: false,\n },\n {\n key: 'style',\n value: 'form',\n },\n ],\n },\n ],\n });\n break;\n }\n }\n\n if (plugin.transformer === '@hey-api/transformers') {\n const identifierTransformer = context\n .file({ id: transformersId })!\n .identifier({\n $ref: operationTransformerIrRef({ id: operation.id, type: 'response' }),\n namespace: 'value',\n });\n\n if (identifierTransformer.name) {\n file.import({\n module: file.relativePathToFile({\n context,\n id: transformersId,\n }),\n name: identifierTransformer.name,\n });\n\n requestOptions.push({\n key: 'responseTransformer',\n value: identifierTransformer.name,\n });\n }\n }\n\n if (plugin.validator === 'zod') {\n const identifierSchema = context.file({ id: zodId })!.identifier({\n $ref: operationIrRef({\n case: 'camelCase',\n id: operation.id,\n type: 'response',\n }),\n namespace: 'value',\n });\n\n if (identifierSchema.name) {\n file.import({\n module: file.relativePathToFile({\n context,\n id: zodId,\n }),\n name: identifierSchema.name,\n });\n\n requestOptions.push({\n key: 'responseValidator',\n value: compiler.arrowFunction({\n async: true,\n parameters: [\n {\n name: 'data',\n },\n ],\n statements: [\n compiler.returnStatement({\n expression: compiler.awaitExpression({\n expression: compiler.callExpression({\n functionName: compiler.propertyAccessExpression({\n expression: compiler.identifier({\n text: identifierSchema.name,\n }),\n name: compiler.identifier({ text: 'parseAsync' }),\n }),\n parameters: [compiler.identifier({ text: 'data' })],\n }),\n }),\n }),\n ],\n }),\n });\n }\n }\n\n requestOptions.push({\n key: 'url',\n value: operation.path,\n });\n\n // options must go last to allow overriding parameters above\n requestOptions.push({ spread: 'options' });\n if (operation.body) {\n requestOptions.push({\n key: 'headers',\n value: [\n {\n key: 'Content-Type',\n // form-data does not need Content-Type header, browser will set it automatically\n value:\n operation.body.type === 'form-data'\n ? null\n : operation.body.mediaType,\n },\n {\n spread: 'options?.headers',\n },\n ],\n });\n }\n\n const isNuxtClient = client.name === '@hey-api/client-nuxt';\n const responseType = identifierResponse.name || 'unknown';\n const errorType = identifierError.name || 'unknown';\n\n const heyApiClient = plugin.client\n ? file.import({\n alias: '_heyApiClient',\n module: file.relativePathToFile({\n context,\n id: clientId,\n }),\n name: 'client',\n })\n : undefined;\n\n const optionsClient = compiler.propertyAccessExpression({\n expression: compiler.identifier({ text: 'options' }),\n isOptional: !isRequiredOptions,\n name: 'client',\n });\n\n return [\n compiler.returnFunctionCall({\n args: [\n compiler.objectExpression({\n identifiers: ['responseTransformer'],\n obj: requestOptions,\n }),\n ],\n name: compiler.propertyAccessExpression({\n expression: heyApiClient?.name\n ? compiler.binaryExpression({\n left: optionsClient,\n operator: '??',\n right: compiler.identifier({ text: heyApiClient.name }),\n })\n : optionsClient,\n name: compiler.identifier({ text: operation.method }),\n }),\n types: isNuxtClient\n ? [\n nuxtTypeComposable,\n `${responseType} | ${nuxtTypeDefault}`,\n errorType,\n nuxtTypeDefault,\n ]\n : [responseType, errorType, 'ThrowOnError'],\n }),\n ];\n};\n\nconst generateClassSdk = ({\n context,\n plugin,\n}: {\n context: IR.Context;\n plugin: Plugin.Instance<Config>;\n}) => {\n const client = getClientPlugin(context.config);\n const isNuxtClient = client.name === '@hey-api/client-nuxt';\n const file = context.file({ id: sdkId })!;\n const sdks = new Map<string, Array<ts.MethodDeclaration>>();\n\n context.subscribe('operation', ({ operation }) => {\n const isRequiredOptions =\n !plugin.client || isNuxtClient || hasOperationDataRequired(operation);\n const identifierResponse = importIdentifierResponse({\n context,\n file,\n operation,\n });\n const node = compiler.methodDeclaration({\n accessLevel: 'public',\n comment: [\n operation.deprecated && '@deprecated',\n operation.summary && escapeComment(operation.summary),\n operation.description && escapeComment(operation.description),\n ],\n isStatic: true,\n name: serviceFunctionIdentifier({\n config: context.config,\n handleIllegal: false,\n id: operation.id,\n operation,\n }),\n parameters: [\n {\n isRequired: isRequiredOptions,\n name: 'options',\n type: operationOptionsType({\n context,\n file,\n operation,\n throwOnError: isNuxtClient ? undefined : 'ThrowOnError',\n }),\n },\n ],\n returnType: undefined,\n statements: operationStatements({\n context,\n isRequiredOptions,\n operation,\n plugin,\n }),\n types: isNuxtClient\n ? [\n {\n // default: compiler.ots.string('$fetch'),\n extends: compiler.typeNode('Composable'),\n name: nuxtTypeComposable,\n },\n {\n default: identifierResponse.name\n ? compiler.typeReferenceNode({\n typeName: identifierResponse.name,\n })\n : compiler.typeNode('undefined'),\n extends: identifierResponse.name\n ? compiler.typeReferenceNode({\n typeName: identifierResponse.name,\n })\n : undefined,\n name: nuxtTypeDefault,\n },\n ]\n : [\n {\n default:\n ('throwOnError' in client ? client.throwOnError : false) ??\n false,\n extends: 'boolean',\n name: 'ThrowOnError',\n },\n ],\n });\n\n const uniqueTags = Array.from(new Set(operation.tags));\n if (!uniqueTags.length) {\n uniqueTags.push('default');\n }\n\n for (const tag of uniqueTags) {\n const name = getServiceName(tag);\n const nodes = sdks.get(name) ?? [];\n nodes.push(node);\n sdks.set(name, nodes);\n }\n });\n\n context.subscribe('after', () => {\n for (const [name, nodes] of sdks) {\n const node = compiler.classDeclaration({\n decorator: undefined,\n members: nodes,\n name: transformServiceName({\n config: context.config,\n name,\n }),\n });\n file.add(node);\n }\n });\n};\n\nconst generateFlatSdk = ({\n context,\n plugin,\n}: {\n context: IR.Context;\n plugin: Plugin.Instance<Config>;\n}) => {\n const client = getClientPlugin(context.config);\n const isNuxtClient = client.name === '@hey-api/client-nuxt';\n const file = context.file({ id: sdkId })!;\n\n context.subscribe('operation', ({ operation }) => {\n const isRequiredOptions =\n !plugin.client || isNuxtClient || hasOperationDataRequired(operation);\n const identifierResponse = importIdentifierResponse({\n context,\n file,\n operation,\n });\n const node = compiler.constVariable({\n comment: [\n operation.deprecated && '@deprecated',\n operation.summary && escapeComment(operation.summary),\n operation.description && escapeComment(operation.description),\n ],\n exportConst: true,\n expression: compiler.arrowFunction({\n parameters: [\n {\n isRequired: isRequiredOptions,\n name: 'options',\n type: operationOptionsType({\n context,\n file,\n operation,\n throwOnError: isNuxtClient ? undefined : 'ThrowOnError',\n }),\n },\n ],\n returnType: undefined,\n statements: operationStatements({\n context,\n isRequiredOptions,\n operation,\n plugin,\n }),\n types: isNuxtClient\n ? [\n {\n // default: compiler.ots.string('$fetch'),\n extends: compiler.typeNode('Composable'),\n name: nuxtTypeComposable,\n },\n {\n default: identifierResponse.name\n ? compiler.typeReferenceNode({\n typeName: identifierResponse.name,\n })\n : compiler.typeNode('undefined'),\n extends: identifierResponse.name\n ? compiler.typeReferenceNode({\n typeName: identifierResponse.name,\n })\n : undefined,\n name: nuxtTypeDefault,\n },\n ]\n : [\n {\n default:\n ('throwOnError' in client ? client.throwOnError : false) ??\n false,\n extends: 'boolean',\n name: 'ThrowOnError',\n },\n ],\n }),\n name: serviceFunctionIdentifier({\n config: context.config,\n handleIllegal: true,\n id: operation.id,\n operation,\n }),\n });\n file.add(node);\n });\n};\n\nexport const handler: Plugin.Handler<Config> = ({ context, plugin }) => {\n const file = context.createFile({\n exportFromIndex: plugin.exportFromIndex,\n id: sdkId,\n path: plugin.output,\n });\n\n // import required packages and core files\n const clientModule = clientModulePath({\n config: context.config,\n sourceOutput: file.nameWithoutExtension(),\n });\n const clientOptions = file.import({\n ...clientApi.Options,\n alias: 'ClientOptions',\n module: clientModule,\n });\n\n const client = getClientPlugin(context.config);\n const isNuxtClient = client.name === '@hey-api/client-nuxt';\n if (isNuxtClient) {\n file.import({\n asType: true,\n module: clientModule,\n name: 'Composable',\n });\n }\n\n createTypeOptions({\n clientOptions,\n context,\n plugin,\n });\n\n if (plugin.asClass) {\n generateClassSdk({ context, plugin });\n } else {\n generateFlatSdk({ context, plugin });\n }\n};\n","import type { Plugin } from '../../types';\nimport { handler } from './plugin';\nimport { handlerLegacy } from './plugin-legacy';\nimport type { Config } from './types';\n\nexport const defaultConfig: Plugin.Config<Config> = {\n _dependencies: ['@hey-api/typescript'],\n _handler: handler,\n _handlerLegacy: handlerLegacy,\n _infer: (config, context) => {\n if (config.client) {\n if (typeof config.client === 'boolean') {\n config.client = context.pluginByTag(\n 'client',\n '🚫 client needs to be set to generate SDKs - which HTTP client do you want to use?',\n ) as unknown as typeof config.client;\n }\n\n context.ensureDependency(config.client);\n }\n\n if (config.transformer) {\n if (typeof config.transformer === 'boolean') {\n config.transformer = context.pluginByTag(\n 'transformer',\n ) as unknown as typeof config.transformer;\n }\n\n context.ensureDependency(config.transformer);\n }\n\n if (config.validator) {\n if (typeof config.validator === 'boolean') {\n config.validator = context.pluginByTag(\n 'validator',\n ) as unknown as typeof config.validator;\n }\n\n context.ensureDependency(config.validator);\n }\n },\n asClass: false,\n auth: true,\n client: true,\n exportFromIndex: true,\n name: '@hey-api/sdk',\n operationId: true,\n output: 'sdk',\n response: 'body',\n serviceNameBuilder: '{{name}}Service',\n};\n\n/**\n * Type helper for `@hey-api/sdk` plugin, returns {@link Plugin.Config} object\n */\nexport const defineConfig: Plugin.DefineConfig<Config> = (config) => ({\n ...defaultConfig,\n ...config,\n});\n","import type { EnumDeclaration } from 'typescript';\n\nimport { type Comments, compiler, type Node } from '../../../compiler';\nimport { TypeScriptFile } from '../../../generate/files';\nimport { isOperationParameterRequired } from '../../../openApi';\nimport type {\n Client,\n Method,\n Model,\n OperationParameter,\n} from '../../../types/client';\nimport { getConfig, isLegacyClient } from '../../../utils/config';\nimport { enumEntry, enumUnionType } from '../../../utils/enum';\nimport { escapeComment } from '../../../utils/escape';\nimport { sortByName, sorterByName } from '../../../utils/sort';\nimport {\n setUniqueTypeName,\n type SetUniqueTypeNameResult,\n toType,\n} from '../../../utils/type';\nimport type { Plugin } from '../../types';\nimport {\n operationDataTypeName,\n operationErrorTypeName,\n operationResponseTypeName,\n} from '../sdk/plugin-legacy';\nimport type { Config } from './types';\n\nexport interface TypesProps {\n client: Client;\n model: Model;\n onNode: (node: Node) => void;\n onRemoveNode?: VoidFunction;\n}\n\nconst treeName = '$OpenApiTs';\n\nexport const emptyModel: Model = {\n $refs: [],\n base: '',\n description: null,\n enum: [],\n enums: [],\n export: 'interface',\n imports: [],\n in: '',\n isDefinition: false,\n isNullable: false,\n isReadOnly: false,\n isRequired: false,\n link: null,\n name: '',\n properties: [],\n template: null,\n type: '',\n};\n\nconst generateEnum = ({\n comments,\n leadingComment,\n meta,\n obj,\n onNode,\n ...setUniqueTypeNameArgs\n}: Omit<Parameters<typeof compiler.enumDeclaration>[0], 'name'> &\n Pick<Parameters<typeof setUniqueTypeName>[0], 'client' | 'nameTransformer'> &\n Pick<Model, 'meta'> &\n Pick<TypesProps, 'onNode'>) => {\n // generate types only for top-level models\n if (!meta) {\n return;\n }\n\n const { created, name } = setUniqueTypeName({\n create: true,\n meta,\n ...setUniqueTypeNameArgs,\n });\n if (created) {\n const node = compiler.enumDeclaration({\n comments,\n leadingComment,\n name,\n obj,\n });\n onNode(node);\n }\n};\n\nexport const generateType = ({\n comment,\n meta,\n onCreated,\n onNode,\n type,\n ...setUniqueTypeNameArgs\n}: Omit<Parameters<typeof compiler.typeAliasDeclaration>[0], 'name'> &\n Pick<Parameters<typeof setUniqueTypeName>[0], 'client' | 'nameTransformer'> &\n Pick<Model, 'meta'> &\n Pick<TypesProps, 'onNode'> & {\n onCreated?: (name: string) => void;\n }): SetUniqueTypeNameResult => {\n // generate types only for top-level models\n if (!meta) {\n return {\n created: false,\n name: '',\n };\n }\n\n const result = setUniqueTypeName({\n create: true,\n meta,\n ...setUniqueTypeNameArgs,\n });\n const { created, name } = result;\n if (created) {\n const node = compiler.typeAliasDeclaration({\n comment,\n exportType: true,\n name,\n type,\n });\n onNode(node);\n\n onCreated?.(name);\n }\n return result;\n};\n\nconst processComposition = (props: TypesProps) => {\n const config = getConfig();\n\n const enumDeclarations = [] as EnumDeclaration[];\n\n processType(props);\n\n props.model.enums.forEach((enumerator) => {\n if (\n config.plugins['@hey-api/typescript']?.enums !== 'typescript+namespace'\n ) {\n return processEnum({\n ...props,\n model: enumerator,\n });\n }\n\n return processScopedEnum({\n ...props,\n model: enumerator,\n onNode: (node) => {\n enumDeclarations.push(node as EnumDeclaration);\n },\n });\n });\n\n if (enumDeclarations.length) {\n props.onNode(\n compiler.namespaceDeclaration({\n name: props.model.name,\n statements: enumDeclarations,\n }),\n );\n }\n};\n\nconst processEnum = ({ client, model, onNode }: TypesProps) => {\n const config = getConfig();\n\n const properties: Record<string | number, unknown> = {};\n const comments: Record<string | number, Comments> = {};\n model.enum.forEach((enumerator) => {\n const { key, value } = enumEntry(enumerator);\n properties[key] = value;\n const comment = enumerator.customDescription || enumerator.description;\n if (comment) {\n comments[key] = [escapeComment(comment)];\n }\n });\n\n const comment = [\n model.description && escapeComment(model.description),\n model.deprecated && '@deprecated',\n ];\n\n if (\n config.plugins['@hey-api/typescript']?.enums === 'typescript' ||\n config.plugins['@hey-api/typescript']?.enums === 'typescript+namespace'\n ) {\n generateEnum({\n client,\n comments,\n leadingComment: comment,\n meta: model.meta,\n obj: properties,\n onNode,\n });\n return;\n }\n\n generateType({\n client,\n comment,\n meta: model.meta,\n onCreated: (name) => {\n // create a separate JavaScript object export\n if (config.plugins['@hey-api/typescript']?.enums === 'javascript') {\n const expression = compiler.objectExpression({\n multiLine: true,\n obj: Object.entries(properties).map(([key, value]) => ({\n comments: comments[key],\n key,\n value,\n })),\n unescape: true,\n });\n const node = compiler.constVariable({\n assertion: 'const',\n comment,\n exportConst: true,\n expression,\n name,\n });\n onNode(node);\n }\n },\n onNode,\n type: enumUnionType(model.enum),\n });\n};\n\nconst processScopedEnum = ({ model, onNode }: TypesProps) => {\n const properties: Record<string | number, unknown> = {};\n const comments: Record<string | number, Comments> = {};\n model.enum.forEach((enumerator) => {\n const { key, value } = enumEntry(enumerator);\n properties[key] = value;\n const comment = enumerator.customDescription || enumerator.description;\n if (comment) {\n comments[key] = [escapeComment(comment)];\n }\n });\n onNode(\n compiler.enumDeclaration({\n comments,\n leadingComment: [\n model.description && escapeComment(model.description),\n model.deprecated && '@deprecated',\n ],\n name: model.meta?.name || model.name,\n obj: properties,\n }),\n );\n};\n\nconst processType = ({ client, model, onNode }: TypesProps) => {\n generateType({\n client,\n comment: [\n model.description && escapeComment(model.description),\n model.deprecated && '@deprecated',\n ],\n meta: model.meta,\n onNode,\n type: toType(model),\n });\n};\n\nconst processModel = (props: TypesProps) => {\n switch (props.model.export) {\n case 'all-of':\n case 'any-of':\n case 'one-of':\n case 'interface':\n return processComposition(props);\n case 'enum':\n return processEnum(props);\n default:\n return processType(props);\n }\n};\n\ninterface MethodMap {\n $ref?: string;\n req?: OperationParameter[];\n res?: Record<number | string, Model>;\n}\n\ntype PathMap = {\n [method in Method]?: MethodMap;\n};\n\ntype PathsMap = Record<string, PathMap>;\n\nconst processServiceTypes = ({\n client,\n onNode,\n}: Pick<TypesProps, 'client' | 'onNode'>) => {\n const pathsMap: PathsMap = {};\n\n const config = getConfig();\n\n if (\n !config.plugins['@hey-api/sdk'] &&\n !config.plugins['@hey-api/typescript']?.tree\n ) {\n return;\n }\n\n const isLegacy = isLegacyClient(config);\n\n for (const service of client.services) {\n for (const operation of service.operations) {\n if (!operation.parameters.length && !operation.responses.length) {\n continue;\n }\n\n if (!pathsMap[operation.path]) {\n pathsMap[operation.path] = {};\n }\n const pathMap = pathsMap[operation.path]!;\n\n if (!pathMap[operation.method]) {\n pathMap[operation.method] = {};\n }\n const methodMap = pathMap[operation.method]!;\n methodMap.$ref = operation.name;\n\n if (operation.responses.length > 0) {\n if (!methodMap.res) {\n methodMap.res = {};\n }\n\n if (Array.isArray(methodMap.res)) {\n continue;\n }\n\n operation.responses.forEach((response) => {\n methodMap.res![response.code] = response;\n });\n }\n\n if (operation.parameters.length > 0) {\n let bodyParameters: OperationParameter = {\n mediaType: null,\n ...emptyModel,\n in: 'body',\n name: 'body',\n prop: 'body',\n };\n let bodyParameter = operation.parameters.filter(\n (parameter) => parameter.in === 'body',\n );\n if (!bodyParameter.length) {\n bodyParameter = operation.parameters.filter(\n (parameter) => parameter.in === 'formData',\n );\n }\n\n if (bodyParameter.length === 1) {\n bodyParameters = {\n ...emptyModel,\n ...bodyParameter[0]!,\n in: 'body',\n isRequired: bodyParameter[0]!.isRequired,\n name: 'body',\n prop: 'body',\n };\n // assume we have multiple formData parameters from Swagger 2.0\n } else if (bodyParameter.length > 1) {\n bodyParameters = {\n ...emptyModel,\n in: 'body',\n isRequired: bodyParameter.some((parameter) => parameter.isRequired),\n mediaType: 'multipart/form-data',\n name: 'body',\n prop: 'body',\n properties: bodyParameter,\n };\n }\n\n const headerParameters: OperationParameter = {\n ...emptyModel,\n in: 'header',\n isRequired: isOperationParameterRequired(\n operation.parameters.filter(\n (parameter) => parameter.in === 'header',\n ),\n ),\n mediaType: null,\n name: isLegacy ? 'header' : 'headers',\n prop: isLegacy ? 'header' : 'headers',\n properties: operation.parameters\n .filter((parameter) => parameter.in === 'header')\n .sort(sorterByName),\n };\n const pathParameters: OperationParameter = {\n ...emptyModel,\n in: 'path',\n isRequired: isOperationParameterRequired(\n operation.parameters.filter((parameter) => parameter.in === 'path'),\n ),\n mediaType: null,\n name: 'path',\n prop: 'path',\n properties: operation.parameters\n .filter((parameter) => parameter.in === 'path')\n .sort(sorterByName),\n };\n const queryParameters: OperationParameter = {\n ...emptyModel,\n in: 'query',\n isRequired: isOperationParameterRequired(\n operation.parameters.filter(\n (parameter) => parameter.in === 'query',\n ),\n ),\n mediaType: null,\n name: 'query',\n prop: 'query',\n properties: operation.parameters\n .filter((parameter) => parameter.in === 'query')\n .sort(sorterByName),\n };\n const operationProperties = !isLegacy\n ? [\n bodyParameters,\n headerParameters,\n pathParameters,\n queryParameters,\n ].filter(\n (param) =>\n param.properties.length ||\n param.$refs.length ||\n param.mediaType,\n )\n : sortByName([...operation.parameters]);\n\n methodMap.req = operationProperties;\n\n // create type export for operation data\n generateType({\n client,\n meta: {\n // TODO: this should be exact ref to operation for consistency,\n // but name should work too as operation ID is unique\n $ref: operation.name,\n name: operation.name,\n },\n nameTransformer: operationDataTypeName,\n onNode,\n type: toType({\n ...emptyModel,\n isRequired: true,\n properties: operationProperties,\n }),\n });\n }\n\n const successResponses = operation.responses.filter((response) =>\n response.responseTypes.includes('success'),\n );\n\n if (successResponses.length > 0) {\n // create type export for operation response\n generateType({\n client,\n meta: {\n // TODO: this should be exact ref to operation for consistency,\n // but name should work too as operation ID is unique\n $ref: operation.name,\n name: operation.name,\n },\n nameTransformer: operationResponseTypeName,\n onNode,\n type: toType({\n ...emptyModel,\n export: 'any-of',\n isRequired: true,\n properties: successResponses,\n }),\n });\n\n const errorResponses = operation.responses.filter((response) =>\n response.responseTypes.includes('error'),\n );\n\n if (!isLegacy) {\n // create type export for operation error\n generateType({\n client,\n meta: {\n // TODO: this should be exact ref to operation for consistency,\n // but name should work too as operation ID is unique\n $ref: operation.name,\n name: operation.name,\n },\n nameTransformer: operationErrorTypeName,\n onNode,\n type: toType(\n errorResponses.length\n ? {\n ...emptyModel,\n export: 'one-of',\n isRequired: true,\n properties: errorResponses,\n }\n : {\n ...emptyModel,\n base: 'unknown',\n isRequired: true,\n type: 'unknown',\n },\n ),\n });\n }\n }\n }\n }\n\n const properties = Object.entries(pathsMap).map(([path, pathMap]) => {\n const pathParameters = Object.entries(pathMap)\n .map(([_method, methodMap]) => {\n const method = _method as Method;\n\n let methodParameters: Model[] = [];\n\n if (methodMap.req) {\n const operationName = methodMap.$ref!;\n const { name: base } = setUniqueTypeName({\n client,\n meta: {\n // TODO: this should be exact ref to operation for consistency,\n // but name should work too as operation ID is unique\n $ref: operationName,\n name: operationName,\n },\n nameTransformer: operationDataTypeName,\n });\n const reqKey: Model = {\n ...emptyModel,\n base,\n export: 'reference',\n isRequired: true,\n name: 'req',\n properties: [],\n type: base,\n };\n methodParameters = [...methodParameters, reqKey];\n }\n\n if (methodMap.res) {\n const reqResParameters = Object.entries(methodMap.res).map(\n ([code, base]) => {\n // TODO: move query params into separate query key\n const value: Model = {\n ...emptyModel,\n ...base,\n isRequired: true,\n name: String(code),\n };\n return value;\n },\n );\n\n const resKey: Model = {\n ...emptyModel,\n isRequired: true,\n name: 'res',\n properties: reqResParameters,\n };\n methodParameters = [...methodParameters, resKey];\n }\n\n const methodKey: Model = {\n ...emptyModel,\n isRequired: true,\n name: method.toLocaleLowerCase(),\n properties: methodParameters,\n };\n return methodKey;\n })\n .filter(Boolean);\n const pathKey: Model = {\n ...emptyModel,\n isRequired: true,\n name: `'${path}'`,\n properties: pathParameters as Model[],\n };\n return pathKey;\n });\n\n if (config.plugins['@hey-api/typescript']?.tree) {\n generateType({\n client,\n meta: {\n $ref: '@hey-api/openapi-ts',\n name: treeName,\n },\n onNode,\n type: toType({\n ...emptyModel,\n properties,\n }),\n });\n }\n};\n\nexport const handlerLegacy: Plugin.LegacyHandler<Config> = ({\n client,\n files,\n}) => {\n const config = getConfig();\n\n files.types = new TypeScriptFile({\n dir: config.output.path,\n name: 'types.ts',\n });\n\n const onNode: TypesProps['onNode'] = (node) => {\n files.types?.add(node);\n };\n\n for (const model of client.models) {\n processModel({ client, model, onNode });\n }\n\n processServiceTypes({ client, onNode });\n};\n","import type ts from 'typescript';\n\nimport { compiler } from '../../../compiler';\nimport { getOperationKey } from '../../../openApi/common/parser/operation';\nimport type { ModelMeta, OperationResponse } from '../../../types/client';\nimport { getConfig } from '../../../utils/config';\nimport { isModelDate, unsetUniqueTypeName } from '../../../utils/type';\nimport type { Plugin } from '../../types';\nimport {\n modelResponseTransformerTypeName,\n operationResponseTransformerTypeName,\n operationResponseTypeName,\n} from '../sdk/plugin-legacy';\nimport { generateType, type TypesProps } from '../typescript/plugin-legacy';\nimport type { Config } from './types';\n\ninterface ModelProps extends TypesProps {\n meta?: ModelMeta;\n path: Array<string>;\n}\n\nconst dataVariableName = 'data';\n\nconst isVoidResponse = (response: OperationResponse) =>\n response.base === 'unknown' &&\n response.export === 'generic' &&\n response.type === 'unknown';\n\nconst getRefModels = ({\n client,\n model,\n}: Pick<TypesProps, 'client' | 'model'>) => {\n const refModels = model.$refs.map((ref) => {\n const refModel = client.models.find((model) => model.meta?.$ref === ref);\n if (!refModel) {\n throw new Error(\n `Ref ${ref} could not be found. Transformers cannot be generated without having access to all refs.`,\n );\n }\n return refModel;\n });\n return refModels;\n};\n\nconst ensureModelResponseTransformerExists = (\n props: Omit<ModelProps, 'path'>,\n) => {\n const modelName = props.model.meta!.name;\n\n const { name } = generateType({\n ...props,\n meta: {\n $ref: `transformers/${modelName}`,\n name: modelName,\n },\n nameTransformer: modelResponseTransformerTypeName,\n onCreated: (name) => {\n const statements = processModel({\n ...props,\n meta: {\n $ref: `transformers/${modelName}`,\n name,\n },\n path: [dataVariableName],\n });\n generateResponseTransformer({\n ...props,\n async: false,\n name,\n statements,\n });\n },\n type: `(${dataVariableName}: any) => ${modelName}`,\n });\n\n const result = {\n created: Boolean(props.client.types[name]),\n name,\n };\n return result;\n};\n\nconst processArray = (props: ModelProps) => {\n const { model } = props;\n const refModels = getRefModels(props);\n\n if (refModels.length === 1) {\n const { created, name: nameModelResponseTransformer } =\n ensureModelResponseTransformerExists({ ...props, model: refModels[0]! });\n\n if (!created) {\n return [];\n }\n\n return [\n compiler.transformArrayMutation({\n path: props.path,\n transformerName: nameModelResponseTransformer,\n }),\n ];\n }\n\n if (\n isModelDate(model) ||\n (model.link &&\n !Array.isArray(model.link) &&\n model.link.export === 'any-of' &&\n model.link.properties.find((property) => isModelDate(property)))\n ) {\n return [\n compiler.transformArrayMap({\n path: props.path,\n transformExpression: compiler.conditionalExpression({\n condition: compiler.identifier({ text: 'item' }),\n whenFalse: compiler.identifier({ text: 'item' }),\n whenTrue: compiler.transformNewDate({\n parameterName: 'item',\n }),\n }),\n }),\n ];\n }\n\n // Not transform for this type\n return [];\n};\n\nconst processProperty = (props: ModelProps) => {\n const { model } = props;\n const path = [...props.path, model.name];\n\n if (\n model.type === 'string' &&\n model.export !== 'array' &&\n isModelDate(model)\n ) {\n return [compiler.transformDateMutation({ path })];\n }\n\n // otherwise we recurse in case it's an object/array, and if it's not that will just bail with []\n return processModel({\n ...props,\n model,\n path,\n });\n};\n\nconst processModel = (props: ModelProps): ts.Statement[] => {\n const { model } = props;\n\n switch (model.export) {\n case 'array':\n return processArray(props);\n case 'interface':\n return model.properties.flatMap((property) =>\n processProperty({ ...props, model: property }),\n );\n case 'reference': {\n if (model.$refs.length !== 1) {\n return [];\n }\n const refModels = getRefModels(props);\n\n const { created, name: nameModelResponseTransformer } =\n ensureModelResponseTransformerExists({\n ...props,\n model: refModels[0]!,\n });\n\n if (!created) {\n return [];\n }\n\n return model.in === 'response'\n ? [\n compiler.expressionToStatement({\n expression: compiler.callExpression({\n functionName: nameModelResponseTransformer,\n parameters: [dataVariableName],\n }),\n }),\n ]\n : compiler.transformFunctionMutation({\n path: props.path,\n transformerName: nameModelResponseTransformer,\n });\n }\n // unsupported\n default:\n return [];\n }\n};\n\nconst generateResponseTransformer = ({\n async,\n client,\n name,\n onNode,\n onRemoveNode,\n statements,\n}: Pick<TypesProps, 'client' | 'onNode' | 'onRemoveNode'> & {\n async: boolean;\n name: string;\n statements: Array<ts.Statement>;\n}) => {\n const result = {\n created: false,\n name,\n };\n\n if (!statements.length) {\n // clean up created type for response transformer if it turns out\n // the transformer was never generated\n unsetUniqueTypeName({\n client,\n name,\n });\n onRemoveNode?.();\n return result;\n }\n\n const expression = compiler.arrowFunction({\n async,\n multiLine: true,\n parameters: [\n {\n name: dataVariableName,\n },\n ],\n statements: [\n ...statements,\n compiler.returnVariable({\n expression: dataVariableName,\n }),\n ],\n });\n const statement = compiler.constVariable({\n exportConst: true,\n expression,\n name,\n typeName: name,\n });\n onNode(statement);\n\n return {\n created: true,\n name,\n };\n};\n\n// handles only response transformers for now\nexport const handlerLegacy: Plugin.LegacyHandler<Config> = ({\n client,\n files,\n}) => {\n const config = getConfig();\n\n const onNode: TypesProps['onNode'] = (node) => {\n files.types?.add(node);\n };\n const onRemoveNode: TypesProps['onRemoveNode'] = () => {\n files.types?.removeNode();\n };\n\n for (const service of client.services) {\n for (const operation of service.operations) {\n const successResponses = operation.responses.filter((response) =>\n response.responseTypes.includes('success'),\n );\n\n if (!successResponses.length) {\n continue;\n }\n\n const nonVoidResponses = successResponses.filter(\n (response) => !isVoidResponse(response),\n );\n\n if (!nonVoidResponses.length) {\n continue;\n }\n\n if (nonVoidResponses.length > 1) {\n if (config.logs.level === 'debug') {\n console.warn(\n `❗️ Transformers warning: route ${getOperationKey(operation)} has ${nonVoidResponses.length} non-void success responses. This is currently not handled and we will not generate a response transformer. Please open an issue if you'd like this feature https://github.com/hey-api/openapi-ts/issues`,\n );\n }\n continue;\n }\n\n const name = operationResponseTypeName(operation.name);\n generateType({\n client,\n meta: {\n $ref: `transformers/${name}`,\n name,\n },\n nameTransformer: operationResponseTransformerTypeName,\n onCreated: (nameCreated) => {\n const statements =\n successResponses.length > 1\n ? successResponses.flatMap((response) => {\n const statements = processModel({\n client,\n meta: {\n $ref: `transformers/${name}`,\n name,\n },\n model: response,\n onNode,\n onRemoveNode,\n path: [dataVariableName],\n });\n\n // assume unprocessed responses are void\n if (!statements.length) {\n return [];\n }\n\n return [\n compiler.ifStatement({\n expression: compiler.safeAccessExpression(['data']),\n thenStatement: compiler.block({ statements }),\n }),\n ];\n })\n : processModel({\n client,\n meta: {\n $ref: `transformers/${name}`,\n name,\n },\n model: successResponses[0]!,\n onNode,\n onRemoveNode,\n path: [dataVariableName],\n });\n generateResponseTransformer({\n async: true,\n client,\n name: nameCreated,\n onNode,\n onRemoveNode,\n statements,\n });\n },\n onNode,\n type: `(${dataVariableName}: any) => Promise<${name}>`,\n });\n }\n }\n};\n","import type { Plugin } from '../../types';\nimport { handler } from './plugin';\nimport { handlerLegacy } from './plugin-legacy';\nimport type { Config } from './types';\n\nexport const defaultConfig: Plugin.Config<Config> = {\n _dependencies: ['@hey-api/typescript'],\n _handler: handler,\n _handlerLegacy: handlerLegacy,\n _tags: ['transformer'],\n bigInt: true,\n dates: true,\n exportFromIndex: false,\n name: '@hey-api/transformers',\n output: 'transformers',\n};\n\n/**\n * Type helper for `@hey-api/transformers`, returns {@link Plugin.Config} object\n */\nexport const defineConfig: Plugin.DefineConfig<Config> = (config) => ({\n ...defaultConfig,\n ...config,\n});\n","import ts from 'typescript';\n\nimport type { IR } from '../../../ir/types';\nimport { numberRegExp } from '../../../utils/regexp';\nimport { stringCase } from '../../../utils/stringCase';\n\n/**\n * Returns final field name for object properties. This might differ from the\n * original value as applying case transform function might alter it.\n */\nexport const fieldName = ({\n context,\n name,\n}: {\n context: IR.Context;\n name: string;\n}) => {\n numberRegExp.lastIndex = 0;\n if (numberRegExp.test(name)) {\n return ts.factory.createNumericLiteral(name);\n }\n\n // if (typeof context.config.output.case === 'function') {\n // return context.config.output.case({ value: name });\n // }\n\n return stringCase({ case: context.config.output.case, value: name });\n};\n","import ts from 'typescript';\n\nimport { compiler } from '../../../compiler';\nimport type { Identifier } from '../../../generate/files';\nimport type { IR } from '../../../ir/types';\nimport { parseUrl } from '../../../utils/url';\nimport type { Plugin } from '../../types';\nimport { getClientBaseUrlKey, getClientPlugin } from '../client-core/utils';\nimport { typesId } from './ref';\nimport type { Config } from './types';\n\nconst stringType = compiler.keywordTypeNode({ keyword: 'string' });\n\nconst serverToBaseUrlType = ({ server }: { server: IR.ServerObject }) => {\n const url = parseUrl(server.url);\n\n if (url.protocol && url.host) {\n return compiler.literalTypeNode({\n literal: compiler.stringLiteral({ text: server.url }),\n });\n }\n\n return compiler.templateLiteralType({\n value: [\n url.protocol || stringType,\n '://',\n url.host || stringType,\n url.port ? `:${url.port}` : '',\n url.path || '',\n ],\n });\n};\n\nexport const createClientOptions = ({\n context,\n identifier,\n servers,\n}: {\n context: IR.Context;\n identifier: Identifier;\n plugin: Plugin.Instance<Config>;\n servers: ReadonlyArray<IR.ServerObject>;\n}) => {\n const file = context.file({ id: typesId })!;\n\n if (!identifier.name) {\n return;\n }\n\n const client = getClientPlugin(context.config);\n\n const types: Array<ts.TypeNode> = servers.map((server) =>\n serverToBaseUrlType({ server }),\n );\n\n if (!servers.length) {\n types.push(stringType);\n } else if (!('strictBaseUrl' in client && client.strictBaseUrl)) {\n types.push(\n compiler.typeIntersectionNode({\n types: [stringType, ts.factory.createTypeLiteralNode([])],\n }),\n );\n }\n\n const typeClientOptions = compiler.typeAliasDeclaration({\n exportType: true,\n name: identifier.name,\n type: compiler.typeInterfaceNode({\n properties: [\n {\n name: getClientBaseUrlKey(context.config),\n type: compiler.typeUnionNode({ types }),\n },\n ],\n useLegacyResolution: false,\n }),\n });\n\n file.add(typeClientOptions);\n};\n","import ts from 'typescript';\n\nimport type { Property } from '../../../compiler';\nimport { compiler } from '../../../compiler';\nimport { operationResponsesMap } from '../../../ir/operation';\nimport { deduplicateSchema } from '../../../ir/schema';\nimport type { IR } from '../../../ir/types';\nimport { escapeComment } from '../../../utils/escape';\nimport { irRef, isRefOpenApiComponent } from '../../../utils/ref';\nimport { numberRegExp } from '../../../utils/regexp';\nimport { stringCase } from '../../../utils/stringCase';\nimport { fieldName } from '../../shared/utils/case';\nimport { operationIrRef } from '../../shared/utils/ref';\nimport type { Plugin } from '../../types';\nimport { createClientOptions } from './clientOptions';\nimport { typesId } from './ref';\nimport type { Config } from './types';\n\ninterface SchemaWithType<T extends Required<IR.SchemaObject>['type']>\n extends Omit<IR.SchemaObject, 'type'> {\n type: Extract<Required<IR.SchemaObject>['type'], T>;\n}\n\ninterface State {\n /**\n * If set, we keep the specified properties (read-only or write-only) and\n * strip the other type.\n */\n accessScope?: 'read' | 'write';\n}\n\nconst parseSchemaJsDoc = ({ schema }: { schema: IR.SchemaObject }) => {\n const comments = [\n schema.description && escapeComment(schema.description),\n schema.deprecated && '@deprecated',\n ].filter(Boolean);\n\n if (!comments.length) {\n return;\n }\n\n return comments;\n};\n\nconst scopeToRef = ({\n $ref,\n accessScope,\n plugin,\n}: {\n $ref: string;\n accessScope?: 'read' | 'write';\n plugin: Plugin.Instance<Config>;\n}) => {\n if (!accessScope) {\n return $ref;\n }\n\n const refParts = $ref.split('/');\n const name = refParts.pop()!;\n const nameBuilder =\n accessScope === 'read'\n ? plugin.readableNameBuilder\n : plugin.writableNameBuilder;\n const processedName = processNameBuilder({ name, nameBuilder });\n refParts.push(processedName);\n return refParts.join('/');\n};\n\nconst processNameBuilder = ({\n name,\n nameBuilder,\n}: {\n name: string;\n nameBuilder: string | undefined;\n}) => {\n if (!nameBuilder) {\n return name;\n }\n\n return nameBuilder.replace('{{name}}', name);\n};\n\nconst shouldSkipSchema = ({\n schema,\n state,\n}: {\n schema: IR.SchemaObject;\n state: State | undefined;\n}) =>\n Boolean(\n state?.accessScope &&\n schema.accessScope &&\n state.accessScope !== schema.accessScope,\n );\n\nconst addJavaScriptEnum = ({\n $ref,\n context,\n plugin,\n schema,\n}: {\n $ref: string;\n context: IR.Context;\n plugin: Plugin.Instance<Config>;\n schema: SchemaWithType<'enum'>;\n}) => {\n const file = context.file({ id: typesId })!;\n const identifier = file.identifier({\n $ref,\n create: true,\n namespace: 'value',\n });\n\n // TODO: parser - this is the old parser behavior where we would NOT\n // print nested enum identifiers if they already exist. This is a\n // blocker for referencing these identifiers within the file as\n // we cannot guarantee just because they have a duplicate identifier,\n // they have a duplicate value.\n if (!identifier.created) {\n return;\n }\n\n const enumObject = schemaToEnumObject({ plugin, schema });\n\n const expression = compiler.objectExpression({\n multiLine: true,\n obj: enumObject.obj,\n });\n const node = compiler.constVariable({\n assertion: 'const',\n comment: parseSchemaJsDoc({ schema }),\n exportConst: true,\n expression,\n name: identifier.name || '',\n });\n return node;\n};\n\nconst schemaToEnumObject = ({\n plugin,\n schema,\n}: {\n plugin: Plugin.Instance<Config>;\n schema: IR.SchemaObject;\n}) => {\n const typeofItems: Array<\n | 'bigint'\n | 'boolean'\n | 'function'\n | 'number'\n | 'object'\n | 'string'\n | 'symbol'\n | 'undefined'\n > = [];\n\n const obj = (schema.items ?? []).map((item) => {\n const typeOfItemConst = typeof item.const;\n\n if (!typeofItems.includes(typeOfItemConst)) {\n // track types of enum values because some modes support\n // only enums with string and number types\n typeofItems.push(typeOfItemConst);\n }\n\n let key: string | undefined;\n if (item.title) {\n key = item.title;\n } else if (typeOfItemConst === 'number' || typeOfItemConst === 'string') {\n key = `${item.const}`;\n } else if (typeOfItemConst === 'boolean') {\n key = item.const ? 'true' : 'false';\n } else if (item.const === null) {\n key = 'null';\n }\n\n if (key) {\n key = stringCase({\n case: plugin.enumsCase,\n stripLeadingSeparators: false,\n value: key,\n });\n\n numberRegExp.lastIndex = 0;\n // TypeScript enum keys cannot be numbers\n if (\n numberRegExp.test(key) &&\n (plugin.enums === 'typescript' ||\n plugin.enums === 'typescript+namespace')\n ) {\n key = `_${key}`;\n }\n }\n\n return {\n comments: parseSchemaJsDoc({ schema: item }),\n key,\n value: item.const,\n };\n });\n\n return {\n obj,\n typeofItems,\n };\n};\n\nconst addTypeEnum = ({\n $ref,\n context,\n plugin,\n schema,\n state,\n}: {\n $ref: string;\n context: IR.Context;\n plugin: Plugin.Instance<Config>;\n schema: SchemaWithType<'enum'>;\n state: State | undefined;\n}): ts.TypeAliasDeclaration | undefined => {\n const file = context.file({ id: typesId })!;\n const identifier = file.identifier({\n $ref,\n create: true,\n namespace: 'type',\n });\n\n // TODO: parser - this is the old parser behavior where we would NOT\n // print nested enum identifiers if they already exist. This is a\n // blocker for referencing these identifiers within the file as\n // we cannot guarantee just because they have a duplicate identifier,\n // they have a duplicate value.\n if (\n !identifier.created &&\n !isRefOpenApiComponent($ref) &&\n plugin.enums !== 'typescript+namespace'\n ) {\n return;\n }\n\n const type = schemaToType({\n context,\n plugin,\n schema: {\n ...schema,\n type: undefined,\n },\n state,\n });\n\n if (type) {\n const node = compiler.typeAliasDeclaration({\n comment: parseSchemaJsDoc({ schema }),\n exportType: true,\n name: identifier.name || '',\n type,\n });\n return node;\n }\n};\n\nconst addTypeScriptEnum = ({\n $ref,\n context,\n plugin,\n schema,\n state,\n}: {\n $ref: string;\n context: IR.Context;\n plugin: Plugin.Instance<Config>;\n schema: SchemaWithType<'enum'>;\n state: State | undefined;\n}) => {\n const file = context.file({ id: typesId })!;\n const identifier = file.identifier({\n $ref,\n create: true,\n namespace: 'value',\n });\n\n // TODO: parser - this is the old parser behavior where we would NOT\n // print nested enum identifiers if they already exist. This is a\n // blocker for referencing these identifiers within the file as\n // we cannot guarantee just because they have a duplicate identifier,\n // they have a duplicate value.\n if (!identifier.created && plugin.enums !== 'typescript+namespace') {\n return;\n }\n\n const enumObject = schemaToEnumObject({ plugin, schema });\n\n // TypeScript enums support only string and number values so we need to fallback to types\n if (\n enumObject.typeofItems.filter(\n (type) => type !== 'number' && type !== 'string',\n ).length\n ) {\n const node = addTypeEnum({\n $ref,\n context,\n plugin,\n schema,\n state,\n });\n return node;\n }\n\n const node = compiler.enumDeclaration({\n leadingComment: parseSchemaJsDoc({ schema }),\n name: identifier.name || '',\n obj: enumObject.obj,\n });\n return node;\n};\n\nconst arrayTypeToIdentifier = ({\n context,\n namespace,\n plugin,\n schema,\n state,\n}: {\n context: IR.Context;\n namespace: Array<ts.Statement>;\n plugin: Plugin.Instance<Config>;\n schema: SchemaWithType<'array'>;\n state: State | undefined;\n}): ts.TypeNode => {\n if (!schema.items) {\n return compiler.typeArrayNode(\n compiler.keywordTypeNode({\n keyword: 'unknown',\n }),\n );\n }\n\n schema = deduplicateSchema({ schema });\n\n const itemTypes: Array<ts.TypeNode> = [];\n\n // at least one item is guaranteed (or at least was before read/write only)\n for (const item of schema.items!) {\n const type = schemaToType({\n context,\n namespace,\n plugin,\n schema: item,\n state,\n });\n\n if (type) {\n itemTypes.push(type);\n }\n }\n\n if (itemTypes.length === 1) {\n return compiler.typeArrayNode(itemTypes[0]!);\n }\n\n if (schema.logicalOperator === 'and') {\n return compiler.typeArrayNode(\n compiler.typeIntersectionNode({ types: itemTypes }),\n );\n }\n\n return compiler.typeArrayNode(compiler.typeUnionNode({ types: itemTypes }));\n};\n\nconst booleanTypeToIdentifier = ({\n schema,\n}: {\n context: IR.Context;\n namespace: Array<ts.Statement>;\n schema: SchemaWithType<'boolean'>;\n}): ts.TypeNode => {\n if (schema.const !== undefined) {\n return compiler.literalTypeNode({\n literal: compiler.ots.boolean(schema.const as boolean),\n });\n }\n\n return compiler.keywordTypeNode({\n keyword: 'boolean',\n });\n};\n\nconst enumTypeToIdentifier = ({\n $ref,\n context,\n namespace,\n plugin,\n schema,\n state,\n}: {\n $ref?: string;\n context: IR.Context;\n namespace: Array<ts.Statement>;\n plugin: Plugin.Instance<Config>;\n schema: SchemaWithType<'enum'>;\n state: State | undefined;\n}): ts.TypeNode | undefined => {\n const file = context.file({ id: typesId })!;\n const isRefComponent = $ref ? isRefOpenApiComponent($ref) : false;\n const shouldExportEnum = isRefComponent || Boolean(plugin.exportInlineEnums);\n\n if ($ref && shouldExportEnum) {\n // when enums are disabled (default), emit only reusable components\n // as types, otherwise the output would be broken if we skipped all enums\n if (!plugin.enums) {\n const typeNode = addTypeEnum({\n $ref,\n context,\n plugin,\n schema,\n state,\n });\n if (typeNode) {\n file.add(typeNode);\n }\n }\n\n if (plugin.enums === 'javascript') {\n const typeNode = addTypeEnum({\n $ref,\n context,\n plugin,\n schema,\n state,\n });\n if (typeNode) {\n file.add(typeNode);\n }\n\n const objectNode = addJavaScriptEnum({\n $ref,\n context,\n plugin,\n schema,\n });\n if (objectNode) {\n file.add(objectNode);\n }\n }\n\n if (plugin.enums === 'typescript') {\n const enumNode = addTypeScriptEnum({\n $ref,\n context,\n plugin,\n schema,\n state,\n });\n if (enumNode) {\n file.add(enumNode);\n }\n }\n\n if (plugin.enums === 'typescript+namespace') {\n const enumNode = addTypeScriptEnum({\n $ref,\n context,\n plugin,\n schema,\n state,\n });\n if (enumNode) {\n if (isRefComponent) {\n file.add(enumNode);\n } else {\n // emit enum inside TypeScript namespace\n namespace.push(enumNode);\n }\n }\n }\n }\n\n const type = schemaToType({\n context,\n plugin,\n schema: {\n ...schema,\n type: undefined,\n },\n state,\n });\n return type;\n};\n\nconst numberTypeToIdentifier = ({\n context,\n schema,\n}: {\n context: IR.Context;\n namespace: Array<ts.Statement>;\n schema: SchemaWithType<'integer' | 'number'>;\n}): ts.TypeNode => {\n if (schema.const !== undefined) {\n return compiler.literalTypeNode({\n literal: compiler.ots.number(schema.const as number),\n });\n }\n\n if (schema.type === 'integer' && schema.format === 'int64') {\n // TODO: parser - add ability to skip type transformers\n if (context.config.plugins['@hey-api/transformers']?.bigInt) {\n return compiler.typeReferenceNode({ typeName: 'bigint' });\n }\n }\n\n return compiler.keywordTypeNode({\n keyword: 'number',\n });\n};\n\nconst objectTypeToIdentifier = ({\n context,\n namespace,\n plugin,\n schema,\n state,\n}: {\n context: IR.Context;\n namespace: Array<ts.Statement>;\n plugin: Plugin.Instance<Config>;\n schema: SchemaWithType<'object'>;\n state: State | undefined;\n}): ts.TypeNode | undefined => {\n // TODO: parser - handle constants\n let indexProperty: Property | undefined;\n const schemaProperties: Array<Property> = [];\n let indexPropertyItems: Array<IR.SchemaObject> = [];\n const required = schema.required ?? [];\n let hasOptionalProperties = false;\n let hasSkippedProperties = false;\n\n for (const name in schema.properties) {\n const property = schema.properties[name]!;\n\n const skip = shouldSkipSchema({\n schema: property,\n state,\n });\n\n if (skip) {\n hasSkippedProperties = true;\n continue;\n }\n\n const isRequired = required.includes(name);\n schemaProperties.push({\n comment: parseSchemaJsDoc({ schema: property }),\n isReadOnly: property.accessScope === 'read',\n isRequired,\n name: fieldName({ context, name }),\n type: schemaToType({\n $ref: `${irRef}${name}`,\n context,\n namespace,\n plugin,\n schema: property,\n state,\n }),\n });\n indexPropertyItems.push(property);\n\n if (!isRequired) {\n hasOptionalProperties = true;\n }\n }\n\n if (\n schema.additionalProperties &&\n (schema.additionalProperties.type !== 'never' || !indexPropertyItems.length)\n ) {\n if (schema.additionalProperties.type === 'never') {\n indexPropertyItems = [schema.additionalProperties];\n } else {\n indexPropertyItems.unshift(schema.additionalProperties);\n }\n\n if (hasOptionalProperties) {\n indexPropertyItems.push({\n type: 'undefined',\n });\n }\n\n indexProperty = {\n isRequired: true,\n name: 'key',\n type: schemaToType({\n context,\n namespace,\n plugin,\n schema:\n indexPropertyItems.length === 1\n ? indexPropertyItems[0]!\n : {\n items: indexPropertyItems,\n logicalOperator: 'or',\n },\n state,\n }),\n };\n }\n\n if (hasSkippedProperties && !schemaProperties.length && !indexProperty) {\n return;\n }\n\n return compiler.typeInterfaceNode({\n indexProperty,\n properties: schemaProperties,\n useLegacyResolution: false,\n });\n};\n\nconst stringTypeToIdentifier = ({\n context,\n schema,\n}: {\n context: IR.Context;\n namespace: Array<ts.Statement>;\n schema: SchemaWithType<'string'>;\n}): ts.TypeNode => {\n if (schema.const !== undefined) {\n return compiler.literalTypeNode({\n literal: compiler.stringLiteral({ text: schema.const as string }),\n });\n }\n\n if (schema.format) {\n if (schema.format === 'binary') {\n return compiler.typeUnionNode({\n types: [\n compiler.typeReferenceNode({\n typeName: 'Blob',\n }),\n compiler.typeReferenceNode({\n typeName: 'File',\n }),\n ],\n });\n }\n\n if (schema.format === 'date-time' || schema.format === 'date') {\n // TODO: parser - add ability to skip type transformers\n if (context.config.plugins['@hey-api/transformers']?.dates) {\n return compiler.typeReferenceNode({ typeName: 'Date' });\n }\n }\n }\n\n return compiler.keywordTypeNode({\n keyword: 'string',\n });\n};\n\nconst tupleTypeToIdentifier = ({\n context,\n namespace,\n plugin,\n schema,\n state,\n}: {\n context: IR.Context;\n namespace: Array<ts.Statement>;\n plugin: Plugin.Instance<Config>;\n schema: SchemaWithType<'tuple'>;\n state: State | undefined;\n}): ts.TypeNode => {\n let itemTypes: Array<ts.Expression | ts.TypeNode> = [];\n\n if (schema.const && Array.isArray(schema.const)) {\n itemTypes = schema.const.map((value) => {\n const expression = compiler.valueToExpression({ value });\n return expression ?? compiler.identifier({ text: 'unknown' });\n });\n } else if (schema.items) {\n for (const item of schema.items) {\n const type = schemaToType({\n context,\n namespace,\n plugin,\n schema: item,\n state,\n });\n\n if (type) {\n itemTypes.push(type);\n }\n }\n }\n\n return compiler.typeTupleNode({\n types: itemTypes,\n });\n};\n\nconst schemaTypeToIdentifier = ({\n $ref,\n context,\n namespace,\n plugin,\n schema,\n state,\n}: {\n $ref?: string;\n context: IR.Context;\n namespace: Array<ts.Statement>;\n plugin: Plugin.Instance<Config>;\n schema: IR.SchemaObject;\n state: State | undefined;\n}): ts.TypeNode | undefined => {\n switch (schema.type as Required<IR.SchemaObject>['type']) {\n case 'array':\n return arrayTypeToIdentifier({\n context,\n namespace,\n plugin,\n schema: schema as SchemaWithType<'array'>,\n state,\n });\n case 'boolean':\n return booleanTypeToIdentifier({\n context,\n namespace,\n schema: schema as SchemaWithType<'boolean'>,\n });\n case 'enum':\n return enumTypeToIdentifier({\n $ref,\n context,\n namespace,\n plugin,\n schema: schema as SchemaWithType<'enum'>,\n state,\n });\n case 'integer':\n case 'number':\n return numberTypeToIdentifier({\n context,\n namespace,\n schema: schema as SchemaWithType<'integer' | 'number'>,\n });\n case 'never':\n return compiler.keywordTypeNode({\n keyword: 'never',\n });\n case 'null':\n return compiler.literalTypeNode({\n literal: compiler.null(),\n });\n case 'object':\n return objectTypeToIdentifier({\n context,\n namespace,\n plugin,\n schema: schema as SchemaWithType<'object'>,\n state,\n });\n case 'string':\n return stringTypeToIdentifier({\n context,\n namespace,\n schema: schema as SchemaWithType<'string'>,\n });\n case 'tuple':\n return tupleTypeToIdentifier({\n context,\n namespace,\n plugin,\n schema: schema as SchemaWithType<'tuple'>,\n state,\n });\n case 'undefined':\n return compiler.keywordTypeNode({\n keyword: 'undefined',\n });\n case 'unknown':\n return compiler.keywordTypeNode({\n keyword: 'unknown',\n });\n case 'void':\n return compiler.keywordTypeNode({\n keyword: 'void',\n });\n }\n};\n\nconst irParametersToIrSchema = ({\n parameters,\n}: {\n parameters: Record<string, IR.ParameterObject>;\n}): IR.SchemaObject => {\n const irSchema: IR.SchemaObject = {\n type: 'object',\n };\n\n if (parameters) {\n const properties: Record<string, IR.SchemaObject> = {};\n const required: Array<string> = [];\n\n for (const name in parameters) {\n const parameter = parameters[name]!;\n\n properties[name] = deduplicateSchema({\n schema: parameter.schema,\n });\n\n if (parameter.required) {\n required.push(name);\n }\n }\n\n irSchema.properties = properties;\n\n if (required.length) {\n irSchema.required = required;\n }\n }\n\n return irSchema;\n};\n\nconst operationToDataType = ({\n context,\n operation,\n plugin,\n}: {\n context: IR.Context;\n operation: IR.OperationObject;\n plugin: Plugin.Instance<Config>;\n}) => {\n const file = context.file({ id: typesId })!;\n const data: IR.SchemaObject = {\n type: 'object',\n };\n const dataRequired: Array<string> = [];\n\n if (!data.properties) {\n data.properties = {};\n }\n\n if (operation.body) {\n data.properties.body = operation.body.schema;\n\n if (operation.body.required) {\n dataRequired.push('body');\n }\n } else {\n data.properties.body = {\n type: 'never',\n };\n }\n\n // TODO: parser - handle cookie parameters\n\n // do not set headers to never so we can always pass arbitrary values\n if (operation.parameters?.header) {\n data.properties.headers = irParametersToIrSchema({\n parameters: operation.parameters.header,\n });\n\n if (data.properties.headers.required) {\n dataRequired.push('headers');\n }\n }\n\n if (operation.parameters?.path) {\n data.properties.path = irParametersToIrSchema({\n parameters: operation.parameters.path,\n });\n\n if (data.properties.path.required) {\n dataRequired.push('path');\n }\n } else {\n data.properties.path = {\n type: 'never',\n };\n }\n\n if (operation.parameters?.query) {\n data.properties.query = irParametersToIrSchema({\n parameters: operation.parameters.query,\n });\n\n if (data.properties.query.required) {\n dataRequired.push('query');\n }\n } else {\n data.properties.query = {\n type: 'never',\n };\n }\n\n data.properties.url = {\n const: operation.path,\n type: 'string',\n };\n dataRequired.push('url');\n\n data.required = dataRequired;\n\n const identifier = file.identifier({\n $ref: operationIrRef({ id: operation.id, type: 'data' }),\n create: true,\n namespace: 'type',\n });\n const type = schemaToType({\n context,\n plugin,\n schema: data,\n state:\n plugin.readOnlyWriteOnlyBehavior === 'off'\n ? undefined\n : {\n accessScope: 'write',\n },\n });\n\n if (type) {\n const node = compiler.typeAliasDeclaration({\n exportType: true,\n name: identifier.name || '',\n type,\n });\n file.add(node);\n }\n};\n\nconst operationToType = ({\n context,\n operation,\n plugin,\n}: {\n context: IR.Context;\n operation: IR.OperationObject;\n plugin: Plugin.Instance<Config>;\n}) => {\n operationToDataType({\n context,\n operation,\n plugin,\n });\n\n const file = context.file({ id: typesId })!;\n\n const { error, errors, response, responses } =\n operationResponsesMap(operation);\n\n if (errors) {\n const identifierErrors = file.identifier({\n $ref: operationIrRef({ id: operation.id, type: 'errors' }),\n create: true,\n namespace: 'type',\n });\n if (identifierErrors.name) {\n const type = schemaToType({\n context,\n plugin,\n schema: errors,\n state:\n plugin.readOnlyWriteOnlyBehavior === 'off'\n ? undefined\n : {\n accessScope: 'read',\n },\n });\n\n if (type) {\n const node = compiler.typeAliasDeclaration({\n exportType: true,\n name: identifierErrors.name,\n type,\n });\n file.add(node);\n }\n\n if (error) {\n const identifierError = file.identifier({\n $ref: operationIrRef({ id: operation.id, type: 'error' }),\n create: true,\n namespace: 'type',\n });\n if (identifierError.name) {\n const errorsType = compiler.typeReferenceNode({\n typeName: identifierErrors.name,\n });\n const keyofType = ts.factory.createTypeOperatorNode(\n ts.SyntaxKind.KeyOfKeyword,\n errorsType,\n );\n const node = compiler.typeAliasDeclaration({\n exportType: true,\n name: identifierError.name,\n type: compiler.indexedAccessTypeNode({\n indexType: keyofType,\n objectType: errorsType,\n }),\n });\n file.add(node);\n }\n }\n }\n }\n\n if (responses) {\n const identifierResponses = file.identifier({\n $ref: operationIrRef({ id: operation.id, type: 'responses' }),\n create: true,\n namespace: 'type',\n });\n if (identifierResponses.name) {\n const type = schemaToType({\n context,\n plugin,\n schema: responses,\n state:\n plugin.readOnlyWriteOnlyBehavior === 'off'\n ? undefined\n : {\n accessScope: 'read',\n },\n });\n\n if (type) {\n const node = compiler.typeAliasDeclaration({\n exportType: true,\n name: identifierResponses.name,\n type,\n });\n file.add(node);\n }\n\n if (response) {\n const identifierResponse = file.identifier({\n $ref: operationIrRef({ id: operation.id, type: 'response' }),\n create: true,\n namespace: 'type',\n });\n if (identifierResponse.name) {\n const responsesType = compiler.typeReferenceNode({\n typeName: identifierResponses.name,\n });\n const keyofType = ts.factory.createTypeOperatorNode(\n ts.SyntaxKind.KeyOfKeyword,\n responsesType,\n );\n const node = compiler.typeAliasDeclaration({\n exportType: true,\n name: identifierResponse.name,\n type: compiler.indexedAccessTypeNode({\n indexType: keyofType,\n objectType: responsesType,\n }),\n });\n file.add(node);\n }\n }\n }\n }\n};\n\nexport const schemaToType = ({\n $ref,\n context,\n namespace = [],\n plugin,\n schema,\n state,\n}: {\n $ref?: string;\n context: IR.Context;\n namespace?: Array<ts.Statement>;\n plugin: Plugin.Instance<Config>;\n schema: IR.SchemaObject;\n state: State | undefined;\n}): ts.TypeNode | undefined => {\n const file = context.file({ id: typesId })!;\n\n let type: ts.TypeNode | undefined;\n\n if (schema.$ref) {\n const refSchema = context.resolveIrRef<IR.SchemaObject>(schema.$ref);\n const finalRef = scopeToRef({\n $ref: schema.$ref,\n accessScope: refSchema.accessScopes?.length\n ? state?.accessScope\n : undefined,\n plugin,\n });\n const identifier = file.identifier({\n $ref: finalRef,\n create: true,\n namespace: 'type',\n });\n type = compiler.typeReferenceNode({\n typeName: identifier.name || '',\n });\n } else if (schema.type) {\n type = schemaTypeToIdentifier({\n $ref,\n context,\n namespace,\n plugin,\n schema,\n state,\n });\n } else if (schema.items) {\n schema = deduplicateSchema({ schema });\n if (schema.items) {\n const itemTypes: Array<ts.TypeNode> = [];\n\n for (const item of schema.items) {\n const type = schemaToType({\n context,\n namespace,\n plugin,\n schema: item,\n state,\n });\n if (type) {\n itemTypes.push(type);\n }\n }\n\n type =\n schema.logicalOperator === 'and'\n ? compiler.typeIntersectionNode({ types: itemTypes })\n : compiler.typeUnionNode({ types: itemTypes });\n } else {\n type = schemaToType({\n context,\n namespace,\n plugin,\n schema,\n state,\n });\n }\n } else {\n // catch-all fallback for failed schemas\n type = schemaTypeToIdentifier({\n context,\n namespace,\n plugin,\n schema: {\n type: 'unknown',\n },\n state,\n });\n }\n\n // emit nodes only if $ref points to a reusable component\n if ($ref && isRefOpenApiComponent($ref)) {\n // emit namespace if it has any members\n if (namespace.length) {\n const identifier = file.identifier({\n $ref,\n create: true,\n namespace: 'value',\n });\n const node = compiler.namespaceDeclaration({\n name: identifier.name || '',\n statements: namespace,\n });\n file.add(node);\n }\n\n // enum handler emits its own artifacts\n if (schema.type !== 'enum' && type) {\n const identifier = file.identifier({\n $ref,\n create: true,\n namespace: 'type',\n });\n const node = compiler.typeAliasDeclaration({\n comment: parseSchemaJsDoc({ schema }),\n exportType: true,\n name: identifier.name || '',\n type,\n });\n file.add(node);\n }\n }\n\n return type;\n};\n\nexport const handler: Plugin.Handler<Config> = ({ context, plugin }) => {\n const file = context.createFile({\n exportFromIndex: plugin.exportFromIndex,\n id: typesId,\n identifierCase: plugin.identifierCase,\n path: plugin.output,\n });\n\n // reserve identifier for ClientOptions\n const clientOptions = file.identifier({\n $ref: 'ClientOptions',\n create: true,\n namespace: 'type',\n });\n\n context.subscribe('schema', ({ $ref, schema }) => {\n if (\n !schema.accessScopes?.length ||\n plugin.readOnlyWriteOnlyBehavior === 'off'\n ) {\n schemaToType({\n $ref,\n context,\n plugin,\n schema,\n state: undefined,\n });\n return;\n }\n\n // we need both scopes because as soon as the schema contains one,\n // it cannot be used for both payloads and responses\n schemaToType({\n $ref: scopeToRef({\n $ref,\n accessScope: 'read',\n plugin,\n }),\n context,\n plugin,\n schema,\n state: {\n accessScope: 'read',\n },\n });\n schemaToType({\n $ref: scopeToRef({\n $ref,\n accessScope: 'write',\n plugin,\n }),\n context,\n plugin,\n schema,\n state: {\n accessScope: 'write',\n },\n });\n });\n\n context.subscribe('parameter', ({ $ref, parameter }) => {\n schemaToType({\n $ref,\n context,\n plugin,\n schema: parameter.schema,\n state: undefined,\n });\n });\n\n context.subscribe('requestBody', ({ $ref, requestBody }) => {\n schemaToType({\n $ref,\n context,\n plugin,\n schema: requestBody.schema,\n state:\n plugin.readOnlyWriteOnlyBehavior === 'off'\n ? undefined\n : {\n accessScope: 'write',\n },\n });\n });\n\n context.subscribe('operation', ({ operation }) => {\n operationToType({\n context,\n operation,\n plugin,\n });\n });\n\n const servers: Array<IR.ServerObject> = [];\n\n context.subscribe('server', ({ server }) => {\n servers.push(server);\n });\n\n context.subscribe('after', () => {\n createClientOptions({\n context,\n identifier: clientOptions,\n plugin,\n servers,\n });\n });\n};\n","import type { Plugin } from '../../types';\nimport { handler } from './plugin';\nimport { handlerLegacy } from './plugin-legacy';\nimport type { Config } from './types';\n\nexport const defaultConfig: Plugin.Config<Config> = {\n _handler: handler,\n _handlerLegacy: handlerLegacy,\n enums: false,\n enumsCase: 'SCREAMING_SNAKE_CASE',\n exportFromIndex: true,\n exportInlineEnums: false,\n identifierCase: 'PascalCase',\n name: '@hey-api/typescript',\n output: 'types',\n readOnlyWriteOnlyBehavior: 'split',\n readableNameBuilder: '{{name}}Readable',\n style: 'preserve',\n tree: false,\n writableNameBuilder: '{{name}}Writable',\n};\n\n/**\n * Type helper for `@hey-api/typescript` plugin, returns {@link Plugin.Config} object\n */\nexport const defineConfig: Plugin.DefineConfig<Config> = (config) => ({\n ...defaultConfig,\n ...config,\n});\n","import type { ImportExportItemObject } from '../../../compiler/utils';\nimport type { IR } from '../../../ir/types';\nimport { getClientPlugin } from '../../@hey-api/client-core/utils';\nimport { operationOptionsType } from '../../@hey-api/sdk/plugin';\nimport {\n importIdentifierError,\n importIdentifierResponse,\n} from '../../@hey-api/typescript/ref';\nimport type { PluginInstance } from './types';\n\nexport const useTypeData = ({\n context,\n operation,\n plugin,\n}: {\n context: IR.Context;\n operation: IR.OperationObject;\n plugin: PluginInstance;\n}) => {\n const file = context.file({ id: plugin.name })!;\n\n const typeData = operationOptionsType({\n context,\n file,\n operation,\n });\n return typeData;\n};\n\nexport const useTypeError = ({\n context,\n operation,\n plugin,\n}: {\n context: IR.Context;\n operation: IR.OperationObject;\n plugin: PluginInstance;\n}) => {\n const file = context.file({ id: plugin.name })!;\n const identifierError = importIdentifierError({ context, file, operation });\n let typeError: ImportExportItemObject = {\n asType: true,\n name: identifierError.name || '',\n };\n if (!typeError.name) {\n typeError = file.import({\n asType: true,\n module: plugin.name,\n name: 'DefaultError',\n });\n }\n const client = getClientPlugin(context.config);\n if (client.name === '@hey-api/client-axios') {\n const axiosError = file.import({\n asType: true,\n module: 'axios',\n name: 'AxiosError',\n });\n typeError = {\n ...axiosError,\n name: `${axiosError.name}<${typeError.name}>`,\n };\n }\n return typeError;\n};\n\nexport const useTypeResponse = ({\n context,\n operation,\n plugin,\n}: {\n context: IR.Context;\n operation: IR.OperationObject;\n plugin: PluginInstance;\n}) => {\n const file = context.file({ id: plugin.name })!;\n const identifierResponse = importIdentifierResponse({\n context,\n file,\n operation,\n });\n const typeResponse = identifierResponse.name || 'unknown';\n return typeResponse;\n};\n","import { compiler, type Property } from '../../../compiler';\nimport { clientApi } from '../../../generate/client';\nimport { hasOperationDataRequired } from '../../../ir/operation';\nimport type { IR } from '../../../ir/types';\nimport { getClientBaseUrlKey } from '../../@hey-api/client-core/utils';\nimport { serviceFunctionIdentifier } from '../../@hey-api/sdk/plugin-legacy';\nimport type { PluginInstance } from './types';\nimport { useTypeData } from './useType';\n\nconst createQueryKeyFn = 'createQueryKey';\nexport const queryKeyName = 'QueryKey';\nconst TOptionsType = 'TOptions';\n\nconst infiniteIdentifier = compiler.identifier({ text: 'infinite' });\nconst optionsIdentifier = compiler.identifier({ text: 'options' });\n\nexport const createQueryKeyFunction = ({\n context,\n plugin,\n}: {\n context: IR.Context;\n plugin: PluginInstance;\n}) => {\n const file = context.file({ id: plugin.name })!;\n\n const identifierCreateQueryKey = file.identifier({\n $ref: `#/ir/${createQueryKeyFn}`,\n create: true,\n namespace: 'value',\n });\n\n if (identifierCreateQueryKey.name) {\n const returnType = compiler.indexedAccessTypeNode({\n indexType: compiler.literalTypeNode({\n literal: compiler.ots.number(0),\n }),\n objectType: compiler.typeReferenceNode({\n typeArguments: [compiler.typeReferenceNode({ typeName: TOptionsType })],\n typeName: queryKeyName,\n }),\n });\n\n const fn = compiler.constVariable({\n expression: compiler.arrowFunction({\n multiLine: true,\n parameters: [\n {\n name: 'id',\n type: compiler.typeReferenceNode({ typeName: 'string' }),\n },\n {\n isRequired: false,\n name: 'options',\n type: compiler.typeReferenceNode({ typeName: TOptionsType }),\n },\n {\n isRequired: false,\n name: 'infinite',\n type: compiler.typeReferenceNode({ typeName: 'boolean' }),\n },\n ],\n returnType: compiler.typeTupleNode({\n types: [returnType],\n }),\n statements: [\n compiler.constVariable({\n assertion: returnType,\n expression: compiler.objectExpression({\n multiLine: false,\n obj: [\n {\n key: '_id',\n value: compiler.identifier({ text: 'id' }),\n },\n {\n key: getClientBaseUrlKey(context.config),\n value: compiler.identifier({\n text: `(options?.client ?? _heyApiClient).getConfig().${getClientBaseUrlKey(context.config)}`,\n }),\n },\n ],\n }),\n name: 'params',\n typeName: returnType,\n }),\n compiler.ifStatement({\n expression: infiniteIdentifier,\n thenStatement: compiler.block({\n statements: [\n compiler.expressionToStatement({\n expression: compiler.binaryExpression({\n left: compiler.propertyAccessExpression({\n expression: 'params',\n name: '_infinite',\n }),\n right: infiniteIdentifier,\n }),\n }),\n ],\n }),\n }),\n compiler.ifStatement({\n expression: compiler.propertyAccessExpression({\n expression: optionsIdentifier,\n isOptional: true,\n name: compiler.identifier({ text: 'body' }),\n }),\n thenStatement: compiler.block({\n statements: [\n compiler.expressionToStatement({\n expression: compiler.binaryExpression({\n left: compiler.propertyAccessExpression({\n expression: 'params',\n name: 'body',\n }),\n right: compiler.propertyAccessExpression({\n expression: 'options',\n name: 'body',\n }),\n }),\n }),\n ],\n }),\n }),\n compiler.ifStatement({\n expression: compiler.propertyAccessExpression({\n expression: optionsIdentifier,\n isOptional: true,\n name: compiler.identifier({ text: 'headers' }),\n }),\n thenStatement: compiler.block({\n statements: [\n compiler.expressionToStatement({\n expression: compiler.binaryExpression({\n left: compiler.propertyAccessExpression({\n expression: 'params',\n name: 'headers',\n }),\n right: compiler.propertyAccessExpression({\n expression: 'options',\n name: 'headers',\n }),\n }),\n }),\n ],\n }),\n }),\n compiler.ifStatement({\n expression: compiler.propertyAccessExpression({\n expression: optionsIdentifier,\n isOptional: true,\n name: compiler.identifier({ text: 'path' }),\n }),\n thenStatement: compiler.block({\n statements: [\n compiler.expressionToStatement({\n expression: compiler.binaryExpression({\n left: compiler.propertyAccessExpression({\n expression: 'params',\n name: 'path',\n }),\n right: compiler.propertyAccessExpression({\n expression: 'options',\n name: 'path',\n }),\n }),\n }),\n ],\n }),\n }),\n compiler.ifStatement({\n expression: compiler.propertyAccessExpression({\n expression: optionsIdentifier,\n isOptional: true,\n name: compiler.identifier({ text: 'query' }),\n }),\n thenStatement: compiler.block({\n statements: [\n compiler.expressionToStatement({\n expression: compiler.binaryExpression({\n left: compiler.propertyAccessExpression({\n expression: 'params',\n name: 'query',\n }),\n right: compiler.propertyAccessExpression({\n expression: 'options',\n name: 'query',\n }),\n }),\n }),\n ],\n }),\n }),\n compiler.returnStatement({\n expression: compiler.arrayLiteralExpression({\n elements: [compiler.identifier({ text: 'params' })],\n }),\n }),\n ],\n types: [\n {\n extends: compiler.typeReferenceNode({\n typeName: compiler.identifier({\n text: clientApi.Options.name,\n }),\n }),\n name: TOptionsType,\n },\n ],\n }),\n name: identifierCreateQueryKey.name,\n });\n file.add(fn);\n }\n};\n\nconst createQueryKeyLiteral = ({\n context,\n id,\n isInfinite,\n plugin,\n}: {\n context: IR.Context;\n id: string;\n isInfinite?: boolean;\n plugin: PluginInstance;\n}) => {\n const file = context.file({ id: plugin.name })!;\n const identifierCreateQueryKey = file.identifier({\n $ref: `#/ir/${createQueryKeyFn}`,\n namespace: 'value',\n });\n const createQueryKeyCallExpression = compiler.callExpression({\n functionName: identifierCreateQueryKey.name || '',\n parameters: [\n compiler.ots.string(id),\n 'options',\n isInfinite ? compiler.ots.boolean(true) : undefined,\n ],\n });\n return createQueryKeyCallExpression;\n};\n\nexport const createQueryKeyType = ({\n context,\n plugin,\n}: {\n context: IR.Context;\n plugin: PluginInstance;\n}) => {\n const file = context.file({ id: plugin.name })!;\n\n const properties: Property[] = [\n {\n name: '_id',\n type: compiler.keywordTypeNode({\n keyword: 'string',\n }),\n },\n {\n isRequired: false,\n name: '_infinite',\n type: compiler.keywordTypeNode({\n keyword: 'boolean',\n }),\n },\n ];\n\n const queryKeyType = compiler.typeAliasDeclaration({\n exportType: true,\n name: queryKeyName,\n type: compiler.typeTupleNode({\n types: [\n compiler.typeIntersectionNode({\n types: [\n compiler.typeReferenceNode({\n typeName: `Pick<${TOptionsType}, '${getClientBaseUrlKey(context.config)}' | 'body' | 'headers' | 'path' | 'query'>`,\n }),\n compiler.typeInterfaceNode({\n properties,\n useLegacyResolution: true,\n }),\n ],\n }),\n ],\n }),\n typeParameters: [\n {\n extends: compiler.typeReferenceNode({\n typeName: compiler.identifier({\n text: clientApi.Options.name,\n }),\n }),\n name: TOptionsType,\n },\n ],\n });\n file.add(queryKeyType);\n};\n\nexport const queryKeyFunctionIdentifier = ({\n context,\n isInfinite,\n operation,\n}: {\n context: IR.Context;\n isInfinite?: boolean;\n operation: IR.OperationObject;\n}) =>\n `${serviceFunctionIdentifier({\n config: context.config,\n id: operation.id,\n operation,\n })}${isInfinite ? 'Infinite' : ''}QueryKey`;\n\nexport const queryKeyStatement = ({\n context,\n isInfinite,\n operation,\n plugin,\n typeQueryKey,\n}: {\n context: IR.Context;\n isInfinite: boolean;\n operation: IR.OperationObject;\n plugin: PluginInstance;\n typeQueryKey?: string;\n}) => {\n const file = context.file({ id: plugin.name })!;\n const typeData = useTypeData({ context, operation, plugin });\n const name = queryKeyFunctionIdentifier({\n context,\n isInfinite,\n operation,\n });\n const identifierQueryKey = file.identifier({\n $ref: `#/queryKey/${name}`,\n create: true,\n namespace: 'value',\n });\n const statement = compiler.constVariable({\n exportConst: true,\n expression: compiler.arrowFunction({\n parameters: [\n {\n isRequired: hasOperationDataRequired(operation),\n name: 'options',\n type: typeData,\n },\n ],\n returnType: isInfinite ? typeQueryKey : undefined,\n statements: createQueryKeyLiteral({\n context,\n id: operation.id,\n isInfinite,\n plugin,\n }),\n }),\n name: identifierQueryKey.name || '',\n });\n return statement;\n};\n","import ts from 'typescript';\n\nimport { compiler } from '../../../compiler';\nimport { tsNodeToString } from '../../../compiler/utils';\nimport { clientApi } from '../../../generate/client';\nimport {\n hasOperationDataRequired,\n operationPagination,\n} from '../../../ir/operation';\nimport type { IR } from '../../../ir/types';\nimport { serviceFunctionIdentifier } from '../../@hey-api/sdk/plugin-legacy';\nimport { schemaToType } from '../../@hey-api/typescript/plugin';\nimport {\n createQueryKeyFunction,\n createQueryKeyType,\n queryKeyFunctionIdentifier,\n queryKeyName,\n queryKeyStatement,\n} from './queryKey';\nimport type { PluginInstance, PluginState } from './types';\nimport { useTypeData, useTypeError, useTypeResponse } from './useType';\n\nconst createInfiniteParamsFn = 'createInfiniteParams';\nconst infiniteQueryOptionsFn = 'infiniteQueryOptions';\n\nconst createInfiniteParamsFunction = ({\n context,\n plugin,\n}: {\n context: IR.Context;\n plugin: PluginInstance;\n}) => {\n const file = context.file({ id: plugin.name })!;\n\n const fn = compiler.constVariable({\n expression: compiler.arrowFunction({\n multiLine: true,\n parameters: [\n {\n name: 'queryKey',\n type: compiler.typeReferenceNode({\n typeName: `QueryKey<${clientApi.Options.name}>`,\n }),\n },\n {\n name: 'page',\n type: compiler.typeReferenceNode({ typeName: 'K' }),\n },\n ],\n statements: [\n compiler.constVariable({\n expression: compiler.identifier({\n text: 'queryKey[0]',\n }),\n name: 'params',\n }),\n compiler.ifStatement({\n expression: compiler.propertyAccessExpression({\n expression: compiler.identifier({\n text: 'page',\n }),\n name: compiler.identifier({ text: 'body' }),\n }),\n thenStatement: compiler.block({\n statements: [\n compiler.expressionToStatement({\n expression: compiler.binaryExpression({\n left: compiler.propertyAccessExpression({\n expression: 'params',\n name: 'body',\n }),\n right: compiler.objectExpression({\n multiLine: true,\n obj: [\n {\n assertion: 'any',\n spread: 'queryKey[0].body',\n },\n {\n assertion: 'any',\n spread: 'page.body',\n },\n ],\n }),\n }),\n }),\n ],\n }),\n }),\n compiler.ifStatement({\n expression: compiler.propertyAccessExpression({\n expression: compiler.identifier({\n text: 'page',\n }),\n name: compiler.identifier({ text: 'headers' }),\n }),\n thenStatement: compiler.block({\n statements: [\n compiler.expressionToStatement({\n expression: compiler.binaryExpression({\n left: compiler.propertyAccessExpression({\n expression: 'params',\n name: 'headers',\n }),\n right: compiler.objectExpression({\n multiLine: true,\n obj: [\n {\n spread: 'queryKey[0].headers',\n },\n {\n spread: 'page.headers',\n },\n ],\n }),\n }),\n }),\n ],\n }),\n }),\n compiler.ifStatement({\n expression: compiler.propertyAccessExpression({\n expression: compiler.identifier({\n text: 'page',\n }),\n name: compiler.identifier({ text: 'path' }),\n }),\n thenStatement: compiler.block({\n statements: [\n compiler.expressionToStatement({\n expression: compiler.binaryExpression({\n left: compiler.propertyAccessExpression({\n expression: 'params',\n name: 'path',\n }),\n right: compiler.objectExpression({\n multiLine: true,\n obj: [\n {\n assertion: 'any',\n spread: 'queryKey[0].path',\n },\n {\n assertion: 'any',\n spread: 'page.path',\n },\n ],\n }),\n }),\n }),\n ],\n }),\n }),\n compiler.ifStatement({\n expression: compiler.propertyAccessExpression({\n expression: compiler.identifier({\n text: 'page',\n }),\n name: compiler.identifier({ text: 'query' }),\n }),\n thenStatement: compiler.block({\n statements: [\n compiler.expressionToStatement({\n expression: compiler.binaryExpression({\n left: compiler.propertyAccessExpression({\n expression: 'params',\n name: 'query',\n }),\n right: compiler.objectExpression({\n multiLine: true,\n obj: [\n {\n assertion: 'any',\n spread: 'queryKey[0].query',\n },\n {\n assertion: 'any',\n spread: 'page.query',\n },\n ],\n }),\n }),\n }),\n ],\n }),\n }),\n compiler.returnVariable({\n expression: compiler.asExpression({\n expression: compiler.asExpression({\n expression: compiler.identifier({ text: 'params' }),\n type: compiler.keywordTypeNode({ keyword: 'unknown' }),\n }),\n type: ts.factory.createTypeQueryNode(\n compiler.identifier({ text: 'page' }),\n ),\n }),\n }),\n ],\n types: [\n {\n extends: compiler.typeReferenceNode({\n typeName: compiler.identifier({\n text: `Pick<QueryKey<${clientApi.Options.name}>[0], 'body' | 'headers' | 'path' | 'query'>`,\n }),\n }),\n name: 'K',\n },\n ],\n }),\n name: createInfiniteParamsFn,\n });\n file.add(fn);\n};\n\nconst infiniteQueryOptionsFunctionIdentifier = ({\n context,\n operation,\n}: {\n context: IR.Context;\n operation: IR.OperationObject;\n}) =>\n `${serviceFunctionIdentifier({\n config: context.config,\n id: operation.id,\n operation,\n })}InfiniteOptions`;\n\nexport const createInfiniteQueryOptions = ({\n context,\n operation,\n plugin,\n queryFn,\n state,\n}: {\n context: IR.Context;\n operation: IR.OperationObject;\n plugin: PluginInstance;\n queryFn: string;\n state: PluginState;\n}) => {\n if (\n !plugin.infiniteQueryOptions ||\n !(['get', 'post'] as (typeof operation.method)[]).includes(operation.method)\n ) {\n return state;\n }\n\n const pagination = operationPagination({ context, operation });\n\n if (!pagination) {\n return state;\n }\n\n const file = context.file({ id: plugin.name })!;\n const isRequired = hasOperationDataRequired(operation);\n\n if (!state.hasInfiniteQueries) {\n state.hasInfiniteQueries = true;\n\n if (!state.hasCreateQueryKeyParamsFunction) {\n createQueryKeyType({ context, plugin });\n createQueryKeyFunction({ context, plugin });\n state.hasCreateQueryKeyParamsFunction = true;\n }\n\n if (!state.hasCreateInfiniteParamsFunction) {\n createInfiniteParamsFunction({ context, plugin });\n state.hasCreateInfiniteParamsFunction = true;\n }\n\n file.import({\n module: plugin.name,\n name: infiniteQueryOptionsFn,\n });\n\n state.typeInfiniteData = file.import({\n asType: true,\n module: plugin.name,\n name: 'InfiniteData',\n });\n }\n\n state.hasUsedQueryFn = true;\n\n const typeData = useTypeData({ context, operation, plugin });\n const typeError = useTypeError({ context, operation, plugin });\n const typeResponse = useTypeResponse({ context, operation, plugin });\n\n const typeQueryKey = `${queryKeyName}<${typeData}>`;\n const typePageObjectParam = `Pick<${typeQueryKey}[0], 'body' | 'headers' | 'path' | 'query'>`;\n // TODO: parser - this is a bit clunky, need to compile type to string because\n // `compiler.returnFunctionCall()` accepts only strings, should be cleaned up\n const type = schemaToType({\n context,\n plugin: context.config.plugins['@hey-api/typescript'] as Parameters<\n typeof schemaToType\n >[0]['plugin'],\n schema: pagination.schema,\n state: undefined,\n });\n const typePageParam = type\n ? `${tsNodeToString({\n node: type,\n unescape: true,\n })} | ${typePageObjectParam}`\n : `${typePageObjectParam}`;\n\n const node = queryKeyStatement({\n context,\n isInfinite: true,\n operation,\n plugin,\n typeQueryKey,\n });\n file.add(node);\n\n const infiniteQueryKeyName = queryKeyFunctionIdentifier({\n context,\n isInfinite: true,\n operation,\n });\n const identifierQueryKey = file.identifier({\n $ref: `#/queryKey/${infiniteQueryKeyName}`,\n namespace: 'value',\n });\n\n const statement = compiler.constVariable({\n // TODO: describe options, same as the actual function call\n comment: [],\n exportConst: true,\n expression: compiler.arrowFunction({\n parameters: [\n {\n isRequired,\n name: 'options',\n type: typeData,\n },\n ],\n statements: [\n compiler.returnFunctionCall({\n args: [\n compiler.objectExpression({\n comments: [\n {\n jsdoc: false,\n lines: ['@ts-ignore'],\n },\n ],\n obj: [\n {\n key: 'queryFn',\n value: compiler.arrowFunction({\n async: true,\n multiLine: true,\n parameters: [\n {\n destructure: [\n {\n name: 'pageParam',\n },\n {\n name: 'queryKey',\n },\n {\n name: 'signal',\n },\n ],\n },\n ],\n statements: [\n compiler.constVariable({\n comment: [\n {\n jsdoc: false,\n lines: ['@ts-ignore'],\n },\n ],\n expression: compiler.conditionalExpression({\n condition: compiler.binaryExpression({\n left: compiler.typeOfExpression({\n text: 'pageParam',\n }),\n operator: '===',\n right: compiler.ots.string('object'),\n }),\n whenFalse: compiler.objectExpression({\n multiLine: true,\n obj: [\n {\n key: pagination.in,\n value: compiler.objectExpression({\n multiLine: true,\n obj: [\n {\n key: pagination.name,\n value: compiler.identifier({\n text: 'pageParam',\n }),\n },\n ],\n }),\n },\n ],\n }),\n whenTrue: compiler.identifier({\n text: 'pageParam',\n }),\n }),\n name: 'page',\n typeName: typePageObjectParam,\n }),\n compiler.constVariable({\n expression: compiler.callExpression({\n functionName: createInfiniteParamsFn,\n parameters: ['queryKey', 'page'],\n }),\n name: 'params',\n }),\n compiler.constVariable({\n destructure: true,\n expression: compiler.awaitExpression({\n expression: compiler.callExpression({\n functionName: queryFn,\n parameters: [\n compiler.objectExpression({\n multiLine: true,\n obj: [\n {\n spread: 'options',\n },\n {\n spread: 'params',\n },\n {\n key: 'signal',\n shorthand: true,\n value: compiler.identifier({\n text: 'signal',\n }),\n },\n {\n key: 'throwOnError',\n value: true,\n },\n ],\n }),\n ],\n }),\n }),\n name: 'data',\n }),\n compiler.returnVariable({\n expression: 'data',\n }),\n ],\n }),\n },\n {\n key: 'queryKey',\n value: compiler.callExpression({\n functionName: identifierQueryKey.name || '',\n parameters: ['options'],\n }),\n },\n ],\n }),\n ],\n name: infiniteQueryOptionsFn,\n // TODO: better types syntax\n types: [\n typeResponse,\n typeError.name,\n `${typeof state.typeInfiniteData === 'string' ? state.typeInfiniteData : state.typeInfiniteData.name}<${typeResponse}>`,\n typeQueryKey,\n typePageParam,\n ],\n }),\n ],\n }),\n name: infiniteQueryOptionsFunctionIdentifier({\n context,\n operation,\n }),\n });\n file.add(statement);\n};\n","import { compiler } from '../../../compiler';\nimport type { IR } from '../../../ir/types';\nimport { serviceFunctionIdentifier } from '../../@hey-api/sdk/plugin-legacy';\nimport type { PluginInstance, PluginState } from './types';\nimport { useTypeData, useTypeError, useTypeResponse } from './useType';\n\nconst mutationOptionsFn = 'mutationOptions';\n\nconst mutationOptionsFunctionIdentifier = ({\n context,\n operation,\n}: {\n context: IR.Context;\n operation: IR.OperationObject;\n}) =>\n `${serviceFunctionIdentifier({\n config: context.config,\n id: operation.id,\n operation,\n })}Mutation`;\n\nexport const createMutationOptions = ({\n context,\n operation,\n plugin,\n queryFn,\n state,\n}: {\n context: IR.Context;\n operation: IR.OperationObject;\n plugin: PluginInstance;\n queryFn: string;\n state: PluginState;\n}) => {\n if (\n !plugin.mutationOptions ||\n !(\n ['delete', 'patch', 'post', 'put'] as (typeof operation.method)[]\n ).includes(operation.method)\n ) {\n return state;\n }\n\n const mutationsType =\n plugin.name === '@tanstack/angular-query-experimental' ||\n plugin.name === '@tanstack/svelte-query' ||\n plugin.name === '@tanstack/solid-query'\n ? 'MutationOptions'\n : 'UseMutationOptions';\n\n const file = context.file({ id: plugin.name })!;\n\n if (!state.hasMutations) {\n state.hasMutations = true;\n\n file.import({\n asType: true,\n module: plugin.name,\n name: mutationsType,\n });\n }\n\n state.hasUsedQueryFn = true;\n\n const typeData = useTypeData({ context, operation, plugin });\n const typeError = useTypeError({ context, operation, plugin });\n const typeResponse = useTypeResponse({ context, operation, plugin });\n\n const expression = compiler.arrowFunction({\n parameters: [\n {\n isRequired: false,\n name: 'options',\n type: `Partial<${typeData}>`,\n },\n ],\n statements: [\n compiler.constVariable({\n expression: compiler.objectExpression({\n obj: [\n {\n key: 'mutationFn',\n value: compiler.arrowFunction({\n async: true,\n multiLine: true,\n parameters: [\n {\n name: 'localOptions',\n },\n ],\n statements: [\n compiler.constVariable({\n destructure: true,\n expression: compiler.awaitExpression({\n expression: compiler.callExpression({\n functionName: queryFn,\n parameters: [\n compiler.objectExpression({\n multiLine: true,\n obj: [\n {\n spread: 'options',\n },\n {\n spread: 'localOptions',\n },\n {\n key: 'throwOnError',\n value: true,\n },\n ],\n }),\n ],\n }),\n }),\n name: 'data',\n }),\n compiler.returnVariable({\n expression: 'data',\n }),\n ],\n }),\n },\n ],\n }),\n name: mutationOptionsFn,\n // TODO: better types syntax\n typeName: `${mutationsType}<${typeResponse}, ${typeError.name}, ${typeData}>`,\n }),\n compiler.returnVariable({\n expression: mutationOptionsFn,\n }),\n ],\n });\n const statement = compiler.constVariable({\n // TODO: describe options, same as the actual function call\n comment: [],\n exportConst: true,\n expression,\n name: mutationOptionsFunctionIdentifier({ context, operation }),\n });\n file.add(statement);\n\n return state;\n};\n","import { compiler } from '../../../compiler';\nimport { hasOperationDataRequired } from '../../../ir/operation';\nimport type { IR } from '../../../ir/types';\nimport { serviceFunctionIdentifier } from '../../@hey-api/sdk/plugin-legacy';\nimport {\n createQueryKeyFunction,\n createQueryKeyType,\n queryKeyFunctionIdentifier,\n queryKeyStatement,\n} from './queryKey';\nimport type { PluginInstance, PluginState } from './types';\nimport { useTypeData } from './useType';\n\nconst queryOptionsFn = 'queryOptions';\n\nconst queryOptionsFunctionIdentifier = ({\n context,\n operation,\n}: {\n context: IR.Context;\n operation: IR.OperationObject;\n}) =>\n `${serviceFunctionIdentifier({\n config: context.config,\n id: operation.id,\n operation,\n })}Options`;\n\nexport const createQueryOptions = ({\n context,\n operation,\n plugin,\n queryFn,\n state,\n}: {\n context: IR.Context;\n operation: IR.OperationObject;\n plugin: PluginInstance;\n queryFn: string;\n state: PluginState;\n}) => {\n if (\n !plugin.queryOptions ||\n !(['get', 'post'] as (typeof operation.method)[]).includes(operation.method)\n ) {\n return state;\n }\n\n const file = context.file({ id: plugin.name })!;\n const isRequired = hasOperationDataRequired(operation);\n\n if (!state.hasQueries) {\n state.hasQueries = true;\n\n if (!state.hasCreateQueryKeyParamsFunction) {\n createQueryKeyType({ context, plugin });\n createQueryKeyFunction({ context, plugin });\n state.hasCreateQueryKeyParamsFunction = true;\n }\n\n file.import({\n module: plugin.name,\n name: queryOptionsFn,\n });\n }\n\n state.hasUsedQueryFn = true;\n\n const node = queryKeyStatement({\n context,\n isInfinite: false,\n operation,\n plugin,\n });\n file.add(node);\n\n const typeData = useTypeData({ context, operation, plugin });\n\n const queryKeyName = queryKeyFunctionIdentifier({\n context,\n isInfinite: false,\n operation,\n });\n const identifierQueryKey = file.identifier({\n $ref: `#/queryKey/${queryKeyName}`,\n namespace: 'value',\n });\n\n const statement = compiler.constVariable({\n // TODO: describe options, same as the actual function call\n comment: [],\n exportConst: true,\n expression: compiler.arrowFunction({\n parameters: [\n {\n isRequired,\n name: 'options',\n type: typeData,\n },\n ],\n statements: [\n compiler.returnFunctionCall({\n args: [\n compiler.objectExpression({\n obj: [\n {\n key: 'queryFn',\n value: compiler.arrowFunction({\n async: true,\n multiLine: true,\n parameters: [\n {\n destructure: [\n {\n name: 'queryKey',\n },\n {\n name: 'signal',\n },\n ],\n },\n ],\n statements: [\n compiler.constVariable({\n destructure: true,\n expression: compiler.awaitExpression({\n expression: compiler.callExpression({\n functionName: queryFn,\n parameters: [\n compiler.objectExpression({\n multiLine: true,\n obj: [\n {\n spread: 'options',\n },\n {\n spread: 'queryKey[0]',\n },\n {\n key: 'signal',\n shorthand: true,\n value: compiler.identifier({\n text: 'signal',\n }),\n },\n {\n key: 'throwOnError',\n value: true,\n },\n ],\n }),\n ],\n }),\n }),\n name: 'data',\n }),\n compiler.returnVariable({\n expression: 'data',\n }),\n ],\n }),\n },\n {\n key: 'queryKey',\n value: compiler.callExpression({\n functionName: identifierQueryKey.name || '',\n parameters: ['options'],\n }),\n },\n ],\n }),\n ],\n name: queryOptionsFn,\n }),\n ],\n }),\n name: queryOptionsFunctionIdentifier({ context, operation }),\n // TODO: add type error\n // TODO: AxiosError<PutSubmissionMetaError>\n });\n file.add(statement);\n\n return state;\n};\n","import { clientApi } from '../../../generate/client';\nimport { getServiceName } from '../../../utils/postprocess';\nimport { transformServiceName } from '../../../utils/transform';\nimport { clientId } from '../../@hey-api/client-core/utils';\nimport { sdkId } from '../../@hey-api/sdk/plugin';\nimport { serviceFunctionIdentifier } from '../../@hey-api/sdk/plugin-legacy';\nimport { createInfiniteQueryOptions } from './infiniteQueryOptions';\nimport { createMutationOptions } from './mutationOptions';\nimport { createQueryOptions } from './queryOptions';\nimport type { PluginHandler, PluginState } from './types';\n\nexport const handler: PluginHandler = ({ context, plugin }) => {\n const file = context.createFile({\n exportFromIndex: plugin.exportFromIndex,\n id: plugin.name,\n path: plugin.output,\n });\n\n const state: PluginState = {\n hasCreateInfiniteParamsFunction: false,\n hasCreateQueryKeyParamsFunction: false,\n hasInfiniteQueries: false,\n hasMutations: false,\n hasQueries: false,\n hasUsedQueryFn: false,\n typeInfiniteData: undefined!,\n };\n\n context.subscribe('before', () => {\n file.import({\n ...clientApi.Options,\n module: file.relativePathToFile({ context, id: sdkId }),\n });\n });\n\n context.subscribe('operation', ({ operation }) => {\n state.hasUsedQueryFn = false;\n\n const queryFn = [\n context.config.plugins['@hey-api/sdk']?.asClass &&\n transformServiceName({\n config: context.config,\n name: getServiceName(operation.tags?.[0] || 'default'),\n }),\n serviceFunctionIdentifier({\n config: context.config,\n handleIllegal: !context.config.plugins['@hey-api/sdk']?.asClass,\n id: operation.id,\n operation,\n }),\n ]\n .filter(Boolean)\n .join('.');\n\n createQueryOptions({\n context,\n operation,\n plugin,\n queryFn,\n state,\n });\n\n createInfiniteQueryOptions({\n context,\n operation,\n plugin,\n queryFn,\n state,\n });\n\n createMutationOptions({\n context,\n operation,\n plugin,\n queryFn,\n state,\n });\n\n if (state.hasUsedQueryFn) {\n file.import({\n module: file.relativePathToFile({ context, id: sdkId }),\n name: queryFn.split('.')[0]!,\n });\n }\n });\n\n context.subscribe('after', () => {\n if (state.hasQueries || state.hasInfiniteQueries) {\n file.import({\n alias: '_heyApiClient',\n module: file.relativePathToFile({ context, id: clientId }),\n name: 'client',\n });\n }\n });\n};\n","import ts from 'typescript';\n\nimport { compiler, type Property } from '../../../compiler';\nimport type { ImportExportItem } from '../../../compiler/module';\nimport type { ImportExportItemObject } from '../../../compiler/utils';\nimport { clientApi, clientModulePath } from '../../../generate/client';\nimport { relativeModulePath } from '../../../generate/utils';\nimport { getPaginationKeywordsRegExp } from '../../../ir/pagination';\nimport type { IR } from '../../../ir/types';\nimport { isOperationParameterRequired } from '../../../openApi';\nimport { getOperationKey } from '../../../openApi/common/parser/operation';\nimport type {\n Client,\n Method,\n Model,\n Operation,\n OperationParameter,\n} from '../../../types/client';\nimport type { Config } from '../../../types/config';\nimport type { Files } from '../../../types/utils';\nimport { getConfig, isLegacyClient } from '../../../utils/config';\nimport { transformServiceName } from '../../../utils/transform';\nimport {\n getClientBaseUrlKey,\n getClientPlugin,\n} from '../../@hey-api/client-core/utils';\nimport {\n generateImport,\n operationDataTypeName,\n operationErrorTypeName,\n operationOptionsLegacyParserType,\n operationResponseTypeName,\n serviceFunctionIdentifier,\n} from '../../@hey-api/sdk/plugin-legacy';\nimport type { Plugin } from '../../types';\nimport type { Config as AngularQueryConfig } from '../angular-query-experimental';\nimport type { Config as ReactQueryConfig } from '../react-query';\nimport type { Config as SolidQueryConfig } from '../solid-query';\nimport type { Config as SvelteQueryConfig } from '../svelte-query';\nimport type { Config as VueQueryConfig } from '../vue-query';\n\nconst toInfiniteQueryOptionsName = (operation: Operation) =>\n `${serviceFunctionIdentifier({\n config: getConfig(),\n id: operation.name,\n operation,\n })}InfiniteOptions`;\n\nconst toMutationOptionsName = (operation: Operation) =>\n `${serviceFunctionIdentifier({\n config: getConfig(),\n id: operation.name,\n operation,\n })}Mutation`;\n\nconst toQueryOptionsName = ({\n config,\n id,\n operation,\n}: {\n config: Config;\n id: string;\n operation: IR.OperationObject | Operation;\n}) =>\n `${serviceFunctionIdentifier({\n config,\n id,\n operation,\n })}Options`;\n\nconst toQueryKeyName = ({\n config,\n id,\n isInfinite,\n operation,\n}: {\n config: Config;\n id: string;\n isInfinite?: boolean;\n operation: IR.OperationObject | Operation;\n}) =>\n `${serviceFunctionIdentifier({\n config,\n id,\n operation,\n })}${isInfinite ? 'Infinite' : ''}QueryKey`;\n\nconst getPaginationIn = (parameter: OperationParameter) => {\n switch (parameter.in) {\n case 'formData':\n return 'body';\n case 'header':\n return 'headers';\n default:\n return parameter.in;\n }\n};\n\nconst createInfiniteParamsFn = 'createInfiniteParams';\nconst createQueryKeyFn = 'createQueryKey';\nconst infiniteQueryOptionsFn = 'infiniteQueryOptions';\nconst mutationOptionsFn = 'mutationOptions';\nconst queryKeyName = 'QueryKey';\nconst queryOptionsFn = 'queryOptions';\nconst TOptionsType = 'TOptions';\n\nconst createInfiniteParamsFunction = ({\n file,\n}: {\n file: Files[keyof Files];\n}) => {\n const fn = compiler.constVariable({\n expression: compiler.arrowFunction({\n multiLine: true,\n parameters: [\n {\n name: 'queryKey',\n type: compiler.typeNode(\n `QueryKey<${clientApi.OptionsLegacyParser.name}>`,\n ),\n },\n {\n name: 'page',\n type: compiler.typeNode('K'),\n },\n ],\n statements: [\n compiler.constVariable({\n expression: compiler.identifier({\n text: 'queryKey[0]',\n }),\n name: 'params',\n }),\n compiler.ifStatement({\n expression: compiler.propertyAccessExpression({\n expression: compiler.identifier({\n text: 'page',\n }),\n name: compiler.identifier({ text: 'body' }),\n }),\n thenStatement: compiler.block({\n statements: [\n compiler.expressionToStatement({\n expression: compiler.binaryExpression({\n left: compiler.propertyAccessExpression({\n expression: 'params',\n name: 'body',\n }),\n right: compiler.objectExpression({\n multiLine: true,\n obj: [\n {\n assertion: 'any',\n spread: 'queryKey[0].body',\n },\n {\n assertion: 'any',\n spread: 'page.body',\n },\n ],\n }),\n }),\n }),\n ],\n }),\n }),\n compiler.ifStatement({\n expression: compiler.propertyAccessExpression({\n expression: compiler.identifier({\n text: 'page',\n }),\n name: compiler.identifier({ text: 'headers' }),\n }),\n thenStatement: compiler.block({\n statements: [\n compiler.expressionToStatement({\n expression: compiler.binaryExpression({\n left: compiler.propertyAccessExpression({\n expression: 'params',\n name: 'headers',\n }),\n right: compiler.objectExpression({\n multiLine: true,\n obj: [\n {\n spread: 'queryKey[0].headers',\n },\n {\n spread: 'page.headers',\n },\n ],\n }),\n }),\n }),\n ],\n }),\n }),\n compiler.ifStatement({\n expression: compiler.propertyAccessExpression({\n expression: compiler.identifier({\n text: 'page',\n }),\n name: compiler.identifier({ text: 'path' }),\n }),\n thenStatement: compiler.block({\n statements: [\n compiler.expressionToStatement({\n expression: compiler.binaryExpression({\n left: compiler.propertyAccessExpression({\n expression: 'params',\n name: 'path',\n }),\n right: compiler.objectExpression({\n multiLine: true,\n obj: [\n {\n spread: 'queryKey[0].path',\n },\n {\n spread: 'page.path',\n },\n ],\n }),\n }),\n }),\n ],\n }),\n }),\n compiler.ifStatement({\n expression: compiler.propertyAccessExpression({\n expression: compiler.identifier({\n text: 'page',\n }),\n name: compiler.identifier({ text: 'query' }),\n }),\n thenStatement: compiler.block({\n statements: [\n compiler.expressionToStatement({\n expression: compiler.binaryExpression({\n left: compiler.propertyAccessExpression({\n expression: 'params',\n name: 'query',\n }),\n right: compiler.objectExpression({\n multiLine: true,\n obj: [\n {\n spread: 'queryKey[0].query',\n },\n {\n spread: 'page.query',\n },\n ],\n }),\n }),\n }),\n ],\n }),\n }),\n compiler.returnVariable({\n expression: ts.factory.createAsExpression(\n ts.factory.createAsExpression(\n compiler.identifier({ text: 'params' }),\n ts.factory.createKeywordTypeNode(ts.SyntaxKind.UnknownKeyword),\n ),\n ts.factory.createTypeQueryNode(\n compiler.identifier({ text: 'page' }),\n ),\n ),\n }),\n ],\n types: [\n {\n extends: compiler.typeReferenceNode({\n typeName: compiler.identifier({\n text: `Pick<QueryKey<${clientApi.OptionsLegacyParser.name}>[0], 'body' | 'headers' | 'path' | 'query'>`,\n }),\n }),\n name: 'K',\n },\n ],\n }),\n name: createInfiniteParamsFn,\n });\n file.add(fn);\n};\n\nconst createQueryKeyFunction = ({ file }: { file: Files[keyof Files] }) => {\n const returnType = compiler.indexedAccessTypeNode({\n indexType: compiler.typeNode(0),\n objectType: compiler.typeNode(queryKeyName, [\n compiler.typeNode(TOptionsType),\n ]),\n });\n\n const infiniteIdentifier = compiler.identifier({ text: 'infinite' });\n\n const fn = compiler.constVariable({\n expression: compiler.arrowFunction({\n multiLine: true,\n parameters: [\n {\n name: 'id',\n type: compiler.typeNode('string'),\n },\n {\n isRequired: false,\n name: 'options',\n type: compiler.typeNode(TOptionsType),\n },\n {\n isRequired: false,\n name: 'infinite',\n type: compiler.typeNode('boolean'),\n },\n ],\n returnType,\n statements: [\n compiler.constVariable({\n assertion: returnType,\n expression: compiler.objectExpression({\n multiLine: false,\n obj: [\n {\n key: '_id',\n value: compiler.identifier({ text: 'id' }),\n },\n {\n key: getClientBaseUrlKey(getConfig()),\n value: compiler.identifier({\n text: `(options?.client ?? _heyApiClient).getConfig().${getClientBaseUrlKey(getConfig())}`,\n }),\n },\n ],\n }),\n name: 'params',\n typeName: returnType,\n }),\n compiler.ifStatement({\n expression: infiniteIdentifier,\n thenStatement: compiler.block({\n statements: [\n compiler.expressionToStatement({\n expression: compiler.binaryExpression({\n left: compiler.propertyAccessExpression({\n expression: 'params',\n name: '_infinite',\n }),\n right: infiniteIdentifier,\n }),\n }),\n ],\n }),\n }),\n compiler.ifStatement({\n expression: compiler.propertyAccessExpression({\n expression: compiler.identifier({ text: 'options' }),\n isOptional: true,\n name: compiler.identifier({ text: 'body' }),\n }),\n thenStatement: compiler.block({\n statements: [\n compiler.expressionToStatement({\n expression: compiler.binaryExpression({\n left: compiler.propertyAccessExpression({\n expression: 'params',\n name: 'body',\n }),\n right: compiler.propertyAccessExpression({\n expression: 'options',\n name: 'body',\n }),\n }),\n }),\n ],\n }),\n }),\n compiler.ifStatement({\n expression: compiler.propertyAccessExpression({\n expression: compiler.identifier({ text: 'options' }),\n isOptional: true,\n name: compiler.identifier({ text: 'headers' }),\n }),\n thenStatement: compiler.block({\n statements: [\n compiler.expressionToStatement({\n expression: compiler.binaryExpression({\n left: compiler.propertyAccessExpression({\n expression: 'params',\n name: 'headers',\n }),\n right: compiler.propertyAccessExpression({\n expression: 'options',\n name: 'headers',\n }),\n }),\n }),\n ],\n }),\n }),\n compiler.ifStatement({\n expression: compiler.propertyAccessExpression({\n expression: compiler.identifier({ text: 'options' }),\n isOptional: true,\n name: compiler.identifier({ text: 'path' }),\n }),\n thenStatement: compiler.block({\n statements: [\n compiler.expressionToStatement({\n expression: compiler.binaryExpression({\n left: compiler.propertyAccessExpression({\n expression: 'params',\n name: 'path',\n }),\n right: compiler.propertyAccessExpression({\n expression: 'options',\n name: 'path',\n }),\n }),\n }),\n ],\n }),\n }),\n compiler.ifStatement({\n expression: compiler.propertyAccessExpression({\n expression: compiler.identifier({ text: 'options' }),\n isOptional: true,\n name: compiler.identifier({ text: 'query' }),\n }),\n thenStatement: compiler.block({\n statements: [\n compiler.expressionToStatement({\n expression: compiler.binaryExpression({\n left: compiler.propertyAccessExpression({\n expression: 'params',\n name: 'query',\n }),\n right: compiler.propertyAccessExpression({\n expression: 'options',\n name: 'query',\n }),\n }),\n }),\n ],\n }),\n }),\n compiler.returnVariable({\n expression: 'params',\n }),\n ],\n types: [\n {\n extends: compiler.typeReferenceNode({\n typeName: compiler.identifier({\n text: clientApi.OptionsLegacyParser.name,\n }),\n }),\n name: TOptionsType,\n },\n ],\n }),\n name: createQueryKeyFn,\n });\n file.add(fn);\n};\n\nconst createQueryKeyType = ({ file }: { file: Files[keyof Files] }) => {\n const properties: Property[] = [\n {\n name: '_id',\n type: compiler.keywordTypeNode({\n keyword: 'string',\n }),\n },\n {\n isRequired: false,\n name: '_infinite',\n type: compiler.keywordTypeNode({\n keyword: 'boolean',\n }),\n },\n ];\n\n const queryKeyType = compiler.typeAliasDeclaration({\n name: queryKeyName,\n type: compiler.typeTupleNode({\n types: [\n compiler.typeIntersectionNode({\n types: [\n compiler.typeReferenceNode({\n typeName: `Pick<${TOptionsType}, '${getClientBaseUrlKey(getConfig())}' | 'body' | 'headers' | 'path' | 'query'>`,\n }),\n compiler.typeInterfaceNode({\n properties,\n useLegacyResolution: true,\n }),\n ],\n }),\n ],\n }),\n typeParameters: [\n {\n extends: compiler.typeReferenceNode({\n typeName: compiler.identifier({\n text: clientApi.OptionsLegacyParser.name,\n }),\n }),\n name: TOptionsType,\n },\n ],\n });\n file.add(queryKeyType);\n};\n\nconst createTypeData = ({\n client,\n file,\n operation,\n typesModulePath,\n}: {\n client: Client;\n file: Files[keyof Files];\n operation: Operation;\n typesModulePath: string;\n}) => {\n const { name: nameTypeData } = generateImport({\n client,\n meta: operation.parameters.length\n ? {\n // TODO: this should be exact ref to operation for consistency,\n // but name should work too as operation ID is unique\n $ref: operation.name,\n name: operation.name,\n }\n : undefined,\n nameTransformer: operationDataTypeName,\n onImport: (name) => {\n file.import({\n asType: true,\n module: typesModulePath,\n name,\n });\n },\n });\n\n const typeData = operationOptionsLegacyParserType({\n importedType: nameTypeData,\n });\n\n return { typeData };\n};\n\nconst createTypeError = ({\n client,\n file,\n operation,\n pluginName,\n typesModulePath,\n}: {\n client: Client;\n file: Files[keyof Files];\n operation: Operation;\n pluginName: string;\n typesModulePath: string;\n}) => {\n const config = getConfig();\n\n const { name: nameTypeError } = generateImport({\n client,\n meta: {\n // TODO: this should be exact ref to operation for consistency,\n // but name should work too as operation ID is unique\n $ref: operation.name,\n name: operation.name,\n },\n nameTransformer: operationErrorTypeName,\n onImport: (name) => {\n file.import({\n asType: true,\n module: typesModulePath,\n name,\n });\n },\n });\n\n let typeError: ImportExportItemObject = {\n asType: true,\n name: nameTypeError,\n };\n if (!typeError.name) {\n typeError = file.import({\n asType: true,\n module: pluginName,\n name: 'DefaultError',\n });\n }\n\n const clientPlugin = getClientPlugin(config);\n if (clientPlugin.name === '@hey-api/client-axios') {\n const axiosError = file.import({\n asType: true,\n module: 'axios',\n name: 'AxiosError',\n });\n typeError = {\n ...axiosError,\n name: `${axiosError.name}<${typeError.name}>`,\n };\n }\n\n return { typeError };\n};\n\nconst createTypeResponse = ({\n client,\n file,\n operation,\n typesModulePath,\n}: {\n client: Client;\n file: Files[keyof Files];\n operation: Operation;\n typesModulePath: string;\n}) => {\n const { name: nameTypeResponse } = generateImport({\n client,\n meta: {\n // TODO: this should be exact ref to operation for consistency,\n // but name should work too as operation ID is unique\n $ref: operation.name,\n name: operation.name,\n },\n nameTransformer: operationResponseTypeName,\n onImport: (imported) => {\n file.import({\n asType: true,\n module: typesModulePath,\n name: imported,\n });\n },\n });\n\n const typeResponse = nameTypeResponse || 'void';\n\n return { typeResponse };\n};\n\nconst createQueryKeyLiteral = ({\n id,\n isInfinite,\n}: {\n id: string;\n isInfinite?: boolean;\n}) => {\n const queryKeyLiteral = compiler.arrayLiteralExpression({\n elements: [\n compiler.callExpression({\n functionName: createQueryKeyFn,\n parameters: [\n compiler.ots.string(id),\n 'options',\n isInfinite ? compiler.ots.boolean(true) : undefined,\n ],\n }),\n ],\n multiLine: false,\n });\n return queryKeyLiteral;\n};\n\nexport const handlerLegacy: Plugin.LegacyHandler<\n | ReactQueryConfig\n | AngularQueryConfig\n | SolidQueryConfig\n | SvelteQueryConfig\n | VueQueryConfig\n> = ({ client, files, plugin }) => {\n const config = getConfig();\n\n if (isLegacyClient(config)) {\n throw new Error('🚫 TanStack Query plugin does not support legacy clients');\n }\n\n const file = files[plugin.name]!;\n\n file.import({\n ...clientApi.OptionsLegacyParser,\n module: clientModulePath({ config, sourceOutput: plugin.output }),\n });\n\n const typesModulePath = relativeModulePath({\n moduleOutput: files.types!.nameWithoutExtension(),\n sourceOutput: plugin.output,\n });\n\n const mutationsType =\n plugin.name === '@tanstack/angular-query-experimental' ||\n plugin.name === '@tanstack/svelte-query' ||\n plugin.name === '@tanstack/solid-query'\n ? 'MutationOptions'\n : 'UseMutationOptions';\n\n let typeInfiniteData!: ImportExportItem;\n let hasCreateInfiniteParamsFunction = false;\n let hasCreateQueryKeyParamsFunction = false;\n let hasInfiniteQueries = false;\n let hasMutations = false;\n let hasQueries = false;\n\n const processedOperations = new Map<string, boolean>();\n\n for (const service of client.services) {\n for (const operation of service.operations) {\n // track processed operations to avoid creating duplicates\n const operationKey = getOperationKey(operation);\n if (processedOperations.has(operationKey)) {\n continue;\n }\n processedOperations.set(operationKey, true);\n\n const queryFn = [\n config.plugins['@hey-api/sdk']?.asClass &&\n transformServiceName({\n config,\n name: service.name,\n }),\n serviceFunctionIdentifier({\n config,\n handleIllegal: !config.plugins['@hey-api/sdk']?.asClass,\n id: operation.name,\n operation,\n }),\n ]\n .filter(Boolean)\n .join('.');\n let hasUsedQueryFn = false;\n\n // queries\n if (\n plugin.queryOptions &&\n (['GET', 'POST'] as ReadonlyArray<Method>).includes(operation.method)\n ) {\n if (!hasQueries) {\n hasQueries = true;\n\n if (!hasCreateQueryKeyParamsFunction) {\n createQueryKeyType({ file });\n createQueryKeyFunction({ file });\n hasCreateQueryKeyParamsFunction = true;\n }\n\n file.import({\n module: plugin.name,\n name: queryOptionsFn,\n });\n }\n\n hasUsedQueryFn = true;\n\n const { typeData } = createTypeData({\n client,\n file,\n operation,\n typesModulePath,\n });\n\n const isRequired = isOperationParameterRequired(operation.parameters);\n\n const queryKeyStatement = compiler.constVariable({\n exportConst: true,\n expression: compiler.arrowFunction({\n parameters: [\n {\n isRequired,\n name: 'options',\n type: typeData,\n },\n ],\n statements: createQueryKeyLiteral({\n id: operation.name,\n }),\n }),\n name: toQueryKeyName({\n config,\n id: operation.name,\n operation,\n }),\n });\n file.add(queryKeyStatement);\n\n const statement = compiler.constVariable({\n // TODO: describe options, same as the actual function call\n comment: [],\n exportConst: true,\n expression: compiler.arrowFunction({\n parameters: [\n {\n isRequired,\n name: 'options',\n type: typeData,\n },\n ],\n statements: [\n compiler.returnFunctionCall({\n args: [\n compiler.objectExpression({\n obj: [\n {\n key: 'queryFn',\n value: compiler.arrowFunction({\n async: true,\n multiLine: true,\n parameters: [\n {\n destructure: [\n {\n name: 'queryKey',\n },\n {\n name: 'signal',\n },\n ],\n },\n ],\n statements: [\n compiler.constVariable({\n destructure: true,\n expression: compiler.awaitExpression({\n expression: compiler.callExpression({\n functionName: queryFn,\n parameters: [\n compiler.objectExpression({\n multiLine: true,\n obj: [\n {\n spread: 'options',\n },\n {\n spread: 'queryKey[0]',\n },\n {\n key: 'signal',\n shorthand: true,\n value: compiler.identifier({\n text: 'signal',\n }),\n },\n {\n key: 'throwOnError',\n value: true,\n },\n ],\n }),\n ],\n }),\n }),\n name: 'data',\n }),\n compiler.returnVariable({\n expression: 'data',\n }),\n ],\n }),\n },\n {\n key: 'queryKey',\n value: compiler.callExpression({\n functionName: toQueryKeyName({\n config,\n id: operation.name,\n operation,\n }),\n parameters: ['options'],\n }),\n },\n ],\n }),\n ],\n name: queryOptionsFn,\n }),\n ],\n }),\n name: toQueryOptionsName({\n config,\n id: operation.name,\n operation,\n }),\n // TODO: add type error\n // TODO: AxiosError<PutSubmissionMetaError>\n });\n file.add(statement);\n }\n\n // infinite queries\n if (\n plugin.infiniteQueryOptions &&\n (['GET', 'POST'] as ReadonlyArray<Method>).includes(operation.method)\n ) {\n // the actual pagination field might be nested inside parameter, e.g. body\n let paginationField!: Model | OperationParameter;\n\n const paginationParameter = operation.parameters.find((parameter) => {\n const paginationRegExp = getPaginationKeywordsRegExp(\n config.input.pagination,\n );\n if (paginationRegExp.test(parameter.name)) {\n paginationField = parameter;\n return true;\n }\n\n if (parameter.in !== 'body') {\n return;\n }\n\n if (parameter.export === 'reference') {\n const ref = parameter.$refs[0];\n const refModel = client.models.find(\n (model) => model.meta?.$ref === ref,\n );\n return refModel?.properties.find((property) => {\n const paginationRegExp = getPaginationKeywordsRegExp(\n config.input.pagination,\n );\n if (paginationRegExp.test(property.name)) {\n paginationField = property;\n return true;\n }\n });\n }\n\n return parameter.properties.find((property) => {\n const paginationRegExp = getPaginationKeywordsRegExp(\n config.input.pagination,\n );\n if (paginationRegExp.test(property.name)) {\n paginationField = property;\n return true;\n }\n });\n });\n\n if (paginationParameter && paginationField) {\n if (!hasInfiniteQueries) {\n hasInfiniteQueries = true;\n\n if (!hasCreateQueryKeyParamsFunction) {\n createQueryKeyType({ file });\n createQueryKeyFunction({ file });\n hasCreateQueryKeyParamsFunction = true;\n }\n\n if (!hasCreateInfiniteParamsFunction) {\n createInfiniteParamsFunction({ file });\n hasCreateInfiniteParamsFunction = true;\n }\n\n file.import({\n module: plugin.name,\n name: infiniteQueryOptionsFn,\n });\n\n typeInfiniteData = file.import({\n asType: true,\n module: plugin.name,\n name: 'InfiniteData',\n });\n }\n\n hasUsedQueryFn = true;\n\n const { typeData } = createTypeData({\n client,\n file,\n operation,\n typesModulePath,\n });\n const { typeError } = createTypeError({\n client,\n file,\n operation,\n pluginName: plugin.name,\n typesModulePath,\n });\n const { typeResponse } = createTypeResponse({\n client,\n file,\n operation,\n typesModulePath,\n });\n\n const isRequired = isOperationParameterRequired(operation.parameters);\n\n const typeQueryKey = `${queryKeyName}<${typeData}>`;\n const typePageObjectParam = `Pick<${typeQueryKey}[0], 'body' | 'headers' | 'path' | 'query'>`;\n const typePageParam = `${paginationField.base} | ${typePageObjectParam}`;\n\n const queryKeyStatement = compiler.constVariable({\n exportConst: true,\n expression: compiler.arrowFunction({\n parameters: [\n {\n isRequired,\n name: 'options',\n type: typeData,\n },\n ],\n returnType: typeQueryKey,\n statements: createQueryKeyLiteral({\n id: operation.name,\n isInfinite: true,\n }),\n }),\n name: toQueryKeyName({\n config,\n id: operation.name,\n isInfinite: true,\n operation,\n }),\n });\n file.add(queryKeyStatement);\n\n const statement = compiler.constVariable({\n // TODO: describe options, same as the actual function call\n comment: [],\n exportConst: true,\n expression: compiler.arrowFunction({\n parameters: [\n {\n isRequired,\n name: 'options',\n type: typeData,\n },\n ],\n statements: [\n compiler.returnFunctionCall({\n args: [\n compiler.objectExpression({\n comments: [\n {\n jsdoc: false,\n lines: ['@ts-ignore'],\n },\n ],\n obj: [\n {\n key: 'queryFn',\n value: compiler.arrowFunction({\n async: true,\n multiLine: true,\n parameters: [\n {\n destructure: [\n {\n name: 'pageParam',\n },\n {\n name: 'queryKey',\n },\n {\n name: 'signal',\n },\n ],\n },\n ],\n statements: [\n compiler.constVariable({\n comment: [\n {\n jsdoc: false,\n lines: ['@ts-ignore'],\n },\n ],\n expression: compiler.conditionalExpression({\n condition: compiler.binaryExpression({\n left: compiler.typeOfExpression({\n text: 'pageParam',\n }),\n operator: '===',\n right: compiler.ots.string('object'),\n }),\n whenFalse: compiler.objectExpression({\n multiLine: true,\n obj: [\n {\n key: getPaginationIn(\n paginationParameter,\n ),\n value: compiler.objectExpression({\n multiLine: true,\n obj: [\n {\n key: paginationField.name,\n value: compiler.identifier({\n text: 'pageParam',\n }),\n },\n ],\n }),\n },\n ],\n }),\n whenTrue: compiler.identifier({\n text: 'pageParam',\n }),\n }),\n name: 'page',\n typeName: typePageObjectParam,\n }),\n compiler.constVariable({\n expression: compiler.callExpression({\n functionName: 'createInfiniteParams',\n parameters: ['queryKey', 'page'],\n }),\n name: 'params',\n }),\n compiler.constVariable({\n destructure: true,\n expression: compiler.awaitExpression({\n expression: compiler.callExpression({\n functionName: queryFn,\n parameters: [\n compiler.objectExpression({\n multiLine: true,\n obj: [\n {\n spread: 'options',\n },\n {\n spread: 'params',\n },\n {\n key: 'signal',\n shorthand: true,\n value: compiler.identifier({\n text: 'signal',\n }),\n },\n {\n key: 'throwOnError',\n value: true,\n },\n ],\n }),\n ],\n }),\n }),\n name: 'data',\n }),\n compiler.returnVariable({\n expression: 'data',\n }),\n ],\n }),\n },\n {\n key: 'queryKey',\n value: compiler.callExpression({\n functionName: toQueryKeyName({\n config,\n id: operation.name,\n isInfinite: true,\n operation,\n }),\n parameters: ['options'],\n }),\n },\n ],\n }),\n ],\n name: infiniteQueryOptionsFn,\n // TODO: better types syntax\n types: [\n typeResponse,\n typeError.name,\n `${typeof typeInfiniteData === 'string' ? typeInfiniteData : typeInfiniteData.name}<${typeResponse}>`,\n typeQueryKey,\n typePageParam,\n ],\n }),\n ],\n }),\n name: toInfiniteQueryOptionsName(operation),\n });\n file.add(statement);\n }\n }\n\n // mutations\n if (\n plugin.mutationOptions &&\n (['DELETE', 'PATCH', 'POST', 'PUT'] as ReadonlyArray<Method>).includes(\n operation.method,\n )\n ) {\n if (!hasMutations) {\n hasMutations = true;\n\n file.import({\n asType: true,\n module: plugin.name,\n name: mutationsType,\n });\n }\n\n hasUsedQueryFn = true;\n\n const { typeData } = createTypeData({\n client,\n file,\n operation,\n typesModulePath,\n });\n const { typeError } = createTypeError({\n client,\n file,\n operation,\n pluginName: plugin.name,\n typesModulePath,\n });\n const { typeResponse } = createTypeResponse({\n client,\n file,\n operation,\n typesModulePath,\n });\n\n const expression = compiler.arrowFunction({\n parameters: [\n {\n isRequired: false,\n name: 'options',\n type: `Partial<${typeData}>`,\n },\n ],\n statements: [\n compiler.constVariable({\n expression: compiler.objectExpression({\n obj: [\n {\n key: 'mutationFn',\n value: compiler.arrowFunction({\n async: true,\n multiLine: true,\n parameters: [\n {\n name: 'localOptions',\n },\n ],\n statements: [\n compiler.constVariable({\n destructure: true,\n expression: compiler.awaitExpression({\n expression: compiler.callExpression({\n functionName: queryFn,\n parameters: [\n compiler.objectExpression({\n multiLine: true,\n obj: [\n {\n spread: 'options',\n },\n {\n spread: 'localOptions',\n },\n {\n key: 'throwOnError',\n value: true,\n },\n ],\n }),\n ],\n }),\n }),\n name: 'data',\n }),\n compiler.returnVariable({\n expression: 'data',\n }),\n ],\n }),\n },\n ],\n }),\n name: mutationOptionsFn,\n // TODO: better types syntax\n typeName: `${mutationsType}<${typeResponse}, ${typeError.name}, ${typeData}>`,\n }),\n compiler.returnVariable({\n expression: mutationOptionsFn,\n }),\n ],\n });\n const statement = compiler.constVariable({\n // TODO: describe options, same as the actual function call\n comment: [],\n exportConst: true,\n expression,\n name: toMutationOptionsName(operation),\n });\n file.add(statement);\n }\n\n if (hasQueries || hasInfiniteQueries) {\n file.import({\n alias: '_heyApiClient',\n module: relativeModulePath({\n moduleOutput: files.client!.nameWithoutExtension(),\n sourceOutput: plugin.output,\n }),\n name: 'client',\n });\n }\n\n if (hasUsedQueryFn) {\n file.import({\n module: relativeModulePath({\n moduleOutput: files.sdk!.nameWithoutExtension(),\n sourceOutput: plugin.output,\n }),\n name: queryFn.split('.')[0]!,\n });\n }\n }\n }\n};\n","import type { Plugin } from '../../types';\nimport { handler } from '../query-core/plugin';\nimport { handlerLegacy } from '../query-core/plugin-legacy';\nimport type { Config } from './types';\n\nexport const defaultConfig: Plugin.Config<Config> = {\n _dependencies: ['@hey-api/sdk', '@hey-api/typescript'],\n _handler: handler,\n _handlerLegacy: handlerLegacy,\n exportFromIndex: false,\n infiniteQueryOptions: true,\n mutationOptions: true,\n name: '@tanstack/angular-query-experimental',\n output: '@tanstack/angular-query-experimental',\n queryOptions: true,\n};\n\n/**\n * Type helper for `@tanstack/angular-query-experimental` plugin, returns {@link Plugin.Config} object\n */\nexport const defineConfig: Plugin.DefineConfig<Config> = (config) => ({\n ...defaultConfig,\n ...config,\n});\n","import type { Plugin } from '../../types';\nimport { handler } from '../query-core/plugin';\nimport { handlerLegacy } from '../query-core/plugin-legacy';\nimport type { Config } from './types';\n\nexport const defaultConfig: Plugin.Config<Config> = {\n _dependencies: ['@hey-api/sdk', '@hey-api/typescript'],\n _handler: handler,\n _handlerLegacy: handlerLegacy,\n exportFromIndex: false,\n infiniteQueryOptions: true,\n mutationOptions: true,\n name: '@tanstack/react-query',\n output: '@tanstack/react-query',\n queryOptions: true,\n};\n\n/**\n * Type helper for `@tanstack/react-query` plugin, returns {@link Plugin.Config} object\n */\nexport const defineConfig: Plugin.DefineConfig<Config> = (config) => ({\n ...defaultConfig,\n ...config,\n});\n","import type { Plugin } from '../../types';\nimport { handler } from '../query-core/plugin';\nimport { handlerLegacy } from '../query-core/plugin-legacy';\nimport type { Config } from './types';\n\nexport const defaultConfig: Plugin.Config<Config> = {\n _dependencies: ['@hey-api/sdk', '@hey-api/typescript'],\n _handler: handler,\n _handlerLegacy: handlerLegacy,\n exportFromIndex: false,\n infiniteQueryOptions: true,\n mutationOptions: true,\n name: '@tanstack/solid-query',\n output: '@tanstack/solid-query',\n queryOptions: true,\n};\n\n/**\n * Type helper for `@tanstack/solid-query` plugin, returns {@link Plugin.Config} object\n */\nexport const defineConfig: Plugin.DefineConfig<Config> = (config) => ({\n ...defaultConfig,\n ...config,\n});\n","import type { Plugin } from '../../types';\nimport { handler } from '../query-core/plugin';\nimport { handlerLegacy } from '../query-core/plugin-legacy';\nimport type { Config } from './types';\n\nexport const defaultConfig: Plugin.Config<Config> = {\n _dependencies: ['@hey-api/sdk', '@hey-api/typescript'],\n _handler: handler,\n _handlerLegacy: handlerLegacy,\n exportFromIndex: false,\n infiniteQueryOptions: true,\n mutationOptions: true,\n name: '@tanstack/svelte-query',\n output: '@tanstack/svelte-query',\n queryOptions: true,\n};\n\n/**\n * Type helper for `@tanstack/svelte-query` plugin, returns {@link Plugin.Config} object\n */\nexport const defineConfig: Plugin.DefineConfig<Config> = (config) => ({\n ...defaultConfig,\n ...config,\n});\n","import type { Plugin } from '../../types';\nimport { handler } from '../query-core/plugin';\nimport { handlerLegacy } from '../query-core/plugin-legacy';\nimport type { Config } from './types';\n\nexport const defaultConfig: Plugin.Config<Config> = {\n _dependencies: ['@hey-api/sdk', '@hey-api/typescript'],\n _handler: handler,\n _handlerLegacy: handlerLegacy,\n exportFromIndex: false,\n infiniteQueryOptions: true,\n mutationOptions: true,\n name: '@tanstack/vue-query',\n output: '@tanstack/vue-query',\n queryOptions: true,\n};\n\n/**\n * Type helper for `@tanstack/vue-query` plugin, returns {@link Plugin.Config} object\n */\nexport const defineConfig: Plugin.DefineConfig<Config> = (config) => ({\n ...defaultConfig,\n ...config,\n});\n","import type ts from 'typescript';\n\nimport { compiler, type Property } from '../../compiler';\nimport { operationResponsesMap } from '../../ir/operation';\nimport { hasParameterGroupObjectRequired } from '../../ir/parameter';\nimport type { IR } from '../../ir/types';\nimport { typesId } from '../@hey-api/typescript/ref';\nimport { operationIrRef } from '../shared/utils/ref';\nimport type { Plugin } from '../types';\nimport type { Config } from './types';\n\nconst fastifyId = 'fastify';\n\nconst operationToRouteHandler = ({\n context,\n operation,\n}: {\n context: IR.Context;\n operation: IR.OperationObject;\n}): Property | undefined => {\n const file = context.file({ id: fastifyId })!;\n const fileTypes = context.file({ id: typesId })!;\n\n const properties: Array<Property> = [];\n\n const identifierData = fileTypes.identifier({\n $ref: operationIrRef({ id: operation.id, type: 'data' }),\n namespace: 'type',\n });\n if (identifierData.name) {\n if (operation.body) {\n file.import({\n asType: true,\n module: file.relativePathToFile({ context, id: typesId }),\n name: identifierData.name,\n });\n properties.push({\n isRequired: operation.body.required,\n name: 'Body',\n type: `${identifierData.name}['body']`,\n });\n }\n\n if (operation.parameters) {\n if (operation.parameters.header) {\n file.import({\n asType: true,\n module: file.relativePathToFile({ context, id: typesId }),\n name: identifierData.name,\n });\n properties.push({\n isRequired: hasParameterGroupObjectRequired(\n operation.parameters.header,\n ),\n name: 'Headers',\n type: `${identifierData.name}['headers']`,\n });\n }\n\n if (operation.parameters.path) {\n file.import({\n asType: true,\n module: file.relativePathToFile({ context, id: typesId }),\n name: identifierData.name,\n });\n properties.push({\n isRequired: hasParameterGroupObjectRequired(\n operation.parameters.path,\n ),\n name: 'Params',\n type: `${identifierData.name}['path']`,\n });\n }\n\n if (operation.parameters.query) {\n file.import({\n asType: true,\n module: file.relativePathToFile({ context, id: typesId }),\n name: identifierData.name,\n });\n properties.push({\n isRequired: hasParameterGroupObjectRequired(\n operation.parameters.query,\n ),\n name: 'Querystring',\n type: `${identifierData.name}['query']`,\n });\n }\n }\n }\n\n const { errors, responses } = operationResponsesMap(operation);\n\n let errorsTypeReference: ts.TypeReferenceNode | undefined = undefined;\n const identifierErrors = fileTypes.identifier({\n $ref: operationIrRef({ id: operation.id, type: 'errors' }),\n namespace: 'type',\n });\n if (identifierErrors.name && errors && errors.properties) {\n const keys = Object.keys(errors.properties);\n if (keys.length) {\n const hasDefaultResponse = keys.includes('default');\n if (!hasDefaultResponse) {\n file.import({\n asType: true,\n module: file.relativePathToFile({ context, id: typesId }),\n name: identifierErrors.name,\n });\n errorsTypeReference = compiler.typeReferenceNode({\n typeName: identifierErrors.name,\n });\n } else if (keys.length > 1) {\n file.import({\n asType: true,\n module: file.relativePathToFile({ context, id: typesId }),\n name: identifierErrors.name,\n });\n const errorsType = compiler.typeReferenceNode({\n typeName: identifierErrors.name,\n });\n const defaultType = compiler.literalTypeNode({\n literal: compiler.stringLiteral({ text: 'default' }),\n });\n errorsTypeReference = compiler.typeReferenceNode({\n typeArguments: [errorsType, defaultType],\n typeName: 'Omit',\n });\n }\n }\n }\n\n let responsesTypeReference: ts.TypeReferenceNode | undefined = undefined;\n const identifierResponses = fileTypes.identifier({\n $ref: operationIrRef({ id: operation.id, type: 'responses' }),\n namespace: 'type',\n });\n if (identifierResponses.name && responses && responses.properties) {\n const keys = Object.keys(responses.properties);\n if (keys.length) {\n const hasDefaultResponse = keys.includes('default');\n if (!hasDefaultResponse) {\n file.import({\n asType: true,\n module: file.relativePathToFile({ context, id: typesId }),\n name: identifierResponses.name,\n });\n responsesTypeReference = compiler.typeReferenceNode({\n typeName: identifierResponses.name,\n });\n } else if (keys.length > 1) {\n file.import({\n asType: true,\n module: file.relativePathToFile({ context, id: typesId }),\n name: identifierResponses.name,\n });\n const responsesType = compiler.typeReferenceNode({\n typeName: identifierResponses.name,\n });\n const defaultType = compiler.literalTypeNode({\n literal: compiler.stringLiteral({ text: 'default' }),\n });\n responsesTypeReference = compiler.typeReferenceNode({\n typeArguments: [responsesType, defaultType],\n typeName: 'Omit',\n });\n }\n }\n }\n\n const replyTypes = [errorsTypeReference, responsesTypeReference].filter(\n Boolean,\n );\n if (replyTypes.length) {\n properties.push({\n name: 'Reply',\n type: compiler.typeIntersectionNode({\n types: replyTypes,\n }),\n });\n }\n\n if (!properties.length) {\n return;\n }\n\n const routeHandler: Property = {\n name: operation.id,\n type: compiler.typeNode('RouteHandler', [\n compiler.typeInterfaceNode({\n properties,\n useLegacyResolution: false,\n }),\n ]),\n };\n return routeHandler;\n};\n\nexport const handler: Plugin.Handler<Config> = ({ context, plugin }) => {\n const file = context.createFile({\n exportFromIndex: plugin.exportFromIndex,\n id: fastifyId,\n path: plugin.output,\n });\n\n const routeHandlers: Array<Property> = [];\n\n context.subscribe('operation', ({ operation }) => {\n const routeHandler = operationToRouteHandler({ context, operation });\n if (routeHandler) {\n routeHandlers.push(routeHandler);\n }\n });\n\n context.subscribe('after', () => {\n const identifier = file.identifier({\n $ref: 'RouteHandlers',\n create: true,\n namespace: 'type',\n });\n\n if (!identifier.name) {\n return;\n }\n\n if (routeHandlers.length) {\n file.import({\n asType: true,\n module: 'fastify',\n name: 'RouteHandler',\n });\n }\n\n file.add(\n compiler.typeAliasDeclaration({\n exportType: true,\n name: identifier.name,\n type: compiler.typeInterfaceNode({\n properties: routeHandlers,\n useLegacyResolution: false,\n }),\n }),\n );\n });\n};\n","import type { Plugin } from '../types';\nimport { handler } from './plugin';\nimport type { Config } from './types';\n\nexport const defaultConfig: Plugin.Config<Config> = {\n _dependencies: ['@hey-api/typescript'],\n _handler: handler,\n _handlerLegacy: () => {},\n exportFromIndex: false,\n name: 'fastify',\n output: 'fastify',\n};\n\n/**\n * Type helper for `fastify` plugin, returns {@link Plugin.Config} object\n */\nexport const defineConfig: Plugin.DefineConfig<Config> = (config) => ({\n ...defaultConfig,\n ...config,\n});\n","import type { Plugin } from '../types';\nimport { handler } from './plugin';\nimport type { Config } from './types';\n\nexport const defaultConfig: Plugin.Config<Config> = {\n _handler: handler,\n _handlerLegacy: () => {},\n _tags: ['validator'],\n exportFromIndex: false,\n name: 'zod',\n output: 'zod',\n};\n\n/**\n * Type helper for Zod plugin, returns {@link Plugin.Config} object\n */\nexport const defineConfig: Plugin.DefineConfig<Config> = (config) => ({\n ...defaultConfig,\n ...config,\n});\n","import {\n type Config as HeyApiClientAxios,\n defaultConfig as heyApiClientAxios,\n} from './@hey-api/client-axios';\nimport {\n type Config as HeyApiClientFetch,\n defaultConfig as heyApiClientFetch,\n} from './@hey-api/client-fetch';\nimport {\n type Config as HeyApiClientNext,\n defaultConfig as heyApiClientNext,\n} from './@hey-api/client-next';\nimport {\n type Config as HeyApiClientNuxt,\n defaultConfig as heyApiClientNuxt,\n} from './@hey-api/client-nuxt';\nimport {\n type Config as HeyApiLegacyAngular,\n defaultConfig as heyApiLegacyAngular,\n} from './@hey-api/legacy-angular';\nimport {\n type Config as HeyApiLegacyAxios,\n defaultConfig as heyApiLegacyAxios,\n} from './@hey-api/legacy-axios';\nimport {\n type Config as HeyApiLegacyFetch,\n defaultConfig as heyApiLegacyFetch,\n} from './@hey-api/legacy-fetch';\nimport {\n type Config as HeyApiLegacyNode,\n defaultConfig as heyApiLegacyNode,\n} from './@hey-api/legacy-node';\nimport {\n type Config as HeyApiLegacyXhr,\n defaultConfig as heyApiLegacyXhr,\n} from './@hey-api/legacy-xhr';\nimport {\n type Config as HeyApiSchemas,\n defaultConfig as heyApiSchemas,\n} from './@hey-api/schemas';\nimport {\n type Config as HeyApiSdk,\n defaultConfig as heyApiSdk,\n} from './@hey-api/sdk';\nimport {\n type Config as HeyApiTransformers,\n defaultConfig as heyApiTransformers,\n} from './@hey-api/transformers';\nimport {\n type Config as HeyApiTypeScript,\n defaultConfig as heyApiTypeScript,\n} from './@hey-api/typescript';\nimport {\n type Config as TanStackAngularQueryExperimental,\n defaultConfig as tanStackAngularQueryExperimental,\n} from './@tanstack/angular-query-experimental';\nimport {\n type Config as TanStackReactQuery,\n defaultConfig as tanStackReactQuery,\n} from './@tanstack/react-query';\nimport {\n type Config as TanStackSolidQuery,\n defaultConfig as tanStackSolidQuery,\n} from './@tanstack/solid-query';\nimport {\n type Config as TanStackSvelteQuery,\n defaultConfig as tanStackSvelteQuery,\n} from './@tanstack/svelte-query';\nimport {\n type Config as TanStackVueQuery,\n defaultConfig as tanStackVueQuery,\n} from './@tanstack/vue-query';\nimport { type Config as Fastify, defaultConfig as fastify } from './fastify';\nimport type { DefaultPluginConfigs, Plugin } from './types';\nimport { type Config as Zod, defaultConfig as zod } from './zod';\n\n/**\n * User-facing plugin types.\n */\nexport type UserPlugins =\n | Plugin.UserConfig<HeyApiClientAxios>\n | Plugin.UserConfig<HeyApiClientFetch>\n | Plugin.UserConfig<HeyApiClientNext>\n | Plugin.UserConfig<HeyApiClientNuxt>\n | Plugin.UserConfig<HeyApiLegacyAngular>\n | Plugin.UserConfig<HeyApiLegacyAxios>\n | Plugin.UserConfig<HeyApiLegacyFetch>\n | Plugin.UserConfig<HeyApiLegacyNode>\n | Plugin.UserConfig<HeyApiLegacyXhr>\n | Plugin.UserConfig<HeyApiSchemas>\n | Plugin.UserConfig<HeyApiSdk>\n | Plugin.UserConfig<HeyApiTransformers>\n | Plugin.UserConfig<HeyApiTypeScript>\n | Plugin.UserConfig<TanStackAngularQueryExperimental>\n | Plugin.UserConfig<TanStackReactQuery>\n | Plugin.UserConfig<TanStackSolidQuery>\n | Plugin.UserConfig<TanStackSvelteQuery>\n | Plugin.UserConfig<TanStackVueQuery>\n | Plugin.UserConfig<Fastify>\n | Plugin.UserConfig<Zod>;\n\n/**\n * Internal plugin types.\n */\nexport type ClientPlugins =\n | Plugin.Config<HeyApiClientAxios>\n | Plugin.Config<HeyApiClientFetch>\n | Plugin.Config<HeyApiClientNext>\n | Plugin.Config<HeyApiClientNuxt>\n | Plugin.Config<HeyApiLegacyAngular>\n | Plugin.Config<HeyApiLegacyAxios>\n | Plugin.Config<HeyApiLegacyFetch>\n | Plugin.Config<HeyApiLegacyNode>\n | Plugin.Config<HeyApiLegacyXhr>\n | Plugin.Config<HeyApiSchemas>\n | Plugin.Config<HeyApiSdk>\n | Plugin.Config<HeyApiTransformers>\n | Plugin.Config<HeyApiTypeScript>\n | Plugin.Config<TanStackAngularQueryExperimental>\n | Plugin.Config<TanStackReactQuery>\n | Plugin.Config<TanStackSolidQuery>\n | Plugin.Config<TanStackSvelteQuery>\n | Plugin.Config<TanStackVueQuery>\n | Plugin.Config<Fastify>\n | Plugin.Config<Zod>;\n\nexport const defaultPluginConfigs: DefaultPluginConfigs<ClientPlugins> = {\n '@hey-api/client-axios': heyApiClientAxios,\n '@hey-api/client-fetch': heyApiClientFetch,\n '@hey-api/client-next': heyApiClientNext,\n '@hey-api/client-nuxt': heyApiClientNuxt,\n '@hey-api/schemas': heyApiSchemas,\n '@hey-api/sdk': heyApiSdk,\n '@hey-api/transformers': heyApiTransformers,\n '@hey-api/typescript': heyApiTypeScript,\n '@tanstack/angular-query-experimental': tanStackAngularQueryExperimental,\n '@tanstack/react-query': tanStackReactQuery,\n '@tanstack/solid-query': tanStackSolidQuery,\n '@tanstack/svelte-query': tanStackSvelteQuery,\n '@tanstack/vue-query': tanStackVueQuery,\n fastify,\n 'legacy/angular': heyApiLegacyAngular,\n 'legacy/axios': heyApiLegacyAxios,\n 'legacy/fetch': heyApiLegacyFetch,\n 'legacy/node': heyApiLegacyNode,\n 'legacy/xhr': heyApiLegacyXhr,\n zod,\n};\n","import path from 'node:path';\n\nimport { loadConfig } from 'c12';\n\nimport { getLogs } from './getLogs';\nimport type { ClientPlugins, UserPlugins } from './plugins';\nimport { defaultPluginConfigs } from './plugins';\nimport type {\n AnyPluginName,\n DefaultPluginConfigs,\n PluginContext,\n PluginNames,\n} from './plugins/types';\nimport type { Config, UserConfig } from './types/config';\nimport { isLegacyClient, setConfig } from './utils/config';\n\n/**\n * Default plugins used to generate artifacts if plugins aren't specified.\n */\nexport const defaultPlugins = [\n '@hey-api/typescript',\n '@hey-api/sdk',\n] as const satisfies ReadonlyArray<UserPlugins['name']>;\n\nconst getInput = (userConfig: UserConfig): Config['input'] => {\n let input: Config['input'] = {\n path: '',\n };\n if (typeof userConfig.input === 'string') {\n input.path = userConfig.input;\n } else if (\n userConfig.input &&\n (userConfig.input.path || userConfig.input.organization)\n ) {\n input = {\n ...input,\n path: 'https://get.heyapi.dev',\n ...userConfig.input,\n };\n } else {\n input = {\n ...input,\n path: userConfig.input as Record<string, unknown>,\n };\n }\n return input;\n};\n\nconst getPluginsConfig = ({\n pluginConfigs,\n userPlugins,\n userPluginsConfig,\n}: {\n pluginConfigs: DefaultPluginConfigs<ClientPlugins>;\n userPlugins: ReadonlyArray<AnyPluginName>;\n userPluginsConfig: Config['plugins'];\n}): Pick<Config, 'plugins' | 'pluginOrder'> => {\n const circularReferenceTracker = new Set<AnyPluginName>();\n const pluginOrder = new Set<AnyPluginName>();\n const plugins: Config['plugins'] = {};\n\n const dfs = (name: AnyPluginName) => {\n if (circularReferenceTracker.has(name)) {\n throw new Error(`Circular reference detected at '${name}'`);\n }\n\n if (!pluginOrder.has(name)) {\n circularReferenceTracker.add(name);\n\n const pluginConfig = pluginConfigs[name as PluginNames];\n if (!pluginConfig) {\n throw new Error(\n `🚫 unknown plugin dependency \"${name}\" - do you need to register a custom plugin with this name?`,\n );\n }\n\n const defaultOptions = defaultPluginConfigs[name as PluginNames];\n const userOptions = userPluginsConfig[name as PluginNames];\n if (userOptions && defaultOptions) {\n const nativePluginOption = Object.keys(userOptions).find((key) =>\n key.startsWith('_'),\n );\n if (nativePluginOption) {\n throw new Error(\n `🚫 cannot register plugin \"${name}\" - attempting to override a native plugin option \"${nativePluginOption}\"`,\n );\n }\n }\n\n const config = {\n _dependencies: [],\n ...defaultOptions,\n ...userOptions,\n };\n\n if (config._infer) {\n const context: PluginContext = {\n ensureDependency: (dependency) => {\n if (\n typeof dependency === 'string' &&\n !config._dependencies.includes(dependency)\n ) {\n config._dependencies = [...config._dependencies, dependency];\n }\n },\n pluginByTag: (tag, errorMessage) => {\n for (const userPlugin of userPlugins) {\n const defaultConfig =\n defaultPluginConfigs[userPlugin as PluginNames] ||\n pluginConfigs[userPlugin as PluginNames];\n if (\n defaultConfig &&\n defaultConfig._tags?.includes(tag) &&\n userPlugin !== name\n ) {\n return userPlugin;\n }\n }\n\n throw new Error(\n errorMessage ||\n `🚫 missing plugin - no plugin with tag \"${tag}\" found`,\n );\n },\n };\n config._infer(config, context);\n }\n\n for (const dependency of config._dependencies) {\n dfs(dependency);\n }\n\n circularReferenceTracker.delete(name);\n pluginOrder.add(name);\n\n // @ts-expect-error\n plugins[name] = config;\n }\n };\n\n for (const name of userPlugins) {\n dfs(name);\n }\n\n return {\n pluginOrder: Array.from(pluginOrder) as ReadonlyArray<PluginNames>,\n plugins,\n };\n};\n\nconst getOutput = (userConfig: UserConfig): Config['output'] => {\n let output: Config['output'] = {\n clean: true,\n format: false,\n indexFile: true,\n lint: false,\n path: '',\n };\n if (typeof userConfig.output === 'string') {\n output.path = userConfig.output;\n } else {\n output = {\n ...output,\n ...userConfig.output,\n };\n }\n return output;\n};\n\nconst isPluginClient = (plugin: Required<UserConfig>['plugins'][number]) => {\n if (typeof plugin === 'string') {\n return plugin.startsWith('@hey-api/client') || plugin.startsWith('legacy/');\n }\n\n return (\n plugin.name.startsWith('@hey-api/client') ||\n plugin.name.startsWith('legacy/') ||\n // @ts-expect-error\n (plugin._tags && plugin._tags.includes('client'))\n );\n};\n\nconst getPlugins = (\n userConfig: UserConfig,\n): Pick<Config, 'plugins' | 'pluginOrder'> => {\n const userPluginsConfig: Config['plugins'] = {};\n\n let definedPlugins: UserConfig['plugins'] = defaultPlugins;\n if (userConfig.plugins) {\n userConfig.plugins = userConfig.plugins.filter(\n (plugin) =>\n (typeof plugin === 'string' && plugin) ||\n (typeof plugin !== 'string' && plugin.name),\n );\n if (\n userConfig.plugins.length === 1 &&\n isPluginClient(userConfig.plugins[0]!)\n ) {\n definedPlugins = [...defaultPlugins, ...userConfig.plugins];\n } else {\n definedPlugins = userConfig.plugins;\n }\n }\n\n const userPlugins = definedPlugins\n .map((plugin) => {\n if (typeof plugin === 'string') {\n return plugin;\n }\n\n if (plugin.name) {\n // @ts-expect-error\n userPluginsConfig[plugin.name] = plugin;\n }\n\n return plugin.name;\n })\n .filter(Boolean);\n\n return getPluginsConfig({\n pluginConfigs: {\n ...userPluginsConfig,\n ...defaultPluginConfigs,\n },\n userPlugins,\n userPluginsConfig,\n });\n};\n\nconst getWatch = (\n userConfig: Pick<UserConfig, 'watch'> & Pick<Config, 'input'>,\n): Config['watch'] => {\n let watch: Config['watch'] = {\n enabled: false,\n interval: 1_000,\n timeout: 60_000,\n };\n // we cannot watch spec passed as an object\n if (typeof userConfig.input.path !== 'string') {\n return watch;\n }\n if (typeof userConfig.watch === 'boolean') {\n watch.enabled = userConfig.watch;\n } else if (typeof userConfig.watch === 'number') {\n watch.enabled = true;\n watch.interval = userConfig.watch;\n } else if (userConfig.watch) {\n watch = {\n ...watch,\n ...userConfig.watch,\n };\n }\n return watch;\n};\n\nexport const initConfigs = async (\n userConfig: UserConfig | undefined,\n): Promise<Config[]> => {\n let configurationFile: string | undefined = undefined;\n if (userConfig?.configFile) {\n const parts = userConfig.configFile.split('.');\n configurationFile = parts.slice(0, parts.length - 1).join('.');\n }\n\n const { config: configFromFile } = await loadConfig<UserConfig>({\n configFile: configurationFile,\n name: 'openapi-ts',\n });\n\n const userConfigs: UserConfig[] = Array.isArray(userConfig)\n ? userConfig\n : Array.isArray(configFromFile)\n ? configFromFile.map((config) => ({\n ...config,\n ...userConfig,\n }))\n : [{ ...(configFromFile ?? {}), ...userConfig }];\n\n return userConfigs.map((userConfig) => {\n const {\n base,\n configFile = '',\n dryRun = false,\n experimentalParser = true,\n exportCore = true,\n name,\n request,\n useOptions = true,\n } = userConfig;\n\n const logs = getLogs(userConfig);\n\n if (logs.level === 'debug') {\n console.warn('userConfig:', userConfig);\n }\n\n const input = getInput(userConfig);\n const output = getOutput(userConfig);\n\n if (!input.path) {\n throw new Error(\n '🚫 missing input - which OpenAPI specification should we use to generate your output?',\n );\n }\n\n if (!output.path) {\n throw new Error(\n '🚫 missing output - where should we generate your output?',\n );\n }\n\n if (!useOptions) {\n console.warn(\n '❗️ Deprecation warning: useOptions set to false. This setting will be removed in future versions. Please migrate useOptions to true https://heyapi.dev/openapi-ts/migrating.html#v0-27-38',\n );\n }\n\n output.path = path.resolve(process.cwd(), output.path);\n\n const config = setConfig({\n ...getPlugins(userConfig),\n base,\n configFile,\n dryRun,\n experimentalParser,\n exportCore: false,\n input,\n logs,\n name,\n output,\n request,\n useOptions,\n watch: getWatch({ ...userConfig, input }),\n });\n config.exportCore = isLegacyClient(config) ? exportCore : false;\n\n if (logs.level === 'debug') {\n console.warn('config:', config);\n }\n\n return config;\n });\n};\n","export default {\n 1: function (container, depth0, helpers, partials, data) {\n return \"import { NgModule} from '@angular/core';\\nimport { HttpClientModule } from '@angular/common/http';\\n\\nimport { AngularHttpRequest } from './core/AngularHttpRequest';\\nimport { BaseHttpRequest } from './core/BaseHttpRequest';\\nimport type { OpenAPIConfig } from './core/OpenAPI';\\nimport { OpenAPI } from './core/OpenAPI';\\nimport { Interceptors } from './core/OpenAPI';\\n\";\n },\n 3: function (container, depth0, helpers, partials, data) {\n var stack1,\n alias1 = container.strict,\n alias2 = container.lambda;\n\n return (\n \"import type { BaseHttpRequest } from './core/BaseHttpRequest';\\nimport type { OpenAPIConfig } from './core/OpenAPI';\\nimport { Interceptors } from './core/OpenAPI';\\nimport { \" +\n ((stack1 = alias2(\n alias1(depth0, 'httpRequest', {\n start: { line: 14, column: 12 },\n end: { line: 14, column: 23 },\n }),\n depth0,\n )) != null\n ? stack1\n : '') +\n \" } from './core/\" +\n ((stack1 = alias2(\n alias1(depth0, 'httpRequest', {\n start: { line: 14, column: 45 },\n end: { line: 14, column: 56 },\n }),\n depth0,\n )) != null\n ? stack1\n : '') +\n \"';\\n\"\n );\n },\n 5: function (container, depth0, helpers, partials, data) {\n var stack1,\n lookupProperty =\n container.lookupProperty ||\n function (parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined;\n };\n\n return (stack1 = lookupProperty(helpers, 'each').call(\n depth0 != null ? depth0 : container.nullContext || {},\n lookupProperty(depth0, 'services'),\n {\n name: 'each',\n hash: {},\n fn: container.program(6, data, 0),\n inverse: container.noop,\n data: data,\n loc: { start: { line: 18, column: 0 }, end: { line: 20, column: 9 } },\n },\n )) != null\n ? stack1\n : '';\n },\n 6: function (container, depth0, helpers, partials, data) {\n var stack1,\n lookupProperty =\n container.lookupProperty ||\n function (parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined;\n };\n\n return (\n 'import { ' +\n ((stack1 = lookupProperty(helpers, 'transformServiceName').call(\n depth0 != null ? depth0 : container.nullContext || {},\n lookupProperty(depth0, 'name'),\n {\n name: 'transformServiceName',\n hash: {},\n data: data,\n loc: {\n start: { line: 19, column: 9 },\n end: { line: 19, column: 40 },\n },\n },\n )) != null\n ? stack1\n : '') +\n \" } from './sdk.gen';\\n\"\n );\n },\n 8: function (container, depth0, helpers, partials, data) {\n var stack1,\n alias1 = container.strict,\n alias2 = container.lambda,\n lookupProperty =\n container.lookupProperty ||\n function (parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined;\n };\n\n return (\n \"@NgModule({\\n\timports: [HttpClientModule],\\n\tproviders: [\\n\t\t{\\n\t\t\tprovide: OpenAPI,\\n\t\t\tuseValue: {\\n\t\t\t\tBASE: OpenAPI?.BASE ?? '\" +\n ((stack1 = alias2(\n alias1(depth0, 'server', {\n start: { line: 30, column: 31 },\n end: { line: 30, column: 37 },\n }),\n depth0,\n )) != null\n ? stack1\n : '') +\n \"',\\n\t\t\t\tVERSION: OpenAPI?.VERSION ?? '\" +\n ((stack1 = alias2(\n alias1(depth0, 'version', {\n start: { line: 31, column: 37 },\n end: { line: 31, column: 44 },\n }),\n depth0,\n )) != null\n ? stack1\n : '') +\n \"',\\n\t\t\t\tWITH_CREDENTIALS: OpenAPI?.WITH_CREDENTIALS ?? false,\\n\t\t\t\tCREDENTIALS: OpenAPI?.CREDENTIALS ?? 'include',\\n\t\t\t\tTOKEN: OpenAPI?.TOKEN,\\n\t\t\t\tUSERNAME: OpenAPI?.USERNAME,\\n\t\t\t\tPASSWORD: OpenAPI?.PASSWORD,\\n\t\t\t\tHEADERS: OpenAPI?.HEADERS,\\n\t\t\t\tENCODE_PATH: OpenAPI?.ENCODE_PATH,\\n\t\t\t\tinterceptors: {\\n\t\t\t\t\tresponse: OpenAPI?.interceptors?.response ?? new Interceptors(),\\n\t\t\t\t},\\n\t\t\t} as OpenAPIConfig,\\n\t\t},\\n\t\t{\\n\t\t\tprovide: BaseHttpRequest,\\n\t\t\tuseClass: AngularHttpRequest,\\n\t\t},\\n\" +\n ((stack1 = lookupProperty(helpers, 'each').call(\n depth0 != null ? depth0 : container.nullContext || {},\n lookupProperty(depth0, 'services'),\n {\n name: 'each',\n hash: {},\n fn: container.program(9, data, 0),\n inverse: container.noop,\n data: data,\n loc: {\n start: { line: 48, column: 2 },\n end: { line: 50, column: 11 },\n },\n },\n )) != null\n ? stack1\n : '') +\n '\t]\\n})\\nexport class ' +\n ((stack1 = alias2(\n alias1(\n lookupProperty(lookupProperty(data, 'root'), '$config'),\n 'name',\n { start: { line: 53, column: 16 }, end: { line: 53, column: 34 } },\n ),\n depth0,\n )) != null\n ? stack1\n : '') +\n ' {}\\n'\n );\n },\n 9: function (container, depth0, helpers, partials, data) {\n var stack1,\n lookupProperty =\n container.lookupProperty ||\n function (parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined;\n };\n\n return (\n '\t\t' +\n ((stack1 = lookupProperty(helpers, 'transformServiceName').call(\n depth0 != null ? depth0 : container.nullContext || {},\n lookupProperty(depth0, 'name'),\n {\n name: 'transformServiceName',\n hash: {},\n data: data,\n loc: {\n start: { line: 49, column: 2 },\n end: { line: 49, column: 33 },\n },\n },\n )) != null\n ? stack1\n : '') +\n ',\\n'\n );\n },\n 11: function (container, depth0, helpers, partials, data) {\n var stack1,\n alias1 = container.strict,\n alias2 = container.lambda,\n alias3 = depth0 != null ? depth0 : container.nullContext || {},\n lookupProperty =\n container.lookupProperty ||\n function (parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined;\n };\n\n return (\n 'type HttpRequestConstructor = new (config: OpenAPIConfig) => BaseHttpRequest;\\n\\nexport class ' +\n ((stack1 = alias2(\n alias1(\n lookupProperty(lookupProperty(data, 'root'), '$config'),\n 'name',\n { start: { line: 57, column: 16 }, end: { line: 57, column: 34 } },\n ),\n depth0,\n )) != null\n ? stack1\n : '') +\n ' {\\n\\n' +\n ((stack1 = lookupProperty(helpers, 'each').call(\n alias3,\n lookupProperty(depth0, 'services'),\n {\n name: 'each',\n hash: {},\n fn: container.program(12, data, 0),\n inverse: container.noop,\n data: data,\n loc: {\n start: { line: 59, column: 1 },\n end: { line: 61, column: 10 },\n },\n },\n )) != null\n ? stack1\n : '') +\n '\\n\tpublic readonly request: BaseHttpRequest;\\n\\n\tconstructor(config?: Partial<OpenAPIConfig>, HttpRequest: HttpRequestConstructor = ' +\n ((stack1 = alias2(\n alias1(depth0, 'httpRequest', {\n start: { line: 65, column: 87 },\n end: { line: 65, column: 98 },\n }),\n depth0,\n )) != null\n ? stack1\n : '') +\n \") {\\n\t\tthis.request = new HttpRequest({\\n\t\t\tBASE: config?.BASE ?? '\" +\n ((stack1 = alias2(\n alias1(depth0, 'server', {\n start: { line: 67, column: 29 },\n end: { line: 67, column: 35 },\n }),\n depth0,\n )) != null\n ? stack1\n : '') +\n \"',\\n\t\t\tVERSION: config?.VERSION ?? '\" +\n ((stack1 = alias2(\n alias1(depth0, 'version', {\n start: { line: 68, column: 35 },\n end: { line: 68, column: 42 },\n }),\n depth0,\n )) != null\n ? stack1\n : '') +\n \"',\\n\t\t\tWITH_CREDENTIALS: config?.WITH_CREDENTIALS ?? false,\\n\t\t\tCREDENTIALS: config?.CREDENTIALS ?? 'include',\\n\t\t\tTOKEN: config?.TOKEN,\\n\t\t\tUSERNAME: config?.USERNAME,\\n\t\t\tPASSWORD: config?.PASSWORD,\\n\t\t\tHEADERS: config?.HEADERS,\\n\t\t\tENCODE_PATH: config?.ENCODE_PATH,\\n\t\t\tinterceptors: {\\n\t\t\t\trequest: config?.interceptors?.request ?? new Interceptors(),\\n\t\t\t\tresponse: config?.interceptors?.response ?? new Interceptors(),\\n },\\n\t\t});\\n\\n\" +\n ((stack1 = lookupProperty(helpers, 'each').call(\n alias3,\n lookupProperty(depth0, 'services'),\n {\n name: 'each',\n hash: {},\n fn: container.program(14, data, 0),\n inverse: container.noop,\n data: data,\n loc: {\n start: { line: 82, column: 2 },\n end: { line: 84, column: 11 },\n },\n },\n )) != null\n ? stack1\n : '') +\n '\t}\\n}\\n'\n );\n },\n 12: function (container, depth0, helpers, partials, data) {\n var stack1,\n alias1 = depth0 != null ? depth0 : container.nullContext || {},\n lookupProperty =\n container.lookupProperty ||\n function (parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined;\n };\n\n return (\n '\tpublic readonly ' +\n ((stack1 = lookupProperty(helpers, 'camelCase').call(\n alias1,\n lookupProperty(depth0, 'name'),\n {\n name: 'camelCase',\n hash: {},\n data: data,\n loc: {\n start: { line: 60, column: 17 },\n end: { line: 60, column: 37 },\n },\n },\n )) != null\n ? stack1\n : '') +\n ': ' +\n ((stack1 = lookupProperty(helpers, 'transformServiceName').call(\n alias1,\n lookupProperty(depth0, 'name'),\n {\n name: 'transformServiceName',\n hash: {},\n data: data,\n loc: {\n start: { line: 60, column: 39 },\n end: { line: 60, column: 70 },\n },\n },\n )) != null\n ? stack1\n : '') +\n ';\\n'\n );\n },\n 14: function (container, depth0, helpers, partials, data) {\n var stack1,\n alias1 = depth0 != null ? depth0 : container.nullContext || {},\n lookupProperty =\n container.lookupProperty ||\n function (parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined;\n };\n\n return (\n '\t\tthis.' +\n ((stack1 = lookupProperty(helpers, 'camelCase').call(\n alias1,\n lookupProperty(depth0, 'name'),\n {\n name: 'camelCase',\n hash: {},\n data: data,\n loc: {\n start: { line: 83, column: 7 },\n end: { line: 83, column: 27 },\n },\n },\n )) != null\n ? stack1\n : '') +\n ' = new ' +\n ((stack1 = lookupProperty(helpers, 'transformServiceName').call(\n alias1,\n lookupProperty(depth0, 'name'),\n {\n name: 'transformServiceName',\n hash: {},\n data: data,\n loc: {\n start: { line: 83, column: 34 },\n end: { line: 83, column: 65 },\n },\n },\n )) != null\n ? stack1\n : '') +\n '(this.request);\\n'\n );\n },\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n var stack1,\n alias1 = depth0 != null ? depth0 : container.nullContext || {},\n lookupProperty =\n container.lookupProperty ||\n function (parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined;\n };\n\n return (\n ((stack1 = lookupProperty(helpers, 'equals').call(\n alias1,\n lookupProperty(\n lookupProperty(\n lookupProperty(lookupProperty(data, 'root'), '$config'),\n 'client',\n ),\n 'name',\n ),\n 'legacy/angular',\n {\n name: 'equals',\n hash: {},\n fn: container.program(1, data, 0),\n inverse: container.program(3, data, 0),\n data: data,\n loc: { start: { line: 1, column: 0 }, end: { line: 15, column: 11 } },\n },\n )) != null\n ? stack1\n : '') +\n '\\n' +\n ((stack1 = lookupProperty(helpers, 'if').call(\n alias1,\n lookupProperty(depth0, 'services'),\n {\n name: 'if',\n hash: {},\n fn: container.program(5, data, 0),\n inverse: container.noop,\n data: data,\n loc: { start: { line: 17, column: 0 }, end: { line: 21, column: 7 } },\n },\n )) != null\n ? stack1\n : '') +\n '\\n' +\n ((stack1 = lookupProperty(helpers, 'equals').call(\n alias1,\n lookupProperty(\n lookupProperty(\n lookupProperty(lookupProperty(data, 'root'), '$config'),\n 'client',\n ),\n 'name',\n ),\n 'legacy/angular',\n {\n name: 'equals',\n hash: {},\n fn: container.program(8, data, 0),\n inverse: container.program(11, data, 0),\n data: data,\n loc: {\n start: { line: 23, column: 0 },\n end: { line: 87, column: 11 },\n },\n },\n )) != null\n ? stack1\n : '')\n );\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return \"export const getHeaders = <T>(config: OpenAPIConfig, options: ApiRequestOptions<T>): Observable<HttpHeaders> => {\\n\treturn forkJoin({\\n\t\t// @ts-ignore\\n\t\ttoken: resolve(options, config.TOKEN),\\n\t\t// @ts-ignore\\n\t\tusername: resolve(options, config.USERNAME),\\n\t\t// @ts-ignore\\n\t\tpassword: resolve(options, config.PASSWORD),\\n\t\t// @ts-ignore\\n\t\tadditionalHeaders: resolve(options, config.HEADERS),\\n\t}).pipe(\\n\t\tmap(({ token, username, password, additionalHeaders }) => {\\n\t\t\tconst headers = Object.entries({\\n\t\t\t\tAccept: 'application/json',\\n\t\t\t\t...additionalHeaders,\\n\t\t\t\t...options.headers,\\n\t\t\t})\\n\t\t\t\t.filter(([, value]) => value !== undefined && value !== null)\\n\t\t\t\t.reduce((headers, [key, value]) => ({\\n\t\t\t\t\t...headers,\\n\t\t\t\t\t[key]: String(value),\\n\t\t\t\t}), {} as Record<string, string>);\\n\\n\t\t\tif (isStringWithValue(token)) {\\n\t\t\t\theaders['Authorization'] = `Bearer ${token}`;\\n\t\t\t}\\n\\n\t\t\tif (isStringWithValue(username) && isStringWithValue(password)) {\\n\t\t\t\tconst credentials = base64(`${username}:${password}`);\\n\t\t\t\theaders['Authorization'] = `Basic ${credentials}`;\\n\t\t\t}\\n\\n\t\t\tif (options.body !== undefined) {\\n\t\t\t\tif (options.mediaType) {\\n\t\t\t\t\theaders['Content-Type'] = options.mediaType;\\n\t\t\t\t} else if (isBlob(options.body)) {\\n\t\t\t\t\theaders['Content-Type'] = options.body.type || 'application/octet-stream';\\n\t\t\t\t} else if (isString(options.body)) {\\n\t\t\t\t\theaders['Content-Type'] = 'text/plain';\\n\t\t\t\t} else if (!isFormData(options.body)) {\\n\t\t\t\t\theaders['Content-Type'] = 'application/json';\\n\t\t\t\t}\\n\t\t\t}\\n\\n\t\t\treturn new HttpHeaders(headers);\\n\t\t}),\\n\t);\\n};\";\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return \"export const getRequestBody = (options: ApiRequestOptions): unknown => {\\n\tif (options.body) {\\n\t\tif (options.mediaType?.includes('application/json') || options.mediaType?.includes('+json')) {\\n\t\t\treturn JSON.stringify(options.body);\\n\t\t} else if (isString(options.body) || isBlob(options.body) || isFormData(options.body)) {\\n\t\t\treturn options.body;\\n\t\t} else {\\n\t\t\treturn JSON.stringify(options.body);\\n\t\t}\\n\t}\\n\treturn undefined;\\n};\";\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return 'export const getResponseBody = <T>(response: HttpResponse<T>): T | undefined => {\\n\tif (response.status !== 204 && response.body !== null) {\\n\t\treturn response.body;\\n\t}\\n\treturn undefined;\\n};';\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return 'export const getResponseHeader = <T>(response: HttpResponse<T>, responseHeader?: string): string | undefined => {\\n\tif (responseHeader) {\\n\t\tconst value = response.headers.get(responseHeader);\\n\t\tif (isString(value)) {\\n\t\t\treturn value;\\n\t\t}\\n\t}\\n\treturn undefined;\\n};';\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n var stack1,\n lookupProperty =\n container.lookupProperty ||\n function (parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined;\n };\n\n return (\n \"import { HttpClient, HttpHeaders } from '@angular/common/http';\\nimport type { HttpResponse, HttpErrorResponse } from '@angular/common/http';\\nimport { forkJoin, of, throwError } from 'rxjs';\\nimport { catchError, map, switchMap } from 'rxjs/operators';\\nimport type { Observable } from 'rxjs';\\n\\nimport { ApiError } from './ApiError';\\nimport type { ApiRequestOptions } from './ApiRequestOptions';\\nimport type { ApiResult } from './ApiResult';\\nimport type { OpenAPIConfig } from './OpenAPI';\\n\\n\" +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/isString'),\n depth0,\n {\n name: 'functions/isString',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/isStringWithValue'),\n depth0,\n {\n name: 'functions/isStringWithValue',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/isBlob'),\n depth0,\n {\n name: 'functions/isBlob',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/isFormData'),\n depth0,\n {\n name: 'functions/isFormData',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/base64'),\n depth0,\n {\n name: 'functions/base64',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/getQueryString'),\n depth0,\n {\n name: 'functions/getQueryString',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/getUrl'),\n depth0,\n {\n name: 'functions/getUrl',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/getFormData'),\n depth0,\n {\n name: 'functions/getFormData',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/resolve'),\n depth0,\n {\n name: 'functions/resolve',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'angular/getHeaders'),\n depth0,\n {\n name: 'angular/getHeaders',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'angular/getRequestBody'),\n depth0,\n {\n name: 'angular/getRequestBody',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'angular/sendRequest'),\n depth0,\n {\n name: 'angular/sendRequest',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'angular/getResponseHeader'),\n depth0,\n {\n name: 'angular/getResponseHeader',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'angular/getResponseBody'),\n depth0,\n {\n name: 'angular/getResponseBody',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/catchErrorCodes'),\n depth0,\n {\n name: 'functions/catchErrorCodes',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n/**\\n * Request method\\n * @param config The OpenAPI configuration object\\n * @param http The Angular HTTP client\\n * @param options The request options from the service\\n * @returns Observable<T>\\n * @throws ApiError\\n */\\nexport const request = <T>(config: OpenAPIConfig, http: HttpClient, options: ApiRequestOptions<T>): Observable<T> => {\\n\tconst url = getUrl(config, options);\\n\tconst formData = getFormData(options);\\n\tconst body = getRequestBody(options);\\n\\n\treturn getHeaders(config, options).pipe(\\n\t\tswitchMap(headers => {\\n\t\t\treturn sendRequest<T>(config, options, http, url, body, formData, headers);\\n\t\t}),\\n\t\tswitchMap(async response => {\\n\t\t\tfor (const fn of config.interceptors.response._fns) {\\n\t\t\t\tresponse = await fn(response);\\n\t\t\t}\\n\t\t\tconst responseBody = getResponseBody(response);\\n\t\t\tconst responseHeader = getResponseHeader(response, options.responseHeader);\\n\\n\t\t\tlet transformedBody = responseBody;\\n\t\t\tif (options.responseTransformer && response.ok) {\\n\t\t\t\ttransformedBody = await options.responseTransformer(responseBody)\\n\t\t\t}\\n\\n\t\t\treturn {\\n\t\t\t\turl,\\n\t\t\t\tok: response.ok,\\n\t\t\t\tstatus: response.status,\\n\t\t\t\tstatusText: response.statusText,\\n\t\t\t\tbody: responseHeader ?? transformedBody,\\n\t\t\t} as ApiResult;\\n\t\t}),\\n\t\tcatchError((error: HttpErrorResponse) => {\\n\t\t\tif (!error.status) {\\n\t\t\t\treturn throwError(() => error);\\n\t\t\t}\\n\t\t\treturn of({\\n\t\t\t\turl,\\n\t\t\t\tok: error.ok,\\n\t\t\t\tstatus: error.status,\\n\t\t\t\tstatusText: error.statusText,\\n\t\t\t\tbody: error.error ?? error.statusText,\\n\t\t\t} as ApiResult);\\n\t\t}),\\n\t\tmap(result => {\\n\t\t\tcatchErrorCodes(options, result);\\n\t\t\treturn result.body as T;\\n\t\t}),\\n\t\tcatchError((error: ApiError) => {\\n\t\t\treturn throwError(() => error);\\n\t\t}),\\n\t);\\n};'\n );\n },\n usePartial: true,\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return \"export const sendRequest = <T>(\\n\tconfig: OpenAPIConfig,\\n\toptions: ApiRequestOptions<T>,\\n\thttp: HttpClient,\\n\turl: string,\\n\tbody: unknown,\\n\tformData: FormData | undefined,\\n\theaders: HttpHeaders\\n): Observable<HttpResponse<T>> => {\\n\treturn http.request<T>(options.method, url, {\\n\t\theaders,\\n\t\tbody: body ?? formData,\\n\t\twithCredentials: config.WITH_CREDENTIALS,\\n\t\tobserve: 'response',\\n\t});\\n};\";\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return \"import type { ApiRequestOptions } from './ApiRequestOptions';\\nimport type { ApiResult } from './ApiResult';\\n\\nexport class ApiError extends Error {\\n\tpublic readonly url: string;\\n\tpublic readonly status: number;\\n\tpublic readonly statusText: string;\\n\tpublic readonly body: unknown;\\n\tpublic readonly request: ApiRequestOptions;\\n\\n\tconstructor(request: ApiRequestOptions, response: ApiResult, message: string) {\\n\t\tsuper(message);\\n\\n\t\tthis.name = 'ApiError';\\n\t\tthis.url = response.url;\\n\t\tthis.status = response.status;\\n\t\tthis.statusText = response.statusText;\\n\t\tthis.body = response.body;\\n\t\tthis.request = request;\\n\t}\\n}\";\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return \"export type ApiRequestOptions<T = unknown> = {\\n\treadonly body?: any;\\n\treadonly cookies?: Record<string, unknown>;\\n\treadonly errors?: Record<number | string, string>;\\n\treadonly formData?: Record<string, unknown> | any[] | Blob | File;\\n\treadonly headers?: Record<string, unknown>;\\n\treadonly mediaType?: string;\\n\treadonly method:\\n\t\t| 'DELETE'\\n\t\t| 'GET'\\n\t\t| 'HEAD'\\n\t\t| 'OPTIONS'\\n\t\t| 'PATCH'\\n\t\t| 'POST'\\n\t\t| 'PUT';\\n\treadonly path?: Record<string, unknown>;\\n\treadonly query?: Record<string, unknown>;\\n\treadonly responseHeader?: string;\\n\treadonly responseTransformer?: (data: unknown) => Promise<T>;\\n\treadonly url: string;\\n};\";\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return 'export type ApiResult<TData = any> = {\\n\treadonly body: TData;\\n\treadonly ok: boolean;\\n\treadonly status: number;\\n\treadonly statusText: string;\\n\treadonly url: string;\\n};';\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return \"export const getHeaders = async <T>(config: OpenAPIConfig, options: ApiRequestOptions<T>): Promise<Record<string, string>> => {\\n\tconst [token, username, password, additionalHeaders] = await Promise.all([\\n\t\t// @ts-ignore\\n\t\tresolve(options, config.TOKEN),\\n\t\t// @ts-ignore\\n\t\tresolve(options, config.USERNAME),\\n\t\t// @ts-ignore\\n\t\tresolve(options, config.PASSWORD),\\n\t\t// @ts-ignore\\n\t\tresolve(options, config.HEADERS),\\n\t]);\\n\\n\tconst headers = Object.entries({\\n\t\tAccept: 'application/json',\\n\t\t...additionalHeaders,\\n\t\t...options.headers,\\n\t})\\n\t.filter(([, value]) => value !== undefined && value !== null)\\n\t.reduce((headers, [key, value]) => ({\\n\t\t...headers,\\n\t\t[key]: String(value),\\n\t}), {} as Record<string, string>);\\n\\n\tif (isStringWithValue(token)) {\\n\t\theaders['Authorization'] = `Bearer ${token}`;\\n\t}\\n\\n\tif (isStringWithValue(username) && isStringWithValue(password)) {\\n\t\tconst credentials = base64(`${username}:${password}`);\\n\t\theaders['Authorization'] = `Basic ${credentials}`;\\n\t}\\n\\n\tif (options.body !== undefined) {\\n\t\tif (options.mediaType) {\\n\t\t\theaders['Content-Type'] = options.mediaType;\\n\t\t} else if (isBlob(options.body)) {\\n\t\t\theaders['Content-Type'] = options.body.type || 'application/octet-stream';\\n\t\t} else if (isString(options.body)) {\\n\t\t\theaders['Content-Type'] = 'text/plain';\\n\t\t} else if (!isFormData(options.body)) {\\n\t\t\theaders['Content-Type'] = 'application/json';\\n\t\t}\\n\t} else if (options.formData !== undefined) {\\n\t\tif (options.mediaType) {\\n\t\t\theaders['Content-Type'] = options.mediaType;\\n\t\t}\\n\t}\\n\\n\treturn headers;\\n};\";\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return 'export const getRequestBody = (options: ApiRequestOptions): unknown => {\\n\tif (options.body) {\\n\t\treturn options.body;\\n\t}\\n\treturn undefined;\\n};';\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return 'export const getResponseBody = (response: AxiosResponse<unknown>): unknown => {\\n\tif (response.status !== 204) {\\n\t\treturn response.data;\\n\t}\\n\treturn undefined;\\n};';\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return 'export const getResponseHeader = (response: AxiosResponse<unknown>, responseHeader?: string): string | undefined => {\\n\tif (responseHeader) {\\n\t\tconst content = response.headers[responseHeader];\\n\t\tif (isString(content)) {\\n\t\t\treturn content;\\n\t\t}\\n\t}\\n\treturn undefined;\\n};';\n },\n useData: true,\n};\n","export default {\n 1: function (container, depth0, helpers, partials, data) {\n return 'ApiResult<T>';\n },\n 3: function (container, depth0, helpers, partials, data) {\n return 'T';\n },\n 5: function (container, depth0, helpers, partials, data) {\n return 'result.body';\n },\n 7: function (container, depth0, helpers, partials, data) {\n return 'result';\n },\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n var stack1,\n alias1 = depth0 != null ? depth0 : container.nullContext || {},\n lookupProperty =\n container.lookupProperty ||\n function (parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined;\n };\n\n return (\n \"import axios from 'axios';\\nimport type { AxiosError, AxiosRequestConfig, AxiosResponse, AxiosInstance } from 'axios';\\n\\nimport { ApiError } from './ApiError';\\nimport type { ApiRequestOptions } from './ApiRequestOptions';\\nimport type { ApiResult } from './ApiResult';\\nimport { CancelablePromise } from './CancelablePromise';\\nimport type { OnCancel } from './CancelablePromise';\\nimport type { OpenAPIConfig } from './OpenAPI';\\n\\n\" +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/isString'),\n depth0,\n {\n name: 'functions/isString',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/isStringWithValue'),\n depth0,\n {\n name: 'functions/isStringWithValue',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/isBlob'),\n depth0,\n {\n name: 'functions/isBlob',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/isFormData'),\n depth0,\n {\n name: 'functions/isFormData',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/isSuccess'),\n depth0,\n {\n name: 'functions/isSuccess',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/base64'),\n depth0,\n {\n name: 'functions/base64',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/getQueryString'),\n depth0,\n {\n name: 'functions/getQueryString',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/getUrl'),\n depth0,\n {\n name: 'functions/getUrl',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/getFormData'),\n depth0,\n {\n name: 'functions/getFormData',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/resolve'),\n depth0,\n {\n name: 'functions/resolve',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'axios/getHeaders'),\n depth0,\n {\n name: 'axios/getHeaders',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'axios/getRequestBody'),\n depth0,\n {\n name: 'axios/getRequestBody',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'axios/sendRequest'),\n depth0,\n {\n name: 'axios/sendRequest',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'axios/getResponseHeader'),\n depth0,\n {\n name: 'axios/getResponseHeader',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'axios/getResponseBody'),\n depth0,\n {\n name: 'axios/getResponseBody',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/catchErrorCodes'),\n depth0,\n {\n name: 'functions/catchErrorCodes',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n/**\\n * Request method\\n * @param config The OpenAPI configuration object\\n * @param options The request options from the service\\n * @param axiosClient The axios client instance to use\\n * @returns CancelablePromise<' +\n ((stack1 = lookupProperty(helpers, 'ifServicesResponse').call(\n alias1,\n 'response',\n {\n name: 'ifServicesResponse',\n hash: {},\n fn: container.program(1, data, 0),\n inverse: container.program(3, data, 0),\n data: data,\n loc: {\n start: { line: 64, column: 30 },\n end: { line: 64, column: 108 },\n },\n },\n )) != null\n ? stack1\n : '') +\n '>\\n * @throws ApiError\\n */\\nexport const request = <T>(config: OpenAPIConfig, options: ApiRequestOptions<T>, axiosClient: AxiosInstance = axios): CancelablePromise<' +\n ((stack1 = lookupProperty(helpers, 'ifServicesResponse').call(\n alias1,\n 'response',\n {\n name: 'ifServicesResponse',\n hash: {},\n fn: container.program(1, data, 0),\n inverse: container.program(3, data, 0),\n data: data,\n loc: {\n start: { line: 67, column: 136 },\n end: { line: 67, column: 214 },\n },\n },\n )) != null\n ? stack1\n : '') +\n '> => {\\n\treturn new CancelablePromise(async (resolve, reject, onCancel) => {\\n\t\ttry {\\n\t\t\tconst url = getUrl(config, options);\\n\t\t\tconst formData = getFormData(options);\\n\t\t\tconst body = getRequestBody(options);\\n\t\t\tconst headers = await getHeaders(config, options);\\n\\n\t\t\tif (!onCancel.isCancelled) {\\n\t\t\t\tlet response = await sendRequest<T>(config, options, url, body, formData, headers, onCancel, axiosClient);\\n\\n\t\t\t\tfor (const fn of config.interceptors.response._fns) {\\n\t\t\t\t\tresponse = await fn(response);\\n\t\t\t\t}\\n\\n\t\t\t\tconst responseBody = getResponseBody(response);\\n\t\t\t\tconst responseHeader = getResponseHeader(response, options.responseHeader);\\n\\n\t\t\t\tlet transformedBody = responseBody;\\n\t\t\t\tif (options.responseTransformer && isSuccess(response.status)) {\\n\t\t\t\t\ttransformedBody = await options.responseTransformer(responseBody)\\n\t\t\t\t}\\n\\n\t\t\t\tconst result: ApiResult = {\\n\t\t\t\t\turl,\\n\t\t\t\t\tok: isSuccess(response.status),\\n\t\t\t\t\tstatus: response.status,\\n\t\t\t\t\tstatusText: response.statusText,\\n\t\t\t\t\tbody: responseHeader ?? transformedBody,\\n\t\t\t\t};\\n\\n\t\t\t\tcatchErrorCodes(options, result);\\n\\n\t\t\t\tresolve(' +\n ((stack1 = lookupProperty(helpers, 'ifServicesResponse').call(\n alias1,\n 'body',\n {\n name: 'ifServicesResponse',\n hash: {},\n fn: container.program(5, data, 0),\n inverse: container.program(7, data, 0),\n data: data,\n loc: {\n start: { line: 100, column: 12 },\n end: { line: 100, column: 90 },\n },\n },\n )) != null\n ? stack1\n : '') +\n ');\\n\t\t\t}\\n\t\t} catch (error) {\\n\t\t\treject(error);\\n\t\t}\\n\t});\\n};'\n );\n },\n usePartial: true,\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return 'export const sendRequest = async <T>(\\n\tconfig: OpenAPIConfig,\\n\toptions: ApiRequestOptions<T>,\\n\turl: string,\\n\tbody: unknown,\\n\tformData: FormData | undefined,\\n\theaders: Record<string, string>,\\n\tonCancel: OnCancel,\\n\taxiosClient: AxiosInstance\\n): Promise<AxiosResponse<T>> => {\\n\tconst controller = new AbortController();\\n\\n\tlet requestConfig: AxiosRequestConfig = {\\n\t\tdata: body ?? formData,\\n\t\theaders,\\n\t\tmethod: options.method,\\n\t\tsignal: controller.signal,\\n\t\turl,\\n\t\twithCredentials: config.WITH_CREDENTIALS,\\n\t};\\n\\n\tonCancel(() => controller.abort());\\n\\n\tfor (const fn of config.interceptors.request._fns) {\\n\t\trequestConfig = await fn(requestConfig);\\n\t}\\n\\n\ttry {\\n\t\treturn await axiosClient.request(requestConfig);\\n\t} catch (error) {\\n\t\tconst axiosError = error as AxiosError<T>;\\n\t\tif (axiosError.response) {\\n\t\t\treturn axiosError.response;\\n\t\t}\\n\t\tthrow error;\\n\t}\\n};';\n },\n useData: true,\n};\n","export default {\n 1: function (container, depth0, helpers, partials, data) {\n return \"import type { HttpClient } from '@angular/common/http';\\nimport type { Observable } from 'rxjs';\\n\\nimport type { ApiRequestOptions } from './ApiRequestOptions';\\nimport type { OpenAPIConfig } from './OpenAPI';\\n\";\n },\n 3: function (container, depth0, helpers, partials, data) {\n return \"import type { ApiRequestOptions } from './ApiRequestOptions';\\nimport type { CancelablePromise } from './CancelablePromise';\\nimport type { OpenAPIConfig } from './OpenAPI';\\n\";\n },\n 5: function (container, depth0, helpers, partials, data) {\n return '\tconstructor(\\n\t\tpublic readonly config: OpenAPIConfig,\\n\t\tpublic readonly http: HttpClient,\\n\t) {}\\n';\n },\n 7: function (container, depth0, helpers, partials, data) {\n return '\tconstructor(public readonly config: OpenAPIConfig) {}\\n';\n },\n 9: function (container, depth0, helpers, partials, data) {\n return '\tpublic abstract request<T>(options: ApiRequestOptions<T>): Observable<T>;\\n';\n },\n 11: function (container, depth0, helpers, partials, data) {\n return '\tpublic abstract request<T>(options: ApiRequestOptions<T>): CancelablePromise<T>;\\n';\n },\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n var stack1,\n alias1 = depth0 != null ? depth0 : container.nullContext || {},\n lookupProperty =\n container.lookupProperty ||\n function (parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined;\n };\n\n return (\n ((stack1 = lookupProperty(helpers, 'equals').call(\n alias1,\n lookupProperty(\n lookupProperty(\n lookupProperty(lookupProperty(data, 'root'), '$config'),\n 'client',\n ),\n 'name',\n ),\n 'legacy/angular',\n {\n name: 'equals',\n hash: {},\n fn: container.program(1, data, 0),\n inverse: container.program(3, data, 0),\n data: data,\n loc: { start: { line: 1, column: 0 }, end: { line: 11, column: 11 } },\n },\n )) != null\n ? stack1\n : '') +\n '\\nexport abstract class BaseHttpRequest {\\n\\n' +\n ((stack1 = lookupProperty(helpers, 'equals').call(\n alias1,\n lookupProperty(\n lookupProperty(\n lookupProperty(lookupProperty(data, 'root'), '$config'),\n 'client',\n ),\n 'name',\n ),\n 'legacy/angular',\n {\n name: 'equals',\n hash: {},\n fn: container.program(5, data, 0),\n inverse: container.program(7, data, 0),\n data: data,\n loc: {\n start: { line: 15, column: 1 },\n end: { line: 22, column: 12 },\n },\n },\n )) != null\n ? stack1\n : '') +\n '\\n' +\n ((stack1 = lookupProperty(helpers, 'equals').call(\n alias1,\n lookupProperty(\n lookupProperty(\n lookupProperty(lookupProperty(data, 'root'), '$config'),\n 'client',\n ),\n 'name',\n ),\n 'legacy/angular',\n {\n name: 'equals',\n hash: {},\n fn: container.program(9, data, 0),\n inverse: container.program(11, data, 0),\n data: data,\n loc: {\n start: { line: 24, column: 1 },\n end: { line: 28, column: 12 },\n },\n },\n )) != null\n ? stack1\n : '') +\n '}'\n );\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return \"export class CancelError extends Error {\\n\tconstructor(message: string) {\\n\t\tsuper(message);\\n\t\tthis.name = 'CancelError';\\n\t}\\n\\n\tpublic get isCancelled(): boolean {\\n\t\treturn true;\\n\t}\\n}\\n\\nexport interface OnCancel {\\n\treadonly isResolved: boolean;\\n\treadonly isRejected: boolean;\\n\treadonly isCancelled: boolean;\\n\\n\t(cancelHandler: () => void): void;\\n}\\n\\nexport class CancelablePromise<T> implements Promise<T> {\\n\tprivate _isResolved: boolean;\\n\tprivate _isRejected: boolean;\\n\tprivate _isCancelled: boolean;\\n\treadonly cancelHandlers: (() => void)[];\\n\treadonly promise: Promise<T>;\\n\tprivate _resolve?: (value: T | PromiseLike<T>) => void;\\n\tprivate _reject?: (reason?: unknown) => void;\\n\\n\tconstructor(\\n\t\texecutor: (\\n\t\t\tresolve: (value: T | PromiseLike<T>) => void,\\n\t\t\treject: (reason?: unknown) => void,\\n\t\t\tonCancel: OnCancel\\n\t\t) => void\\n\t) {\\n\t\tthis._isResolved = false;\\n\t\tthis._isRejected = false;\\n\t\tthis._isCancelled = false;\\n\t\tthis.cancelHandlers = [];\\n\t\tthis.promise = new Promise<T>((resolve, reject) => {\\n\t\t\tthis._resolve = resolve;\\n\t\t\tthis._reject = reject;\\n\\n\t\t\tconst onResolve = (value: T | PromiseLike<T>): void => {\\n\t\t\t\tif (this._isResolved || this._isRejected || this._isCancelled) {\\n\t\t\t\t\treturn;\\n\t\t\t\t}\\n\t\t\t\tthis._isResolved = true;\\n\t\t\t\tif (this._resolve) this._resolve(value);\\n\t\t\t};\\n\\n\t\t\tconst onReject = (reason?: unknown): void => {\\n\t\t\t\tif (this._isResolved || this._isRejected || this._isCancelled) {\\n\t\t\t\t\treturn;\\n\t\t\t\t}\\n\t\t\t\tthis._isRejected = true;\\n\t\t\t\tif (this._reject) this._reject(reason);\\n\t\t\t};\\n\\n\t\t\tconst onCancel = (cancelHandler: () => void): void => {\\n\t\t\t\tif (this._isResolved || this._isRejected || this._isCancelled) {\\n\t\t\t\t\treturn;\\n\t\t\t\t}\\n\t\t\t\tthis.cancelHandlers.push(cancelHandler);\\n\t\t\t};\\n\\n\t\t\tObject.defineProperty(onCancel, 'isResolved', {\\n\t\t\t\tget: (): boolean => this._isResolved,\\n\t\t\t});\\n\\n\t\t\tObject.defineProperty(onCancel, 'isRejected', {\\n\t\t\t\tget: (): boolean => this._isRejected,\\n\t\t\t});\\n\\n\t\t\tObject.defineProperty(onCancel, 'isCancelled', {\\n\t\t\t\tget: (): boolean => this._isCancelled,\\n\t\t\t});\\n\\n\t\t\treturn executor(onResolve, onReject, onCancel as OnCancel);\\n\t\t});\\n\t}\\n\\n\tget [Symbol.toStringTag]() {\\n\t\treturn \\\"Cancellable Promise\\\";\\n\t}\\n\\n\tpublic then<TResult1 = T, TResult2 = never>(\\n\t\tonFulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | null,\\n\t\tonRejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null\\n\t): Promise<TResult1 | TResult2> {\\n\t\treturn this.promise.then(onFulfilled, onRejected);\\n\t}\\n\\n\tpublic catch<TResult = never>(\\n\t\tonRejected?: ((reason: unknown) => TResult | PromiseLike<TResult>) | null\\n\t): Promise<T | TResult> {\\n\t\treturn this.promise.catch(onRejected);\\n\t}\\n\\n\tpublic finally(onFinally?: (() => void) | null): Promise<T> {\\n\t\treturn this.promise.finally(onFinally);\\n\t}\\n\\n\tpublic cancel(): void {\\n\t\tif (this._isResolved || this._isRejected || this._isCancelled) {\\n\t\t\treturn;\\n\t\t}\\n\t\tthis._isCancelled = true;\\n\t\tif (this.cancelHandlers.length) {\\n\t\t\ttry {\\n\t\t\t\tfor (const cancelHandler of this.cancelHandlers) {\\n\t\t\t\t\tcancelHandler();\\n\t\t\t\t}\\n\t\t\t} catch (error) {\\n\t\t\t\tconsole.warn('Cancellation threw an error', error);\\n\t\t\t\treturn;\\n\t\t\t}\\n\t\t}\\n\t\tthis.cancelHandlers.length = 0;\\n\t\tif (this._reject) this._reject(new CancelError('Request aborted'));\\n\t}\\n\\n\tpublic get isCancelled(): boolean {\\n\t\treturn this._isCancelled;\\n\t}\\n}\";\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return \"export const getHeaders = async <T>(config: OpenAPIConfig, options: ApiRequestOptions<T>): Promise<Headers> => {\\n\tconst [token, username, password, additionalHeaders] = await Promise.all([\\n\t\t// @ts-ignore\\n\t\tresolve(options, config.TOKEN),\\n\t\t// @ts-ignore\\n\t\tresolve(options, config.USERNAME),\\n\t\t// @ts-ignore\\n\t\tresolve(options, config.PASSWORD),\\n\t\t// @ts-ignore\\n\t\tresolve(options, config.HEADERS),\\n\t]);\\n\\n\tconst headers = Object.entries({\\n\t\tAccept: 'application/json',\\n\t\t...additionalHeaders,\\n\t\t...options.headers,\\n\t})\\n\t\t.filter(([, value]) => value !== undefined && value !== null)\\n\t\t.reduce((headers, [key, value]) => ({\\n\t\t\t...headers,\\n\t\t\t[key]: String(value),\\n\t\t}), {} as Record<string, string>);\\n\\n\tif (isStringWithValue(token)) {\\n\t\theaders['Authorization'] = `Bearer ${token}`;\\n\t}\\n\\n\tif (isStringWithValue(username) && isStringWithValue(password)) {\\n\t\tconst credentials = base64(`${username}:${password}`);\\n\t\theaders['Authorization'] = `Basic ${credentials}`;\\n\t}\\n\\n\tif (options.body !== undefined) {\\n\t\tif (options.mediaType) {\\n\t\t\theaders['Content-Type'] = options.mediaType;\\n\t\t} else if (isBlob(options.body)) {\\n\t\t\theaders['Content-Type'] = options.body.type || 'application/octet-stream';\\n\t\t} else if (isString(options.body)) {\\n\t\t\theaders['Content-Type'] = 'text/plain';\\n\t\t} else if (!isFormData(options.body)) {\\n\t\t\theaders['Content-Type'] = 'application/json';\\n\t\t}\\n\t}\\n\\n\treturn new Headers(headers);\\n};\";\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return \"export const getRequestBody = (options: ApiRequestOptions): unknown => {\\n\tif (options.body !== undefined) {\\n\t\tif (options.mediaType?.includes('application/json') || options.mediaType?.includes('+json')) {\\n\t\t\treturn JSON.stringify(options.body);\\n\t\t} else if (isString(options.body) || isBlob(options.body) || isFormData(options.body)) {\\n\t\t\treturn options.body;\\n\t\t} else {\\n\t\t\treturn JSON.stringify(options.body);\\n\t\t}\\n\t}\\n\treturn undefined;\\n};\";\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return \"export const getResponseBody = async (response: Response): Promise<unknown> => {\\n\tif (response.status !== 204) {\\n\t\ttry {\\n\t\t\tconst contentType = response.headers.get('Content-Type');\\n\t\t\tif (contentType) {\\n\t\t\t\tconst binaryTypes = ['application/octet-stream', 'application/pdf', 'application/zip', 'audio/', 'image/', 'video/'];\\n\t\t\t\tif (contentType.includes('application/json') || contentType.includes('+json')) {\\n\t\t\t\t\treturn await response.json();\\n\t\t\t\t} else if (binaryTypes.some(type => contentType.includes(type))) {\\n\t\t\t\t\treturn await response.blob();\\n\t\t\t\t} else if (contentType.includes('multipart/form-data')) {\\n\t\t\t\t\treturn await response.formData();\\n\t\t\t\t} else if (contentType.includes('text/')) {\\n\t\t\t\t\treturn await response.text();\\n\t\t\t\t}\\n\t\t\t}\\n\t\t} catch (error) {\\n\t\t\tconsole.error(error);\\n\t\t}\\n\t}\\n\treturn undefined;\\n};\";\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return 'export const getResponseHeader = (response: Response, responseHeader?: string): string | undefined => {\\n\tif (responseHeader) {\\n\t\tconst content = response.headers.get(responseHeader);\\n\t\tif (isString(content)) {\\n\t\t\treturn content;\\n\t\t}\\n\t}\\n\treturn undefined;\\n};';\n },\n useData: true,\n};\n","export default {\n 1: function (container, depth0, helpers, partials, data) {\n return \"import fetch, { FormData, Headers } from 'node-fetch';\\nimport type { RequestInit, Response } from 'node-fetch';\\n\\n\";\n },\n 3: function (container, depth0, helpers, partials, data) {\n return 'ApiResult<T>';\n },\n 5: function (container, depth0, helpers, partials, data) {\n return 'T';\n },\n 7: function (container, depth0, helpers, partials, data) {\n return 'result.body';\n },\n 9: function (container, depth0, helpers, partials, data) {\n return 'result';\n },\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n var stack1,\n alias1 = depth0 != null ? depth0 : container.nullContext || {},\n lookupProperty =\n container.lookupProperty ||\n function (parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined;\n };\n\n return (\n ((stack1 = lookupProperty(helpers, 'equals').call(\n alias1,\n lookupProperty(\n lookupProperty(\n lookupProperty(lookupProperty(data, 'root'), '$config'),\n 'client',\n ),\n 'name',\n ),\n 'legacy/node',\n {\n name: 'equals',\n hash: {},\n fn: container.program(1, data, 0),\n inverse: container.noop,\n data: data,\n loc: { start: { line: 1, column: 0 }, end: { line: 5, column: 11 } },\n },\n )) != null\n ? stack1\n : '') +\n \"import { ApiError } from './ApiError';\\nimport type { ApiRequestOptions } from './ApiRequestOptions';\\nimport type { ApiResult } from './ApiResult';\\nimport { CancelablePromise } from './CancelablePromise';\\nimport type { OnCancel } from './CancelablePromise';\\nimport type { OpenAPIConfig } from './OpenAPI';\\n\\n\" +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/isString'),\n depth0,\n {\n name: 'functions/isString',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/isStringWithValue'),\n depth0,\n {\n name: 'functions/isStringWithValue',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/isBlob'),\n depth0,\n {\n name: 'functions/isBlob',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/isFormData'),\n depth0,\n {\n name: 'functions/isFormData',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/base64'),\n depth0,\n {\n name: 'functions/base64',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/getQueryString'),\n depth0,\n {\n name: 'functions/getQueryString',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/getUrl'),\n depth0,\n {\n name: 'functions/getUrl',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/getFormData'),\n depth0,\n {\n name: 'functions/getFormData',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/resolve'),\n depth0,\n {\n name: 'functions/resolve',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'fetch/getHeaders'),\n depth0,\n {\n name: 'fetch/getHeaders',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'fetch/getRequestBody'),\n depth0,\n {\n name: 'fetch/getRequestBody',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'fetch/sendRequest'),\n depth0,\n {\n name: 'fetch/sendRequest',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'fetch/getResponseHeader'),\n depth0,\n {\n name: 'fetch/getResponseHeader',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'fetch/getResponseBody'),\n depth0,\n {\n name: 'fetch/getResponseBody',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/catchErrorCodes'),\n depth0,\n {\n name: 'functions/catchErrorCodes',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n/**\\n * Request method\\n * @param config The OpenAPI configuration object\\n * @param options The request options from the service\\n * @returns CancelablePromise<' +\n ((stack1 = lookupProperty(helpers, 'ifServicesResponse').call(\n alias1,\n 'response',\n {\n name: 'ifServicesResponse',\n hash: {},\n fn: container.program(3, data, 0),\n inverse: container.program(5, data, 0),\n data: data,\n loc: {\n start: { line: 62, column: 30 },\n end: { line: 62, column: 108 },\n },\n },\n )) != null\n ? stack1\n : '') +\n '>\\n * @throws ApiError\\n */\\nexport const request = <T>(config: OpenAPIConfig, options: ApiRequestOptions<T>): CancelablePromise<' +\n ((stack1 = lookupProperty(helpers, 'ifServicesResponse').call(\n alias1,\n 'response',\n {\n name: 'ifServicesResponse',\n hash: {},\n fn: container.program(3, data, 0),\n inverse: container.program(5, data, 0),\n data: data,\n loc: {\n start: { line: 65, column: 100 },\n end: { line: 65, column: 178 },\n },\n },\n )) != null\n ? stack1\n : '') +\n '> => {\\n\treturn new CancelablePromise(async (resolve, reject, onCancel) => {\\n\t\ttry {\\n\t\t\tconst url = getUrl(config, options);\\n\t\t\tconst formData = getFormData(options);\\n\t\t\tconst body = getRequestBody(options);\\n\t\t\tconst headers = await getHeaders(config, options);\\n\\n\t\t\tif (!onCancel.isCancelled) {\\n\t\t\t\tlet response = await sendRequest(config, options, url, body, formData, headers, onCancel);\\n\\n\t\t\t\tfor (const fn of config.interceptors.response._fns) {\\n\t\t\t\t\tresponse = await fn(response);\\n\t\t\t\t}\\n\\n\t\t\t\tconst responseBody = await getResponseBody(response);\\n\t\t\t\tconst responseHeader = getResponseHeader(response, options.responseHeader);\\n\\n\t\t\t\tlet transformedBody = responseBody;\\n\t\t\t\tif (options.responseTransformer && response.ok) {\\n\t\t\t\t\ttransformedBody = await options.responseTransformer(responseBody)\\n\t\t\t\t}\\n\\n\t\t\t\tconst result: ApiResult = {\\n\t\t\t\t\turl,\\n\t\t\t\t\tok: response.ok,\\n\t\t\t\t\tstatus: response.status,\\n\t\t\t\t\tstatusText: response.statusText,\\n\t\t\t\t\tbody: responseHeader ?? transformedBody,\\n\t\t\t\t};\\n\\n\t\t\t\tcatchErrorCodes(options, result);\\n\\n\t\t\t\tresolve(' +\n ((stack1 = lookupProperty(helpers, 'ifServicesResponse').call(\n alias1,\n 'body',\n {\n name: 'ifServicesResponse',\n hash: {},\n fn: container.program(7, data, 0),\n inverse: container.program(9, data, 0),\n data: data,\n loc: {\n start: { line: 98, column: 12 },\n end: { line: 98, column: 90 },\n },\n },\n )) != null\n ? stack1\n : '') +\n ');\\n\t\t\t}\\n\t\t} catch (error) {\\n\t\t\treject(error);\\n\t\t}\\n\t});\\n};'\n );\n },\n usePartial: true,\n useData: true,\n};\n","export default {\n 1: function (container, depth0, helpers, partials, data) {\n return '\tif (config.WITH_CREDENTIALS) {\\n\t\trequest.credentials = config.CREDENTIALS;\\n\t}\\n';\n },\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n var stack1,\n lookupProperty =\n container.lookupProperty ||\n function (parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined;\n };\n\n return (\n 'export const sendRequest = async (\\n\tconfig: OpenAPIConfig,\\n\toptions: ApiRequestOptions,\\n\turl: string,\\n\tbody: any,\\n\tformData: FormData | undefined,\\n\theaders: Headers,\\n\tonCancel: OnCancel\\n): Promise<Response> => {\\n\tconst controller = new AbortController();\\n\\n\tlet request: RequestInit = {\\n\t\theaders,\\n\t\tbody: body ?? formData,\\n\t\tmethod: options.method,\\n\t\tsignal: controller.signal,\\n\t};\\n\\n' +\n ((stack1 = lookupProperty(helpers, 'equals').call(\n depth0 != null ? depth0 : container.nullContext || {},\n lookupProperty(\n lookupProperty(\n lookupProperty(lookupProperty(data, 'root'), '$config'),\n 'client',\n ),\n 'name',\n ),\n 'legacy/fetch',\n {\n name: 'equals',\n hash: {},\n fn: container.program(1, data, 0),\n inverse: container.noop,\n data: data,\n loc: {\n start: { line: 19, column: 1 },\n end: { line: 23, column: 12 },\n },\n },\n )) != null\n ? stack1\n : '') +\n '\\n\tfor (const fn of config.interceptors.request._fns) {\\n\t\trequest = await fn(request);\\n\t}\\n\\n\tonCancel(() => controller.abort());\\n\\n\treturn await fetch(url, request);\\n};'\n );\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return \"export const base64 = (str: string): string => {\\n\ttry {\\n\t\treturn btoa(str);\\n\t} catch (err) {\\n\t\t// @ts-ignore\\n\t\treturn Buffer.from(str).toString('base64');\\n\t}\\n};\";\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return \"export const catchErrorCodes = (options: ApiRequestOptions, result: ApiResult): void => {\\n\tconst errors: Record<number, string> = {\\n\t\t400: 'Bad Request',\\n\t\t401: 'Unauthorized',\\n\t\t402: 'Payment Required',\\n\t\t403: 'Forbidden',\\n\t\t404: 'Not Found',\\n\t\t405: 'Method Not Allowed',\\n\t\t406: 'Not Acceptable',\\n\t\t407: 'Proxy Authentication Required',\\n\t\t408: 'Request Timeout',\\n\t\t409: 'Conflict',\\n\t\t410: 'Gone',\\n\t\t411: 'Length Required',\\n\t\t412: 'Precondition Failed',\\n\t\t413: 'Payload Too Large',\\n\t\t414: 'URI Too Long',\\n\t\t415: 'Unsupported Media Type',\\n\t\t416: 'Range Not Satisfiable',\\n\t\t417: 'Expectation Failed',\\n\t\t418: 'Im a teapot',\\n\t\t421: 'Misdirected Request',\\n\t\t422: 'Unprocessable Content',\\n\t\t423: 'Locked',\\n\t\t424: 'Failed Dependency',\\n\t\t425: 'Too Early',\\n\t\t426: 'Upgrade Required',\\n\t\t428: 'Precondition Required',\\n\t\t429: 'Too Many Requests',\\n\t\t431: 'Request Header Fields Too Large',\\n\t\t451: 'Unavailable For Legal Reasons',\\n\t\t500: 'Internal Server Error',\\n\t\t501: 'Not Implemented',\\n\t\t502: 'Bad Gateway',\\n\t\t503: 'Service Unavailable',\\n\t\t504: 'Gateway Timeout',\\n\t\t505: 'HTTP Version Not Supported',\\n\t\t506: 'Variant Also Negotiates',\\n\t\t507: 'Insufficient Storage',\\n\t\t508: 'Loop Detected',\\n\t\t510: 'Not Extended',\\n\t\t511: 'Network Authentication Required',\\n\t\t...options.errors,\\n\t}\\n\\n\tconst error = errors[result.status];\\n\tif (error) {\\n\t\tthrow new ApiError(options, result, error);\\n\t}\\n\\n\tif (!result.ok) {\\n\t\tconst errorStatus = result.status ?? 'unknown';\\n\t\tconst errorStatusText = result.statusText ?? 'unknown';\\n\t\tconst errorBody = (() => {\\n\t\t\ttry {\\n\t\t\t\treturn JSON.stringify(result.body, null, 2);\\n\t\t\t} catch (e) {\\n\t\t\t\treturn undefined;\\n\t\t\t}\\n\t\t})();\\n\\n\t\tthrow new ApiError(options, result,\\n\t\t\t`Generic Error: status: ${errorStatus}; status text: ${errorStatusText}; body: ${errorBody}`\\n\t\t);\\n\t}\\n};\";\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return 'export const getFormData = (options: ApiRequestOptions): FormData | undefined => {\\n\tif (options.formData) {\\n\t\tconst formData = new FormData();\\n\\n\t\tconst process = (key: string, value: unknown) => {\\n\t\t\tif (isString(value) || isBlob(value)) {\\n\t\t\t\tformData.append(key, value);\\n\t\t\t} else {\\n\t\t\t\tformData.append(key, JSON.stringify(value));\\n\t\t\t}\\n\t\t};\\n\\n\t\tObject.entries(options.formData)\\n\t\t\t.filter(([, value]) => value !== undefined && value !== null)\\n\t\t\t.forEach(([key, value]) => {\\n\t\t\t\tif (Array.isArray(value)) {\\n\t\t\t\t\tvalue.forEach(v => process(key, v));\\n\t\t\t\t} else {\\n\t\t\t\t\tprocess(key, value);\\n\t\t\t\t}\\n\t\t\t});\\n\\n\t\treturn formData;\\n\t}\\n\treturn undefined;\\n};';\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return \"export const getQueryString = (params: Record<string, unknown>): string => {\\n\tconst qs: string[] = [];\\n\\n\tconst append = (key: string, value: unknown) => {\\n\t\tqs.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`);\\n\t};\\n\\n\tconst encodePair = (key: string, value: unknown) => {\\n\t\tif (value === undefined || value === null) {\\n\t\t\treturn;\\n\t\t}\\n\\n\t\tif (value instanceof Date) {\\n\t\t\tappend(key, value.toISOString());\\n\t\t} else if (Array.isArray(value)) {\\n\t\t\tvalue.forEach(v => encodePair(key, v));\\n\t\t} else if (typeof value === 'object') {\\n\t\t\tObject.entries(value).forEach(([k, v]) => encodePair(`${key}[${k}]`, v));\\n\t\t} else {\\n\t\t\tappend(key, value);\\n\t\t}\\n\t};\\n\\n\tObject.entries(params).forEach(([key, value]) => encodePair(key, value));\\n\\n\treturn qs.length ? `?${qs.join('&')}` : '';\\n};\";\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return \"const getUrl = (config: OpenAPIConfig, options: ApiRequestOptions): string => {\\n\tconst encoder = config.ENCODE_PATH || encodeURI;\\n\\n\tconst path = options.url\\n\t\t.replace('{api-version}', config.VERSION)\\n\t\t.replace(/{(.*?)}/g, (substring: string, group: string) => {\\n\t\t\tif (options.path?.hasOwnProperty(group)) {\\n\t\t\t\treturn encoder(String(options.path[group]));\\n\t\t\t}\\n\t\t\treturn substring;\\n\t\t});\\n\\n\tconst url = config.BASE + path;\\n\treturn options.query ? url + getQueryString(options.query) : url;\\n};\";\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return 'export const isBlob = (value: any): value is Blob => {\\n\treturn value instanceof Blob;\\n};';\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return 'export const isFormData = (value: unknown): value is FormData => {\\n\treturn value instanceof FormData;\\n};';\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return \"export const isString = (value: unknown): value is string => {\\n\treturn typeof value === 'string';\\n};\";\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return \"export const isStringWithValue = (value: unknown): value is string => {\\n\treturn isString(value) && value !== '';\\n};\";\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return 'export const isSuccess = (status: number): boolean => {\\n\treturn status >= 200 && status < 300;\\n};';\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return \"type Resolver<T> = (options: ApiRequestOptions<T>) => Promise<T>;\\n\\nexport const resolve = async <T>(options: ApiRequestOptions<T>, resolver?: T | Resolver<T>): Promise<T | undefined> => {\\n\tif (typeof resolver === 'function') {\\n\t\treturn (resolver as Resolver<T>)(options);\\n\t}\\n\treturn resolver;\\n};\";\n },\n useData: true,\n};\n","export default {\n 1: function (container, depth0, helpers, partials, data) {\n return \"import { Inject, Injectable } from '@angular/core';\\nimport { HttpClient } from '@angular/common/http';\\nimport type { Observable } from 'rxjs';\\n\\nimport type { ApiRequestOptions } from './ApiRequestOptions';\\nimport { BaseHttpRequest } from './BaseHttpRequest';\\nimport type { OpenAPIConfig } from './OpenAPI';\\nimport { OpenAPI } from './OpenAPI';\\nimport { request as __request } from './request';\\n\";\n },\n 3: function (container, depth0, helpers, partials, data) {\n return \"import type { ApiRequestOptions } from './ApiRequestOptions';\\nimport { BaseHttpRequest } from './BaseHttpRequest';\\nimport type { CancelablePromise } from './CancelablePromise';\\nimport type { OpenAPIConfig } from './OpenAPI';\\nimport { request as __request } from './request';\\n\";\n },\n 5: function (container, depth0, helpers, partials, data) {\n return '@Injectable()\\n';\n },\n 7: function (container, depth0, helpers, partials, data) {\n return '\tconstructor(\\n\t\t@Inject(OpenAPI)\\n\t\tconfig: OpenAPIConfig,\\n\t\thttp: HttpClient,\\n\t) {\\n\t\tsuper(config, http);\\n\t}\\n';\n },\n 9: function (container, depth0, helpers, partials, data) {\n return '\tconstructor(config: OpenAPIConfig) {\\n\t\tsuper(config);\\n\t}\\n';\n },\n 11: function (container, depth0, helpers, partials, data) {\n return '\t/**\\n\t * Request method\\n\t * @param options The request options from the service\\n\t * @returns Observable<T>\\n\t * @throws ApiError\\n\t */\\n\tpublic override request<T>(options: ApiRequestOptions<T>): Observable<T> {\\n\t\treturn __request(this.config, this.http, options);\\n\t}\\n';\n },\n 13: function (container, depth0, helpers, partials, data) {\n return '\t/**\\n\t * Request method\\n\t * @param options The request options from the service\\n\t * @returns CancelablePromise<T>\\n\t * @throws ApiError\\n\t */\\n\tpublic override request<T>(options: ApiRequestOptions<T>): CancelablePromise<T> {\\n\t\treturn __request(this.config, options);\\n\t}\\n';\n },\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n var stack1,\n alias1 = depth0 != null ? depth0 : container.nullContext || {},\n lookupProperty =\n container.lookupProperty ||\n function (parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined;\n };\n\n return (\n ((stack1 = lookupProperty(helpers, 'equals').call(\n alias1,\n lookupProperty(\n lookupProperty(\n lookupProperty(lookupProperty(data, 'root'), '$config'),\n 'client',\n ),\n 'name',\n ),\n 'legacy/angular',\n {\n name: 'equals',\n hash: {},\n fn: container.program(1, data, 0),\n inverse: container.program(3, data, 0),\n data: data,\n loc: { start: { line: 1, column: 0 }, end: { line: 17, column: 11 } },\n },\n )) != null\n ? stack1\n : '') +\n '\\n' +\n ((stack1 = lookupProperty(helpers, 'equals').call(\n alias1,\n lookupProperty(\n lookupProperty(\n lookupProperty(lookupProperty(data, 'root'), '$config'),\n 'client',\n ),\n 'name',\n ),\n 'legacy/angular',\n {\n name: 'equals',\n hash: {},\n fn: container.program(5, data, 0),\n inverse: container.noop,\n data: data,\n loc: {\n start: { line: 19, column: 0 },\n end: { line: 21, column: 11 },\n },\n },\n )) != null\n ? stack1\n : '') +\n 'export class ' +\n ((stack1 = container.lambda(\n container.strict(depth0, 'httpRequest', {\n start: { line: 22, column: 15 },\n end: { line: 22, column: 26 },\n }),\n depth0,\n )) != null\n ? stack1\n : '') +\n ' extends BaseHttpRequest {\\n\\n' +\n ((stack1 = lookupProperty(helpers, 'equals').call(\n alias1,\n lookupProperty(\n lookupProperty(\n lookupProperty(lookupProperty(data, 'root'), '$config'),\n 'client',\n ),\n 'name',\n ),\n 'legacy/angular',\n {\n name: 'equals',\n hash: {},\n fn: container.program(7, data, 0),\n inverse: container.program(9, data, 0),\n data: data,\n loc: {\n start: { line: 24, column: 1 },\n end: { line: 36, column: 12 },\n },\n },\n )) != null\n ? stack1\n : '') +\n '\\n' +\n ((stack1 = lookupProperty(helpers, 'equals').call(\n alias1,\n lookupProperty(\n lookupProperty(\n lookupProperty(lookupProperty(data, 'root'), '$config'),\n 'client',\n ),\n 'name',\n ),\n 'legacy/angular',\n {\n name: 'equals',\n hash: {},\n fn: container.program(11, data, 0),\n inverse: container.program(13, data, 0),\n data: data,\n loc: {\n start: { line: 38, column: 1 },\n end: { line: 58, column: 12 },\n },\n },\n )) != null\n ? stack1\n : '') +\n '}'\n );\n },\n useData: true,\n};\n","export default {\n 1: function (container, depth0, helpers, partials, data) {\n return \"import type { HttpResponse } from '@angular/common/http';\\n\";\n },\n 3: function (container, depth0, helpers, partials, data) {\n return \"import type { AxiosRequestConfig, AxiosResponse } from 'axios';\\n\";\n },\n 5: function (container, depth0, helpers, partials, data) {\n return \"import type { RequestInit, Response } from 'node-fetch';\\n\";\n },\n 7: function (container, depth0, helpers, partials, data) {\n return '\t\tresponse: Interceptors<HttpResponse<any>>;\\n';\n },\n 9: function (container, depth0, helpers, partials, data) {\n return '\t\trequest: Interceptors<AxiosRequestConfig>;\\n\t\tresponse: Interceptors<AxiosResponse>;\\n';\n },\n 11: function (container, depth0, helpers, partials, data) {\n return '\t\trequest: Interceptors<RequestInit>;\\n\t\tresponse: Interceptors<Response>;\\n';\n },\n 13: function (container, depth0, helpers, partials, data) {\n return '\t\trequest: Interceptors<XMLHttpRequest>;\\n\t\tresponse: Interceptors<XMLHttpRequest>;\\n';\n },\n 15: function (container, depth0, helpers, partials, data) {\n return '\t\trequest: new Interceptors(),\\n';\n },\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n var stack1,\n alias1 = depth0 != null ? depth0 : container.nullContext || {},\n alias2 = container.strict,\n alias3 = container.lambda,\n lookupProperty =\n container.lookupProperty ||\n function (parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined;\n };\n\n return (\n ((stack1 = lookupProperty(helpers, 'equals').call(\n alias1,\n lookupProperty(\n lookupProperty(\n lookupProperty(lookupProperty(data, 'root'), '$config'),\n 'client',\n ),\n 'name',\n ),\n 'legacy/angular',\n {\n name: 'equals',\n hash: {},\n fn: container.program(1, data, 0),\n inverse: container.noop,\n data: data,\n loc: { start: { line: 1, column: 0 }, end: { line: 3, column: 11 } },\n },\n )) != null\n ? stack1\n : '') +\n ((stack1 = lookupProperty(helpers, 'equals').call(\n alias1,\n lookupProperty(\n lookupProperty(\n lookupProperty(lookupProperty(data, 'root'), '$config'),\n 'client',\n ),\n 'name',\n ),\n 'legacy/axios',\n {\n name: 'equals',\n hash: {},\n fn: container.program(3, data, 0),\n inverse: container.noop,\n data: data,\n loc: { start: { line: 4, column: 0 }, end: { line: 6, column: 11 } },\n },\n )) != null\n ? stack1\n : '') +\n ((stack1 = lookupProperty(helpers, 'equals').call(\n alias1,\n lookupProperty(\n lookupProperty(\n lookupProperty(lookupProperty(data, 'root'), '$config'),\n 'client',\n ),\n 'name',\n ),\n 'legacy/node',\n {\n name: 'equals',\n hash: {},\n fn: container.program(5, data, 0),\n inverse: container.noop,\n data: data,\n loc: { start: { line: 7, column: 0 }, end: { line: 9, column: 11 } },\n },\n )) != null\n ? stack1\n : '') +\n \"import type { ApiRequestOptions } from './ApiRequestOptions';\\n\\ntype Headers = Record<string, string>;\\ntype Middleware<T> = (value: T) => T | Promise<T>;\\ntype Resolver<T> = (options: ApiRequestOptions<T>) => Promise<T>;\\n\\nexport class Interceptors<T> {\\n _fns: Middleware<T>[];\\n\\n constructor() {\\n this._fns = [];\\n }\\n\\n eject(fn: Middleware<T>): void {\\n const index = this._fns.indexOf(fn);\\n if (index !== -1) {\\n this._fns = [...this._fns.slice(0, index), ...this._fns.slice(index + 1)];\\n }\\n }\\n\\n use(fn: Middleware<T>): void {\\n this._fns = [...this._fns, fn];\\n }\\n}\\n\\nexport type OpenAPIConfig = {\\n\tBASE: string;\\n\tCREDENTIALS: 'include' | 'omit' | 'same-origin';\\n\tENCODE_PATH?: ((path: string) => string) | undefined;\\n\tHEADERS?: Headers | Resolver<Headers> | undefined;\\n\tPASSWORD?: string | Resolver<string> | undefined;\\n\tTOKEN?: string | Resolver<string> | undefined;\\n\tUSERNAME?: string | Resolver<string> | undefined;\\n\tVERSION: string;\\n\tWITH_CREDENTIALS: boolean;\\n\tinterceptors: {\\n\" +\n ((stack1 = lookupProperty(helpers, 'equals').call(\n alias1,\n lookupProperty(\n lookupProperty(\n lookupProperty(lookupProperty(data, 'root'), '$config'),\n 'client',\n ),\n 'name',\n ),\n 'legacy/angular',\n {\n name: 'equals',\n hash: {},\n fn: container.program(7, data, 0),\n inverse: container.noop,\n data: data,\n loc: {\n start: { line: 46, column: 2 },\n end: { line: 48, column: 13 },\n },\n },\n )) != null\n ? stack1\n : '') +\n ((stack1 = lookupProperty(helpers, 'equals').call(\n alias1,\n lookupProperty(\n lookupProperty(\n lookupProperty(lookupProperty(data, 'root'), '$config'),\n 'client',\n ),\n 'name',\n ),\n 'legacy/axios',\n {\n name: 'equals',\n hash: {},\n fn: container.program(9, data, 0),\n inverse: container.noop,\n data: data,\n loc: {\n start: { line: 49, column: 2 },\n end: { line: 52, column: 13 },\n },\n },\n )) != null\n ? stack1\n : '') +\n ((stack1 = lookupProperty(helpers, 'equals').call(\n alias1,\n lookupProperty(\n lookupProperty(\n lookupProperty(lookupProperty(data, 'root'), '$config'),\n 'client',\n ),\n 'name',\n ),\n 'legacy/fetch',\n {\n name: 'equals',\n hash: {},\n fn: container.program(11, data, 0),\n inverse: container.noop,\n data: data,\n loc: {\n start: { line: 53, column: 2 },\n end: { line: 56, column: 13 },\n },\n },\n )) != null\n ? stack1\n : '') +\n ((stack1 = lookupProperty(helpers, 'equals').call(\n alias1,\n lookupProperty(\n lookupProperty(\n lookupProperty(lookupProperty(data, 'root'), '$config'),\n 'client',\n ),\n 'name',\n ),\n 'legacy/node',\n {\n name: 'equals',\n hash: {},\n fn: container.program(11, data, 0),\n inverse: container.noop,\n data: data,\n loc: {\n start: { line: 57, column: 2 },\n end: { line: 60, column: 13 },\n },\n },\n )) != null\n ? stack1\n : '') +\n ((stack1 = lookupProperty(helpers, 'equals').call(\n alias1,\n lookupProperty(\n lookupProperty(\n lookupProperty(lookupProperty(data, 'root'), '$config'),\n 'client',\n ),\n 'name',\n ),\n 'legacy/xhr',\n {\n name: 'equals',\n hash: {},\n fn: container.program(13, data, 0),\n inverse: container.noop,\n data: data,\n loc: {\n start: { line: 61, column: 2 },\n end: { line: 64, column: 13 },\n },\n },\n )) != null\n ? stack1\n : '') +\n \"\t};\\n};\\n\\nexport const OpenAPI: OpenAPIConfig = {\\n\tBASE: '\" +\n ((stack1 = alias3(\n alias2(depth0, 'server', {\n start: { line: 69, column: 11 },\n end: { line: 69, column: 17 },\n }),\n depth0,\n )) != null\n ? stack1\n : '') +\n \"',\\n\tCREDENTIALS: 'include',\\n\tENCODE_PATH: undefined,\\n\tHEADERS: undefined,\\n\tPASSWORD: undefined,\\n\tTOKEN: undefined,\\n\tUSERNAME: undefined,\\n\tVERSION: '\" +\n ((stack1 = alias3(\n alias2(depth0, 'version', {\n start: { line: 76, column: 14 },\n end: { line: 76, column: 21 },\n }),\n depth0,\n )) != null\n ? stack1\n : '') +\n \"',\\n\tWITH_CREDENTIALS: false,\\n\tinterceptors: {\\n\" +\n ((stack1 = lookupProperty(helpers, 'notEquals').call(\n alias1,\n lookupProperty(\n lookupProperty(\n lookupProperty(lookupProperty(data, 'root'), '$config'),\n 'client',\n ),\n 'name',\n ),\n 'legacy/angular',\n {\n name: 'notEquals',\n hash: {},\n fn: container.program(15, data, 0),\n inverse: container.noop,\n data: data,\n loc: {\n start: { line: 79, column: 2 },\n end: { line: 81, column: 16 },\n },\n },\n )) != null\n ? stack1\n : '') +\n '\t\tresponse: new Interceptors(),\\n\t},\\n};'\n );\n },\n useData: true,\n};\n","export default {\n 1: function (container, depth0, helpers, partials, data) {\n var stack1,\n lookupProperty =\n container.lookupProperty ||\n function (parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined;\n };\n\n return (stack1 = container.invokePartial(\n lookupProperty(partials, 'angular/request'),\n depth0,\n {\n name: 'angular/request',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '';\n },\n 3: function (container, depth0, helpers, partials, data) {\n var stack1,\n lookupProperty =\n container.lookupProperty ||\n function (parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined;\n };\n\n return (stack1 = container.invokePartial(\n lookupProperty(partials, 'axios/request'),\n depth0,\n {\n name: 'axios/request',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '';\n },\n 5: function (container, depth0, helpers, partials, data) {\n var stack1,\n lookupProperty =\n container.lookupProperty ||\n function (parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined;\n };\n\n return (stack1 = container.invokePartial(\n lookupProperty(partials, 'fetch/request'),\n depth0,\n {\n name: 'fetch/request',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '';\n },\n 7: function (container, depth0, helpers, partials, data) {\n var stack1,\n lookupProperty =\n container.lookupProperty ||\n function (parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined;\n };\n\n return (stack1 = container.invokePartial(\n lookupProperty(partials, 'xhr/request'),\n depth0,\n {\n name: 'xhr/request',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '';\n },\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n var stack1,\n alias1 = depth0 != null ? depth0 : container.nullContext || {},\n lookupProperty =\n container.lookupProperty ||\n function (parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined;\n };\n\n return (\n ((stack1 = lookupProperty(helpers, 'equals').call(\n alias1,\n lookupProperty(\n lookupProperty(\n lookupProperty(lookupProperty(data, 'root'), '$config'),\n 'client',\n ),\n 'name',\n ),\n 'legacy/angular',\n {\n name: 'equals',\n hash: {},\n fn: container.program(1, data, 0),\n inverse: container.noop,\n data: data,\n loc: { start: { line: 1, column: 0 }, end: { line: 1, column: 87 } },\n },\n )) != null\n ? stack1\n : '') +\n ((stack1 = lookupProperty(helpers, 'equals').call(\n alias1,\n lookupProperty(\n lookupProperty(\n lookupProperty(lookupProperty(data, 'root'), '$config'),\n 'client',\n ),\n 'name',\n ),\n 'legacy/axios',\n {\n name: 'equals',\n hash: {},\n fn: container.program(3, data, 0),\n inverse: container.noop,\n data: data,\n loc: { start: { line: 2, column: 0 }, end: { line: 2, column: 83 } },\n },\n )) != null\n ? stack1\n : '') +\n ((stack1 = lookupProperty(helpers, 'equals').call(\n alias1,\n lookupProperty(\n lookupProperty(\n lookupProperty(lookupProperty(data, 'root'), '$config'),\n 'client',\n ),\n 'name',\n ),\n 'legacy/fetch',\n {\n name: 'equals',\n hash: {},\n fn: container.program(5, data, 0),\n inverse: container.noop,\n data: data,\n loc: { start: { line: 3, column: 0 }, end: { line: 3, column: 83 } },\n },\n )) != null\n ? stack1\n : '') +\n ((stack1 = lookupProperty(helpers, 'equals').call(\n alias1,\n lookupProperty(\n lookupProperty(\n lookupProperty(lookupProperty(data, 'root'), '$config'),\n 'client',\n ),\n 'name',\n ),\n 'legacy/node',\n {\n name: 'equals',\n hash: {},\n fn: container.program(5, data, 0),\n inverse: container.noop,\n data: data,\n loc: { start: { line: 4, column: 0 }, end: { line: 4, column: 82 } },\n },\n )) != null\n ? stack1\n : '') +\n ((stack1 = lookupProperty(helpers, 'equals').call(\n alias1,\n lookupProperty(\n lookupProperty(\n lookupProperty(lookupProperty(data, 'root'), '$config'),\n 'client',\n ),\n 'name',\n ),\n 'legacy/xhr',\n {\n name: 'equals',\n hash: {},\n fn: container.program(7, data, 0),\n inverse: container.noop,\n data: data,\n loc: { start: { line: 5, column: 0 }, end: { line: 5, column: 79 } },\n },\n )) != null\n ? stack1\n : '')\n );\n },\n usePartial: true,\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return \"export const getHeaders = async <T>(config: OpenAPIConfig, options: ApiRequestOptions<T>): Promise<Headers> => {\\n\tconst [token, username, password, additionalHeaders] = await Promise.all([\\n\t\t// @ts-ignore\\n\t\tresolve(options, config.TOKEN),\\n\t\t// @ts-ignore\\n\t\tresolve(options, config.USERNAME),\\n\t\t// @ts-ignore\\n\t\tresolve(options, config.PASSWORD),\\n\t\t// @ts-ignore\\n\t\tresolve(options, config.HEADERS),\\n\t]);\\n\\n\tconst headers = Object.entries({\\n\t\tAccept: 'application/json',\\n\t\t...additionalHeaders,\\n\t\t...options.headers,\\n\t})\\n\t\t.filter(([, value]) => value !== undefined && value !== null)\\n\t\t.reduce((headers, [key, value]) => ({\\n\t\t\t...headers,\\n\t\t\t[key]: String(value),\\n\t\t}), {} as Record<string, string>);\\n\\n\tif (isStringWithValue(token)) {\\n\t\theaders['Authorization'] = `Bearer ${token}`;\\n\t}\\n\\n\tif (isStringWithValue(username) && isStringWithValue(password)) {\\n\t\tconst credentials = base64(`${username}:${password}`);\\n\t\theaders['Authorization'] = `Basic ${credentials}`;\\n\t}\\n\\n\tif (options.body !== undefined) {\\n\t\tif (options.mediaType) {\\n\t\t\theaders['Content-Type'] = options.mediaType;\\n\t\t} else if (isBlob(options.body)) {\\n\t\t\theaders['Content-Type'] = options.body.type || 'application/octet-stream';\\n\t\t} else if (isString(options.body)) {\\n\t\t\theaders['Content-Type'] = 'text/plain';\\n\t\t} else if (!isFormData(options.body)) {\\n\t\t\theaders['Content-Type'] = 'application/json';\\n\t\t}\\n\t}\\n\\n\treturn new Headers(headers);\\n};\";\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return \"export const getRequestBody = (options: ApiRequestOptions): unknown => {\\n\tif (options.body !== undefined) {\\n\t\tif (options.mediaType?.includes('application/json') || options.mediaType?.includes('+json')) {\\n\t\t\treturn JSON.stringify(options.body);\\n\t\t} else if (isString(options.body) || isBlob(options.body) || isFormData(options.body)) {\\n\t\t\treturn options.body;\\n\t\t} else {\\n\t\t\treturn JSON.stringify(options.body);\\n\t\t}\\n\t}\\n\treturn undefined;\\n};\";\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return \"export const getResponseBody = (xhr: XMLHttpRequest): unknown => {\\n\tif (xhr.status !== 204) {\\n\t\ttry {\\n\t\t\tconst contentType = xhr.getResponseHeader('Content-Type');\\n\t\t\tif (contentType) {\\n\t\t\t\tif (contentType.includes('application/json') || contentType.includes('+json')) {\\n\t\t\t\t\treturn JSON.parse(xhr.responseText);\\n\t\t\t\t} else {\\n\t\t\t\t\treturn xhr.responseText;\\n\t\t\t\t}\\n\t\t\t}\\n\t\t} catch (error) {\\n\t\t\tconsole.error(error);\\n\t\t}\\n\t}\\n\treturn undefined;\\n};\";\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return 'export const getResponseHeader = (xhr: XMLHttpRequest, responseHeader?: string): string | undefined => {\\n\tif (responseHeader) {\\n\t\tconst content = xhr.getResponseHeader(responseHeader);\\n\t\tif (isString(content)) {\\n\t\t\treturn content;\\n\t\t}\\n\t}\\n\treturn undefined;\\n};';\n },\n useData: true,\n};\n","export default {\n 1: function (container, depth0, helpers, partials, data) {\n return 'ApiResult<T>';\n },\n 3: function (container, depth0, helpers, partials, data) {\n return 'T';\n },\n 5: function (container, depth0, helpers, partials, data) {\n return 'result.body';\n },\n 7: function (container, depth0, helpers, partials, data) {\n return 'result';\n },\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n var stack1,\n alias1 = depth0 != null ? depth0 : container.nullContext || {},\n lookupProperty =\n container.lookupProperty ||\n function (parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined;\n };\n\n return (\n \"import { ApiError } from './ApiError';\\nimport type { ApiRequestOptions } from './ApiRequestOptions';\\nimport type { ApiResult } from './ApiResult';\\nimport { CancelablePromise } from './CancelablePromise';\\nimport type { OnCancel } from './CancelablePromise';\\nimport type { OpenAPIConfig } from './OpenAPI';\\n\\n\" +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/isString'),\n depth0,\n {\n name: 'functions/isString',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/isStringWithValue'),\n depth0,\n {\n name: 'functions/isStringWithValue',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/isBlob'),\n depth0,\n {\n name: 'functions/isBlob',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/isFormData'),\n depth0,\n {\n name: 'functions/isFormData',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/isSuccess'),\n depth0,\n {\n name: 'functions/isSuccess',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/base64'),\n depth0,\n {\n name: 'functions/base64',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/getQueryString'),\n depth0,\n {\n name: 'functions/getQueryString',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/getUrl'),\n depth0,\n {\n name: 'functions/getUrl',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/getFormData'),\n depth0,\n {\n name: 'functions/getFormData',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/resolve'),\n depth0,\n {\n name: 'functions/resolve',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'fetch/getHeaders'),\n depth0,\n {\n name: 'fetch/getHeaders',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'xhr/getRequestBody'),\n depth0,\n {\n name: 'xhr/getRequestBody',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'xhr/sendRequest'),\n depth0,\n {\n name: 'xhr/sendRequest',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'xhr/getResponseHeader'),\n depth0,\n {\n name: 'xhr/getResponseHeader',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'xhr/getResponseBody'),\n depth0,\n {\n name: 'xhr/getResponseBody',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/catchErrorCodes'),\n depth0,\n {\n name: 'functions/catchErrorCodes',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n/**\\n * Request method\\n * @param config The OpenAPI configuration object\\n * @param options The request options from the service\\n * @returns CancelablePromise<' +\n ((stack1 = lookupProperty(helpers, 'ifServicesResponse').call(\n alias1,\n 'response',\n {\n name: 'ifServicesResponse',\n hash: {},\n fn: container.program(1, data, 0),\n inverse: container.program(3, data, 0),\n data: data,\n loc: {\n start: { line: 60, column: 30 },\n end: { line: 60, column: 108 },\n },\n },\n )) != null\n ? stack1\n : '') +\n '>\\n * @throws ApiError\\n */\\nexport const request = <T>(config: OpenAPIConfig, options: ApiRequestOptions<T>): CancelablePromise<' +\n ((stack1 = lookupProperty(helpers, 'ifServicesResponse').call(\n alias1,\n 'response',\n {\n name: 'ifServicesResponse',\n hash: {},\n fn: container.program(1, data, 0),\n inverse: container.program(3, data, 0),\n data: data,\n loc: {\n start: { line: 63, column: 100 },\n end: { line: 63, column: 178 },\n },\n },\n )) != null\n ? stack1\n : '') +\n '> => {\\n\treturn new CancelablePromise(async (resolve, reject, onCancel) => {\\n\t\ttry {\\n\t\t\tconst url = getUrl(config, options);\\n\t\t\tconst formData = getFormData(options);\\n\t\t\tconst body = getRequestBody(options);\\n\t\t\tconst headers = await getHeaders(config, options);\\n\\n\t\t\tif (!onCancel.isCancelled) {\\n\t\t\t\tlet response = await sendRequest(config, options, url, body, formData, headers, onCancel);\\n\\n\t\t\t\tfor (const fn of config.interceptors.response._fns) {\\n\t\t\t\t\tresponse = await fn(response);\\n\t\t\t\t}\\n\\n\t\t\t\tconst responseBody = getResponseBody(response);\\n\t\t\t\tconst responseHeader = getResponseHeader(response, options.responseHeader);\\n\\n\t\t\t\tlet transformedBody = responseBody;\\n\t\t\t\tif (options.responseTransformer && isSuccess(response.status)) {\\n\t\t\t\t\ttransformedBody = await options.responseTransformer(responseBody)\\n\t\t\t\t}\\n\\n\t\t\t\tconst result: ApiResult = {\\n\t\t\t\t\turl,\\n\t\t\t\t\tok: isSuccess(response.status),\\n\t\t\t\t\tstatus: response.status,\\n\t\t\t\t\tstatusText: response.statusText,\\n\t\t\t\t\tbody: responseHeader ?? transformedBody,\\n\t\t\t\t};\\n\\n\t\t\t\tcatchErrorCodes(options, result);\\n\\n\t\t\t\tresolve(' +\n ((stack1 = lookupProperty(helpers, 'ifServicesResponse').call(\n alias1,\n 'body',\n {\n name: 'ifServicesResponse',\n hash: {},\n fn: container.program(5, data, 0),\n inverse: container.program(7, data, 0),\n data: data,\n loc: {\n start: { line: 96, column: 12 },\n end: { line: 96, column: 90 },\n },\n },\n )) != null\n ? stack1\n : '') +\n ');\\n\t\t\t}\\n\t\t} catch (error) {\\n\t\t\treject(error);\\n\t\t}\\n\t});\\n};'\n );\n },\n usePartial: true,\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return \"export const sendRequest = async (\\n\tconfig: OpenAPIConfig,\\n\toptions: ApiRequestOptions,\\n\turl: string,\\n\tbody: any,\\n\tformData: FormData | undefined,\\n\theaders: Headers,\\n\tonCancel: OnCancel\\n): Promise<XMLHttpRequest> => {\\n\tlet xhr = new XMLHttpRequest();\\n\txhr.open(options.method, url, true);\\n\txhr.withCredentials = config.WITH_CREDENTIALS;\\n\\n\theaders.forEach((value, key) => {\\n\t\txhr.setRequestHeader(key, value);\\n\t});\\n\\n\treturn new Promise<XMLHttpRequest>(async (resolve, reject) => {\\n\t\txhr.onload = () => resolve(xhr);\\n\t\txhr.onabort = () => reject(new Error('Request aborted'));\\n\t\txhr.onerror = () => reject(new Error('Network error'));\\n\\n\t\tfor (const fn of config.interceptors.request._fns) {\\n\t\t\txhr = await fn(xhr);\\n\t\t}\\n\\n\t\txhr.send(body ?? formData);\\n\\n\t\tonCancel(() => xhr.abort());\\n\t});\\n};\";\n },\n useData: true,\n};\n","import Handlebars from 'handlebars';\n\n// @ts-expect-error\nimport templateClient from '../legacy/handlebars/compiled/client.js';\n// @ts-expect-error\nimport angularGetHeaders from '../legacy/handlebars/compiled/core/angular/getHeaders.js';\n// @ts-expect-error\nimport angularGetRequestBody from '../legacy/handlebars/compiled/core/angular/getRequestBody.js';\n// @ts-expect-error\nimport angularGetResponseBody from '../legacy/handlebars/compiled/core/angular/getResponseBody.js';\n// @ts-expect-error\nimport angularGetResponseHeader from '../legacy/handlebars/compiled/core/angular/getResponseHeader.js';\n// @ts-expect-error\nimport angularRequest from '../legacy/handlebars/compiled/core/angular/request.js';\n// @ts-expect-error\nimport angularSendRequest from '../legacy/handlebars/compiled/core/angular/sendRequest.js';\n// @ts-expect-error\nimport templateCoreApiError from '../legacy/handlebars/compiled/core/ApiError.js';\n// @ts-expect-error\nimport templateCoreApiRequestOptions from '../legacy/handlebars/compiled/core/ApiRequestOptions.js';\n// @ts-expect-error\nimport templateCoreApiResult from '../legacy/handlebars/compiled/core/ApiResult.js';\n// @ts-expect-error\nimport axiosGetHeaders from '../legacy/handlebars/compiled/core/axios/getHeaders.js';\n// @ts-expect-error\nimport axiosGetRequestBody from '../legacy/handlebars/compiled/core/axios/getRequestBody.js';\n// @ts-expect-error\nimport axiosGetResponseBody from '../legacy/handlebars/compiled/core/axios/getResponseBody.js';\n// @ts-expect-error\nimport axiosGetResponseHeader from '../legacy/handlebars/compiled/core/axios/getResponseHeader.js';\n// @ts-expect-error\nimport axiosRequest from '../legacy/handlebars/compiled/core/axios/request.js';\n// @ts-expect-error\nimport axiosSendRequest from '../legacy/handlebars/compiled/core/axios/sendRequest.js';\n// @ts-expect-error\nimport templateCoreBaseHttpRequest from '../legacy/handlebars/compiled/core/BaseHttpRequest.js';\n// @ts-expect-error\nimport templateCancelablePromise from '../legacy/handlebars/compiled/core/CancelablePromise.js';\n// @ts-expect-error\nimport fetchGetHeaders from '../legacy/handlebars/compiled/core/fetch/getHeaders.js';\n// @ts-expect-error\nimport fetchGetRequestBody from '../legacy/handlebars/compiled/core/fetch/getRequestBody.js';\n// @ts-expect-error\nimport fetchGetResponseBody from '../legacy/handlebars/compiled/core/fetch/getResponseBody.js';\n// @ts-expect-error\nimport fetchGetResponseHeader from '../legacy/handlebars/compiled/core/fetch/getResponseHeader.js';\n// @ts-expect-error\nimport fetchRequest from '../legacy/handlebars/compiled/core/fetch/request.js';\n// @ts-expect-error\nimport fetchSendRequest from '../legacy/handlebars/compiled/core/fetch/sendRequest.js';\n// @ts-expect-error\nimport functionBase64 from '../legacy/handlebars/compiled/core/functions/base64.js';\n// @ts-expect-error\nimport functionCatchErrorCodes from '../legacy/handlebars/compiled/core/functions/catchErrorCodes.js';\n// @ts-expect-error\nimport functionGetFormData from '../legacy/handlebars/compiled/core/functions/getFormData.js';\n// @ts-expect-error\nimport functionGetQueryString from '../legacy/handlebars/compiled/core/functions/getQueryString.js';\n// @ts-expect-error\nimport functionGetUrl from '../legacy/handlebars/compiled/core/functions/getUrl.js';\n// @ts-expect-error\nimport functionIsBlob from '../legacy/handlebars/compiled/core/functions/isBlob.js';\n// @ts-expect-error\nimport functionIsFormData from '../legacy/handlebars/compiled/core/functions/isFormData.js';\n// @ts-expect-error\nimport functionIsString from '../legacy/handlebars/compiled/core/functions/isString.js';\n// @ts-expect-error\nimport functionIsStringWithValue from '../legacy/handlebars/compiled/core/functions/isStringWithValue.js';\n// @ts-expect-error\nimport functionIsSuccess from '../legacy/handlebars/compiled/core/functions/isSuccess.js';\n// @ts-expect-error\nimport functionResolve from '../legacy/handlebars/compiled/core/functions/resolve.js';\n// @ts-expect-error\nimport templateCoreHttpRequest from '../legacy/handlebars/compiled/core/HttpRequest.js';\n// @ts-expect-error\nimport templateCoreSettings from '../legacy/handlebars/compiled/core/OpenAPI.js';\n// @ts-expect-error\nimport templateCoreRequest from '../legacy/handlebars/compiled/core/request.js';\n// @ts-expect-error\nimport xhrGetHeaders from '../legacy/handlebars/compiled/core/xhr/getHeaders.js';\n// @ts-expect-error\nimport xhrGetRequestBody from '../legacy/handlebars/compiled/core/xhr/getRequestBody.js';\n// @ts-expect-error\nimport xhrGetResponseBody from '../legacy/handlebars/compiled/core/xhr/getResponseBody.js';\n// @ts-expect-error\nimport xhrGetResponseHeader from '../legacy/handlebars/compiled/core/xhr/getResponseHeader.js';\n// @ts-expect-error\nimport xhrRequest from '../legacy/handlebars/compiled/core/xhr/request.js';\n// @ts-expect-error\nimport xhrSendRequest from '../legacy/handlebars/compiled/core/xhr/sendRequest.js';\nimport { getConfig } from './config';\nimport { stringCase } from './stringCase';\nimport { transformServiceName } from './transform';\n\nexport const registerHandlebarHelpers = (): void => {\n Handlebars.registerHelper(\n 'camelCase',\n function (this: unknown, name: string) {\n return stringCase({\n case: 'camelCase',\n value: name,\n });\n },\n );\n\n Handlebars.registerHelper(\n 'equals',\n function (\n this: unknown,\n a: string,\n b: string,\n options: Handlebars.HelperOptions,\n ) {\n return a === b ? options.fn(this) : options.inverse(this);\n },\n );\n\n Handlebars.registerHelper(\n 'ifServicesResponse',\n function (this: unknown, value: string, options: Handlebars.HelperOptions) {\n return getConfig().plugins['@hey-api/sdk']?.response === value\n ? options.fn(this)\n : options.inverse(this);\n },\n );\n\n Handlebars.registerHelper('ifdef', function (this: unknown, ...args): string {\n const options = args.pop();\n if (!args.every((value) => !value)) {\n return options.fn(this);\n }\n return options.inverse(this);\n });\n\n Handlebars.registerHelper(\n 'notEquals',\n function (\n this: unknown,\n a: string,\n b: string,\n options: Handlebars.HelperOptions,\n ) {\n return a !== b ? options.fn(this) : options.inverse(this);\n },\n );\n\n Handlebars.registerHelper(\n 'transformServiceName',\n function (this: unknown, name: string) {\n return transformServiceName({\n config: getConfig(),\n name,\n });\n },\n );\n};\n\nexport interface Templates {\n client: Handlebars.TemplateDelegate;\n core: {\n apiError: Handlebars.TemplateDelegate;\n apiRequestOptions: Handlebars.TemplateDelegate;\n apiResult: Handlebars.TemplateDelegate;\n baseHttpRequest: Handlebars.TemplateDelegate;\n cancelablePromise: Handlebars.TemplateDelegate;\n httpRequest: Handlebars.TemplateDelegate;\n request: Handlebars.TemplateDelegate;\n settings: Handlebars.TemplateDelegate;\n };\n}\n\n/**\n * Read all the Handlebar templates that we need and return a wrapper object\n * so we can easily access the templates in our generator/write functions.\n */\nexport const registerHandlebarTemplates = (): Templates => {\n registerHandlebarHelpers();\n\n // Main templates (entry points for the files we write to disk)\n const templates: Templates = {\n client: Handlebars.template(templateClient),\n core: {\n apiError: Handlebars.template(templateCoreApiError),\n apiRequestOptions: Handlebars.template(templateCoreApiRequestOptions),\n apiResult: Handlebars.template(templateCoreApiResult),\n baseHttpRequest: Handlebars.template(templateCoreBaseHttpRequest),\n cancelablePromise: Handlebars.template(templateCancelablePromise),\n httpRequest: Handlebars.template(templateCoreHttpRequest),\n request: Handlebars.template(templateCoreRequest),\n settings: Handlebars.template(templateCoreSettings),\n },\n };\n\n // Generic functions used in 'request' file @see src/legacy/handlebars/templates/core/request.hbs for more info\n Handlebars.registerPartial(\n 'functions/base64',\n Handlebars.template(functionBase64),\n );\n Handlebars.registerPartial(\n 'functions/catchErrorCodes',\n Handlebars.template(functionCatchErrorCodes),\n );\n Handlebars.registerPartial(\n 'functions/getFormData',\n Handlebars.template(functionGetFormData),\n );\n Handlebars.registerPartial(\n 'functions/getQueryString',\n Handlebars.template(functionGetQueryString),\n );\n Handlebars.registerPartial(\n 'functions/getUrl',\n Handlebars.template(functionGetUrl),\n );\n Handlebars.registerPartial(\n 'functions/isBlob',\n Handlebars.template(functionIsBlob),\n );\n Handlebars.registerPartial(\n 'functions/isFormData',\n Handlebars.template(functionIsFormData),\n );\n Handlebars.registerPartial(\n 'functions/isString',\n Handlebars.template(functionIsString),\n );\n Handlebars.registerPartial(\n 'functions/isStringWithValue',\n Handlebars.template(functionIsStringWithValue),\n );\n Handlebars.registerPartial(\n 'functions/isSuccess',\n Handlebars.template(functionIsSuccess),\n );\n Handlebars.registerPartial(\n 'functions/resolve',\n Handlebars.template(functionResolve),\n );\n\n // Specific files for the fetch client implementation\n Handlebars.registerPartial(\n 'fetch/getHeaders',\n Handlebars.template(fetchGetHeaders),\n );\n Handlebars.registerPartial(\n 'fetch/getRequestBody',\n Handlebars.template(fetchGetRequestBody),\n );\n Handlebars.registerPartial(\n 'fetch/getResponseBody',\n Handlebars.template(fetchGetResponseBody),\n );\n Handlebars.registerPartial(\n 'fetch/getResponseHeader',\n Handlebars.template(fetchGetResponseHeader),\n );\n Handlebars.registerPartial(\n 'fetch/request',\n Handlebars.template(fetchRequest),\n );\n Handlebars.registerPartial(\n 'fetch/sendRequest',\n Handlebars.template(fetchSendRequest),\n );\n\n // Specific files for the xhr client implementation\n Handlebars.registerPartial(\n 'xhr/getHeaders',\n Handlebars.template(xhrGetHeaders),\n );\n Handlebars.registerPartial(\n 'xhr/getRequestBody',\n Handlebars.template(xhrGetRequestBody),\n );\n Handlebars.registerPartial(\n 'xhr/getResponseBody',\n Handlebars.template(xhrGetResponseBody),\n );\n Handlebars.registerPartial(\n 'xhr/getResponseHeader',\n Handlebars.template(xhrGetResponseHeader),\n );\n Handlebars.registerPartial('xhr/request', Handlebars.template(xhrRequest));\n Handlebars.registerPartial(\n 'xhr/sendRequest',\n Handlebars.template(xhrSendRequest),\n );\n\n // Specific files for the axios client implementation\n Handlebars.registerPartial(\n 'axios/getHeaders',\n Handlebars.template(axiosGetHeaders),\n );\n Handlebars.registerPartial(\n 'axios/getRequestBody',\n Handlebars.template(axiosGetRequestBody),\n );\n Handlebars.registerPartial(\n 'axios/getResponseBody',\n Handlebars.template(axiosGetResponseBody),\n );\n Handlebars.registerPartial(\n 'axios/getResponseHeader',\n Handlebars.template(axiosGetResponseHeader),\n );\n Handlebars.registerPartial(\n 'axios/request',\n Handlebars.template(axiosRequest),\n );\n Handlebars.registerPartial(\n 'axios/sendRequest',\n Handlebars.template(axiosSendRequest),\n );\n\n // Specific files for the angular client implementation\n Handlebars.registerPartial(\n 'angular/getHeaders',\n Handlebars.template(angularGetHeaders),\n );\n Handlebars.registerPartial(\n 'angular/getRequestBody',\n Handlebars.template(angularGetRequestBody),\n );\n Handlebars.registerPartial(\n 'angular/getResponseBody',\n Handlebars.template(angularGetResponseBody),\n );\n Handlebars.registerPartial(\n 'angular/getResponseHeader',\n Handlebars.template(angularGetResponseHeader),\n );\n Handlebars.registerPartial(\n 'angular/request',\n Handlebars.template(angularRequest),\n );\n Handlebars.registerPartial(\n 'angular/sendRequest',\n Handlebars.template(angularSendRequest),\n );\n\n return templates;\n};\n","import { stringCase } from './stringCase';\n\n// publicly exposed utils\nexport const utils = {\n stringCase,\n};\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport { createClient as pCreateClient } from './createClient';\nimport { ensureDirSync } from './generate/utils';\nimport { getLogs } from './getLogs';\nimport { initConfigs } from './initConfigs';\nimport type { IR } from './ir/types';\nimport type { Client } from './types/client';\nimport type { Config, UserConfig } from './types/config';\nimport { registerHandlebarTemplates } from './utils/handlebars';\nimport { Performance, PerformanceReport } from './utils/performance';\n\ntype Configs = UserConfig | (() => UserConfig) | (() => Promise<UserConfig>);\n\n/**\n * Generate a client from the provided configuration.\n *\n * @param userConfig User provided {@link UserConfig} configuration.\n */\nexport const createClient = async (\n userConfig?: Configs,\n): Promise<ReadonlyArray<Client | IR.Context>> => {\n const resolvedConfig =\n typeof userConfig === 'function' ? await userConfig() : userConfig;\n\n let configs: Config[] = [];\n\n try {\n Performance.start('createClient');\n\n Performance.start('config');\n configs = await initConfigs(resolvedConfig);\n Performance.end('config');\n\n Performance.start('handlebars');\n const templates = registerHandlebarTemplates();\n Performance.end('handlebars');\n\n const clients = await Promise.all(\n configs.map((config) => pCreateClient({ config, templates })),\n );\n const result = clients.filter((client) => Boolean(client)) as ReadonlyArray<\n Client | IR.Context\n >;\n\n Performance.end('createClient');\n\n const config = configs[0];\n if (config && config.logs.level === 'debug') {\n const perfReport = new PerformanceReport({\n totalMark: 'createClient',\n });\n perfReport.report({\n marks: [\n 'config',\n 'openapi',\n 'handlebars',\n 'parser',\n 'generator',\n 'postprocess',\n ],\n });\n }\n\n return result;\n } catch (error) {\n const config = configs[0] as Config | undefined;\n const dryRun = config ? config.dryRun : resolvedConfig?.dryRun;\n\n // TODO: add setting for log output\n if (!dryRun) {\n const logs = config?.logs ?? getLogs(resolvedConfig);\n if (logs.level !== 'silent' && logs.file) {\n const logName = `openapi-ts-error-${Date.now()}.log`;\n const logsDir = path.resolve(process.cwd(), logs.path ?? '');\n ensureDirSync(logsDir);\n const logPath = path.resolve(logsDir, logName);\n fs.writeFileSync(logPath, `${error.message}\\n${error.stack}`);\n console.error(`🔥 Unexpected error occurred. Log saved to ${logPath}`);\n }\n }\n console.error(`🔥 Unexpected error occurred. ${error.message}`);\n throw error;\n }\n};\n\n/**\n * Type helper for openapi-ts.config.ts, returns {@link UserConfig} object\n */\nexport const defineConfig = async (config: Configs): Promise<UserConfig> =>\n typeof config === 'function' ? await config() : config;\n\nexport { defaultPlugins } from './initConfigs';\nexport type { IR } from './ir/types';\nexport type { OpenApi } from './openApi/types';\nexport { clientDefaultConfig } from './plugins/@hey-api/client-core/config';\nexport { clientPluginHandler } from './plugins/@hey-api/client-core/plugin';\nexport type { Client } from './plugins/@hey-api/client-core/types';\nexport type { Plugin } from './plugins/types';\nexport type { UserConfig } from './types/config';\nexport type { LegacyIR } from './types/types';\nexport { utils } from './utils/exports';\n"]}
1
+ {"version":3,"sources":["../../../node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/windows.js","../../../node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/mode.js","../../../node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/index.js","../../../node_modules/.pnpm/which@2.0.2/node_modules/which/which.js","../../../node_modules/.pnpm/path-key@3.1.1/node_modules/path-key/index.js","../../../node_modules/.pnpm/cross-spawn@7.0.5/node_modules/cross-spawn/lib/util/resolveCommand.js","../../../node_modules/.pnpm/cross-spawn@7.0.5/node_modules/cross-spawn/lib/util/escape.js","../../../node_modules/.pnpm/shebang-regex@3.0.0/node_modules/shebang-regex/index.js","../../../node_modules/.pnpm/shebang-command@2.0.0/node_modules/shebang-command/index.js","../../../node_modules/.pnpm/cross-spawn@7.0.5/node_modules/cross-spawn/lib/util/readShebang.js","../../../node_modules/.pnpm/cross-spawn@7.0.5/node_modules/cross-spawn/lib/parse.js","../../../node_modules/.pnpm/cross-spawn@7.0.5/node_modules/cross-spawn/lib/enoent.js","../../../node_modules/.pnpm/cross-spawn@7.0.5/node_modules/cross-spawn/index.js","../src/index.ts","../src/ir/parser.ts","../src/utils/getHttpRequestName.ts","../src/generate/class.ts","../src/generate/core.ts","../src/generate/indexFile.ts","../src/generate/output.ts","../src/processOutput.ts","../src/utils/performance.ts","../src/createClient.ts","../src/utils/handlebars.ts","../src/legacy/handlebars/compiled/client.js","../src/legacy/handlebars/compiled/core/angular/getHeaders.js","../src/legacy/handlebars/compiled/core/angular/getRequestBody.js","../src/legacy/handlebars/compiled/core/angular/getResponseBody.js","../src/legacy/handlebars/compiled/core/angular/getResponseHeader.js","../src/legacy/handlebars/compiled/core/angular/request.js","../src/legacy/handlebars/compiled/core/angular/sendRequest.js","../src/legacy/handlebars/compiled/core/ApiError.js","../src/legacy/handlebars/compiled/core/ApiRequestOptions.js","../src/legacy/handlebars/compiled/core/ApiResult.js","../src/legacy/handlebars/compiled/core/axios/getHeaders.js","../src/legacy/handlebars/compiled/core/axios/getRequestBody.js","../src/legacy/handlebars/compiled/core/axios/getResponseBody.js","../src/legacy/handlebars/compiled/core/axios/getResponseHeader.js","../src/legacy/handlebars/compiled/core/axios/request.js","../src/legacy/handlebars/compiled/core/axios/sendRequest.js","../src/legacy/handlebars/compiled/core/BaseHttpRequest.js","../src/legacy/handlebars/compiled/core/CancelablePromise.js","../src/legacy/handlebars/compiled/core/fetch/getHeaders.js","../src/legacy/handlebars/compiled/core/fetch/getRequestBody.js","../src/legacy/handlebars/compiled/core/fetch/getResponseBody.js","../src/legacy/handlebars/compiled/core/fetch/getResponseHeader.js","../src/legacy/handlebars/compiled/core/fetch/request.js","../src/legacy/handlebars/compiled/core/fetch/sendRequest.js","../src/legacy/handlebars/compiled/core/functions/base64.js","../src/legacy/handlebars/compiled/core/functions/catchErrorCodes.js","../src/legacy/handlebars/compiled/core/functions/getFormData.js","../src/legacy/handlebars/compiled/core/functions/getQueryString.js","../src/legacy/handlebars/compiled/core/functions/getUrl.js","../src/legacy/handlebars/compiled/core/functions/isBlob.js","../src/legacy/handlebars/compiled/core/functions/isFormData.js","../src/legacy/handlebars/compiled/core/functions/isString.js","../src/legacy/handlebars/compiled/core/functions/isStringWithValue.js","../src/legacy/handlebars/compiled/core/functions/isSuccess.js","../src/legacy/handlebars/compiled/core/functions/resolve.js","../src/legacy/handlebars/compiled/core/HttpRequest.js","../src/legacy/handlebars/compiled/core/OpenAPI.js","../src/legacy/handlebars/compiled/core/request.js","../src/legacy/handlebars/compiled/core/xhr/getHeaders.js","../src/legacy/handlebars/compiled/core/xhr/getRequestBody.js","../src/legacy/handlebars/compiled/core/xhr/getResponseBody.js","../src/legacy/handlebars/compiled/core/xhr/getResponseHeader.js","../src/legacy/handlebars/compiled/core/xhr/request.js","../src/legacy/handlebars/compiled/core/xhr/sendRequest.js","../src/utils/exports.ts"],"names":["require_windows","__commonJSMin","exports","module","isexe","sync","fs","A","checkPathExt","path","options","pathext","i","p","checkStat","stat","cb","er","require_mode","checkMode","mod","uid","gid","myUid","myGid","u","g","o","ug","ret","require_isexe","core","resolve","reject","is","require_which","isWindows","COLON","getNotFoundError","cmd","getPathInfo","opt","colon","pathEnv","pathExtExe","pathExt","which","found","step","ppRaw","pathPart","pCmd","subStep","ii","ext","res","whichSync","j","cur","require_path_key","pathKey","environment","key","require_resolveCommand","getPathKey","resolveCommandAttempt","parsed","withoutPathExt","env","cwd","hasCustomCwd","shouldSwitchCwd","resolved","resolveCommand","require_escape","metaCharsRegExp","escapeCommand","arg","escapeArgument","doubleEscapeMetaChars","require_shebang_regex","require_shebang_command","shebangRegex","string","match","argument","binary","require_readShebang","shebangCommand","readShebang","command","buffer","fd","require_parse","escape","isWin","isExecutableRegExp","isCmdShimRegExp","detectShebang","shebang","parseNonShell","commandFile","needsShell","needsDoubleEscapeMetaChars","shellCommand","parse","args","require_enoent","notFoundError","original","syscall","hookChildProcess","cp","originalEmit","name","arg1","err","verifyENOENT","status","verifyENOENTSync","require_cross_spawn","enoent","spawn","spawned","spawnSync","result","parseIR","context","server","schema","$ref","parameter","requestBody","pathItem","_method","method","operation","getHttpRequestName","clientName","generateLegacyClientClass","openApi","outputPath","client","templates","config","getConfig","clientPlugin","getClientPlugin","templateResult","sortByName","legacyNameFromConfig","ensureDirSync","generateLegacyCore","requestFile","generateIndexFile","files","TypeScriptFile","compiler","file","generateLegacyOutput","spec","regexp","service","model","removeDirSync","isLegacyClient","generateClientBundle","plugin","outputParts","outputDir","generateOutput","indexFile","fileName","import_cross_spawn","tt","formatters","linters","processOutput","idEnd","id","idLength","idStart","Performance","PerformanceReport","totalMark","marks","totalDuration","totalName","mark","markMeasure","markDuration","percentage","isPlatformPath","compileInputPath","input","basePath","baseQuery","queryPath","part","pathUrl","baseUrl","organization","project","queryParams","kApiKey","kBranch","kCommitSha","kTags","kVersion","query","platformUrl","isLocalhost","platformUrlWithProtocol","compiledPath","logInputPath","inputPath","watch","baseString","baseInput","createClient","_watch","timeout","data","error","response","getSpec","parseOpenApiSpec","parseLegacy","postProcessClient","client_default","container","depth0","helpers","partials","stack1","alias1","alias2","lookupProperty","parent","propertyName","alias3","getHeaders_default","getRequestBody_default","getResponseBody_default","getResponseHeader_default","request_default","sendRequest_default","ApiError_default","ApiRequestOptions_default","ApiResult_default","BaseHttpRequest_default","CancelablePromise_default","base64_default","catchErrorCodes_default","getFormData_default","getQueryString_default","getUrl_default","isBlob_default","isFormData_default","isString_default","isStringWithValue_default","isSuccess_default","resolve_default","HttpRequest_default","OpenAPI_default","registerHandlebarHelpers","Handlebars","stringCase","a","b","value","transformServiceName","registerHandlebarTemplates","utils","userConfig","resolvedConfig","configs","initConfigs","logs","getLogs","logName","logsDir","logPath","defineConfig"],"mappings":"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","file":"index.js","sourcesContent":["module.exports = isexe\nisexe.sync = sync\n\nvar fs = require('fs')\n\nfunction checkPathExt (path, options) {\n var pathext = options.pathExt !== undefined ?\n options.pathExt : process.env.PATHEXT\n\n if (!pathext) {\n return true\n }\n\n pathext = pathext.split(';')\n if (pathext.indexOf('') !== -1) {\n return true\n }\n for (var i = 0; i < pathext.length; i++) {\n var p = pathext[i].toLowerCase()\n if (p && path.substr(-p.length).toLowerCase() === p) {\n return true\n }\n }\n return false\n}\n\nfunction checkStat (stat, path, options) {\n if (!stat.isSymbolicLink() && !stat.isFile()) {\n return false\n }\n return checkPathExt(path, options)\n}\n\nfunction isexe (path, options, cb) {\n fs.stat(path, function (er, stat) {\n cb(er, er ? false : checkStat(stat, path, options))\n })\n}\n\nfunction sync (path, options) {\n return checkStat(fs.statSync(path), path, options)\n}\n","module.exports = isexe\nisexe.sync = sync\n\nvar fs = require('fs')\n\nfunction isexe (path, options, cb) {\n fs.stat(path, function (er, stat) {\n cb(er, er ? false : checkStat(stat, options))\n })\n}\n\nfunction sync (path, options) {\n return checkStat(fs.statSync(path), options)\n}\n\nfunction checkStat (stat, options) {\n return stat.isFile() && checkMode(stat, options)\n}\n\nfunction checkMode (stat, options) {\n var mod = stat.mode\n var uid = stat.uid\n var gid = stat.gid\n\n var myUid = options.uid !== undefined ?\n options.uid : process.getuid && process.getuid()\n var myGid = options.gid !== undefined ?\n options.gid : process.getgid && process.getgid()\n\n var u = parseInt('100', 8)\n var g = parseInt('010', 8)\n var o = parseInt('001', 8)\n var ug = u | g\n\n var ret = (mod & o) ||\n (mod & g) && gid === myGid ||\n (mod & u) && uid === myUid ||\n (mod & ug) && myUid === 0\n\n return ret\n}\n","var fs = require('fs')\nvar core\nif (process.platform === 'win32' || global.TESTING_WINDOWS) {\n core = require('./windows.js')\n} else {\n core = require('./mode.js')\n}\n\nmodule.exports = isexe\nisexe.sync = sync\n\nfunction isexe (path, options, cb) {\n if (typeof options === 'function') {\n cb = options\n options = {}\n }\n\n if (!cb) {\n if (typeof Promise !== 'function') {\n throw new TypeError('callback not provided')\n }\n\n return new Promise(function (resolve, reject) {\n isexe(path, options || {}, function (er, is) {\n if (er) {\n reject(er)\n } else {\n resolve(is)\n }\n })\n })\n }\n\n core(path, options || {}, function (er, is) {\n // ignore EACCES because that just means we aren't allowed to run it\n if (er) {\n if (er.code === 'EACCES' || options && options.ignoreErrors) {\n er = null\n is = false\n }\n }\n cb(er, is)\n })\n}\n\nfunction sync (path, options) {\n // my kingdom for a filtered catch\n try {\n return core.sync(path, options || {})\n } catch (er) {\n if (options && options.ignoreErrors || er.code === 'EACCES') {\n return false\n } else {\n throw er\n }\n }\n}\n","const isWindows = process.platform === 'win32' ||\n process.env.OSTYPE === 'cygwin' ||\n process.env.OSTYPE === 'msys'\n\nconst path = require('path')\nconst COLON = isWindows ? ';' : ':'\nconst isexe = require('isexe')\n\nconst getNotFoundError = (cmd) =>\n Object.assign(new Error(`not found: ${cmd}`), { code: 'ENOENT' })\n\nconst getPathInfo = (cmd, opt) => {\n const colon = opt.colon || COLON\n\n // If it has a slash, then we don't bother searching the pathenv.\n // just check the file itself, and that's it.\n const pathEnv = cmd.match(/\\//) || isWindows && cmd.match(/\\\\/) ? ['']\n : (\n [\n // windows always checks the cwd first\n ...(isWindows ? [process.cwd()] : []),\n ...(opt.path || process.env.PATH ||\n /* istanbul ignore next: very unusual */ '').split(colon),\n ]\n )\n const pathExtExe = isWindows\n ? opt.pathExt || process.env.PATHEXT || '.EXE;.CMD;.BAT;.COM'\n : ''\n const pathExt = isWindows ? pathExtExe.split(colon) : ['']\n\n if (isWindows) {\n if (cmd.indexOf('.') !== -1 && pathExt[0] !== '')\n pathExt.unshift('')\n }\n\n return {\n pathEnv,\n pathExt,\n pathExtExe,\n }\n}\n\nconst which = (cmd, opt, cb) => {\n if (typeof opt === 'function') {\n cb = opt\n opt = {}\n }\n if (!opt)\n opt = {}\n\n const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt)\n const found = []\n\n const step = i => new Promise((resolve, reject) => {\n if (i === pathEnv.length)\n return opt.all && found.length ? resolve(found)\n : reject(getNotFoundError(cmd))\n\n const ppRaw = pathEnv[i]\n const pathPart = /^\".*\"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw\n\n const pCmd = path.join(pathPart, cmd)\n const p = !pathPart && /^\\.[\\\\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd\n : pCmd\n\n resolve(subStep(p, i, 0))\n })\n\n const subStep = (p, i, ii) => new Promise((resolve, reject) => {\n if (ii === pathExt.length)\n return resolve(step(i + 1))\n const ext = pathExt[ii]\n isexe(p + ext, { pathExt: pathExtExe }, (er, is) => {\n if (!er && is) {\n if (opt.all)\n found.push(p + ext)\n else\n return resolve(p + ext)\n }\n return resolve(subStep(p, i, ii + 1))\n })\n })\n\n return cb ? step(0).then(res => cb(null, res), cb) : step(0)\n}\n\nconst whichSync = (cmd, opt) => {\n opt = opt || {}\n\n const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt)\n const found = []\n\n for (let i = 0; i < pathEnv.length; i ++) {\n const ppRaw = pathEnv[i]\n const pathPart = /^\".*\"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw\n\n const pCmd = path.join(pathPart, cmd)\n const p = !pathPart && /^\\.[\\\\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd\n : pCmd\n\n for (let j = 0; j < pathExt.length; j ++) {\n const cur = p + pathExt[j]\n try {\n const is = isexe.sync(cur, { pathExt: pathExtExe })\n if (is) {\n if (opt.all)\n found.push(cur)\n else\n return cur\n }\n } catch (ex) {}\n }\n }\n\n if (opt.all && found.length)\n return found\n\n if (opt.nothrow)\n return null\n\n throw getNotFoundError(cmd)\n}\n\nmodule.exports = which\nwhich.sync = whichSync\n","'use strict';\n\nconst pathKey = (options = {}) => {\n\tconst environment = options.env || process.env;\n\tconst platform = options.platform || process.platform;\n\n\tif (platform !== 'win32') {\n\t\treturn 'PATH';\n\t}\n\n\treturn Object.keys(environment).reverse().find(key => key.toUpperCase() === 'PATH') || 'Path';\n};\n\nmodule.exports = pathKey;\n// TODO: Remove this for the next major release\nmodule.exports.default = pathKey;\n","'use strict';\n\nconst path = require('path');\nconst which = require('which');\nconst getPathKey = require('path-key');\n\nfunction resolveCommandAttempt(parsed, withoutPathExt) {\n const env = parsed.options.env || process.env;\n const cwd = process.cwd();\n const hasCustomCwd = parsed.options.cwd != null;\n // Worker threads do not have process.chdir()\n const shouldSwitchCwd = hasCustomCwd && process.chdir !== undefined && !process.chdir.disabled;\n\n // If a custom `cwd` was specified, we need to change the process cwd\n // because `which` will do stat calls but does not support a custom cwd\n if (shouldSwitchCwd) {\n try {\n process.chdir(parsed.options.cwd);\n } catch (err) {\n /* Empty */\n }\n }\n\n let resolved;\n\n try {\n resolved = which.sync(parsed.command, {\n path: env[getPathKey({ env })],\n pathExt: withoutPathExt ? path.delimiter : undefined,\n });\n } catch (e) {\n /* Empty */\n } finally {\n if (shouldSwitchCwd) {\n process.chdir(cwd);\n }\n }\n\n // If we successfully resolved, ensure that an absolute path is returned\n // Note that when a custom `cwd` was used, we need to resolve to an absolute path based on it\n if (resolved) {\n resolved = path.resolve(hasCustomCwd ? parsed.options.cwd : '', resolved);\n }\n\n return resolved;\n}\n\nfunction resolveCommand(parsed) {\n return resolveCommandAttempt(parsed) || resolveCommandAttempt(parsed, true);\n}\n\nmodule.exports = resolveCommand;\n","'use strict';\n\n// See http://www.robvanderwoude.com/escapechars.php\nconst metaCharsRegExp = /([()\\][%!^\"`<>&|;, *?])/g;\n\nfunction escapeCommand(arg) {\n // Escape meta chars\n arg = arg.replace(metaCharsRegExp, '^$1');\n\n return arg;\n}\n\nfunction escapeArgument(arg, doubleEscapeMetaChars) {\n // Convert to string\n arg = `${arg}`;\n\n // Algorithm below is based on https://qntm.org/cmd\n // It's slightly altered to disable JS backtracking to avoid hanging on specially crafted input\n // Please see https://github.com/moxystudio/node-cross-spawn/pull/160 for more information\n\n // Sequence of backslashes followed by a double quote:\n // double up all the backslashes and escape the double quote\n arg = arg.replace(/(?=(\\\\+?)?)\\1\"/g, '$1$1\\\\\"');\n\n // Sequence of backslashes followed by the end of the string\n // (which will become a double quote later):\n // double up all the backslashes\n arg = arg.replace(/(?=(\\\\+?)?)\\1$/, '$1$1');\n\n // All other backslashes occur literally\n\n // Quote the whole thing:\n arg = `\"${arg}\"`;\n\n // Escape meta chars\n arg = arg.replace(metaCharsRegExp, '^$1');\n\n // Double escape meta chars if necessary\n if (doubleEscapeMetaChars) {\n arg = arg.replace(metaCharsRegExp, '^$1');\n }\n\n return arg;\n}\n\nmodule.exports.command = escapeCommand;\nmodule.exports.argument = escapeArgument;\n","'use strict';\nmodule.exports = /^#!(.*)/;\n","'use strict';\nconst shebangRegex = require('shebang-regex');\n\nmodule.exports = (string = '') => {\n\tconst match = string.match(shebangRegex);\n\n\tif (!match) {\n\t\treturn null;\n\t}\n\n\tconst [path, argument] = match[0].replace(/#! ?/, '').split(' ');\n\tconst binary = path.split('/').pop();\n\n\tif (binary === 'env') {\n\t\treturn argument;\n\t}\n\n\treturn argument ? `${binary} ${argument}` : binary;\n};\n","'use strict';\n\nconst fs = require('fs');\nconst shebangCommand = require('shebang-command');\n\nfunction readShebang(command) {\n // Read the first 150 bytes from the file\n const size = 150;\n const buffer = Buffer.alloc(size);\n\n let fd;\n\n try {\n fd = fs.openSync(command, 'r');\n fs.readSync(fd, buffer, 0, size, 0);\n fs.closeSync(fd);\n } catch (e) { /* Empty */ }\n\n // Attempt to extract shebang (null is returned if not a shebang)\n return shebangCommand(buffer.toString());\n}\n\nmodule.exports = readShebang;\n","'use strict';\n\nconst path = require('path');\nconst resolveCommand = require('./util/resolveCommand');\nconst escape = require('./util/escape');\nconst readShebang = require('./util/readShebang');\n\nconst isWin = process.platform === 'win32';\nconst isExecutableRegExp = /\\.(?:com|exe)$/i;\nconst isCmdShimRegExp = /node_modules[\\\\/].bin[\\\\/][^\\\\/]+\\.cmd$/i;\n\nfunction detectShebang(parsed) {\n parsed.file = resolveCommand(parsed);\n\n const shebang = parsed.file && readShebang(parsed.file);\n\n if (shebang) {\n parsed.args.unshift(parsed.file);\n parsed.command = shebang;\n\n return resolveCommand(parsed);\n }\n\n return parsed.file;\n}\n\nfunction parseNonShell(parsed) {\n if (!isWin) {\n return parsed;\n }\n\n // Detect & add support for shebangs\n const commandFile = detectShebang(parsed);\n\n // We don't need a shell if the command filename is an executable\n const needsShell = !isExecutableRegExp.test(commandFile);\n\n // If a shell is required, use cmd.exe and take care of escaping everything correctly\n // Note that `forceShell` is an hidden option used only in tests\n if (parsed.options.forceShell || needsShell) {\n // Need to double escape meta chars if the command is a cmd-shim located in `node_modules/.bin/`\n // The cmd-shim simply calls execute the package bin file with NodeJS, proxying any argument\n // Because the escape of metachars with ^ gets interpreted when the cmd.exe is first called,\n // we need to double escape them\n const needsDoubleEscapeMetaChars = isCmdShimRegExp.test(commandFile);\n\n // Normalize posix paths into OS compatible paths (e.g.: foo/bar -> foo\\bar)\n // This is necessary otherwise it will always fail with ENOENT in those cases\n parsed.command = path.normalize(parsed.command);\n\n // Escape command & arguments\n parsed.command = escape.command(parsed.command);\n parsed.args = parsed.args.map((arg) => escape.argument(arg, needsDoubleEscapeMetaChars));\n\n const shellCommand = [parsed.command].concat(parsed.args).join(' ');\n\n parsed.args = ['/d', '/s', '/c', `\"${shellCommand}\"`];\n parsed.command = process.env.comspec || 'cmd.exe';\n parsed.options.windowsVerbatimArguments = true; // Tell node's spawn that the arguments are already escaped\n }\n\n return parsed;\n}\n\nfunction parse(command, args, options) {\n // Normalize arguments, similar to nodejs\n if (args && !Array.isArray(args)) {\n options = args;\n args = null;\n }\n\n args = args ? args.slice(0) : []; // Clone array to avoid changing the original\n options = Object.assign({}, options); // Clone object to avoid changing the original\n\n // Build our parsed object\n const parsed = {\n command,\n args,\n options,\n file: undefined,\n original: {\n command,\n args,\n },\n };\n\n // Delegate further parsing to shell or non-shell\n return options.shell ? parsed : parseNonShell(parsed);\n}\n\nmodule.exports = parse;\n","'use strict';\n\nconst isWin = process.platform === 'win32';\n\nfunction notFoundError(original, syscall) {\n return Object.assign(new Error(`${syscall} ${original.command} ENOENT`), {\n code: 'ENOENT',\n errno: 'ENOENT',\n syscall: `${syscall} ${original.command}`,\n path: original.command,\n spawnargs: original.args,\n });\n}\n\nfunction hookChildProcess(cp, parsed) {\n if (!isWin) {\n return;\n }\n\n const originalEmit = cp.emit;\n\n cp.emit = function (name, arg1) {\n // If emitting \"exit\" event and exit code is 1, we need to check if\n // the command exists and emit an \"error\" instead\n // See https://github.com/IndigoUnited/node-cross-spawn/issues/16\n if (name === 'exit') {\n const err = verifyENOENT(arg1, parsed);\n\n if (err) {\n return originalEmit.call(cp, 'error', err);\n }\n }\n\n return originalEmit.apply(cp, arguments); // eslint-disable-line prefer-rest-params\n };\n}\n\nfunction verifyENOENT(status, parsed) {\n if (isWin && status === 1 && !parsed.file) {\n return notFoundError(parsed.original, 'spawn');\n }\n\n return null;\n}\n\nfunction verifyENOENTSync(status, parsed) {\n if (isWin && status === 1 && !parsed.file) {\n return notFoundError(parsed.original, 'spawnSync');\n }\n\n return null;\n}\n\nmodule.exports = {\n hookChildProcess,\n verifyENOENT,\n verifyENOENTSync,\n notFoundError,\n};\n","'use strict';\n\nconst cp = require('child_process');\nconst parse = require('./lib/parse');\nconst enoent = require('./lib/enoent');\n\nfunction spawn(command, args, options) {\n // Parse the arguments\n const parsed = parse(command, args, options);\n\n // Spawn the child process\n const spawned = cp.spawn(parsed.command, parsed.args, parsed.options);\n\n // Hook into child process \"exit\" event to emit an error if the command\n // does not exists, see: https://github.com/IndigoUnited/node-cross-spawn/issues/16\n enoent.hookChildProcess(spawned, parsed);\n\n return spawned;\n}\n\nfunction spawnSync(command, args, options) {\n // Parse the arguments\n const parsed = parse(command, args, options);\n\n // Spawn the child process\n const result = cp.spawnSync(parsed.command, parsed.args, parsed.options);\n\n // Analyze if the command does not exist, see: https://github.com/IndigoUnited/node-cross-spawn/issues/16\n result.error = result.error || enoent.verifyENOENTSync(result.status, parsed);\n\n return result;\n}\n\nmodule.exports = spawn;\nmodule.exports.spawn = spawn;\nmodule.exports.sync = spawnSync;\n\nmodule.exports._parse = parse;\nmodule.exports._enoent = enoent;\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport { createClient as pCreateClient } from './createClient';\nimport { ensureDirSync } from './generate/utils';\nimport { getLogs } from './getLogs';\nimport { initConfigs } from './initConfigs';\nimport type { IR } from './ir/types';\nimport type { Client } from './types/client';\nimport type { Config, UserConfig } from './types/config';\nimport { registerHandlebarTemplates } from './utils/handlebars';\nimport { Performance, PerformanceReport } from './utils/performance';\n\ntype Configs = UserConfig | (() => UserConfig) | (() => Promise<UserConfig>);\n\n/**\n * Generate a client from the provided configuration.\n *\n * @param userConfig User provided {@link UserConfig} configuration.\n */\nexport const createClient = async (\n userConfig?: Configs,\n): Promise<ReadonlyArray<Client | IR.Context>> => {\n const resolvedConfig =\n typeof userConfig === 'function' ? await userConfig() : userConfig;\n\n let configs: Config[] = [];\n\n try {\n Performance.start('createClient');\n\n Performance.start('config');\n configs = await initConfigs(resolvedConfig);\n Performance.end('config');\n\n Performance.start('handlebars');\n const templates = registerHandlebarTemplates();\n Performance.end('handlebars');\n\n const clients = await Promise.all(\n configs.map((config) => pCreateClient({ config, templates })),\n );\n const result = clients.filter((client) => Boolean(client)) as ReadonlyArray<\n Client | IR.Context\n >;\n\n Performance.end('createClient');\n\n const config = configs[0];\n if (config && config.logs.level === 'debug') {\n const perfReport = new PerformanceReport({\n totalMark: 'createClient',\n });\n perfReport.report({\n marks: [\n 'config',\n 'openapi',\n 'handlebars',\n 'parser',\n 'generator',\n 'postprocess',\n ],\n });\n }\n\n return result;\n } catch (error) {\n const config = configs[0] as Config | undefined;\n const dryRun = config ? config.dryRun : resolvedConfig?.dryRun;\n\n // TODO: add setting for log output\n if (!dryRun) {\n const logs = config?.logs ?? getLogs(resolvedConfig);\n if (logs.level !== 'silent' && logs.file) {\n const logName = `openapi-ts-error-${Date.now()}.log`;\n const logsDir = path.resolve(process.cwd(), logs.path ?? '');\n ensureDirSync(logsDir);\n const logPath = path.resolve(logsDir, logName);\n fs.writeFileSync(logPath, `${error.message}\\n${error.stack}`);\n console.error(`🔥 Unexpected error occurred. Log saved to ${logPath}`);\n }\n }\n console.error(`🔥 Unexpected error occurred. ${error.message}`);\n throw error;\n }\n};\n\n/**\n * Type helper for openapi-ts.config.ts, returns {@link UserConfig} object\n */\nexport const defineConfig = async (config: Configs): Promise<UserConfig> =>\n typeof config === 'function' ? await config() : config;\n\nexport { defaultPlugins } from './initConfigs';\nexport type { IR } from './ir/types';\nexport type { OpenApi } from './openApi/types';\nexport { clientDefaultConfig } from './plugins/@hey-api/client-core/config';\nexport { clientPluginHandler } from './plugins/@hey-api/client-core/plugin';\nexport type { Client } from './plugins/@hey-api/client-core/types';\nexport type { Plugin } from './plugins/types';\nexport type { UserConfig } from './types/config';\nexport type { LegacyIR } from './types/types';\nexport { utils } from './utils/exports';\n","import type { IR } from './types';\n\n/**\n * Traverse the parsed intermediate representation model and broadcast\n * various events to listeners.\n */\nexport const parseIR = async ({ context }: { context: IR.Context }) => {\n await context.broadcast('before');\n\n for (const server of context.ir.servers ?? []) {\n await context.broadcast('server', { server });\n }\n\n if (context.ir.components) {\n for (const name in context.ir.components.schemas) {\n const schema = context.ir.components.schemas[name]!;\n const $ref = `#/components/schemas/${name}`;\n await context.broadcast('schema', { $ref, name, schema });\n }\n\n for (const name in context.ir.components.parameters) {\n const parameter = context.ir.components.parameters[name]!;\n const $ref = `#/components/parameters/${name}`;\n await context.broadcast('parameter', { $ref, name, parameter });\n }\n\n for (const name in context.ir.components.requestBodies) {\n const requestBody = context.ir.components.requestBodies[name]!;\n const $ref = `#/components/requestBodies/${name}`;\n await context.broadcast('requestBody', { $ref, name, requestBody });\n }\n }\n\n for (const path in context.ir.paths) {\n const pathItem = context.ir.paths[path as keyof IR.PathsObject];\n\n for (const _method in pathItem) {\n const method = _method as keyof IR.PathItemObject;\n const operation = pathItem[method]!;\n await context.broadcast('operation', { method, operation, path });\n }\n }\n\n await context.broadcast('after');\n};\n","import type { PluginClientNames } from '../plugins/types';\n\n/**\n * Generate the HttpRequest filename based on the selected client\n * @param client HTTP client to generate\n */\nexport const getHttpRequestName = (clientName: PluginClientNames): string => {\n switch (clientName) {\n case 'legacy/angular':\n return 'AngularHttpRequest';\n case 'legacy/axios':\n return 'AxiosHttpRequest';\n case 'legacy/fetch':\n return 'FetchHttpRequest';\n case 'legacy/node':\n return 'NodeHttpRequest';\n case 'legacy/xhr':\n return 'XHRHttpRequest';\n default:\n return '';\n }\n};\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport type { OpenApi } from '../openApi';\nimport { getClientPlugin } from '../plugins/@hey-api/client-core/utils';\nimport type { Client } from '../types/client';\nimport { getConfig, legacyNameFromConfig } from '../utils/config';\nimport { getHttpRequestName } from '../utils/getHttpRequestName';\nimport type { Templates } from '../utils/handlebars';\nimport { sortByName } from '../utils/sort';\nimport { ensureDirSync } from './utils';\n\n/**\n * Generate the OpenAPI client index file using the Handlebar template and write it to disk.\n * The index file just contains all the exports you need to use the client as a standalone\n * library. But you can also import individual models and services directly.\n * @param openApi {@link OpenApi} Dereferenced OpenAPI specification\n * @param outputPath Directory to write the generated files to\n * @param client Client containing models, schemas, and services\n * @param templates The loaded handlebar templates\n */\nexport const generateLegacyClientClass = async (\n openApi: OpenApi,\n outputPath: string,\n client: Client,\n templates: Templates,\n) => {\n const config = getConfig();\n\n const clientPlugin = getClientPlugin(config);\n const templateResult = templates.client({\n $config: config,\n ...client,\n httpRequest: getHttpRequestName(clientPlugin.name),\n models: sortByName(client.models),\n services: sortByName(client.services),\n });\n\n if (legacyNameFromConfig(config)) {\n ensureDirSync(outputPath);\n fs.writeFileSync(\n path.resolve(outputPath, `${legacyNameFromConfig(config)}.ts`),\n templateResult,\n );\n }\n};\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport { getClientPlugin } from '../plugins/@hey-api/client-core/utils';\nimport type { Client } from '../types/client';\nimport { getConfig, legacyNameFromConfig } from '../utils/config';\nimport { getHttpRequestName } from '../utils/getHttpRequestName';\nimport type { Templates } from '../utils/handlebars';\n\n/**\n * Generate OpenAPI core files, this includes the basic boilerplate code to handle requests.\n * @param outputPath Directory to write the generated files to\n * @param client Client containing models, schemas, and services\n * @param templates The loaded handlebar templates\n */\nexport const generateLegacyCore = async (\n outputPath: string,\n client: Client,\n templates: Templates,\n): Promise<void> => {\n const config = getConfig();\n\n if (config.exportCore) {\n const clientPlugin = getClientPlugin(config);\n const context = {\n httpRequest: getHttpRequestName(clientPlugin.name),\n server: config.base !== undefined ? config.base : client.server,\n version: client.version,\n };\n\n fs.rmSync(path.resolve(outputPath), {\n force: true,\n recursive: true,\n });\n fs.mkdirSync(path.resolve(outputPath), {\n recursive: true,\n });\n\n await fs.writeFileSync(\n path.resolve(outputPath, 'OpenAPI.ts'),\n templates.core.settings({\n $config: config,\n ...context,\n }),\n );\n await fs.writeFileSync(\n path.resolve(outputPath, 'ApiError.ts'),\n templates.core.apiError({\n $config: config,\n ...context,\n }),\n );\n await fs.writeFileSync(\n path.resolve(outputPath, 'ApiRequestOptions.ts'),\n templates.core.apiRequestOptions({\n $config: config,\n ...context,\n }),\n );\n await fs.writeFileSync(\n path.resolve(outputPath, 'ApiResult.ts'),\n templates.core.apiResult({\n $config: config,\n ...context,\n }),\n );\n if (clientPlugin.name !== 'legacy/angular') {\n await fs.writeFileSync(\n path.resolve(outputPath, 'CancelablePromise.ts'),\n templates.core.cancelablePromise({\n $config: config,\n ...context,\n }),\n );\n }\n await fs.writeFileSync(\n path.resolve(outputPath, 'request.ts'),\n templates.core.request({\n $config: config,\n ...context,\n }),\n );\n\n if (legacyNameFromConfig(config)) {\n await fs.writeFileSync(\n path.resolve(outputPath, 'BaseHttpRequest.ts'),\n templates.core.baseHttpRequest({\n $config: config,\n ...context,\n }),\n );\n await fs.writeFileSync(\n path.resolve(outputPath, `${context.httpRequest}.ts`),\n templates.core.httpRequest({\n $config: config,\n ...context,\n }),\n );\n }\n\n if (config.request) {\n const requestFile = path.resolve(process.cwd(), config.request);\n const requestFileExists = await fs.existsSync(requestFile);\n if (!requestFileExists) {\n throw new Error(`Custom request file \"${requestFile}\" does not exists`);\n }\n await fs.copyFileSync(\n requestFile,\n path.resolve(outputPath, 'request.ts'),\n );\n }\n }\n};\n","import { compiler } from '../compiler';\nimport { getClientPlugin } from '../plugins/@hey-api/client-core/utils';\nimport type { Files } from '../types/utils';\nimport { getConfig, legacyNameFromConfig } from '../utils/config';\nimport { TypeScriptFile } from './files';\n\nexport const generateIndexFile = ({ files }: { files: Files }): void => {\n const config = getConfig();\n\n files.index = new TypeScriptFile({\n dir: config.output.path,\n name: 'index.ts',\n });\n\n if (legacyNameFromConfig(config)) {\n files.index.add(\n compiler.exportNamedDeclaration({\n exports: legacyNameFromConfig(config)!,\n module: `./${legacyNameFromConfig(config)}`,\n }),\n );\n }\n\n if (config.exportCore) {\n files.index.add(\n compiler.exportNamedDeclaration({\n exports: 'ApiError',\n module: './core/ApiError',\n }),\n );\n if (config.plugins['@hey-api/sdk']?.response === 'response') {\n files.index.add(\n compiler.exportNamedDeclaration({\n exports: { asType: true, name: 'ApiResult' },\n module: './core/ApiResult',\n }),\n );\n }\n if (legacyNameFromConfig(config)) {\n files.index.add(\n compiler.exportNamedDeclaration({\n exports: 'BaseHttpRequest',\n module: './core/BaseHttpRequest',\n }),\n );\n }\n const clientPlugin = getClientPlugin(config);\n if (clientPlugin.name !== 'legacy/angular') {\n files.index.add(\n compiler.exportNamedDeclaration({\n exports: ['CancelablePromise', 'CancelError'],\n module: './core/CancelablePromise',\n }),\n );\n }\n files.index.add(\n compiler.exportNamedDeclaration({\n exports: ['OpenAPI', { asType: true, name: 'OpenAPIConfig' }],\n module: './core/OpenAPI',\n }),\n );\n }\n\n Object.keys(files)\n .sort()\n .forEach((name) => {\n const file = files[name]!;\n\n if (name === 'index' || file.isEmpty()) {\n return;\n }\n\n if (['sdk', 'types'].includes(name)) {\n files.index!.add(\n compiler.exportAllDeclaration({\n module: `./${file.nameWithoutExtension()}`,\n }),\n );\n }\n });\n};\n","import path from 'node:path';\n\nimport { compiler } from '../compiler';\nimport { parseIR } from '../ir/parser';\nimport type { IR } from '../ir/types';\nimport type { OpenApi } from '../openApi';\nimport { getClientPlugin } from '../plugins/@hey-api/client-core/utils';\nimport type { Client } from '../types/client';\nimport type { Files } from '../types/utils';\nimport { getConfig, isLegacyClient } from '../utils/config';\nimport type { Templates } from '../utils/handlebars';\nimport { generateLegacyClientClass } from './class';\nimport { generateClientBundle } from './client';\nimport { generateLegacyCore } from './core';\nimport { TypeScriptFile } from './files';\nimport { generateIndexFile } from './indexFile';\nimport { removeDirSync } from './utils';\n\n/**\n * Write our OpenAPI client, using the given templates at the given output\n * @param openApi {@link OpenApi} Dereferenced OpenAPI specification\n * @param client Client containing models, schemas, and services\n * @param templates Templates wrapper with all loaded Handlebars templates\n */\nexport const generateLegacyOutput = async ({\n client,\n openApi,\n templates,\n}: {\n client: Client;\n openApi: unknown;\n templates: Templates;\n}): Promise<void> => {\n const config = getConfig();\n\n const spec = openApi as OpenApi;\n\n // TODO: parser - move to config.input\n if (client) {\n if (\n config.plugins['@hey-api/sdk']?.include &&\n config.plugins['@hey-api/sdk'].asClass\n ) {\n const regexp = new RegExp(config.plugins['@hey-api/sdk'].include);\n client.services = client.services.filter((service) =>\n regexp.test(service.name),\n );\n }\n\n if (config.plugins['@hey-api/typescript']?.include) {\n const regexp = new RegExp(config.plugins['@hey-api/typescript'].include);\n client.models = client.models.filter((model) => regexp.test(model.name));\n }\n }\n\n const outputPath = path.resolve(config.output.path);\n\n if (config.output.clean) {\n removeDirSync(outputPath);\n }\n\n const clientPlugin = getClientPlugin(config);\n if (\n !isLegacyClient(config) &&\n 'bundle' in clientPlugin &&\n clientPlugin.bundle\n ) {\n generateClientBundle({\n outputPath,\n plugin: clientPlugin,\n });\n }\n\n // deprecated files\n await generateLegacyClientClass(spec, outputPath, client, templates);\n await generateLegacyCore(\n path.resolve(config.output.path, 'core'),\n client,\n templates,\n );\n\n const files: Files = {};\n\n for (const name of config.pluginOrder) {\n const plugin = config.plugins[name]!;\n const outputParts = (plugin.output ?? '').split('/');\n const outputDir = path.resolve(\n config.output.path,\n ...outputParts.slice(0, outputParts.length - 1),\n );\n files[plugin.name] = new TypeScriptFile({\n dir: outputDir,\n name: `${outputParts[outputParts.length - 1]}.ts`,\n });\n plugin._handlerLegacy({\n client,\n files,\n openApi: spec,\n plugin: plugin as never,\n });\n }\n\n generateIndexFile({ files });\n\n Object.entries(files).forEach(([name, file]) => {\n if (config.dryRun) {\n return;\n }\n\n if (name === 'index') {\n file.write();\n } else {\n file.write('\\n\\n');\n }\n });\n};\n\nexport const generateOutput = async ({ context }: { context: IR.Context }) => {\n const outputPath = path.resolve(context.config.output.path);\n\n if (context.config.output.clean) {\n removeDirSync(outputPath);\n }\n\n const client = getClientPlugin(context.config);\n if ('bundle' in client && client.bundle) {\n generateClientBundle({\n outputPath,\n plugin: client,\n });\n }\n\n for (const name of context.config.pluginOrder) {\n const plugin = context.config.plugins[name]!;\n plugin._handler({\n context,\n plugin: plugin as never,\n });\n }\n\n await parseIR({ context });\n\n if (!context.config.dryRun) {\n const indexFile = context.createFile({\n id: '_index',\n path: 'index',\n });\n\n for (const file of Object.values(context.files)) {\n const fileName = file.nameWithoutExtension();\n\n if (fileName === indexFile.nameWithoutExtension()) {\n continue;\n }\n\n if (\n !file.isEmpty() &&\n file.exportFromIndex &&\n context.config.output.indexFile\n ) {\n // TODO: parser - add export method for more granular control over\n // what's exported so we can support named exports\n indexFile.add(\n compiler.exportAllDeclaration({\n module: `./${fileName}`,\n }),\n );\n }\n\n file.write('\\n\\n');\n }\n\n if (context.config.output.indexFile) {\n indexFile.write();\n }\n }\n};\n","import { sync } from 'cross-spawn';\n\nimport type { Config, Formatters, Linters } from './types/config';\n\ntype OutputProcessor = {\n args: (path: string) => ReadonlyArray<string>;\n command: string;\n name: string;\n};\n\n/**\n * Map of supported formatters\n */\nconst formatters: Record<Formatters, OutputProcessor> = {\n biome: {\n args: (path) => ['format', '--write', path],\n command: 'biome',\n name: 'Biome (Format)',\n },\n prettier: {\n args: (path) => [\n '--ignore-unknown',\n path,\n '--write',\n '--ignore-path',\n './.prettierignore',\n ],\n command: 'prettier',\n name: 'Prettier',\n },\n};\n\n/**\n * Map of supported linters\n */\nconst linters: Record<Linters, OutputProcessor> = {\n biome: {\n args: (path) => ['lint', '--apply', path],\n command: 'biome',\n name: 'Biome (Lint)',\n },\n eslint: {\n args: (path) => [path, '--fix'],\n command: 'eslint',\n name: 'ESLint',\n },\n oxlint: {\n args: (path) => ['--fix', path],\n command: 'oxlint',\n name: 'oxlint',\n },\n};\n\nexport const processOutput = ({ config }: { config: Config }) => {\n if (config.output.format) {\n const module = formatters[config.output.format];\n console.log(`✨ Running ${module.name}`);\n sync(module.command, module.args(config.output.path));\n }\n\n if (config.output.lint) {\n const module = linters[config.output.lint];\n console.log(`✨ Running ${module.name}`);\n sync(module.command, module.args(config.output.path));\n }\n};\n","const idEnd = (id: string) => `${id}-end`;\n\nconst idLength = (id: string) => `${id}-length`;\n\nconst idStart = (id: string) => `${id}-start`;\n\nexport const Performance = {\n clear: (): void => {\n performance.clearMarks();\n performance.clearMeasures();\n },\n end: (id: string): PerformanceMark => performance.mark(idEnd(id)),\n getEntriesByName: (id: string): PerformanceEntryList =>\n performance.getEntriesByName(idLength(id)),\n measure: (id: string): PerformanceMeasure =>\n performance.measure(idLength(id), idStart(id), idEnd(id)),\n start: (id: string): PerformanceMark => performance.mark(idStart(id)),\n};\n\nexport class PerformanceReport {\n totalMeasure: PerformanceMeasure;\n\n constructor({ totalMark }: { totalMark: string }) {\n this.totalMeasure = Performance.measure(totalMark);\n }\n\n public report({ marks }: { marks: ReadonlyArray<string> }) {\n const totalDuration = Math.ceil(this.totalMeasure.duration * 100) / 100;\n const totalName = this.totalMeasure.name;\n console.warn(\n `${totalName.substring(0, totalName.length - idLength('').length)}: ${totalDuration.toFixed(2)}ms`,\n );\n\n marks.forEach((mark) => {\n try {\n const markMeasure = Performance.measure(mark);\n const markDuration = Math.ceil(markMeasure.duration * 100) / 100;\n const percentage =\n Math.ceil(\n (markMeasure.duration / this.totalMeasure.duration) * 100 * 100,\n ) / 100;\n console.warn(\n `${mark}: ${markDuration.toFixed(2)}ms (${percentage.toFixed(2)}%)`,\n );\n } catch {\n // noop\n }\n });\n }\n}\n","import path from 'node:path';\n\nimport { generateLegacyOutput, generateOutput } from './generate/output';\nimport { getSpec } from './getSpec';\nimport type { IR } from './ir/types';\nimport { parseLegacy, parseOpenApiSpec } from './openApi';\nimport { processOutput } from './processOutput';\nimport type { Client } from './types/client';\nimport type { Config } from './types/config';\nimport type { WatchValues } from './types/types';\nimport { isLegacyClient, legacyNameFromConfig } from './utils/config';\nimport type { Templates } from './utils/handlebars';\nimport { Performance } from './utils/performance';\nimport { postProcessClient } from './utils/postprocess';\n\nconst isPlatformPath = (path: string) =>\n path.startsWith('https://get.heyapi.dev');\n// || path.startsWith('http://localhost:4000')\n\nexport const compileInputPath = (input: Config['input']) => {\n const result: Pick<\n Partial<Config['input']>,\n | 'api_key'\n | 'branch'\n | 'commit_sha'\n | 'organization'\n | 'project'\n | 'tags'\n | 'version'\n > &\n Pick<Required<Config['input']>, 'path'> = {\n path: '',\n };\n\n if (\n input.path &&\n (typeof input.path !== 'string' || !isPlatformPath(input.path))\n ) {\n result.path = input.path;\n return result;\n }\n\n const [basePath, baseQuery] = input.path.split('?');\n const queryParts = (baseQuery || '').split('&');\n const queryPath = queryParts.map((part) => part.split('='));\n\n let path = basePath || '';\n if (path.endsWith('/')) {\n path = path.slice(0, path.length - 1);\n }\n\n const [, pathUrl] = path.split('://');\n const [baseUrl, organization, project] = (pathUrl || '').split('/');\n result.organization = organization || input.organization;\n result.project = project || input.project;\n\n const queryParams: Array<string> = [];\n\n const kApiKey = 'api_key';\n result.api_key =\n queryPath.find(([key]) => key === kApiKey)?.[1] ||\n input.api_key ||\n process.env.HEY_API_TOKEN;\n if (result.api_key) {\n queryParams.push(`${kApiKey}=${result.api_key}`);\n }\n\n const kBranch = 'branch';\n result.branch =\n queryPath.find(([key]) => key === kBranch)?.[1] || input.branch;\n if (result.branch) {\n queryParams.push(`${kBranch}=${result.branch}`);\n }\n\n const kCommitSha = 'commit_sha';\n result.commit_sha =\n queryPath.find(([key]) => key === kCommitSha)?.[1] || input.commit_sha;\n if (result.commit_sha) {\n queryParams.push(`${kCommitSha}=${result.commit_sha}`);\n }\n\n const kTags = 'tags';\n result.tags =\n queryPath.find(([key]) => key === kTags)?.[1]?.split(',') || input.tags;\n if (result.tags?.length) {\n queryParams.push(`${kTags}=${result.tags.join(',')}`);\n }\n\n const kVersion = 'version';\n result.version =\n queryPath.find(([key]) => key === kVersion)?.[1] || input.version;\n if (result.version) {\n queryParams.push(`${kVersion}=${result.version}`);\n }\n\n if (!result.organization) {\n throw new Error(\n '🚫 missing organization - from which Hey API platform organization do you want to generate your output?',\n );\n }\n\n if (!result.project) {\n throw new Error(\n '🚫 missing project - from which Hey API platform project do you want to generate your output?',\n );\n }\n\n const query = queryParams.join('&');\n const platformUrl = baseUrl || 'get.heyapi.dev';\n const isLocalhost = platformUrl.startsWith('localhost');\n const platformUrlWithProtocol = [\n isLocalhost ? 'http' : 'https',\n platformUrl,\n ].join('://');\n const compiledPath = isLocalhost\n ? [\n platformUrlWithProtocol,\n 'v1',\n 'get',\n result.organization,\n result.project,\n ].join('/')\n : [platformUrlWithProtocol, result.organization, result.project].join('/');\n result.path = query ? `${compiledPath}?${query}` : compiledPath;\n\n return result;\n};\n\nconst logInputPath = ({\n config,\n inputPath,\n watch,\n}: {\n config: Config;\n inputPath: ReturnType<typeof compileInputPath>;\n watch?: boolean;\n}) => {\n if (config.logs.level === 'silent') {\n return;\n }\n\n if (watch) {\n console.clear();\n }\n\n const baseString = watch\n ? 'Input changed, generating from'\n : 'Generating from';\n\n if (typeof inputPath.path === 'string') {\n const baseInput = isPlatformPath(inputPath.path)\n ? `${inputPath.organization}/${inputPath.project}`\n : inputPath.path;\n console.log(`⏳ ${baseString} ${baseInput}`);\n if (isPlatformPath(inputPath.path)) {\n if (inputPath.branch) {\n console.log(`branch: ${inputPath.branch}`);\n }\n if (inputPath.commit_sha) {\n console.log(`commit: ${inputPath.commit_sha}`);\n }\n if (inputPath.tags?.length) {\n console.log(`tags: ${inputPath.tags.join(', ')}`);\n }\n if (inputPath.version) {\n console.log(`version: ${inputPath.version}`);\n }\n }\n } else {\n console.log(`⏳ ${baseString} raw OpenAPI specification`);\n }\n};\n\nexport const createClient = async ({\n config,\n templates,\n watch: _watch,\n}: {\n config: Config;\n templates: Templates;\n watch?: WatchValues;\n}) => {\n const inputPath = compileInputPath(config.input);\n const timeout = config.watch.timeout;\n\n const watch: WatchValues = _watch || { headers: new Headers() };\n\n logInputPath({\n config,\n inputPath,\n watch: Boolean(_watch),\n });\n\n Performance.start('spec');\n const { data, error, response } = await getSpec({\n fetchOptions: config.input.fetch,\n inputPath: inputPath.path,\n timeout,\n watch,\n });\n Performance.end('spec');\n\n // throw on first run if there's an error to preserve user experience\n // if in watch mode, subsequent errors won't throw to gracefully handle\n // cases where server might be reloading\n if (error && !_watch) {\n throw new Error(\n `Request failed with status ${response.status}: ${response.statusText}`,\n );\n }\n\n let client: Client | undefined;\n let context: IR.Context | undefined;\n\n if (data) {\n Performance.start('parser');\n if (\n config.experimentalParser &&\n !isLegacyClient(config) &&\n !legacyNameFromConfig(config)\n ) {\n context = parseOpenApiSpec({ config, spec: data });\n }\n\n // fallback to legacy parser\n if (!context) {\n const parsed = parseLegacy({ openApi: data });\n client = postProcessClient(parsed, config);\n }\n Performance.end('parser');\n\n Performance.start('generator');\n if (context) {\n await generateOutput({ context });\n } else if (client) {\n await generateLegacyOutput({ client, openApi: data, templates });\n }\n Performance.end('generator');\n\n Performance.start('postprocess');\n if (!config.dryRun) {\n processOutput({ config });\n\n if (config.logs.level !== 'silent') {\n const outputPath = process.env.INIT_CWD\n ? `./${path.relative(process.env.INIT_CWD, config.output.path)}`\n : config.output.path;\n console.log(`🚀 Done! Your output is in ${outputPath}`);\n }\n }\n Performance.end('postprocess');\n }\n\n if (config.watch.enabled && typeof inputPath.path === 'string') {\n setTimeout(() => {\n createClient({ config, templates, watch });\n }, config.watch.interval);\n }\n\n return context || client;\n};\n","import Handlebars from 'handlebars';\n\n// @ts-expect-error\nimport templateClient from '../legacy/handlebars/compiled/client.js';\n// @ts-expect-error\nimport angularGetHeaders from '../legacy/handlebars/compiled/core/angular/getHeaders.js';\n// @ts-expect-error\nimport angularGetRequestBody from '../legacy/handlebars/compiled/core/angular/getRequestBody.js';\n// @ts-expect-error\nimport angularGetResponseBody from '../legacy/handlebars/compiled/core/angular/getResponseBody.js';\n// @ts-expect-error\nimport angularGetResponseHeader from '../legacy/handlebars/compiled/core/angular/getResponseHeader.js';\n// @ts-expect-error\nimport angularRequest from '../legacy/handlebars/compiled/core/angular/request.js';\n// @ts-expect-error\nimport angularSendRequest from '../legacy/handlebars/compiled/core/angular/sendRequest.js';\n// @ts-expect-error\nimport templateCoreApiError from '../legacy/handlebars/compiled/core/ApiError.js';\n// @ts-expect-error\nimport templateCoreApiRequestOptions from '../legacy/handlebars/compiled/core/ApiRequestOptions.js';\n// @ts-expect-error\nimport templateCoreApiResult from '../legacy/handlebars/compiled/core/ApiResult.js';\n// @ts-expect-error\nimport axiosGetHeaders from '../legacy/handlebars/compiled/core/axios/getHeaders.js';\n// @ts-expect-error\nimport axiosGetRequestBody from '../legacy/handlebars/compiled/core/axios/getRequestBody.js';\n// @ts-expect-error\nimport axiosGetResponseBody from '../legacy/handlebars/compiled/core/axios/getResponseBody.js';\n// @ts-expect-error\nimport axiosGetResponseHeader from '../legacy/handlebars/compiled/core/axios/getResponseHeader.js';\n// @ts-expect-error\nimport axiosRequest from '../legacy/handlebars/compiled/core/axios/request.js';\n// @ts-expect-error\nimport axiosSendRequest from '../legacy/handlebars/compiled/core/axios/sendRequest.js';\n// @ts-expect-error\nimport templateCoreBaseHttpRequest from '../legacy/handlebars/compiled/core/BaseHttpRequest.js';\n// @ts-expect-error\nimport templateCancelablePromise from '../legacy/handlebars/compiled/core/CancelablePromise.js';\n// @ts-expect-error\nimport fetchGetHeaders from '../legacy/handlebars/compiled/core/fetch/getHeaders.js';\n// @ts-expect-error\nimport fetchGetRequestBody from '../legacy/handlebars/compiled/core/fetch/getRequestBody.js';\n// @ts-expect-error\nimport fetchGetResponseBody from '../legacy/handlebars/compiled/core/fetch/getResponseBody.js';\n// @ts-expect-error\nimport fetchGetResponseHeader from '../legacy/handlebars/compiled/core/fetch/getResponseHeader.js';\n// @ts-expect-error\nimport fetchRequest from '../legacy/handlebars/compiled/core/fetch/request.js';\n// @ts-expect-error\nimport fetchSendRequest from '../legacy/handlebars/compiled/core/fetch/sendRequest.js';\n// @ts-expect-error\nimport functionBase64 from '../legacy/handlebars/compiled/core/functions/base64.js';\n// @ts-expect-error\nimport functionCatchErrorCodes from '../legacy/handlebars/compiled/core/functions/catchErrorCodes.js';\n// @ts-expect-error\nimport functionGetFormData from '../legacy/handlebars/compiled/core/functions/getFormData.js';\n// @ts-expect-error\nimport functionGetQueryString from '../legacy/handlebars/compiled/core/functions/getQueryString.js';\n// @ts-expect-error\nimport functionGetUrl from '../legacy/handlebars/compiled/core/functions/getUrl.js';\n// @ts-expect-error\nimport functionIsBlob from '../legacy/handlebars/compiled/core/functions/isBlob.js';\n// @ts-expect-error\nimport functionIsFormData from '../legacy/handlebars/compiled/core/functions/isFormData.js';\n// @ts-expect-error\nimport functionIsString from '../legacy/handlebars/compiled/core/functions/isString.js';\n// @ts-expect-error\nimport functionIsStringWithValue from '../legacy/handlebars/compiled/core/functions/isStringWithValue.js';\n// @ts-expect-error\nimport functionIsSuccess from '../legacy/handlebars/compiled/core/functions/isSuccess.js';\n// @ts-expect-error\nimport functionResolve from '../legacy/handlebars/compiled/core/functions/resolve.js';\n// @ts-expect-error\nimport templateCoreHttpRequest from '../legacy/handlebars/compiled/core/HttpRequest.js';\n// @ts-expect-error\nimport templateCoreSettings from '../legacy/handlebars/compiled/core/OpenAPI.js';\n// @ts-expect-error\nimport templateCoreRequest from '../legacy/handlebars/compiled/core/request.js';\n// @ts-expect-error\nimport xhrGetHeaders from '../legacy/handlebars/compiled/core/xhr/getHeaders.js';\n// @ts-expect-error\nimport xhrGetRequestBody from '../legacy/handlebars/compiled/core/xhr/getRequestBody.js';\n// @ts-expect-error\nimport xhrGetResponseBody from '../legacy/handlebars/compiled/core/xhr/getResponseBody.js';\n// @ts-expect-error\nimport xhrGetResponseHeader from '../legacy/handlebars/compiled/core/xhr/getResponseHeader.js';\n// @ts-expect-error\nimport xhrRequest from '../legacy/handlebars/compiled/core/xhr/request.js';\n// @ts-expect-error\nimport xhrSendRequest from '../legacy/handlebars/compiled/core/xhr/sendRequest.js';\nimport { getConfig } from './config';\nimport { stringCase } from './stringCase';\nimport { transformServiceName } from './transform';\n\nexport const registerHandlebarHelpers = (): void => {\n Handlebars.registerHelper(\n 'camelCase',\n function (this: unknown, name: string) {\n return stringCase({\n case: 'camelCase',\n value: name,\n });\n },\n );\n\n Handlebars.registerHelper(\n 'equals',\n function (\n this: unknown,\n a: string,\n b: string,\n options: Handlebars.HelperOptions,\n ) {\n return a === b ? options.fn(this) : options.inverse(this);\n },\n );\n\n Handlebars.registerHelper(\n 'ifServicesResponse',\n function (this: unknown, value: string, options: Handlebars.HelperOptions) {\n return getConfig().plugins['@hey-api/sdk']?.response === value\n ? options.fn(this)\n : options.inverse(this);\n },\n );\n\n Handlebars.registerHelper('ifdef', function (this: unknown, ...args): string {\n const options = args.pop();\n if (!args.every((value) => !value)) {\n return options.fn(this);\n }\n return options.inverse(this);\n });\n\n Handlebars.registerHelper(\n 'notEquals',\n function (\n this: unknown,\n a: string,\n b: string,\n options: Handlebars.HelperOptions,\n ) {\n return a !== b ? options.fn(this) : options.inverse(this);\n },\n );\n\n Handlebars.registerHelper(\n 'transformServiceName',\n function (this: unknown, name: string) {\n return transformServiceName({\n config: getConfig(),\n name,\n });\n },\n );\n};\n\nexport interface Templates {\n client: Handlebars.TemplateDelegate;\n core: {\n apiError: Handlebars.TemplateDelegate;\n apiRequestOptions: Handlebars.TemplateDelegate;\n apiResult: Handlebars.TemplateDelegate;\n baseHttpRequest: Handlebars.TemplateDelegate;\n cancelablePromise: Handlebars.TemplateDelegate;\n httpRequest: Handlebars.TemplateDelegate;\n request: Handlebars.TemplateDelegate;\n settings: Handlebars.TemplateDelegate;\n };\n}\n\n/**\n * Read all the Handlebar templates that we need and return a wrapper object\n * so we can easily access the templates in our generator/write functions.\n */\nexport const registerHandlebarTemplates = (): Templates => {\n registerHandlebarHelpers();\n\n // Main templates (entry points for the files we write to disk)\n const templates: Templates = {\n client: Handlebars.template(templateClient),\n core: {\n apiError: Handlebars.template(templateCoreApiError),\n apiRequestOptions: Handlebars.template(templateCoreApiRequestOptions),\n apiResult: Handlebars.template(templateCoreApiResult),\n baseHttpRequest: Handlebars.template(templateCoreBaseHttpRequest),\n cancelablePromise: Handlebars.template(templateCancelablePromise),\n httpRequest: Handlebars.template(templateCoreHttpRequest),\n request: Handlebars.template(templateCoreRequest),\n settings: Handlebars.template(templateCoreSettings),\n },\n };\n\n // Generic functions used in 'request' file @see src/legacy/handlebars/templates/core/request.hbs for more info\n Handlebars.registerPartial(\n 'functions/base64',\n Handlebars.template(functionBase64),\n );\n Handlebars.registerPartial(\n 'functions/catchErrorCodes',\n Handlebars.template(functionCatchErrorCodes),\n );\n Handlebars.registerPartial(\n 'functions/getFormData',\n Handlebars.template(functionGetFormData),\n );\n Handlebars.registerPartial(\n 'functions/getQueryString',\n Handlebars.template(functionGetQueryString),\n );\n Handlebars.registerPartial(\n 'functions/getUrl',\n Handlebars.template(functionGetUrl),\n );\n Handlebars.registerPartial(\n 'functions/isBlob',\n Handlebars.template(functionIsBlob),\n );\n Handlebars.registerPartial(\n 'functions/isFormData',\n Handlebars.template(functionIsFormData),\n );\n Handlebars.registerPartial(\n 'functions/isString',\n Handlebars.template(functionIsString),\n );\n Handlebars.registerPartial(\n 'functions/isStringWithValue',\n Handlebars.template(functionIsStringWithValue),\n );\n Handlebars.registerPartial(\n 'functions/isSuccess',\n Handlebars.template(functionIsSuccess),\n );\n Handlebars.registerPartial(\n 'functions/resolve',\n Handlebars.template(functionResolve),\n );\n\n // Specific files for the fetch client implementation\n Handlebars.registerPartial(\n 'fetch/getHeaders',\n Handlebars.template(fetchGetHeaders),\n );\n Handlebars.registerPartial(\n 'fetch/getRequestBody',\n Handlebars.template(fetchGetRequestBody),\n );\n Handlebars.registerPartial(\n 'fetch/getResponseBody',\n Handlebars.template(fetchGetResponseBody),\n );\n Handlebars.registerPartial(\n 'fetch/getResponseHeader',\n Handlebars.template(fetchGetResponseHeader),\n );\n Handlebars.registerPartial(\n 'fetch/request',\n Handlebars.template(fetchRequest),\n );\n Handlebars.registerPartial(\n 'fetch/sendRequest',\n Handlebars.template(fetchSendRequest),\n );\n\n // Specific files for the xhr client implementation\n Handlebars.registerPartial(\n 'xhr/getHeaders',\n Handlebars.template(xhrGetHeaders),\n );\n Handlebars.registerPartial(\n 'xhr/getRequestBody',\n Handlebars.template(xhrGetRequestBody),\n );\n Handlebars.registerPartial(\n 'xhr/getResponseBody',\n Handlebars.template(xhrGetResponseBody),\n );\n Handlebars.registerPartial(\n 'xhr/getResponseHeader',\n Handlebars.template(xhrGetResponseHeader),\n );\n Handlebars.registerPartial('xhr/request', Handlebars.template(xhrRequest));\n Handlebars.registerPartial(\n 'xhr/sendRequest',\n Handlebars.template(xhrSendRequest),\n );\n\n // Specific files for the axios client implementation\n Handlebars.registerPartial(\n 'axios/getHeaders',\n Handlebars.template(axiosGetHeaders),\n );\n Handlebars.registerPartial(\n 'axios/getRequestBody',\n Handlebars.template(axiosGetRequestBody),\n );\n Handlebars.registerPartial(\n 'axios/getResponseBody',\n Handlebars.template(axiosGetResponseBody),\n );\n Handlebars.registerPartial(\n 'axios/getResponseHeader',\n Handlebars.template(axiosGetResponseHeader),\n );\n Handlebars.registerPartial(\n 'axios/request',\n Handlebars.template(axiosRequest),\n );\n Handlebars.registerPartial(\n 'axios/sendRequest',\n Handlebars.template(axiosSendRequest),\n );\n\n // Specific files for the angular client implementation\n Handlebars.registerPartial(\n 'angular/getHeaders',\n Handlebars.template(angularGetHeaders),\n );\n Handlebars.registerPartial(\n 'angular/getRequestBody',\n Handlebars.template(angularGetRequestBody),\n );\n Handlebars.registerPartial(\n 'angular/getResponseBody',\n Handlebars.template(angularGetResponseBody),\n );\n Handlebars.registerPartial(\n 'angular/getResponseHeader',\n Handlebars.template(angularGetResponseHeader),\n );\n Handlebars.registerPartial(\n 'angular/request',\n Handlebars.template(angularRequest),\n );\n Handlebars.registerPartial(\n 'angular/sendRequest',\n Handlebars.template(angularSendRequest),\n );\n\n return templates;\n};\n","export default {\n 1: function (container, depth0, helpers, partials, data) {\n return \"import { NgModule} from '@angular/core';\\nimport { HttpClientModule } from '@angular/common/http';\\n\\nimport { AngularHttpRequest } from './core/AngularHttpRequest';\\nimport { BaseHttpRequest } from './core/BaseHttpRequest';\\nimport type { OpenAPIConfig } from './core/OpenAPI';\\nimport { OpenAPI } from './core/OpenAPI';\\nimport { Interceptors } from './core/OpenAPI';\\n\";\n },\n 3: function (container, depth0, helpers, partials, data) {\n var stack1,\n alias1 = container.strict,\n alias2 = container.lambda;\n\n return (\n \"import type { BaseHttpRequest } from './core/BaseHttpRequest';\\nimport type { OpenAPIConfig } from './core/OpenAPI';\\nimport { Interceptors } from './core/OpenAPI';\\nimport { \" +\n ((stack1 = alias2(\n alias1(depth0, 'httpRequest', {\n start: { line: 14, column: 12 },\n end: { line: 14, column: 23 },\n }),\n depth0,\n )) != null\n ? stack1\n : '') +\n \" } from './core/\" +\n ((stack1 = alias2(\n alias1(depth0, 'httpRequest', {\n start: { line: 14, column: 45 },\n end: { line: 14, column: 56 },\n }),\n depth0,\n )) != null\n ? stack1\n : '') +\n \"';\\n\"\n );\n },\n 5: function (container, depth0, helpers, partials, data) {\n var stack1,\n lookupProperty =\n container.lookupProperty ||\n function (parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined;\n };\n\n return (stack1 = lookupProperty(helpers, 'each').call(\n depth0 != null ? depth0 : container.nullContext || {},\n lookupProperty(depth0, 'services'),\n {\n name: 'each',\n hash: {},\n fn: container.program(6, data, 0),\n inverse: container.noop,\n data: data,\n loc: { start: { line: 18, column: 0 }, end: { line: 20, column: 9 } },\n },\n )) != null\n ? stack1\n : '';\n },\n 6: function (container, depth0, helpers, partials, data) {\n var stack1,\n lookupProperty =\n container.lookupProperty ||\n function (parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined;\n };\n\n return (\n 'import { ' +\n ((stack1 = lookupProperty(helpers, 'transformServiceName').call(\n depth0 != null ? depth0 : container.nullContext || {},\n lookupProperty(depth0, 'name'),\n {\n name: 'transformServiceName',\n hash: {},\n data: data,\n loc: {\n start: { line: 19, column: 9 },\n end: { line: 19, column: 40 },\n },\n },\n )) != null\n ? stack1\n : '') +\n \" } from './sdk.gen';\\n\"\n );\n },\n 8: function (container, depth0, helpers, partials, data) {\n var stack1,\n alias1 = container.strict,\n alias2 = container.lambda,\n lookupProperty =\n container.lookupProperty ||\n function (parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined;\n };\n\n return (\n \"@NgModule({\\n\timports: [HttpClientModule],\\n\tproviders: [\\n\t\t{\\n\t\t\tprovide: OpenAPI,\\n\t\t\tuseValue: {\\n\t\t\t\tBASE: OpenAPI?.BASE ?? '\" +\n ((stack1 = alias2(\n alias1(depth0, 'server', {\n start: { line: 30, column: 31 },\n end: { line: 30, column: 37 },\n }),\n depth0,\n )) != null\n ? stack1\n : '') +\n \"',\\n\t\t\t\tVERSION: OpenAPI?.VERSION ?? '\" +\n ((stack1 = alias2(\n alias1(depth0, 'version', {\n start: { line: 31, column: 37 },\n end: { line: 31, column: 44 },\n }),\n depth0,\n )) != null\n ? stack1\n : '') +\n \"',\\n\t\t\t\tWITH_CREDENTIALS: OpenAPI?.WITH_CREDENTIALS ?? false,\\n\t\t\t\tCREDENTIALS: OpenAPI?.CREDENTIALS ?? 'include',\\n\t\t\t\tTOKEN: OpenAPI?.TOKEN,\\n\t\t\t\tUSERNAME: OpenAPI?.USERNAME,\\n\t\t\t\tPASSWORD: OpenAPI?.PASSWORD,\\n\t\t\t\tHEADERS: OpenAPI?.HEADERS,\\n\t\t\t\tENCODE_PATH: OpenAPI?.ENCODE_PATH,\\n\t\t\t\tinterceptors: {\\n\t\t\t\t\tresponse: OpenAPI?.interceptors?.response ?? new Interceptors(),\\n\t\t\t\t},\\n\t\t\t} as OpenAPIConfig,\\n\t\t},\\n\t\t{\\n\t\t\tprovide: BaseHttpRequest,\\n\t\t\tuseClass: AngularHttpRequest,\\n\t\t},\\n\" +\n ((stack1 = lookupProperty(helpers, 'each').call(\n depth0 != null ? depth0 : container.nullContext || {},\n lookupProperty(depth0, 'services'),\n {\n name: 'each',\n hash: {},\n fn: container.program(9, data, 0),\n inverse: container.noop,\n data: data,\n loc: {\n start: { line: 48, column: 2 },\n end: { line: 50, column: 11 },\n },\n },\n )) != null\n ? stack1\n : '') +\n '\t]\\n})\\nexport class ' +\n ((stack1 = alias2(\n alias1(\n lookupProperty(lookupProperty(data, 'root'), '$config'),\n 'name',\n { start: { line: 53, column: 16 }, end: { line: 53, column: 34 } },\n ),\n depth0,\n )) != null\n ? stack1\n : '') +\n ' {}\\n'\n );\n },\n 9: function (container, depth0, helpers, partials, data) {\n var stack1,\n lookupProperty =\n container.lookupProperty ||\n function (parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined;\n };\n\n return (\n '\t\t' +\n ((stack1 = lookupProperty(helpers, 'transformServiceName').call(\n depth0 != null ? depth0 : container.nullContext || {},\n lookupProperty(depth0, 'name'),\n {\n name: 'transformServiceName',\n hash: {},\n data: data,\n loc: {\n start: { line: 49, column: 2 },\n end: { line: 49, column: 33 },\n },\n },\n )) != null\n ? stack1\n : '') +\n ',\\n'\n );\n },\n 11: function (container, depth0, helpers, partials, data) {\n var stack1,\n alias1 = container.strict,\n alias2 = container.lambda,\n alias3 = depth0 != null ? depth0 : container.nullContext || {},\n lookupProperty =\n container.lookupProperty ||\n function (parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined;\n };\n\n return (\n 'type HttpRequestConstructor = new (config: OpenAPIConfig) => BaseHttpRequest;\\n\\nexport class ' +\n ((stack1 = alias2(\n alias1(\n lookupProperty(lookupProperty(data, 'root'), '$config'),\n 'name',\n { start: { line: 57, column: 16 }, end: { line: 57, column: 34 } },\n ),\n depth0,\n )) != null\n ? stack1\n : '') +\n ' {\\n\\n' +\n ((stack1 = lookupProperty(helpers, 'each').call(\n alias3,\n lookupProperty(depth0, 'services'),\n {\n name: 'each',\n hash: {},\n fn: container.program(12, data, 0),\n inverse: container.noop,\n data: data,\n loc: {\n start: { line: 59, column: 1 },\n end: { line: 61, column: 10 },\n },\n },\n )) != null\n ? stack1\n : '') +\n '\\n\tpublic readonly request: BaseHttpRequest;\\n\\n\tconstructor(config?: Partial<OpenAPIConfig>, HttpRequest: HttpRequestConstructor = ' +\n ((stack1 = alias2(\n alias1(depth0, 'httpRequest', {\n start: { line: 65, column: 87 },\n end: { line: 65, column: 98 },\n }),\n depth0,\n )) != null\n ? stack1\n : '') +\n \") {\\n\t\tthis.request = new HttpRequest({\\n\t\t\tBASE: config?.BASE ?? '\" +\n ((stack1 = alias2(\n alias1(depth0, 'server', {\n start: { line: 67, column: 29 },\n end: { line: 67, column: 35 },\n }),\n depth0,\n )) != null\n ? stack1\n : '') +\n \"',\\n\t\t\tVERSION: config?.VERSION ?? '\" +\n ((stack1 = alias2(\n alias1(depth0, 'version', {\n start: { line: 68, column: 35 },\n end: { line: 68, column: 42 },\n }),\n depth0,\n )) != null\n ? stack1\n : '') +\n \"',\\n\t\t\tWITH_CREDENTIALS: config?.WITH_CREDENTIALS ?? false,\\n\t\t\tCREDENTIALS: config?.CREDENTIALS ?? 'include',\\n\t\t\tTOKEN: config?.TOKEN,\\n\t\t\tUSERNAME: config?.USERNAME,\\n\t\t\tPASSWORD: config?.PASSWORD,\\n\t\t\tHEADERS: config?.HEADERS,\\n\t\t\tENCODE_PATH: config?.ENCODE_PATH,\\n\t\t\tinterceptors: {\\n\t\t\t\trequest: config?.interceptors?.request ?? new Interceptors(),\\n\t\t\t\tresponse: config?.interceptors?.response ?? new Interceptors(),\\n },\\n\t\t});\\n\\n\" +\n ((stack1 = lookupProperty(helpers, 'each').call(\n alias3,\n lookupProperty(depth0, 'services'),\n {\n name: 'each',\n hash: {},\n fn: container.program(14, data, 0),\n inverse: container.noop,\n data: data,\n loc: {\n start: { line: 82, column: 2 },\n end: { line: 84, column: 11 },\n },\n },\n )) != null\n ? stack1\n : '') +\n '\t}\\n}\\n'\n );\n },\n 12: function (container, depth0, helpers, partials, data) {\n var stack1,\n alias1 = depth0 != null ? depth0 : container.nullContext || {},\n lookupProperty =\n container.lookupProperty ||\n function (parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined;\n };\n\n return (\n '\tpublic readonly ' +\n ((stack1 = lookupProperty(helpers, 'camelCase').call(\n alias1,\n lookupProperty(depth0, 'name'),\n {\n name: 'camelCase',\n hash: {},\n data: data,\n loc: {\n start: { line: 60, column: 17 },\n end: { line: 60, column: 37 },\n },\n },\n )) != null\n ? stack1\n : '') +\n ': ' +\n ((stack1 = lookupProperty(helpers, 'transformServiceName').call(\n alias1,\n lookupProperty(depth0, 'name'),\n {\n name: 'transformServiceName',\n hash: {},\n data: data,\n loc: {\n start: { line: 60, column: 39 },\n end: { line: 60, column: 70 },\n },\n },\n )) != null\n ? stack1\n : '') +\n ';\\n'\n );\n },\n 14: function (container, depth0, helpers, partials, data) {\n var stack1,\n alias1 = depth0 != null ? depth0 : container.nullContext || {},\n lookupProperty =\n container.lookupProperty ||\n function (parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined;\n };\n\n return (\n '\t\tthis.' +\n ((stack1 = lookupProperty(helpers, 'camelCase').call(\n alias1,\n lookupProperty(depth0, 'name'),\n {\n name: 'camelCase',\n hash: {},\n data: data,\n loc: {\n start: { line: 83, column: 7 },\n end: { line: 83, column: 27 },\n },\n },\n )) != null\n ? stack1\n : '') +\n ' = new ' +\n ((stack1 = lookupProperty(helpers, 'transformServiceName').call(\n alias1,\n lookupProperty(depth0, 'name'),\n {\n name: 'transformServiceName',\n hash: {},\n data: data,\n loc: {\n start: { line: 83, column: 34 },\n end: { line: 83, column: 65 },\n },\n },\n )) != null\n ? stack1\n : '') +\n '(this.request);\\n'\n );\n },\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n var stack1,\n alias1 = depth0 != null ? depth0 : container.nullContext || {},\n lookupProperty =\n container.lookupProperty ||\n function (parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined;\n };\n\n return (\n ((stack1 = lookupProperty(helpers, 'equals').call(\n alias1,\n lookupProperty(\n lookupProperty(\n lookupProperty(lookupProperty(data, 'root'), '$config'),\n 'client',\n ),\n 'name',\n ),\n 'legacy/angular',\n {\n name: 'equals',\n hash: {},\n fn: container.program(1, data, 0),\n inverse: container.program(3, data, 0),\n data: data,\n loc: { start: { line: 1, column: 0 }, end: { line: 15, column: 11 } },\n },\n )) != null\n ? stack1\n : '') +\n '\\n' +\n ((stack1 = lookupProperty(helpers, 'if').call(\n alias1,\n lookupProperty(depth0, 'services'),\n {\n name: 'if',\n hash: {},\n fn: container.program(5, data, 0),\n inverse: container.noop,\n data: data,\n loc: { start: { line: 17, column: 0 }, end: { line: 21, column: 7 } },\n },\n )) != null\n ? stack1\n : '') +\n '\\n' +\n ((stack1 = lookupProperty(helpers, 'equals').call(\n alias1,\n lookupProperty(\n lookupProperty(\n lookupProperty(lookupProperty(data, 'root'), '$config'),\n 'client',\n ),\n 'name',\n ),\n 'legacy/angular',\n {\n name: 'equals',\n hash: {},\n fn: container.program(8, data, 0),\n inverse: container.program(11, data, 0),\n data: data,\n loc: {\n start: { line: 23, column: 0 },\n end: { line: 87, column: 11 },\n },\n },\n )) != null\n ? stack1\n : '')\n );\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return \"export const getHeaders = <T>(config: OpenAPIConfig, options: ApiRequestOptions<T>): Observable<HttpHeaders> => {\\n\treturn forkJoin({\\n\t\t// @ts-ignore\\n\t\ttoken: resolve(options, config.TOKEN),\\n\t\t// @ts-ignore\\n\t\tusername: resolve(options, config.USERNAME),\\n\t\t// @ts-ignore\\n\t\tpassword: resolve(options, config.PASSWORD),\\n\t\t// @ts-ignore\\n\t\tadditionalHeaders: resolve(options, config.HEADERS),\\n\t}).pipe(\\n\t\tmap(({ token, username, password, additionalHeaders }) => {\\n\t\t\tconst headers = Object.entries({\\n\t\t\t\tAccept: 'application/json',\\n\t\t\t\t...additionalHeaders,\\n\t\t\t\t...options.headers,\\n\t\t\t})\\n\t\t\t\t.filter(([, value]) => value !== undefined && value !== null)\\n\t\t\t\t.reduce((headers, [key, value]) => ({\\n\t\t\t\t\t...headers,\\n\t\t\t\t\t[key]: String(value),\\n\t\t\t\t}), {} as Record<string, string>);\\n\\n\t\t\tif (isStringWithValue(token)) {\\n\t\t\t\theaders['Authorization'] = `Bearer ${token}`;\\n\t\t\t}\\n\\n\t\t\tif (isStringWithValue(username) && isStringWithValue(password)) {\\n\t\t\t\tconst credentials = base64(`${username}:${password}`);\\n\t\t\t\theaders['Authorization'] = `Basic ${credentials}`;\\n\t\t\t}\\n\\n\t\t\tif (options.body !== undefined) {\\n\t\t\t\tif (options.mediaType) {\\n\t\t\t\t\theaders['Content-Type'] = options.mediaType;\\n\t\t\t\t} else if (isBlob(options.body)) {\\n\t\t\t\t\theaders['Content-Type'] = options.body.type || 'application/octet-stream';\\n\t\t\t\t} else if (isString(options.body)) {\\n\t\t\t\t\theaders['Content-Type'] = 'text/plain';\\n\t\t\t\t} else if (!isFormData(options.body)) {\\n\t\t\t\t\theaders['Content-Type'] = 'application/json';\\n\t\t\t\t}\\n\t\t\t}\\n\\n\t\t\treturn new HttpHeaders(headers);\\n\t\t}),\\n\t);\\n};\";\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return \"export const getRequestBody = (options: ApiRequestOptions): unknown => {\\n\tif (options.body) {\\n\t\tif (options.mediaType?.includes('application/json') || options.mediaType?.includes('+json')) {\\n\t\t\treturn JSON.stringify(options.body);\\n\t\t} else if (isString(options.body) || isBlob(options.body) || isFormData(options.body)) {\\n\t\t\treturn options.body;\\n\t\t} else {\\n\t\t\treturn JSON.stringify(options.body);\\n\t\t}\\n\t}\\n\treturn undefined;\\n};\";\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return 'export const getResponseBody = <T>(response: HttpResponse<T>): T | undefined => {\\n\tif (response.status !== 204 && response.body !== null) {\\n\t\treturn response.body;\\n\t}\\n\treturn undefined;\\n};';\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return 'export const getResponseHeader = <T>(response: HttpResponse<T>, responseHeader?: string): string | undefined => {\\n\tif (responseHeader) {\\n\t\tconst value = response.headers.get(responseHeader);\\n\t\tif (isString(value)) {\\n\t\t\treturn value;\\n\t\t}\\n\t}\\n\treturn undefined;\\n};';\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n var stack1,\n lookupProperty =\n container.lookupProperty ||\n function (parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined;\n };\n\n return (\n \"import { HttpClient, HttpHeaders } from '@angular/common/http';\\nimport type { HttpResponse, HttpErrorResponse } from '@angular/common/http';\\nimport { forkJoin, of, throwError } from 'rxjs';\\nimport { catchError, map, switchMap } from 'rxjs/operators';\\nimport type { Observable } from 'rxjs';\\n\\nimport { ApiError } from './ApiError';\\nimport type { ApiRequestOptions } from './ApiRequestOptions';\\nimport type { ApiResult } from './ApiResult';\\nimport type { OpenAPIConfig } from './OpenAPI';\\n\\n\" +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/isString'),\n depth0,\n {\n name: 'functions/isString',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/isStringWithValue'),\n depth0,\n {\n name: 'functions/isStringWithValue',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/isBlob'),\n depth0,\n {\n name: 'functions/isBlob',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/isFormData'),\n depth0,\n {\n name: 'functions/isFormData',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/base64'),\n depth0,\n {\n name: 'functions/base64',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/getQueryString'),\n depth0,\n {\n name: 'functions/getQueryString',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/getUrl'),\n depth0,\n {\n name: 'functions/getUrl',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/getFormData'),\n depth0,\n {\n name: 'functions/getFormData',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/resolve'),\n depth0,\n {\n name: 'functions/resolve',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'angular/getHeaders'),\n depth0,\n {\n name: 'angular/getHeaders',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'angular/getRequestBody'),\n depth0,\n {\n name: 'angular/getRequestBody',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'angular/sendRequest'),\n depth0,\n {\n name: 'angular/sendRequest',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'angular/getResponseHeader'),\n depth0,\n {\n name: 'angular/getResponseHeader',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'angular/getResponseBody'),\n depth0,\n {\n name: 'angular/getResponseBody',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/catchErrorCodes'),\n depth0,\n {\n name: 'functions/catchErrorCodes',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n/**\\n * Request method\\n * @param config The OpenAPI configuration object\\n * @param http The Angular HTTP client\\n * @param options The request options from the service\\n * @returns Observable<T>\\n * @throws ApiError\\n */\\nexport const request = <T>(config: OpenAPIConfig, http: HttpClient, options: ApiRequestOptions<T>): Observable<T> => {\\n\tconst url = getUrl(config, options);\\n\tconst formData = getFormData(options);\\n\tconst body = getRequestBody(options);\\n\\n\treturn getHeaders(config, options).pipe(\\n\t\tswitchMap(headers => {\\n\t\t\treturn sendRequest<T>(config, options, http, url, body, formData, headers);\\n\t\t}),\\n\t\tswitchMap(async response => {\\n\t\t\tfor (const fn of config.interceptors.response._fns) {\\n\t\t\t\tresponse = await fn(response);\\n\t\t\t}\\n\t\t\tconst responseBody = getResponseBody(response);\\n\t\t\tconst responseHeader = getResponseHeader(response, options.responseHeader);\\n\\n\t\t\tlet transformedBody = responseBody;\\n\t\t\tif (options.responseTransformer && response.ok) {\\n\t\t\t\ttransformedBody = await options.responseTransformer(responseBody)\\n\t\t\t}\\n\\n\t\t\treturn {\\n\t\t\t\turl,\\n\t\t\t\tok: response.ok,\\n\t\t\t\tstatus: response.status,\\n\t\t\t\tstatusText: response.statusText,\\n\t\t\t\tbody: responseHeader ?? transformedBody,\\n\t\t\t} as ApiResult;\\n\t\t}),\\n\t\tcatchError((error: HttpErrorResponse) => {\\n\t\t\tif (!error.status) {\\n\t\t\t\treturn throwError(() => error);\\n\t\t\t}\\n\t\t\treturn of({\\n\t\t\t\turl,\\n\t\t\t\tok: error.ok,\\n\t\t\t\tstatus: error.status,\\n\t\t\t\tstatusText: error.statusText,\\n\t\t\t\tbody: error.error ?? error.statusText,\\n\t\t\t} as ApiResult);\\n\t\t}),\\n\t\tmap(result => {\\n\t\t\tcatchErrorCodes(options, result);\\n\t\t\treturn result.body as T;\\n\t\t}),\\n\t\tcatchError((error: ApiError) => {\\n\t\t\treturn throwError(() => error);\\n\t\t}),\\n\t);\\n};'\n );\n },\n usePartial: true,\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return \"export const sendRequest = <T>(\\n\tconfig: OpenAPIConfig,\\n\toptions: ApiRequestOptions<T>,\\n\thttp: HttpClient,\\n\turl: string,\\n\tbody: unknown,\\n\tformData: FormData | undefined,\\n\theaders: HttpHeaders\\n): Observable<HttpResponse<T>> => {\\n\treturn http.request<T>(options.method, url, {\\n\t\theaders,\\n\t\tbody: body ?? formData,\\n\t\twithCredentials: config.WITH_CREDENTIALS,\\n\t\tobserve: 'response',\\n\t});\\n};\";\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return \"import type { ApiRequestOptions } from './ApiRequestOptions';\\nimport type { ApiResult } from './ApiResult';\\n\\nexport class ApiError extends Error {\\n\tpublic readonly url: string;\\n\tpublic readonly status: number;\\n\tpublic readonly statusText: string;\\n\tpublic readonly body: unknown;\\n\tpublic readonly request: ApiRequestOptions;\\n\\n\tconstructor(request: ApiRequestOptions, response: ApiResult, message: string) {\\n\t\tsuper(message);\\n\\n\t\tthis.name = 'ApiError';\\n\t\tthis.url = response.url;\\n\t\tthis.status = response.status;\\n\t\tthis.statusText = response.statusText;\\n\t\tthis.body = response.body;\\n\t\tthis.request = request;\\n\t}\\n}\";\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return \"export type ApiRequestOptions<T = unknown> = {\\n\treadonly body?: any;\\n\treadonly cookies?: Record<string, unknown>;\\n\treadonly errors?: Record<number | string, string>;\\n\treadonly formData?: Record<string, unknown> | any[] | Blob | File;\\n\treadonly headers?: Record<string, unknown>;\\n\treadonly mediaType?: string;\\n\treadonly method:\\n\t\t| 'DELETE'\\n\t\t| 'GET'\\n\t\t| 'HEAD'\\n\t\t| 'OPTIONS'\\n\t\t| 'PATCH'\\n\t\t| 'POST'\\n\t\t| 'PUT';\\n\treadonly path?: Record<string, unknown>;\\n\treadonly query?: Record<string, unknown>;\\n\treadonly responseHeader?: string;\\n\treadonly responseTransformer?: (data: unknown) => Promise<T>;\\n\treadonly url: string;\\n};\";\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return 'export type ApiResult<TData = any> = {\\n\treadonly body: TData;\\n\treadonly ok: boolean;\\n\treadonly status: number;\\n\treadonly statusText: string;\\n\treadonly url: string;\\n};';\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return \"export const getHeaders = async <T>(config: OpenAPIConfig, options: ApiRequestOptions<T>): Promise<Record<string, string>> => {\\n\tconst [token, username, password, additionalHeaders] = await Promise.all([\\n\t\t// @ts-ignore\\n\t\tresolve(options, config.TOKEN),\\n\t\t// @ts-ignore\\n\t\tresolve(options, config.USERNAME),\\n\t\t// @ts-ignore\\n\t\tresolve(options, config.PASSWORD),\\n\t\t// @ts-ignore\\n\t\tresolve(options, config.HEADERS),\\n\t]);\\n\\n\tconst headers = Object.entries({\\n\t\tAccept: 'application/json',\\n\t\t...additionalHeaders,\\n\t\t...options.headers,\\n\t})\\n\t.filter(([, value]) => value !== undefined && value !== null)\\n\t.reduce((headers, [key, value]) => ({\\n\t\t...headers,\\n\t\t[key]: String(value),\\n\t}), {} as Record<string, string>);\\n\\n\tif (isStringWithValue(token)) {\\n\t\theaders['Authorization'] = `Bearer ${token}`;\\n\t}\\n\\n\tif (isStringWithValue(username) && isStringWithValue(password)) {\\n\t\tconst credentials = base64(`${username}:${password}`);\\n\t\theaders['Authorization'] = `Basic ${credentials}`;\\n\t}\\n\\n\tif (options.body !== undefined) {\\n\t\tif (options.mediaType) {\\n\t\t\theaders['Content-Type'] = options.mediaType;\\n\t\t} else if (isBlob(options.body)) {\\n\t\t\theaders['Content-Type'] = options.body.type || 'application/octet-stream';\\n\t\t} else if (isString(options.body)) {\\n\t\t\theaders['Content-Type'] = 'text/plain';\\n\t\t} else if (!isFormData(options.body)) {\\n\t\t\theaders['Content-Type'] = 'application/json';\\n\t\t}\\n\t} else if (options.formData !== undefined) {\\n\t\tif (options.mediaType) {\\n\t\t\theaders['Content-Type'] = options.mediaType;\\n\t\t}\\n\t}\\n\\n\treturn headers;\\n};\";\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return 'export const getRequestBody = (options: ApiRequestOptions): unknown => {\\n\tif (options.body) {\\n\t\treturn options.body;\\n\t}\\n\treturn undefined;\\n};';\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return 'export const getResponseBody = (response: AxiosResponse<unknown>): unknown => {\\n\tif (response.status !== 204) {\\n\t\treturn response.data;\\n\t}\\n\treturn undefined;\\n};';\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return 'export const getResponseHeader = (response: AxiosResponse<unknown>, responseHeader?: string): string | undefined => {\\n\tif (responseHeader) {\\n\t\tconst content = response.headers[responseHeader];\\n\t\tif (isString(content)) {\\n\t\t\treturn content;\\n\t\t}\\n\t}\\n\treturn undefined;\\n};';\n },\n useData: true,\n};\n","export default {\n 1: function (container, depth0, helpers, partials, data) {\n return 'ApiResult<T>';\n },\n 3: function (container, depth0, helpers, partials, data) {\n return 'T';\n },\n 5: function (container, depth0, helpers, partials, data) {\n return 'result.body';\n },\n 7: function (container, depth0, helpers, partials, data) {\n return 'result';\n },\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n var stack1,\n alias1 = depth0 != null ? depth0 : container.nullContext || {},\n lookupProperty =\n container.lookupProperty ||\n function (parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined;\n };\n\n return (\n \"import axios from 'axios';\\nimport type { AxiosError, AxiosRequestConfig, AxiosResponse, AxiosInstance } from 'axios';\\n\\nimport { ApiError } from './ApiError';\\nimport type { ApiRequestOptions } from './ApiRequestOptions';\\nimport type { ApiResult } from './ApiResult';\\nimport { CancelablePromise } from './CancelablePromise';\\nimport type { OnCancel } from './CancelablePromise';\\nimport type { OpenAPIConfig } from './OpenAPI';\\n\\n\" +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/isString'),\n depth0,\n {\n name: 'functions/isString',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/isStringWithValue'),\n depth0,\n {\n name: 'functions/isStringWithValue',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/isBlob'),\n depth0,\n {\n name: 'functions/isBlob',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/isFormData'),\n depth0,\n {\n name: 'functions/isFormData',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/isSuccess'),\n depth0,\n {\n name: 'functions/isSuccess',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/base64'),\n depth0,\n {\n name: 'functions/base64',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/getQueryString'),\n depth0,\n {\n name: 'functions/getQueryString',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/getUrl'),\n depth0,\n {\n name: 'functions/getUrl',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/getFormData'),\n depth0,\n {\n name: 'functions/getFormData',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/resolve'),\n depth0,\n {\n name: 'functions/resolve',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'axios/getHeaders'),\n depth0,\n {\n name: 'axios/getHeaders',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'axios/getRequestBody'),\n depth0,\n {\n name: 'axios/getRequestBody',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'axios/sendRequest'),\n depth0,\n {\n name: 'axios/sendRequest',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'axios/getResponseHeader'),\n depth0,\n {\n name: 'axios/getResponseHeader',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'axios/getResponseBody'),\n depth0,\n {\n name: 'axios/getResponseBody',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/catchErrorCodes'),\n depth0,\n {\n name: 'functions/catchErrorCodes',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n/**\\n * Request method\\n * @param config The OpenAPI configuration object\\n * @param options The request options from the service\\n * @param axiosClient The axios client instance to use\\n * @returns CancelablePromise<' +\n ((stack1 = lookupProperty(helpers, 'ifServicesResponse').call(\n alias1,\n 'response',\n {\n name: 'ifServicesResponse',\n hash: {},\n fn: container.program(1, data, 0),\n inverse: container.program(3, data, 0),\n data: data,\n loc: {\n start: { line: 64, column: 30 },\n end: { line: 64, column: 108 },\n },\n },\n )) != null\n ? stack1\n : '') +\n '>\\n * @throws ApiError\\n */\\nexport const request = <T>(config: OpenAPIConfig, options: ApiRequestOptions<T>, axiosClient: AxiosInstance = axios): CancelablePromise<' +\n ((stack1 = lookupProperty(helpers, 'ifServicesResponse').call(\n alias1,\n 'response',\n {\n name: 'ifServicesResponse',\n hash: {},\n fn: container.program(1, data, 0),\n inverse: container.program(3, data, 0),\n data: data,\n loc: {\n start: { line: 67, column: 136 },\n end: { line: 67, column: 214 },\n },\n },\n )) != null\n ? stack1\n : '') +\n '> => {\\n\treturn new CancelablePromise(async (resolve, reject, onCancel) => {\\n\t\ttry {\\n\t\t\tconst url = getUrl(config, options);\\n\t\t\tconst formData = getFormData(options);\\n\t\t\tconst body = getRequestBody(options);\\n\t\t\tconst headers = await getHeaders(config, options);\\n\\n\t\t\tif (!onCancel.isCancelled) {\\n\t\t\t\tlet response = await sendRequest<T>(config, options, url, body, formData, headers, onCancel, axiosClient);\\n\\n\t\t\t\tfor (const fn of config.interceptors.response._fns) {\\n\t\t\t\t\tresponse = await fn(response);\\n\t\t\t\t}\\n\\n\t\t\t\tconst responseBody = getResponseBody(response);\\n\t\t\t\tconst responseHeader = getResponseHeader(response, options.responseHeader);\\n\\n\t\t\t\tlet transformedBody = responseBody;\\n\t\t\t\tif (options.responseTransformer && isSuccess(response.status)) {\\n\t\t\t\t\ttransformedBody = await options.responseTransformer(responseBody)\\n\t\t\t\t}\\n\\n\t\t\t\tconst result: ApiResult = {\\n\t\t\t\t\turl,\\n\t\t\t\t\tok: isSuccess(response.status),\\n\t\t\t\t\tstatus: response.status,\\n\t\t\t\t\tstatusText: response.statusText,\\n\t\t\t\t\tbody: responseHeader ?? transformedBody,\\n\t\t\t\t};\\n\\n\t\t\t\tcatchErrorCodes(options, result);\\n\\n\t\t\t\tresolve(' +\n ((stack1 = lookupProperty(helpers, 'ifServicesResponse').call(\n alias1,\n 'body',\n {\n name: 'ifServicesResponse',\n hash: {},\n fn: container.program(5, data, 0),\n inverse: container.program(7, data, 0),\n data: data,\n loc: {\n start: { line: 100, column: 12 },\n end: { line: 100, column: 90 },\n },\n },\n )) != null\n ? stack1\n : '') +\n ');\\n\t\t\t}\\n\t\t} catch (error) {\\n\t\t\treject(error);\\n\t\t}\\n\t});\\n};'\n );\n },\n usePartial: true,\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return 'export const sendRequest = async <T>(\\n\tconfig: OpenAPIConfig,\\n\toptions: ApiRequestOptions<T>,\\n\turl: string,\\n\tbody: unknown,\\n\tformData: FormData | undefined,\\n\theaders: Record<string, string>,\\n\tonCancel: OnCancel,\\n\taxiosClient: AxiosInstance\\n): Promise<AxiosResponse<T>> => {\\n\tconst controller = new AbortController();\\n\\n\tlet requestConfig: AxiosRequestConfig = {\\n\t\tdata: body ?? formData,\\n\t\theaders,\\n\t\tmethod: options.method,\\n\t\tsignal: controller.signal,\\n\t\turl,\\n\t\twithCredentials: config.WITH_CREDENTIALS,\\n\t};\\n\\n\tonCancel(() => controller.abort());\\n\\n\tfor (const fn of config.interceptors.request._fns) {\\n\t\trequestConfig = await fn(requestConfig);\\n\t}\\n\\n\ttry {\\n\t\treturn await axiosClient.request(requestConfig);\\n\t} catch (error) {\\n\t\tconst axiosError = error as AxiosError<T>;\\n\t\tif (axiosError.response) {\\n\t\t\treturn axiosError.response;\\n\t\t}\\n\t\tthrow error;\\n\t}\\n};';\n },\n useData: true,\n};\n","export default {\n 1: function (container, depth0, helpers, partials, data) {\n return \"import type { HttpClient } from '@angular/common/http';\\nimport type { Observable } from 'rxjs';\\n\\nimport type { ApiRequestOptions } from './ApiRequestOptions';\\nimport type { OpenAPIConfig } from './OpenAPI';\\n\";\n },\n 3: function (container, depth0, helpers, partials, data) {\n return \"import type { ApiRequestOptions } from './ApiRequestOptions';\\nimport type { CancelablePromise } from './CancelablePromise';\\nimport type { OpenAPIConfig } from './OpenAPI';\\n\";\n },\n 5: function (container, depth0, helpers, partials, data) {\n return '\tconstructor(\\n\t\tpublic readonly config: OpenAPIConfig,\\n\t\tpublic readonly http: HttpClient,\\n\t) {}\\n';\n },\n 7: function (container, depth0, helpers, partials, data) {\n return '\tconstructor(public readonly config: OpenAPIConfig) {}\\n';\n },\n 9: function (container, depth0, helpers, partials, data) {\n return '\tpublic abstract request<T>(options: ApiRequestOptions<T>): Observable<T>;\\n';\n },\n 11: function (container, depth0, helpers, partials, data) {\n return '\tpublic abstract request<T>(options: ApiRequestOptions<T>): CancelablePromise<T>;\\n';\n },\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n var stack1,\n alias1 = depth0 != null ? depth0 : container.nullContext || {},\n lookupProperty =\n container.lookupProperty ||\n function (parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined;\n };\n\n return (\n ((stack1 = lookupProperty(helpers, 'equals').call(\n alias1,\n lookupProperty(\n lookupProperty(\n lookupProperty(lookupProperty(data, 'root'), '$config'),\n 'client',\n ),\n 'name',\n ),\n 'legacy/angular',\n {\n name: 'equals',\n hash: {},\n fn: container.program(1, data, 0),\n inverse: container.program(3, data, 0),\n data: data,\n loc: { start: { line: 1, column: 0 }, end: { line: 11, column: 11 } },\n },\n )) != null\n ? stack1\n : '') +\n '\\nexport abstract class BaseHttpRequest {\\n\\n' +\n ((stack1 = lookupProperty(helpers, 'equals').call(\n alias1,\n lookupProperty(\n lookupProperty(\n lookupProperty(lookupProperty(data, 'root'), '$config'),\n 'client',\n ),\n 'name',\n ),\n 'legacy/angular',\n {\n name: 'equals',\n hash: {},\n fn: container.program(5, data, 0),\n inverse: container.program(7, data, 0),\n data: data,\n loc: {\n start: { line: 15, column: 1 },\n end: { line: 22, column: 12 },\n },\n },\n )) != null\n ? stack1\n : '') +\n '\\n' +\n ((stack1 = lookupProperty(helpers, 'equals').call(\n alias1,\n lookupProperty(\n lookupProperty(\n lookupProperty(lookupProperty(data, 'root'), '$config'),\n 'client',\n ),\n 'name',\n ),\n 'legacy/angular',\n {\n name: 'equals',\n hash: {},\n fn: container.program(9, data, 0),\n inverse: container.program(11, data, 0),\n data: data,\n loc: {\n start: { line: 24, column: 1 },\n end: { line: 28, column: 12 },\n },\n },\n )) != null\n ? stack1\n : '') +\n '}'\n );\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return \"export class CancelError extends Error {\\n\tconstructor(message: string) {\\n\t\tsuper(message);\\n\t\tthis.name = 'CancelError';\\n\t}\\n\\n\tpublic get isCancelled(): boolean {\\n\t\treturn true;\\n\t}\\n}\\n\\nexport interface OnCancel {\\n\treadonly isResolved: boolean;\\n\treadonly isRejected: boolean;\\n\treadonly isCancelled: boolean;\\n\\n\t(cancelHandler: () => void): void;\\n}\\n\\nexport class CancelablePromise<T> implements Promise<T> {\\n\tprivate _isResolved: boolean;\\n\tprivate _isRejected: boolean;\\n\tprivate _isCancelled: boolean;\\n\treadonly cancelHandlers: (() => void)[];\\n\treadonly promise: Promise<T>;\\n\tprivate _resolve?: (value: T | PromiseLike<T>) => void;\\n\tprivate _reject?: (reason?: unknown) => void;\\n\\n\tconstructor(\\n\t\texecutor: (\\n\t\t\tresolve: (value: T | PromiseLike<T>) => void,\\n\t\t\treject: (reason?: unknown) => void,\\n\t\t\tonCancel: OnCancel\\n\t\t) => void\\n\t) {\\n\t\tthis._isResolved = false;\\n\t\tthis._isRejected = false;\\n\t\tthis._isCancelled = false;\\n\t\tthis.cancelHandlers = [];\\n\t\tthis.promise = new Promise<T>((resolve, reject) => {\\n\t\t\tthis._resolve = resolve;\\n\t\t\tthis._reject = reject;\\n\\n\t\t\tconst onResolve = (value: T | PromiseLike<T>): void => {\\n\t\t\t\tif (this._isResolved || this._isRejected || this._isCancelled) {\\n\t\t\t\t\treturn;\\n\t\t\t\t}\\n\t\t\t\tthis._isResolved = true;\\n\t\t\t\tif (this._resolve) this._resolve(value);\\n\t\t\t};\\n\\n\t\t\tconst onReject = (reason?: unknown): void => {\\n\t\t\t\tif (this._isResolved || this._isRejected || this._isCancelled) {\\n\t\t\t\t\treturn;\\n\t\t\t\t}\\n\t\t\t\tthis._isRejected = true;\\n\t\t\t\tif (this._reject) this._reject(reason);\\n\t\t\t};\\n\\n\t\t\tconst onCancel = (cancelHandler: () => void): void => {\\n\t\t\t\tif (this._isResolved || this._isRejected || this._isCancelled) {\\n\t\t\t\t\treturn;\\n\t\t\t\t}\\n\t\t\t\tthis.cancelHandlers.push(cancelHandler);\\n\t\t\t};\\n\\n\t\t\tObject.defineProperty(onCancel, 'isResolved', {\\n\t\t\t\tget: (): boolean => this._isResolved,\\n\t\t\t});\\n\\n\t\t\tObject.defineProperty(onCancel, 'isRejected', {\\n\t\t\t\tget: (): boolean => this._isRejected,\\n\t\t\t});\\n\\n\t\t\tObject.defineProperty(onCancel, 'isCancelled', {\\n\t\t\t\tget: (): boolean => this._isCancelled,\\n\t\t\t});\\n\\n\t\t\treturn executor(onResolve, onReject, onCancel as OnCancel);\\n\t\t});\\n\t}\\n\\n\tget [Symbol.toStringTag]() {\\n\t\treturn \\\"Cancellable Promise\\\";\\n\t}\\n\\n\tpublic then<TResult1 = T, TResult2 = never>(\\n\t\tonFulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | null,\\n\t\tonRejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null\\n\t): Promise<TResult1 | TResult2> {\\n\t\treturn this.promise.then(onFulfilled, onRejected);\\n\t}\\n\\n\tpublic catch<TResult = never>(\\n\t\tonRejected?: ((reason: unknown) => TResult | PromiseLike<TResult>) | null\\n\t): Promise<T | TResult> {\\n\t\treturn this.promise.catch(onRejected);\\n\t}\\n\\n\tpublic finally(onFinally?: (() => void) | null): Promise<T> {\\n\t\treturn this.promise.finally(onFinally);\\n\t}\\n\\n\tpublic cancel(): void {\\n\t\tif (this._isResolved || this._isRejected || this._isCancelled) {\\n\t\t\treturn;\\n\t\t}\\n\t\tthis._isCancelled = true;\\n\t\tif (this.cancelHandlers.length) {\\n\t\t\ttry {\\n\t\t\t\tfor (const cancelHandler of this.cancelHandlers) {\\n\t\t\t\t\tcancelHandler();\\n\t\t\t\t}\\n\t\t\t} catch (error) {\\n\t\t\t\tconsole.warn('Cancellation threw an error', error);\\n\t\t\t\treturn;\\n\t\t\t}\\n\t\t}\\n\t\tthis.cancelHandlers.length = 0;\\n\t\tif (this._reject) this._reject(new CancelError('Request aborted'));\\n\t}\\n\\n\tpublic get isCancelled(): boolean {\\n\t\treturn this._isCancelled;\\n\t}\\n}\";\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return \"export const getHeaders = async <T>(config: OpenAPIConfig, options: ApiRequestOptions<T>): Promise<Headers> => {\\n\tconst [token, username, password, additionalHeaders] = await Promise.all([\\n\t\t// @ts-ignore\\n\t\tresolve(options, config.TOKEN),\\n\t\t// @ts-ignore\\n\t\tresolve(options, config.USERNAME),\\n\t\t// @ts-ignore\\n\t\tresolve(options, config.PASSWORD),\\n\t\t// @ts-ignore\\n\t\tresolve(options, config.HEADERS),\\n\t]);\\n\\n\tconst headers = Object.entries({\\n\t\tAccept: 'application/json',\\n\t\t...additionalHeaders,\\n\t\t...options.headers,\\n\t})\\n\t\t.filter(([, value]) => value !== undefined && value !== null)\\n\t\t.reduce((headers, [key, value]) => ({\\n\t\t\t...headers,\\n\t\t\t[key]: String(value),\\n\t\t}), {} as Record<string, string>);\\n\\n\tif (isStringWithValue(token)) {\\n\t\theaders['Authorization'] = `Bearer ${token}`;\\n\t}\\n\\n\tif (isStringWithValue(username) && isStringWithValue(password)) {\\n\t\tconst credentials = base64(`${username}:${password}`);\\n\t\theaders['Authorization'] = `Basic ${credentials}`;\\n\t}\\n\\n\tif (options.body !== undefined) {\\n\t\tif (options.mediaType) {\\n\t\t\theaders['Content-Type'] = options.mediaType;\\n\t\t} else if (isBlob(options.body)) {\\n\t\t\theaders['Content-Type'] = options.body.type || 'application/octet-stream';\\n\t\t} else if (isString(options.body)) {\\n\t\t\theaders['Content-Type'] = 'text/plain';\\n\t\t} else if (!isFormData(options.body)) {\\n\t\t\theaders['Content-Type'] = 'application/json';\\n\t\t}\\n\t}\\n\\n\treturn new Headers(headers);\\n};\";\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return \"export const getRequestBody = (options: ApiRequestOptions): unknown => {\\n\tif (options.body !== undefined) {\\n\t\tif (options.mediaType?.includes('application/json') || options.mediaType?.includes('+json')) {\\n\t\t\treturn JSON.stringify(options.body);\\n\t\t} else if (isString(options.body) || isBlob(options.body) || isFormData(options.body)) {\\n\t\t\treturn options.body;\\n\t\t} else {\\n\t\t\treturn JSON.stringify(options.body);\\n\t\t}\\n\t}\\n\treturn undefined;\\n};\";\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return \"export const getResponseBody = async (response: Response): Promise<unknown> => {\\n\tif (response.status !== 204) {\\n\t\ttry {\\n\t\t\tconst contentType = response.headers.get('Content-Type');\\n\t\t\tif (contentType) {\\n\t\t\t\tconst binaryTypes = ['application/octet-stream', 'application/pdf', 'application/zip', 'audio/', 'image/', 'video/'];\\n\t\t\t\tif (contentType.includes('application/json') || contentType.includes('+json')) {\\n\t\t\t\t\treturn await response.json();\\n\t\t\t\t} else if (binaryTypes.some(type => contentType.includes(type))) {\\n\t\t\t\t\treturn await response.blob();\\n\t\t\t\t} else if (contentType.includes('multipart/form-data')) {\\n\t\t\t\t\treturn await response.formData();\\n\t\t\t\t} else if (contentType.includes('text/')) {\\n\t\t\t\t\treturn await response.text();\\n\t\t\t\t}\\n\t\t\t}\\n\t\t} catch (error) {\\n\t\t\tconsole.error(error);\\n\t\t}\\n\t}\\n\treturn undefined;\\n};\";\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return 'export const getResponseHeader = (response: Response, responseHeader?: string): string | undefined => {\\n\tif (responseHeader) {\\n\t\tconst content = response.headers.get(responseHeader);\\n\t\tif (isString(content)) {\\n\t\t\treturn content;\\n\t\t}\\n\t}\\n\treturn undefined;\\n};';\n },\n useData: true,\n};\n","export default {\n 1: function (container, depth0, helpers, partials, data) {\n return \"import fetch, { FormData, Headers } from 'node-fetch';\\nimport type { RequestInit, Response } from 'node-fetch';\\n\\n\";\n },\n 3: function (container, depth0, helpers, partials, data) {\n return 'ApiResult<T>';\n },\n 5: function (container, depth0, helpers, partials, data) {\n return 'T';\n },\n 7: function (container, depth0, helpers, partials, data) {\n return 'result.body';\n },\n 9: function (container, depth0, helpers, partials, data) {\n return 'result';\n },\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n var stack1,\n alias1 = depth0 != null ? depth0 : container.nullContext || {},\n lookupProperty =\n container.lookupProperty ||\n function (parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined;\n };\n\n return (\n ((stack1 = lookupProperty(helpers, 'equals').call(\n alias1,\n lookupProperty(\n lookupProperty(\n lookupProperty(lookupProperty(data, 'root'), '$config'),\n 'client',\n ),\n 'name',\n ),\n 'legacy/node',\n {\n name: 'equals',\n hash: {},\n fn: container.program(1, data, 0),\n inverse: container.noop,\n data: data,\n loc: { start: { line: 1, column: 0 }, end: { line: 5, column: 11 } },\n },\n )) != null\n ? stack1\n : '') +\n \"import { ApiError } from './ApiError';\\nimport type { ApiRequestOptions } from './ApiRequestOptions';\\nimport type { ApiResult } from './ApiResult';\\nimport { CancelablePromise } from './CancelablePromise';\\nimport type { OnCancel } from './CancelablePromise';\\nimport type { OpenAPIConfig } from './OpenAPI';\\n\\n\" +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/isString'),\n depth0,\n {\n name: 'functions/isString',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/isStringWithValue'),\n depth0,\n {\n name: 'functions/isStringWithValue',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/isBlob'),\n depth0,\n {\n name: 'functions/isBlob',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/isFormData'),\n depth0,\n {\n name: 'functions/isFormData',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/base64'),\n depth0,\n {\n name: 'functions/base64',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/getQueryString'),\n depth0,\n {\n name: 'functions/getQueryString',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/getUrl'),\n depth0,\n {\n name: 'functions/getUrl',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/getFormData'),\n depth0,\n {\n name: 'functions/getFormData',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/resolve'),\n depth0,\n {\n name: 'functions/resolve',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'fetch/getHeaders'),\n depth0,\n {\n name: 'fetch/getHeaders',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'fetch/getRequestBody'),\n depth0,\n {\n name: 'fetch/getRequestBody',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'fetch/sendRequest'),\n depth0,\n {\n name: 'fetch/sendRequest',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'fetch/getResponseHeader'),\n depth0,\n {\n name: 'fetch/getResponseHeader',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'fetch/getResponseBody'),\n depth0,\n {\n name: 'fetch/getResponseBody',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/catchErrorCodes'),\n depth0,\n {\n name: 'functions/catchErrorCodes',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n/**\\n * Request method\\n * @param config The OpenAPI configuration object\\n * @param options The request options from the service\\n * @returns CancelablePromise<' +\n ((stack1 = lookupProperty(helpers, 'ifServicesResponse').call(\n alias1,\n 'response',\n {\n name: 'ifServicesResponse',\n hash: {},\n fn: container.program(3, data, 0),\n inverse: container.program(5, data, 0),\n data: data,\n loc: {\n start: { line: 62, column: 30 },\n end: { line: 62, column: 108 },\n },\n },\n )) != null\n ? stack1\n : '') +\n '>\\n * @throws ApiError\\n */\\nexport const request = <T>(config: OpenAPIConfig, options: ApiRequestOptions<T>): CancelablePromise<' +\n ((stack1 = lookupProperty(helpers, 'ifServicesResponse').call(\n alias1,\n 'response',\n {\n name: 'ifServicesResponse',\n hash: {},\n fn: container.program(3, data, 0),\n inverse: container.program(5, data, 0),\n data: data,\n loc: {\n start: { line: 65, column: 100 },\n end: { line: 65, column: 178 },\n },\n },\n )) != null\n ? stack1\n : '') +\n '> => {\\n\treturn new CancelablePromise(async (resolve, reject, onCancel) => {\\n\t\ttry {\\n\t\t\tconst url = getUrl(config, options);\\n\t\t\tconst formData = getFormData(options);\\n\t\t\tconst body = getRequestBody(options);\\n\t\t\tconst headers = await getHeaders(config, options);\\n\\n\t\t\tif (!onCancel.isCancelled) {\\n\t\t\t\tlet response = await sendRequest(config, options, url, body, formData, headers, onCancel);\\n\\n\t\t\t\tfor (const fn of config.interceptors.response._fns) {\\n\t\t\t\t\tresponse = await fn(response);\\n\t\t\t\t}\\n\\n\t\t\t\tconst responseBody = await getResponseBody(response);\\n\t\t\t\tconst responseHeader = getResponseHeader(response, options.responseHeader);\\n\\n\t\t\t\tlet transformedBody = responseBody;\\n\t\t\t\tif (options.responseTransformer && response.ok) {\\n\t\t\t\t\ttransformedBody = await options.responseTransformer(responseBody)\\n\t\t\t\t}\\n\\n\t\t\t\tconst result: ApiResult = {\\n\t\t\t\t\turl,\\n\t\t\t\t\tok: response.ok,\\n\t\t\t\t\tstatus: response.status,\\n\t\t\t\t\tstatusText: response.statusText,\\n\t\t\t\t\tbody: responseHeader ?? transformedBody,\\n\t\t\t\t};\\n\\n\t\t\t\tcatchErrorCodes(options, result);\\n\\n\t\t\t\tresolve(' +\n ((stack1 = lookupProperty(helpers, 'ifServicesResponse').call(\n alias1,\n 'body',\n {\n name: 'ifServicesResponse',\n hash: {},\n fn: container.program(7, data, 0),\n inverse: container.program(9, data, 0),\n data: data,\n loc: {\n start: { line: 98, column: 12 },\n end: { line: 98, column: 90 },\n },\n },\n )) != null\n ? stack1\n : '') +\n ');\\n\t\t\t}\\n\t\t} catch (error) {\\n\t\t\treject(error);\\n\t\t}\\n\t});\\n};'\n );\n },\n usePartial: true,\n useData: true,\n};\n","export default {\n 1: function (container, depth0, helpers, partials, data) {\n return '\tif (config.WITH_CREDENTIALS) {\\n\t\trequest.credentials = config.CREDENTIALS;\\n\t}\\n';\n },\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n var stack1,\n lookupProperty =\n container.lookupProperty ||\n function (parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined;\n };\n\n return (\n 'export const sendRequest = async (\\n\tconfig: OpenAPIConfig,\\n\toptions: ApiRequestOptions,\\n\turl: string,\\n\tbody: any,\\n\tformData: FormData | undefined,\\n\theaders: Headers,\\n\tonCancel: OnCancel\\n): Promise<Response> => {\\n\tconst controller = new AbortController();\\n\\n\tlet request: RequestInit = {\\n\t\theaders,\\n\t\tbody: body ?? formData,\\n\t\tmethod: options.method,\\n\t\tsignal: controller.signal,\\n\t};\\n\\n' +\n ((stack1 = lookupProperty(helpers, 'equals').call(\n depth0 != null ? depth0 : container.nullContext || {},\n lookupProperty(\n lookupProperty(\n lookupProperty(lookupProperty(data, 'root'), '$config'),\n 'client',\n ),\n 'name',\n ),\n 'legacy/fetch',\n {\n name: 'equals',\n hash: {},\n fn: container.program(1, data, 0),\n inverse: container.noop,\n data: data,\n loc: {\n start: { line: 19, column: 1 },\n end: { line: 23, column: 12 },\n },\n },\n )) != null\n ? stack1\n : '') +\n '\\n\tfor (const fn of config.interceptors.request._fns) {\\n\t\trequest = await fn(request);\\n\t}\\n\\n\tonCancel(() => controller.abort());\\n\\n\treturn await fetch(url, request);\\n};'\n );\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return \"export const base64 = (str: string): string => {\\n\ttry {\\n\t\treturn btoa(str);\\n\t} catch (err) {\\n\t\t// @ts-ignore\\n\t\treturn Buffer.from(str).toString('base64');\\n\t}\\n};\";\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return \"export const catchErrorCodes = (options: ApiRequestOptions, result: ApiResult): void => {\\n\tconst errors: Record<number, string> = {\\n\t\t400: 'Bad Request',\\n\t\t401: 'Unauthorized',\\n\t\t402: 'Payment Required',\\n\t\t403: 'Forbidden',\\n\t\t404: 'Not Found',\\n\t\t405: 'Method Not Allowed',\\n\t\t406: 'Not Acceptable',\\n\t\t407: 'Proxy Authentication Required',\\n\t\t408: 'Request Timeout',\\n\t\t409: 'Conflict',\\n\t\t410: 'Gone',\\n\t\t411: 'Length Required',\\n\t\t412: 'Precondition Failed',\\n\t\t413: 'Payload Too Large',\\n\t\t414: 'URI Too Long',\\n\t\t415: 'Unsupported Media Type',\\n\t\t416: 'Range Not Satisfiable',\\n\t\t417: 'Expectation Failed',\\n\t\t418: 'Im a teapot',\\n\t\t421: 'Misdirected Request',\\n\t\t422: 'Unprocessable Content',\\n\t\t423: 'Locked',\\n\t\t424: 'Failed Dependency',\\n\t\t425: 'Too Early',\\n\t\t426: 'Upgrade Required',\\n\t\t428: 'Precondition Required',\\n\t\t429: 'Too Many Requests',\\n\t\t431: 'Request Header Fields Too Large',\\n\t\t451: 'Unavailable For Legal Reasons',\\n\t\t500: 'Internal Server Error',\\n\t\t501: 'Not Implemented',\\n\t\t502: 'Bad Gateway',\\n\t\t503: 'Service Unavailable',\\n\t\t504: 'Gateway Timeout',\\n\t\t505: 'HTTP Version Not Supported',\\n\t\t506: 'Variant Also Negotiates',\\n\t\t507: 'Insufficient Storage',\\n\t\t508: 'Loop Detected',\\n\t\t510: 'Not Extended',\\n\t\t511: 'Network Authentication Required',\\n\t\t...options.errors,\\n\t}\\n\\n\tconst error = errors[result.status];\\n\tif (error) {\\n\t\tthrow new ApiError(options, result, error);\\n\t}\\n\\n\tif (!result.ok) {\\n\t\tconst errorStatus = result.status ?? 'unknown';\\n\t\tconst errorStatusText = result.statusText ?? 'unknown';\\n\t\tconst errorBody = (() => {\\n\t\t\ttry {\\n\t\t\t\treturn JSON.stringify(result.body, null, 2);\\n\t\t\t} catch (e) {\\n\t\t\t\treturn undefined;\\n\t\t\t}\\n\t\t})();\\n\\n\t\tthrow new ApiError(options, result,\\n\t\t\t`Generic Error: status: ${errorStatus}; status text: ${errorStatusText}; body: ${errorBody}`\\n\t\t);\\n\t}\\n};\";\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return 'export const getFormData = (options: ApiRequestOptions): FormData | undefined => {\\n\tif (options.formData) {\\n\t\tconst formData = new FormData();\\n\\n\t\tconst process = (key: string, value: unknown) => {\\n\t\t\tif (isString(value) || isBlob(value)) {\\n\t\t\t\tformData.append(key, value);\\n\t\t\t} else {\\n\t\t\t\tformData.append(key, JSON.stringify(value));\\n\t\t\t}\\n\t\t};\\n\\n\t\tObject.entries(options.formData)\\n\t\t\t.filter(([, value]) => value !== undefined && value !== null)\\n\t\t\t.forEach(([key, value]) => {\\n\t\t\t\tif (Array.isArray(value)) {\\n\t\t\t\t\tvalue.forEach(v => process(key, v));\\n\t\t\t\t} else {\\n\t\t\t\t\tprocess(key, value);\\n\t\t\t\t}\\n\t\t\t});\\n\\n\t\treturn formData;\\n\t}\\n\treturn undefined;\\n};';\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return \"export const getQueryString = (params: Record<string, unknown>): string => {\\n\tconst qs: string[] = [];\\n\\n\tconst append = (key: string, value: unknown) => {\\n\t\tqs.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`);\\n\t};\\n\\n\tconst encodePair = (key: string, value: unknown) => {\\n\t\tif (value === undefined || value === null) {\\n\t\t\treturn;\\n\t\t}\\n\\n\t\tif (value instanceof Date) {\\n\t\t\tappend(key, value.toISOString());\\n\t\t} else if (Array.isArray(value)) {\\n\t\t\tvalue.forEach(v => encodePair(key, v));\\n\t\t} else if (typeof value === 'object') {\\n\t\t\tObject.entries(value).forEach(([k, v]) => encodePair(`${key}[${k}]`, v));\\n\t\t} else {\\n\t\t\tappend(key, value);\\n\t\t}\\n\t};\\n\\n\tObject.entries(params).forEach(([key, value]) => encodePair(key, value));\\n\\n\treturn qs.length ? `?${qs.join('&')}` : '';\\n};\";\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return \"const getUrl = (config: OpenAPIConfig, options: ApiRequestOptions): string => {\\n\tconst encoder = config.ENCODE_PATH || encodeURI;\\n\\n\tconst path = options.url\\n\t\t.replace('{api-version}', config.VERSION)\\n\t\t.replace(/{(.*?)}/g, (substring: string, group: string) => {\\n\t\t\tif (options.path?.hasOwnProperty(group)) {\\n\t\t\t\treturn encoder(String(options.path[group]));\\n\t\t\t}\\n\t\t\treturn substring;\\n\t\t});\\n\\n\tconst url = config.BASE + path;\\n\treturn options.query ? url + getQueryString(options.query) : url;\\n};\";\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return 'export const isBlob = (value: any): value is Blob => {\\n\treturn value instanceof Blob;\\n};';\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return 'export const isFormData = (value: unknown): value is FormData => {\\n\treturn value instanceof FormData;\\n};';\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return \"export const isString = (value: unknown): value is string => {\\n\treturn typeof value === 'string';\\n};\";\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return \"export const isStringWithValue = (value: unknown): value is string => {\\n\treturn isString(value) && value !== '';\\n};\";\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return 'export const isSuccess = (status: number): boolean => {\\n\treturn status >= 200 && status < 300;\\n};';\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return \"type Resolver<T> = (options: ApiRequestOptions<T>) => Promise<T>;\\n\\nexport const resolve = async <T>(options: ApiRequestOptions<T>, resolver?: T | Resolver<T>): Promise<T | undefined> => {\\n\tif (typeof resolver === 'function') {\\n\t\treturn (resolver as Resolver<T>)(options);\\n\t}\\n\treturn resolver;\\n};\";\n },\n useData: true,\n};\n","export default {\n 1: function (container, depth0, helpers, partials, data) {\n return \"import { Inject, Injectable } from '@angular/core';\\nimport { HttpClient } from '@angular/common/http';\\nimport type { Observable } from 'rxjs';\\n\\nimport type { ApiRequestOptions } from './ApiRequestOptions';\\nimport { BaseHttpRequest } from './BaseHttpRequest';\\nimport type { OpenAPIConfig } from './OpenAPI';\\nimport { OpenAPI } from './OpenAPI';\\nimport { request as __request } from './request';\\n\";\n },\n 3: function (container, depth0, helpers, partials, data) {\n return \"import type { ApiRequestOptions } from './ApiRequestOptions';\\nimport { BaseHttpRequest } from './BaseHttpRequest';\\nimport type { CancelablePromise } from './CancelablePromise';\\nimport type { OpenAPIConfig } from './OpenAPI';\\nimport { request as __request } from './request';\\n\";\n },\n 5: function (container, depth0, helpers, partials, data) {\n return '@Injectable()\\n';\n },\n 7: function (container, depth0, helpers, partials, data) {\n return '\tconstructor(\\n\t\t@Inject(OpenAPI)\\n\t\tconfig: OpenAPIConfig,\\n\t\thttp: HttpClient,\\n\t) {\\n\t\tsuper(config, http);\\n\t}\\n';\n },\n 9: function (container, depth0, helpers, partials, data) {\n return '\tconstructor(config: OpenAPIConfig) {\\n\t\tsuper(config);\\n\t}\\n';\n },\n 11: function (container, depth0, helpers, partials, data) {\n return '\t/**\\n\t * Request method\\n\t * @param options The request options from the service\\n\t * @returns Observable<T>\\n\t * @throws ApiError\\n\t */\\n\tpublic override request<T>(options: ApiRequestOptions<T>): Observable<T> {\\n\t\treturn __request(this.config, this.http, options);\\n\t}\\n';\n },\n 13: function (container, depth0, helpers, partials, data) {\n return '\t/**\\n\t * Request method\\n\t * @param options The request options from the service\\n\t * @returns CancelablePromise<T>\\n\t * @throws ApiError\\n\t */\\n\tpublic override request<T>(options: ApiRequestOptions<T>): CancelablePromise<T> {\\n\t\treturn __request(this.config, options);\\n\t}\\n';\n },\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n var stack1,\n alias1 = depth0 != null ? depth0 : container.nullContext || {},\n lookupProperty =\n container.lookupProperty ||\n function (parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined;\n };\n\n return (\n ((stack1 = lookupProperty(helpers, 'equals').call(\n alias1,\n lookupProperty(\n lookupProperty(\n lookupProperty(lookupProperty(data, 'root'), '$config'),\n 'client',\n ),\n 'name',\n ),\n 'legacy/angular',\n {\n name: 'equals',\n hash: {},\n fn: container.program(1, data, 0),\n inverse: container.program(3, data, 0),\n data: data,\n loc: { start: { line: 1, column: 0 }, end: { line: 17, column: 11 } },\n },\n )) != null\n ? stack1\n : '') +\n '\\n' +\n ((stack1 = lookupProperty(helpers, 'equals').call(\n alias1,\n lookupProperty(\n lookupProperty(\n lookupProperty(lookupProperty(data, 'root'), '$config'),\n 'client',\n ),\n 'name',\n ),\n 'legacy/angular',\n {\n name: 'equals',\n hash: {},\n fn: container.program(5, data, 0),\n inverse: container.noop,\n data: data,\n loc: {\n start: { line: 19, column: 0 },\n end: { line: 21, column: 11 },\n },\n },\n )) != null\n ? stack1\n : '') +\n 'export class ' +\n ((stack1 = container.lambda(\n container.strict(depth0, 'httpRequest', {\n start: { line: 22, column: 15 },\n end: { line: 22, column: 26 },\n }),\n depth0,\n )) != null\n ? stack1\n : '') +\n ' extends BaseHttpRequest {\\n\\n' +\n ((stack1 = lookupProperty(helpers, 'equals').call(\n alias1,\n lookupProperty(\n lookupProperty(\n lookupProperty(lookupProperty(data, 'root'), '$config'),\n 'client',\n ),\n 'name',\n ),\n 'legacy/angular',\n {\n name: 'equals',\n hash: {},\n fn: container.program(7, data, 0),\n inverse: container.program(9, data, 0),\n data: data,\n loc: {\n start: { line: 24, column: 1 },\n end: { line: 36, column: 12 },\n },\n },\n )) != null\n ? stack1\n : '') +\n '\\n' +\n ((stack1 = lookupProperty(helpers, 'equals').call(\n alias1,\n lookupProperty(\n lookupProperty(\n lookupProperty(lookupProperty(data, 'root'), '$config'),\n 'client',\n ),\n 'name',\n ),\n 'legacy/angular',\n {\n name: 'equals',\n hash: {},\n fn: container.program(11, data, 0),\n inverse: container.program(13, data, 0),\n data: data,\n loc: {\n start: { line: 38, column: 1 },\n end: { line: 58, column: 12 },\n },\n },\n )) != null\n ? stack1\n : '') +\n '}'\n );\n },\n useData: true,\n};\n","export default {\n 1: function (container, depth0, helpers, partials, data) {\n return \"import type { HttpResponse } from '@angular/common/http';\\n\";\n },\n 3: function (container, depth0, helpers, partials, data) {\n return \"import type { AxiosRequestConfig, AxiosResponse } from 'axios';\\n\";\n },\n 5: function (container, depth0, helpers, partials, data) {\n return \"import type { RequestInit, Response } from 'node-fetch';\\n\";\n },\n 7: function (container, depth0, helpers, partials, data) {\n return '\t\tresponse: Interceptors<HttpResponse<any>>;\\n';\n },\n 9: function (container, depth0, helpers, partials, data) {\n return '\t\trequest: Interceptors<AxiosRequestConfig>;\\n\t\tresponse: Interceptors<AxiosResponse>;\\n';\n },\n 11: function (container, depth0, helpers, partials, data) {\n return '\t\trequest: Interceptors<RequestInit>;\\n\t\tresponse: Interceptors<Response>;\\n';\n },\n 13: function (container, depth0, helpers, partials, data) {\n return '\t\trequest: Interceptors<XMLHttpRequest>;\\n\t\tresponse: Interceptors<XMLHttpRequest>;\\n';\n },\n 15: function (container, depth0, helpers, partials, data) {\n return '\t\trequest: new Interceptors(),\\n';\n },\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n var stack1,\n alias1 = depth0 != null ? depth0 : container.nullContext || {},\n alias2 = container.strict,\n alias3 = container.lambda,\n lookupProperty =\n container.lookupProperty ||\n function (parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined;\n };\n\n return (\n ((stack1 = lookupProperty(helpers, 'equals').call(\n alias1,\n lookupProperty(\n lookupProperty(\n lookupProperty(lookupProperty(data, 'root'), '$config'),\n 'client',\n ),\n 'name',\n ),\n 'legacy/angular',\n {\n name: 'equals',\n hash: {},\n fn: container.program(1, data, 0),\n inverse: container.noop,\n data: data,\n loc: { start: { line: 1, column: 0 }, end: { line: 3, column: 11 } },\n },\n )) != null\n ? stack1\n : '') +\n ((stack1 = lookupProperty(helpers, 'equals').call(\n alias1,\n lookupProperty(\n lookupProperty(\n lookupProperty(lookupProperty(data, 'root'), '$config'),\n 'client',\n ),\n 'name',\n ),\n 'legacy/axios',\n {\n name: 'equals',\n hash: {},\n fn: container.program(3, data, 0),\n inverse: container.noop,\n data: data,\n loc: { start: { line: 4, column: 0 }, end: { line: 6, column: 11 } },\n },\n )) != null\n ? stack1\n : '') +\n ((stack1 = lookupProperty(helpers, 'equals').call(\n alias1,\n lookupProperty(\n lookupProperty(\n lookupProperty(lookupProperty(data, 'root'), '$config'),\n 'client',\n ),\n 'name',\n ),\n 'legacy/node',\n {\n name: 'equals',\n hash: {},\n fn: container.program(5, data, 0),\n inverse: container.noop,\n data: data,\n loc: { start: { line: 7, column: 0 }, end: { line: 9, column: 11 } },\n },\n )) != null\n ? stack1\n : '') +\n \"import type { ApiRequestOptions } from './ApiRequestOptions';\\n\\ntype Headers = Record<string, string>;\\ntype Middleware<T> = (value: T) => T | Promise<T>;\\ntype Resolver<T> = (options: ApiRequestOptions<T>) => Promise<T>;\\n\\nexport class Interceptors<T> {\\n _fns: Middleware<T>[];\\n\\n constructor() {\\n this._fns = [];\\n }\\n\\n eject(fn: Middleware<T>): void {\\n const index = this._fns.indexOf(fn);\\n if (index !== -1) {\\n this._fns = [...this._fns.slice(0, index), ...this._fns.slice(index + 1)];\\n }\\n }\\n\\n use(fn: Middleware<T>): void {\\n this._fns = [...this._fns, fn];\\n }\\n}\\n\\nexport type OpenAPIConfig = {\\n\tBASE: string;\\n\tCREDENTIALS: 'include' | 'omit' | 'same-origin';\\n\tENCODE_PATH?: ((path: string) => string) | undefined;\\n\tHEADERS?: Headers | Resolver<Headers> | undefined;\\n\tPASSWORD?: string | Resolver<string> | undefined;\\n\tTOKEN?: string | Resolver<string> | undefined;\\n\tUSERNAME?: string | Resolver<string> | undefined;\\n\tVERSION: string;\\n\tWITH_CREDENTIALS: boolean;\\n\tinterceptors: {\\n\" +\n ((stack1 = lookupProperty(helpers, 'equals').call(\n alias1,\n lookupProperty(\n lookupProperty(\n lookupProperty(lookupProperty(data, 'root'), '$config'),\n 'client',\n ),\n 'name',\n ),\n 'legacy/angular',\n {\n name: 'equals',\n hash: {},\n fn: container.program(7, data, 0),\n inverse: container.noop,\n data: data,\n loc: {\n start: { line: 46, column: 2 },\n end: { line: 48, column: 13 },\n },\n },\n )) != null\n ? stack1\n : '') +\n ((stack1 = lookupProperty(helpers, 'equals').call(\n alias1,\n lookupProperty(\n lookupProperty(\n lookupProperty(lookupProperty(data, 'root'), '$config'),\n 'client',\n ),\n 'name',\n ),\n 'legacy/axios',\n {\n name: 'equals',\n hash: {},\n fn: container.program(9, data, 0),\n inverse: container.noop,\n data: data,\n loc: {\n start: { line: 49, column: 2 },\n end: { line: 52, column: 13 },\n },\n },\n )) != null\n ? stack1\n : '') +\n ((stack1 = lookupProperty(helpers, 'equals').call(\n alias1,\n lookupProperty(\n lookupProperty(\n lookupProperty(lookupProperty(data, 'root'), '$config'),\n 'client',\n ),\n 'name',\n ),\n 'legacy/fetch',\n {\n name: 'equals',\n hash: {},\n fn: container.program(11, data, 0),\n inverse: container.noop,\n data: data,\n loc: {\n start: { line: 53, column: 2 },\n end: { line: 56, column: 13 },\n },\n },\n )) != null\n ? stack1\n : '') +\n ((stack1 = lookupProperty(helpers, 'equals').call(\n alias1,\n lookupProperty(\n lookupProperty(\n lookupProperty(lookupProperty(data, 'root'), '$config'),\n 'client',\n ),\n 'name',\n ),\n 'legacy/node',\n {\n name: 'equals',\n hash: {},\n fn: container.program(11, data, 0),\n inverse: container.noop,\n data: data,\n loc: {\n start: { line: 57, column: 2 },\n end: { line: 60, column: 13 },\n },\n },\n )) != null\n ? stack1\n : '') +\n ((stack1 = lookupProperty(helpers, 'equals').call(\n alias1,\n lookupProperty(\n lookupProperty(\n lookupProperty(lookupProperty(data, 'root'), '$config'),\n 'client',\n ),\n 'name',\n ),\n 'legacy/xhr',\n {\n name: 'equals',\n hash: {},\n fn: container.program(13, data, 0),\n inverse: container.noop,\n data: data,\n loc: {\n start: { line: 61, column: 2 },\n end: { line: 64, column: 13 },\n },\n },\n )) != null\n ? stack1\n : '') +\n \"\t};\\n};\\n\\nexport const OpenAPI: OpenAPIConfig = {\\n\tBASE: '\" +\n ((stack1 = alias3(\n alias2(depth0, 'server', {\n start: { line: 69, column: 11 },\n end: { line: 69, column: 17 },\n }),\n depth0,\n )) != null\n ? stack1\n : '') +\n \"',\\n\tCREDENTIALS: 'include',\\n\tENCODE_PATH: undefined,\\n\tHEADERS: undefined,\\n\tPASSWORD: undefined,\\n\tTOKEN: undefined,\\n\tUSERNAME: undefined,\\n\tVERSION: '\" +\n ((stack1 = alias3(\n alias2(depth0, 'version', {\n start: { line: 76, column: 14 },\n end: { line: 76, column: 21 },\n }),\n depth0,\n )) != null\n ? stack1\n : '') +\n \"',\\n\tWITH_CREDENTIALS: false,\\n\tinterceptors: {\\n\" +\n ((stack1 = lookupProperty(helpers, 'notEquals').call(\n alias1,\n lookupProperty(\n lookupProperty(\n lookupProperty(lookupProperty(data, 'root'), '$config'),\n 'client',\n ),\n 'name',\n ),\n 'legacy/angular',\n {\n name: 'notEquals',\n hash: {},\n fn: container.program(15, data, 0),\n inverse: container.noop,\n data: data,\n loc: {\n start: { line: 79, column: 2 },\n end: { line: 81, column: 16 },\n },\n },\n )) != null\n ? stack1\n : '') +\n '\t\tresponse: new Interceptors(),\\n\t},\\n};'\n );\n },\n useData: true,\n};\n","export default {\n 1: function (container, depth0, helpers, partials, data) {\n var stack1,\n lookupProperty =\n container.lookupProperty ||\n function (parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined;\n };\n\n return (stack1 = container.invokePartial(\n lookupProperty(partials, 'angular/request'),\n depth0,\n {\n name: 'angular/request',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '';\n },\n 3: function (container, depth0, helpers, partials, data) {\n var stack1,\n lookupProperty =\n container.lookupProperty ||\n function (parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined;\n };\n\n return (stack1 = container.invokePartial(\n lookupProperty(partials, 'axios/request'),\n depth0,\n {\n name: 'axios/request',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '';\n },\n 5: function (container, depth0, helpers, partials, data) {\n var stack1,\n lookupProperty =\n container.lookupProperty ||\n function (parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined;\n };\n\n return (stack1 = container.invokePartial(\n lookupProperty(partials, 'fetch/request'),\n depth0,\n {\n name: 'fetch/request',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '';\n },\n 7: function (container, depth0, helpers, partials, data) {\n var stack1,\n lookupProperty =\n container.lookupProperty ||\n function (parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined;\n };\n\n return (stack1 = container.invokePartial(\n lookupProperty(partials, 'xhr/request'),\n depth0,\n {\n name: 'xhr/request',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '';\n },\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n var stack1,\n alias1 = depth0 != null ? depth0 : container.nullContext || {},\n lookupProperty =\n container.lookupProperty ||\n function (parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined;\n };\n\n return (\n ((stack1 = lookupProperty(helpers, 'equals').call(\n alias1,\n lookupProperty(\n lookupProperty(\n lookupProperty(lookupProperty(data, 'root'), '$config'),\n 'client',\n ),\n 'name',\n ),\n 'legacy/angular',\n {\n name: 'equals',\n hash: {},\n fn: container.program(1, data, 0),\n inverse: container.noop,\n data: data,\n loc: { start: { line: 1, column: 0 }, end: { line: 1, column: 87 } },\n },\n )) != null\n ? stack1\n : '') +\n ((stack1 = lookupProperty(helpers, 'equals').call(\n alias1,\n lookupProperty(\n lookupProperty(\n lookupProperty(lookupProperty(data, 'root'), '$config'),\n 'client',\n ),\n 'name',\n ),\n 'legacy/axios',\n {\n name: 'equals',\n hash: {},\n fn: container.program(3, data, 0),\n inverse: container.noop,\n data: data,\n loc: { start: { line: 2, column: 0 }, end: { line: 2, column: 83 } },\n },\n )) != null\n ? stack1\n : '') +\n ((stack1 = lookupProperty(helpers, 'equals').call(\n alias1,\n lookupProperty(\n lookupProperty(\n lookupProperty(lookupProperty(data, 'root'), '$config'),\n 'client',\n ),\n 'name',\n ),\n 'legacy/fetch',\n {\n name: 'equals',\n hash: {},\n fn: container.program(5, data, 0),\n inverse: container.noop,\n data: data,\n loc: { start: { line: 3, column: 0 }, end: { line: 3, column: 83 } },\n },\n )) != null\n ? stack1\n : '') +\n ((stack1 = lookupProperty(helpers, 'equals').call(\n alias1,\n lookupProperty(\n lookupProperty(\n lookupProperty(lookupProperty(data, 'root'), '$config'),\n 'client',\n ),\n 'name',\n ),\n 'legacy/node',\n {\n name: 'equals',\n hash: {},\n fn: container.program(5, data, 0),\n inverse: container.noop,\n data: data,\n loc: { start: { line: 4, column: 0 }, end: { line: 4, column: 82 } },\n },\n )) != null\n ? stack1\n : '') +\n ((stack1 = lookupProperty(helpers, 'equals').call(\n alias1,\n lookupProperty(\n lookupProperty(\n lookupProperty(lookupProperty(data, 'root'), '$config'),\n 'client',\n ),\n 'name',\n ),\n 'legacy/xhr',\n {\n name: 'equals',\n hash: {},\n fn: container.program(7, data, 0),\n inverse: container.noop,\n data: data,\n loc: { start: { line: 5, column: 0 }, end: { line: 5, column: 79 } },\n },\n )) != null\n ? stack1\n : '')\n );\n },\n usePartial: true,\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return \"export const getHeaders = async <T>(config: OpenAPIConfig, options: ApiRequestOptions<T>): Promise<Headers> => {\\n\tconst [token, username, password, additionalHeaders] = await Promise.all([\\n\t\t// @ts-ignore\\n\t\tresolve(options, config.TOKEN),\\n\t\t// @ts-ignore\\n\t\tresolve(options, config.USERNAME),\\n\t\t// @ts-ignore\\n\t\tresolve(options, config.PASSWORD),\\n\t\t// @ts-ignore\\n\t\tresolve(options, config.HEADERS),\\n\t]);\\n\\n\tconst headers = Object.entries({\\n\t\tAccept: 'application/json',\\n\t\t...additionalHeaders,\\n\t\t...options.headers,\\n\t})\\n\t\t.filter(([, value]) => value !== undefined && value !== null)\\n\t\t.reduce((headers, [key, value]) => ({\\n\t\t\t...headers,\\n\t\t\t[key]: String(value),\\n\t\t}), {} as Record<string, string>);\\n\\n\tif (isStringWithValue(token)) {\\n\t\theaders['Authorization'] = `Bearer ${token}`;\\n\t}\\n\\n\tif (isStringWithValue(username) && isStringWithValue(password)) {\\n\t\tconst credentials = base64(`${username}:${password}`);\\n\t\theaders['Authorization'] = `Basic ${credentials}`;\\n\t}\\n\\n\tif (options.body !== undefined) {\\n\t\tif (options.mediaType) {\\n\t\t\theaders['Content-Type'] = options.mediaType;\\n\t\t} else if (isBlob(options.body)) {\\n\t\t\theaders['Content-Type'] = options.body.type || 'application/octet-stream';\\n\t\t} else if (isString(options.body)) {\\n\t\t\theaders['Content-Type'] = 'text/plain';\\n\t\t} else if (!isFormData(options.body)) {\\n\t\t\theaders['Content-Type'] = 'application/json';\\n\t\t}\\n\t}\\n\\n\treturn new Headers(headers);\\n};\";\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return \"export const getRequestBody = (options: ApiRequestOptions): unknown => {\\n\tif (options.body !== undefined) {\\n\t\tif (options.mediaType?.includes('application/json') || options.mediaType?.includes('+json')) {\\n\t\t\treturn JSON.stringify(options.body);\\n\t\t} else if (isString(options.body) || isBlob(options.body) || isFormData(options.body)) {\\n\t\t\treturn options.body;\\n\t\t} else {\\n\t\t\treturn JSON.stringify(options.body);\\n\t\t}\\n\t}\\n\treturn undefined;\\n};\";\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return \"export const getResponseBody = (xhr: XMLHttpRequest): unknown => {\\n\tif (xhr.status !== 204) {\\n\t\ttry {\\n\t\t\tconst contentType = xhr.getResponseHeader('Content-Type');\\n\t\t\tif (contentType) {\\n\t\t\t\tif (contentType.includes('application/json') || contentType.includes('+json')) {\\n\t\t\t\t\treturn JSON.parse(xhr.responseText);\\n\t\t\t\t} else {\\n\t\t\t\t\treturn xhr.responseText;\\n\t\t\t\t}\\n\t\t\t}\\n\t\t} catch (error) {\\n\t\t\tconsole.error(error);\\n\t\t}\\n\t}\\n\treturn undefined;\\n};\";\n },\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return 'export const getResponseHeader = (xhr: XMLHttpRequest, responseHeader?: string): string | undefined => {\\n\tif (responseHeader) {\\n\t\tconst content = xhr.getResponseHeader(responseHeader);\\n\t\tif (isString(content)) {\\n\t\t\treturn content;\\n\t\t}\\n\t}\\n\treturn undefined;\\n};';\n },\n useData: true,\n};\n","export default {\n 1: function (container, depth0, helpers, partials, data) {\n return 'ApiResult<T>';\n },\n 3: function (container, depth0, helpers, partials, data) {\n return 'T';\n },\n 5: function (container, depth0, helpers, partials, data) {\n return 'result.body';\n },\n 7: function (container, depth0, helpers, partials, data) {\n return 'result';\n },\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n var stack1,\n alias1 = depth0 != null ? depth0 : container.nullContext || {},\n lookupProperty =\n container.lookupProperty ||\n function (parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined;\n };\n\n return (\n \"import { ApiError } from './ApiError';\\nimport type { ApiRequestOptions } from './ApiRequestOptions';\\nimport type { ApiResult } from './ApiResult';\\nimport { CancelablePromise } from './CancelablePromise';\\nimport type { OnCancel } from './CancelablePromise';\\nimport type { OpenAPIConfig } from './OpenAPI';\\n\\n\" +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/isString'),\n depth0,\n {\n name: 'functions/isString',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/isStringWithValue'),\n depth0,\n {\n name: 'functions/isStringWithValue',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/isBlob'),\n depth0,\n {\n name: 'functions/isBlob',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/isFormData'),\n depth0,\n {\n name: 'functions/isFormData',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/isSuccess'),\n depth0,\n {\n name: 'functions/isSuccess',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/base64'),\n depth0,\n {\n name: 'functions/base64',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/getQueryString'),\n depth0,\n {\n name: 'functions/getQueryString',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/getUrl'),\n depth0,\n {\n name: 'functions/getUrl',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/getFormData'),\n depth0,\n {\n name: 'functions/getFormData',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/resolve'),\n depth0,\n {\n name: 'functions/resolve',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'fetch/getHeaders'),\n depth0,\n {\n name: 'fetch/getHeaders',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'xhr/getRequestBody'),\n depth0,\n {\n name: 'xhr/getRequestBody',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'xhr/sendRequest'),\n depth0,\n {\n name: 'xhr/sendRequest',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'xhr/getResponseHeader'),\n depth0,\n {\n name: 'xhr/getResponseHeader',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'xhr/getResponseBody'),\n depth0,\n {\n name: 'xhr/getResponseBody',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n' +\n ((stack1 = container.invokePartial(\n lookupProperty(partials, 'functions/catchErrorCodes'),\n depth0,\n {\n name: 'functions/catchErrorCodes',\n data: data,\n helpers: helpers,\n partials: partials,\n decorators: container.decorators,\n },\n )) != null\n ? stack1\n : '') +\n '\\n\\n/**\\n * Request method\\n * @param config The OpenAPI configuration object\\n * @param options The request options from the service\\n * @returns CancelablePromise<' +\n ((stack1 = lookupProperty(helpers, 'ifServicesResponse').call(\n alias1,\n 'response',\n {\n name: 'ifServicesResponse',\n hash: {},\n fn: container.program(1, data, 0),\n inverse: container.program(3, data, 0),\n data: data,\n loc: {\n start: { line: 60, column: 30 },\n end: { line: 60, column: 108 },\n },\n },\n )) != null\n ? stack1\n : '') +\n '>\\n * @throws ApiError\\n */\\nexport const request = <T>(config: OpenAPIConfig, options: ApiRequestOptions<T>): CancelablePromise<' +\n ((stack1 = lookupProperty(helpers, 'ifServicesResponse').call(\n alias1,\n 'response',\n {\n name: 'ifServicesResponse',\n hash: {},\n fn: container.program(1, data, 0),\n inverse: container.program(3, data, 0),\n data: data,\n loc: {\n start: { line: 63, column: 100 },\n end: { line: 63, column: 178 },\n },\n },\n )) != null\n ? stack1\n : '') +\n '> => {\\n\treturn new CancelablePromise(async (resolve, reject, onCancel) => {\\n\t\ttry {\\n\t\t\tconst url = getUrl(config, options);\\n\t\t\tconst formData = getFormData(options);\\n\t\t\tconst body = getRequestBody(options);\\n\t\t\tconst headers = await getHeaders(config, options);\\n\\n\t\t\tif (!onCancel.isCancelled) {\\n\t\t\t\tlet response = await sendRequest(config, options, url, body, formData, headers, onCancel);\\n\\n\t\t\t\tfor (const fn of config.interceptors.response._fns) {\\n\t\t\t\t\tresponse = await fn(response);\\n\t\t\t\t}\\n\\n\t\t\t\tconst responseBody = getResponseBody(response);\\n\t\t\t\tconst responseHeader = getResponseHeader(response, options.responseHeader);\\n\\n\t\t\t\tlet transformedBody = responseBody;\\n\t\t\t\tif (options.responseTransformer && isSuccess(response.status)) {\\n\t\t\t\t\ttransformedBody = await options.responseTransformer(responseBody)\\n\t\t\t\t}\\n\\n\t\t\t\tconst result: ApiResult = {\\n\t\t\t\t\turl,\\n\t\t\t\t\tok: isSuccess(response.status),\\n\t\t\t\t\tstatus: response.status,\\n\t\t\t\t\tstatusText: response.statusText,\\n\t\t\t\t\tbody: responseHeader ?? transformedBody,\\n\t\t\t\t};\\n\\n\t\t\t\tcatchErrorCodes(options, result);\\n\\n\t\t\t\tresolve(' +\n ((stack1 = lookupProperty(helpers, 'ifServicesResponse').call(\n alias1,\n 'body',\n {\n name: 'ifServicesResponse',\n hash: {},\n fn: container.program(5, data, 0),\n inverse: container.program(7, data, 0),\n data: data,\n loc: {\n start: { line: 96, column: 12 },\n end: { line: 96, column: 90 },\n },\n },\n )) != null\n ? stack1\n : '') +\n ');\\n\t\t\t}\\n\t\t} catch (error) {\\n\t\t\treject(error);\\n\t\t}\\n\t});\\n};'\n );\n },\n usePartial: true,\n useData: true,\n};\n","export default {\n compiler: [8, '>= 4.3.0'],\n main: function (container, depth0, helpers, partials, data) {\n return \"export const sendRequest = async (\\n\tconfig: OpenAPIConfig,\\n\toptions: ApiRequestOptions,\\n\turl: string,\\n\tbody: any,\\n\tformData: FormData | undefined,\\n\theaders: Headers,\\n\tonCancel: OnCancel\\n): Promise<XMLHttpRequest> => {\\n\tlet xhr = new XMLHttpRequest();\\n\txhr.open(options.method, url, true);\\n\txhr.withCredentials = config.WITH_CREDENTIALS;\\n\\n\theaders.forEach((value, key) => {\\n\t\txhr.setRequestHeader(key, value);\\n\t});\\n\\n\treturn new Promise<XMLHttpRequest>(async (resolve, reject) => {\\n\t\txhr.onload = () => resolve(xhr);\\n\t\txhr.onabort = () => reject(new Error('Request aborted'));\\n\t\txhr.onerror = () => reject(new Error('Network error'));\\n\\n\t\tfor (const fn of config.interceptors.request._fns) {\\n\t\t\txhr = await fn(xhr);\\n\t\t}\\n\\n\t\txhr.send(body ?? formData);\\n\\n\t\tonCancel(() => xhr.abort());\\n\t});\\n};\";\n },\n useData: true,\n};\n","import { stringCase } from './stringCase';\n\n// publicly exposed utils\nexport const utils = {\n stringCase,\n};\n"]}