UNPKG

@hey-api/openapi-ts

Version:

🌀 OpenAPI to TypeScript code generator. Generate API clients, SDKs, validators, and more.

1 lines 1.49 MB
{"version":3,"file":"openApi-Dz9FsU_q.mjs","names":["__filename","__dirname","path","registryRegExp","getRegistryUrl","parseShorthand","queryParams: string | undefined","registryRegExp","getRegistryUrl","namespace","parseShorthand","defaultWatch: Watch","inputs: Array<Input>","input: Input","logs: Config['logs']","a: Partial<UserConfig>","b: Partial<UserConfig>","merged: UserConfig","valueToObject: ValueToObject","mappers","fields","defaultValue","defaultConfig","uniqueItems: Array<IR.SchemaObject>","typeIds: Array<string>","path","result: OperationResponsesMap","errors: Omit<IR.SchemaObject, 'properties'> &\n Pick<Required<IR.SchemaObject>, 'properties'>","responses: Omit<IR.SchemaObject, 'properties'> &\n Pick<Required<IR.SchemaObject>, 'properties'>","defaultResponse: IR.ResponseObject | undefined","result: R | void | undefined","Mixed","Mixed","impl: T | undefined","Mixed","index: number","reserved","Mixed","lines","Mixed","Mixed","Mixed","Mixed","Mixed","Mixed","Mixed","entries: Record<string, string>","Mixed","name: string | ReturnType<typeof this.$pattern>","Mixed","Mixed","Mixed","Mixed","f","Mixed","Mixed","Mixed","node","Mixed","Mixed","Mixed","Mixed","Mixed","Mixed","Mixed","Mixed","Mixed","lines","Mixed","result","missing: Array<string>","Mixed","Mixed","Mixed","Mixed","normalized: Array<string | ts.Expression>","spans: Array<ts.TemplateSpan>","Mixed","Mixed","lines","Mixed","Mixed","Mixed","Mixed","Mixed","Mixed","Mixed","flat: Array<ts.TypeNode>","Mixed","Mixed","missing: Array<string>","Mixed","Mixed","Mixed","fromValue","Mixed","Mixed","Mixed","missing: Array<string>","Mixed","missing: Array<string>","Mixed","flat: Array<ts.TypeNode>","Mixed","normalized: Array<string | ts.TypeNode>","spans: Array<ts.TemplateLiteralTypeSpan>","parentCount: number","exprValue","typeValue","auth: Array<Auth>","path","nameToLocations: Record<string, Set<Location>>","signatureParameters: SignatureParameters","fields: Array<Field>","signatureParameter: SignatureParameter","className: string | undefined","methodName: string | undefined","classCandidates: Array<string>","path","result: OperationParameters","query: SymbolMeta","ref","responseTypeValue: ReturnType<typeof getResponseType> | undefined","statements: Array<ReturnType<typeof $.return | typeof $.const>>","args: Array<ReturnType<typeof $.expr>>","config: Array<ReturnType<typeof $.object>>","clientExpression: ReturnType<typeof $.attr | typeof $.binary>","f","comments: Array<string>","createHttpRequests: AngularCommonPlugin['Handler']","methodAccess: ReturnType<typeof $.attr | typeof $.call>","createHttpResources: AngularCommonPlugin['Handler']","handler: AngularCommonPlugin['Handler']","defaultConfig: AngularCommonPlugin['Config']","defineConfig","renamed: Map<string, string> | undefined","dirPath","errorResponse: Url","path","createClient: PluginHandler","defaultConfig: HeyApiClientAngularPlugin['Config']","defineConfig","defaultConfig","defaultConfig: HeyApiClientAxiosPlugin['Config']","defineConfig","defaultConfig","defaultConfig: HeyApiClientFetchPlugin['Config']","defineConfig","defaultConfig","defaultConfig: HeyApiClientKyPlugin['Config']","defineConfig","defaultConfig","defaultConfig: HeyApiClientNextPlugin['Config']","defineConfig","defaultConfig","defaultConfig: HeyApiClientNuxtPlugin['Config']","defineConfig","defaultConfig","defaultConfig: HeyApiClientOfetchPlugin['Config']","defineConfig","defaultConfig","satisfies: typeof semver.satisfies","handler: HeyApiSchemasPlugin['Handler']","defaultConfig: HeyApiSchemasPlugin['Config']","defineConfig","defaultConfig","f","p","m","t","node","symbolClient","f","handlerV1: HeyApiSdkPlugin['Handler']","handler: HeyApiSdkPlugin['Handler']","handlerV1","defaultConfig: HeyApiSdkPlugin['Config']","defineConfig","defaultConfig","bigIntExpressions: ExpressionTransformer","dateExpressions: ExpressionTransformer","query: SymbolMeta","mapCallbackStatements: Array<Expr>","nodes: Array<Expr>","arrayNodes: Array<Expr>","handler: HeyApiTransformersPlugin['Handler']","defaultConfig: HeyApiTransformersPlugin['Config']","defineConfig","defaultConfig","types: Array<TypeTsDsl>","comments: Array<string>","typeofItems: Array<\n | 'bigint'\n | 'boolean'\n | 'function'\n | 'number'\n | 'object'\n | 'string'\n | 'symbol'\n | 'undefined'\n >","key: string | undefined","symbol","node","type","irSchema: IR.SchemaObject","properties: Record<string, IR.SchemaObject>","required: Array<string>","operationToDataType","data: IR.SchemaObject","dataRequired: Array<string>","irSchemaToAst","node","data: IR.SchemaObject","dataRequired: Array<string>","node","irSchemaToAst","arrayToAst","itemTypes: Array<MaybeTsDsl<TypeTsDsl>>","irSchemaToAst","booleanToAst","enumToAst","irSchemaToAst","neverToAst","nullToAst","numberToAst","objectToAst","indexSchemas: Array<IR.SchemaObject>","irSchemaToAst","p","stringToAst","query: SymbolMeta","queryTypeId: SymbolMeta","symbolTypeId","tupleToAst","itemTypes: Array<MaybeTsDsl<TypeTsDsl>>","irSchemaToAst","undefinedToAst","unknownToAst","voidToAst","irSchemaWithTypeToAst","arrayToAst","booleanToAst","enumToAst","numberToAst","neverToAst","nullToAst","objectToAst","stringToAst","tupleToAst","undefinedToAst","unknownToAst","voidToAst","irSchemaToAst","irSchemaWithTypeToAst","handleComponent","handlerV1: HeyApiTypeScriptPlugin['Handler']","servers: Array<IR.ServerObject>","webhooks: Array<Symbol>","Api","irSchemaToAstV1","handler: HeyApiTypeScriptPlugin['Handler']","handlerV1","defaultConfig: HeyApiTypeScriptPlugin['Config']","Api","defineConfig","defaultConfig","handleMeta","useTypeData","useTypeError","useTypeResponse","useTypeData","createMutationOptions","fnOptions","statements: Array<ReturnType<typeof $.var | typeof $.return>>","f","handleMeta","useTypeResponse","useTypeError","TOptionsType","createQueryKeyFunction","createQueryKeyLiteral","tagsExpression: ReturnType<typeof $.array> | undefined","createQueryKeyType","queryKeyStatement","optionsParamName","createQueryOptions","keyExpression: ReturnType<typeof $.call>","queryKeyStatement","tagsExpr: ReturnType<typeof $.array> | undefined","statements: Array<ReturnType<typeof $.return | typeof $.const>>","handleMeta","handlerV0: PiniaColadaPlugin['Handler']","queryFn: ReturnType<typeof $.expr | typeof $.call | typeof $.attr>","handler: PiniaColadaPlugin['Handler']","defaultConfig: PiniaColadaPlugin['Config']","handler","defineConfig","defaultConfig","tagsArray: TsDsl<ts.ArrayLiteralExpression> | undefined","f","statements: Array<TsDsl<any>>","fnOptions","statements: Array<TsDsl<any>>","optionsParamName","statements: Array<TsDsl<any>>","handlerV5: PluginHandler","queryFn: ReturnType<typeof $.expr | typeof $.call | typeof $.attr>","handler: PluginHandler","defaultConfig: TanStackAngularQueryPlugin['Config']","handler","defineConfig","defaultConfig","defaultConfig: TanStackReactQueryPlugin['Config']","handler","defineConfig","defaultConfig","defaultConfig: TanStackSolidQueryPlugin['Config']","handler","defineConfig","defaultConfig","defaultConfig: TanStackSvelteQueryPlugin['Config']","handler","defineConfig","defaultConfig","defaultConfig: TanStackVueQueryPlugin['Config']","handler","defineConfig","defaultConfig","Api","identifiers","exportAst","identifiers","nullToAst","result: Partial<Omit<Ast, 'typeName'>>","identifiers","objectToAst","result: Partial<Omit<Ast, 'typeName'>>","irSchemaToAst","stringToAst","result: Partial<Omit<Ast, 'typeName'>>","identifiers","irSchemaWithTypeToAst","nullToAst","objectToAst","stringToAst","irSchemaToAst","ast: Partial<Ast>","query: SymbolMeta","ref","irSchemaWithTypeToAst","handleComponent","handlerV2: ArktypePlugin['Handler']","handler: ArktypePlugin['Handler']","handlerV2","defaultConfig: ArktypePlugin['Config']","Api","fields","defaultValue","defineConfig","defaultConfig","errorsTypeReference: ReturnType<typeof $.type> | undefined","responsesTypeReference: ReturnType<typeof $.type> | undefined","handler: FastifyPlugin['Handler']","defaultConfig: FastifyPlugin['Config']","defineConfig","defaultConfig","statements: Array<TsDsl<any>>","handlerV2: SwrPlugin['Handler']","queryFn: ReturnType<typeof $.expr | typeof $.call | typeof $.attr>","handler: SwrPlugin['Handler']","defaultConfig: SwrPlugin['Config']","handler","defineConfig","defaultConfig","identifiers","defaultValidatorResolver","identifiers","args: ValidatorResolverArgs","Api","identifiers","exportAst","v","identifiers","numberParameter","irOperationToAst","schemaData: IR.SchemaObject","properties: Record<string, IR.SchemaObject>","required: Array<string>","path","irWebhookToAst","schemaData: IR.SchemaObject","properties: Record<string, IR.SchemaObject>","required: Array<string>","unknownToAst","identifiers","arrayToAst","result: Omit<Ast, 'typeName'>","identifiers","unknownToAst","irSchemaToAst","booleanToAst","pipes: Array<ReturnType<typeof $.call>>","identifiers","enumToAst","enumMembers: Array<ReturnType<typeof $.literal>>","unknownToAst","identifiers","neverToAst","identifiers","nullToAst","identifiers","numberToAst","literalValue: ReturnType<typeof $.fromValue>","identifiers","pipes: Array<ReturnType<typeof $.call>>","numberParameter","defaultObjectBaseResolver","identifiers","objectToAst","result: Partial<Omit<Ast, 'typeName'>>","pipes: Array<ReturnType<typeof $.call>>","irSchemaToAst","additional: ReturnType<typeof $.call | typeof $.expr> | null | undefined","args: ObjectBaseResolverArgs","defaultFormatResolver","identifiers","stringToAst","pipes: Array<ReturnType<typeof $.call>>","args: FormatResolverArgs","tupleToAst","result: Partial<Omit<Ast, 'typeName'>>","identifiers","irSchemaToAst","unknownToAst","undefinedToAst","identifiers","voidToAst","identifiers","irSchemaWithTypeToAst","arrayToAst","booleanToAst","enumToAst","numberToAst","neverToAst","nullToAst","objectToAst","stringToAst","tupleToAst","undefinedToAst","unknownToAst","voidToAst","irSchemaToAst","ast: Ast","query: SymbolMeta","ref","identifiers","irSchemaWithTypeToAst","callParameter: ReturnType<typeof $.fromValue> | undefined","numberParameter","handleComponent","handlerV1: ValibotPlugin['Handler']","handler: ValibotPlugin['Handler']","defaultConfig: ValibotPlugin['Config']","Api","defineConfig","defaultConfig","defaultValidatorResolver","args: ValidatorResolverArgs","defaultValidatorResolver","args: ValidatorResolverArgs","args: ValidatorResolverArgs","schemaData: IR.SchemaObject","properties: Record<string, IR.SchemaObject>","required: Array<string>","path","schemaData: IR.SchemaObject","properties: Record<string, IR.SchemaObject>","required: Array<string>","unknownToAst","result: Partial<Omit<Ast, 'typeName'>>","arrayToAst","result: Partial<Omit<Ast, 'typeName'>>","unknownToAst","irSchemaToAst","intersectionExpression: ReturnType<typeof $.expr | typeof $.call>","checks: Array<ReturnType<typeof $.call>>","booleanToAst","result: Partial<Omit<Ast, 'typeName'>>","chain: ReturnType<typeof $.call>","enumToAst","result: Partial<Omit<Ast, 'typeName'>>","enumMembers: Array<ReturnType<typeof $.literal>>","literalMembers: Array<ReturnType<typeof $.call>>","unknownToAst","neverToAst","result: Partial<Omit<Ast, 'typeName'>>","nullToAst","result: Partial<Omit<Ast, 'typeName'>>","numberToAst","result: Partial<Omit<Ast, 'typeName'>>","checks: Array<ReturnType<typeof $.call>>","defaultObjectBaseResolver","objectToAst","result: Partial<Omit<Ast, 'typeName'>>","irSchemaToAst","additional: ReturnType<typeof $.call | typeof $.expr> | null | undefined","args: ObjectBaseResolverArgs","defaultFormatResolver","stringToAst","result: Partial<Omit<Ast, 'typeName'>>","chain: ReturnType<typeof $.call>","args: FormatResolverArgs","checks: Array<ReturnType<typeof $.call>>","tupleToAst","result: Partial<Omit<Ast, 'typeName'>>","tupleElements","tupleElements: Array<ReturnType<typeof $.call | typeof $.expr>>","irSchemaToAst","undefinedToAst","result: Partial<Omit<Ast, 'typeName'>>","voidToAst","result: Partial<Omit<Ast, 'typeName'>>","irSchemaWithTypeToAst","arrayToAst","booleanToAst","enumToAst","numberToAst","neverToAst","nullToAst","objectToAst","stringToAst","tupleToAst","undefinedToAst","unknownToAst","voidToAst","irSchemaToAst","ast: Partial<Ast>","query: SymbolMeta","irSchemaWithTypeToAst","schema","handleComponent","handlerMini: ZodPlugin['Handler']","unknownToAst","arrayToAst","arrayExpression: ReturnType<typeof $.call> | undefined","unknownToAst","irSchemaToAst","intersectionExpression: ReturnType<typeof $.call | typeof $.expr>","booleanToAst","chain: ReturnType<typeof $.call>","enumToAst","enumMembers: Array<ReturnType<typeof $.literal>>","literalMembers: Array<ReturnType<typeof $.call>>","unknownToAst","enumExpression: ReturnType<typeof $.call>","neverToAst","nullToAst","numberToAst","defaultObjectBaseResolver","objectToAst","irSchemaToAst","additional: ReturnType<typeof $.call | typeof $.expr> | null | undefined","result: Partial<Omit<Ast, 'typeName'>>","args: ObjectBaseResolverArgs","defaultFormatResolver","stringToAst","chain: ReturnType<typeof $.call>","args: FormatResolverArgs","tupleToAst","tupleElements","tupleElements: Array<ReturnType<typeof $.call | typeof $.expr>>","irSchemaToAst","undefinedToAst","voidToAst","irSchemaWithTypeToAst","arrayToAst","booleanToAst","enumToAst","numberToAst","neverToAst","nullToAst","objectToAst","stringToAst","tupleToAst","undefinedToAst","unknownToAst","voidToAst","irSchemaToAst","ast: Partial<Ast>","query: SymbolMeta","irSchemaWithTypeToAst","handleComponent","handlerV3: ZodPlugin['Handler']","result: Partial<Omit<Ast, 'typeName'>>","result: Partial<Omit<Ast, 'typeName'>>","intersectionExpression: ReturnType<typeof $.call | typeof $.expr>","result: Partial<Omit<Ast, 'typeName'>>","chain: ReturnType<typeof $.call>","result: Partial<Omit<Ast, 'typeName'>>","enumMembers: Array<ReturnType<typeof $.literal>>","literalMembers: Array<ReturnType<typeof $.call>>","result: Partial<Omit<Ast, 'typeName'>>","result: Partial<Omit<Ast, 'typeName'>>","result: Partial<Omit<Ast, 'typeName'>>","result: Partial<Omit<Ast, 'typeName'>>","additional: ReturnType<typeof $.call | typeof $.expr> | null | undefined","args: ObjectBaseResolverArgs","result: Partial<Omit<Ast, 'typeName'>>","chain: ReturnType<typeof $.call>","args: FormatResolverArgs","result: Partial<Omit<Ast, 'typeName'>>","tupleElements","tupleElements: Array<ReturnType<typeof $.call | typeof $.expr>>","result: Partial<Omit<Ast, 'typeName'>>","result: Partial<Omit<Ast, 'typeName'>>","ast: Partial<Ast>","query: SymbolMeta","schema","handlerV4: ZodPlugin['Handler']","handler: ZodPlugin['Handler']","defaultConfig: ZodPlugin['Config']","fields","defaultValue","defaultConfig","defaultPluginConfigs: {\n [K in PluginNames]: Plugin.Config<PluginConfigMap[K]>;\n}","angularCommon","heyApiClientAngular","heyApiClientAxios","heyApiClientFetch","heyApiClientKy","heyApiClientNext","heyApiClientNuxt","heyApiClientOfetch","heyApiSchemas","heyApiSdk","heyApiTransformers","heyApiTypeScript","piniaColada","tanStackAngularQuery","tanStackReactQuery","tanStackSolidQuery","tanStackSvelteQuery","tanStackVueQuery","plugins: Config['plugins']","context: PluginContext","userPlugin","defaultConfig","defaultPlugin","userPluginsConfig: Config['plugins']","definedPlugins: UserConfig['plugins']","configs: Array<UserConfig>","dependencies: Record<string, string>","configurationFile: string | undefined","results: Array<ArrayOnly<ConfigResult>>","errors: Array<Error>","plugins: Pick<Config, 'plugins' | 'pluginOrder'>","config: Config","joinedValues","values: string[]","search: string[]","entries: Array<[string, string]>","arrayBuffer: ArrayBuffer | undefined","hasChanged: boolean | undefined","response: Response | undefined","declIndex: Map<string, number>","walkDeclarations: WalkFn","walkTopological: WalkFn","order: Array<string>","getGroup: GetPointerPriorityFn","walk: WalkFn","matchIrPointerToGroup: MatchPointerToGroupFn<IrTopLevelKind>","patterns: Record<IrTopLevelKind, RegExp>","kind","kindPriority: KindPriority","partial: Partial<KindPriority>","getIrPointerPriority: GetPointerPriorityFn","defaultGetKind: Required<Required<Hooks>['operations']>['getKind']","callback: (event: WalkEvent<TKind>) => void","events: ReadonlyArray<TKind>","options: WalkOptions<TKind>","event: WalkEvent | undefined","baseEvent: BaseEvent","symbolIn: SymbolIn","result: EventHooks","result: string","path","namespace","keys: Array<string>","regexps: Array<RegExp>","path","regexp","filters: Filters","dependencies: Set<string> | undefined","resourceMetadata: ResourceMetadata","path","namespace","path","walkSchemas","path","rootEnums: Record<string, unknown>","rootEnumSignatures: Record<string, string>","inlineEnums: Array<{\n key: string | number | null;\n node: unknown;\n parent: unknown;\n path: ReadonlyArray<string | number>;\n signature: string;\n }>","signatureToName: Record<string, string | undefined>","signatureToSchema: Record<string, unknown>","path","childResult: Partial<PointerDependenciesResult>","worklist: Set<string>","graph: Graph","walk","path","deprecated: boolean | undefined","tags: Set<string> | undefined","cache: Cache","path","originals: OriginalSchemas","split: SplitSchemas","deepEqual","walk","path","filterSpec","filtered: typeof spec.definitions","path","contentToSchema","mediaTypeObjects","objects: Array<Content>","values: Array<string>","getSchemaType","parseSchemaJsDoc","parseSchemaMeta","parseArray","schemaItems: Array<IR.SchemaObject>","schemaToIrSchema","parseBoolean","parseNumber","parseObject","schemaProperties: Record<string, IR.SchemaObject>","parseString","parseExtensions","initIrSchema","irSchema: IR.SchemaObject","parseAllOf","ref","valueSchemas: ReadonlyArray<IR.SchemaObject>","irDiscriminatorSchema: IR.SchemaObject","parseOneType","nestedItems: Array<IR.SchemaObject>","parseEnum","enumType: SchemaType<SchemaObject> | 'null' | undefined","parseRef","irSchema","parseNullableType","typeIrSchema: IR.SchemaObject","parseType","parseUnknown","parseSchema","isPaginationType","paginationField","ref","name","getSchemaType","parseOperationJsDoc","initIrOperation","irOperation: IR.OperationObject","operationToIrOperation","requestBodyObject: IRBodyObject","requestBodyObjectRequired: Array<string>","schema: SchemaObject","mediaTypeObjects","content","paginationField","schemaToIrSchema","contentToSchema","securitySchemeObjects: Map<string, IR.SecurityObject>","irSecuritySchemeObject: IR.SecurityObject | undefined","parsePathOperation","path","defaultExplode","defaultStyle","parametersArrayToObject","parametersObject: IR.ParametersObject","parameterToIrParameter","finalSchema: SchemaObject","paginationField","irParameter: IR.ParameterObject","schemaToIrSchema","parseServers","schemes: ReadonlyArray<string>","path","validateOpenApiSpec","issues: Array<ValidatorIssue>","path","validateOpenApiSpec","state: State","path","commonOperation: OperationObject","operationArgs: Omit<\n Parameters<typeof parsePathOperation>[0],\n 'method'\n >","parametersArrayToObject","filterSpec","filtered: typeof spec.components.parameters","filtered: typeof spec.components.requestBodies","filtered: typeof spec.components.responses","filtered: typeof spec.components.schemas","path","contentToSchema","mediaTypeObjects","objects: Array<Content>","findDiscriminatorsInSchema","resolvedSchema: SchemaObject","getAllDiscriminatorValues","values: Array<string>","parseSchemaJsDoc","parseSchemaMeta","parseArray","schemaItems: Array<IR.SchemaObject>","schemaToIrSchema","parseBoolean","parseNumber","parseObject","schemaProperties: Record<string, IR.SchemaObject>","parseString","parseExtensions","initIrSchema","irSchema: IR.SchemaObject","parseAllOf","discriminatorsToAdd: Array<DiscriminatorInfo>","ref","valueSchemas: ReadonlyArray<IR.SchemaObject>","discriminatorProperty: IR.SchemaObject","inlineSchema: IR.SchemaObject | undefined","irDiscriminatorSchema: IR.SchemaObject","parseOneType","nestedItems: Array<IR.SchemaObject>","parseAnyOf","parseEnum","enumType: SchemaType<SchemaObject> | 'null' | undefined","parseOneOf","parseRef","irSchema","typeIrSchema: IR.SchemaObject","parseType","parseUnknown","parseSchema","isPaginationType","paginationField","ref","refSchema: SchemaObject | ReferenceObject | undefined","mediaTypeObjects","content","name","parseOperationJsDoc","initIrOperation","irOperation: IR.OperationObject","operationToIrOperation","mediaTypeObjects","content","paginationField","schemaToIrSchema","contentToSchema","securitySchemeObjects: Map<string, IR.SecurityObject>","parsePathOperation","path","defaultAllowReserved","defaultExplode","defaultStyle","parametersArrayToObject","parametersObject: IR.ParametersObject","parameterToIrParameter","mediaTypeObjects","content","finalSchema: SchemaObject","paginationField","irParameter: IR.ParameterObject","schemaToIrSchema","parseParameter","requestBodyToIrRequestBody","mediaTypeObjects","content","irRequestBody: IR.RequestBodyObject","schemaToIrSchema","parseRequestBody","parseServers","validateOpenApiSpec","issues: Array<ValidatorIssue>","path","validateOpenApiSpec","state: State","path","operationArgs: Omit<\n Parameters<typeof parsePathOperation>[0],\n 'method' | 'operation'\n > & {\n operation: Omit<\n Parameters<typeof parsePathOperation>[0]['operation'],\n 'responses'\n >;\n }","parametersArrayToObject","filtered: typeof spec.components.parameters","filtered: typeof spec.components.requestBodies","filtered: typeof spec.components.responses","filtered: typeof spec.components.schemas","path","objects: Array<Content>","resolvedSchema: SchemaObject","values: Array<string>","schemaItems: Array<IR.SchemaObject>","schemaProperties: Record<string, IR.SchemaObject>","patternProperties: Record<string, IR.SchemaObject>","irSchema: IR.SchemaObject","discriminatorsToAdd: Array<DiscriminatorInfo>","ref","valueSchemas: ReadonlyArray<IR.SchemaObject>","discriminatorProperty: IR.SchemaObject","inlineSchema: IR.SchemaObject | undefined","irDiscriminatorSchema: IR.SchemaObject","nestedItems: Array<IR.SchemaObject>","enumType: SchemaType<SchemaObject> | undefined","irSchema","irRefSchema: IR.SchemaObject","typeIrSchema: IR.SchemaObject","ref","refSchema: SchemaObject | undefined","content","name","schema","irOperation: IR.OperationObject","content","securitySchemeObjects: Map<string, IR.SecurityObject>","path","parametersObject: IR.ParametersObject","content","finalSchema: SchemaObject","irParameter: IR.ParameterObject","content","irRequestBody: IR.RequestBodyObject","issues: Array<ValidatorIssue>","path","state: Parameters<typeof parseWebhookOperation>[0]['state']","operationArgs: Omit<\n Parameters<typeof parseWebhookOperation>[0],\n 'method'\n >","state: State","path","operationArgs: Omit<\n Parameters<typeof parsePathOperation>[0],\n 'method'\n >"],"sources":["../src/generate/tsConfig.ts","../src/generate/utils.ts","../src/error.ts","../src/utils/input/heyApi.ts","../src/utils/input/readme.ts","../src/utils/input/scalar.ts","../src/utils/input/index.ts","../src/config/input.ts","../src/config/logs.ts","../src/config/merge.ts","../src/config/utils/config.ts","../src/config/output.ts","../src/config/packages.ts","../src/config/parser.ts","../src/plugins/shared/utils/config.ts","../src/utils/stringCase.ts","../src/openApi/shared/utils/name.ts","../src/ir/parameter.ts","../src/ir/schema.ts","../src/ir/utils.ts","../src/ir/operation.ts","../src/openApi/common/parser/sanitize.ts","../src/plugins/@hey-api/client-core/utils.ts","../src/ts-dsl/base.ts","../src/ts-dsl/expr/id.ts","../src/ts-dsl/layout/newline.ts","../src/ts-dsl/mixins/args.ts","../src/ts-dsl/expr/prefix.ts","../src/ts-dsl/utils/factories.ts","../src/ts-dsl/mixins/as.ts","../src/ts-dsl/expr/literal.ts","../src/ts-dsl/utils/regexp.ts","../src/ts-dsl/utils/keywords.ts","../src/ts-dsl/utils/reserved.ts","../src/ts-dsl/utils/name.ts","../src/ts-dsl/decl/decorator.ts","../src/ts-dsl/mixins/decorator.ts","../src/ts-dsl/layout/doc.ts","../src/ts-dsl/mixins/doc.ts","../src/ts-dsl/mixins/modifiers.ts","../src/ts-dsl/type/param.ts","../src/ts-dsl/mixins/type-params.ts","../src/ts-dsl/mixins/optional.ts","../src/ts-dsl/mixins/value.ts","../src/ts-dsl/token.ts","../src/ts-dsl/mixins/type-args.ts","../src/ts-dsl/mixins/type-expr.ts","../src/ts-dsl/type/attr.ts","../src/ts-dsl/type/expr.ts","../src/ts-dsl/decl/field.ts","../src/ts-dsl/stmt/stmt.ts","../src/ts-dsl/mixins/do.ts","../src/ts-dsl/decl/pattern.ts","../src/ts-dsl/mixins/pattern.ts","../src/ts-dsl/decl/param.ts","../src/ts-dsl/mixins/param.ts","../src/ts-dsl/mixins/layout.ts","../src/ts-dsl/stmt/block.ts","../src/ts-dsl/decl/init.ts","../src/ts-dsl/mixins/type-returns.ts","../src/ts-dsl/decl/method.ts","../src/ts-dsl/decl/class.ts","../src/ts-dsl/decl/member.ts","../src/ts-dsl/decl/enum.ts","../src/ts-dsl/decl/func.ts","../src/ts-dsl/decl/getter.ts","../src/ts-dsl/decl/setter.ts","../src/ts-dsl/expr/array.ts","../src/ts-dsl/mixins/expr.ts","../src/ts-dsl/expr/as.ts","../src/ts-dsl/expr/binary.ts","../src/ts-dsl/mixins/operator.ts","../src/ts-dsl/expr/attr.ts","../src/ts-dsl/expr/await.ts","../src/ts-dsl/expr/call.ts","../src/ts-dsl/expr/expr.ts","../src/ts-dsl/layout/hint.ts","../src/ts-dsl/mixins/hint.ts","../src/ts-dsl/expr/prop.ts","../src/ts-dsl/expr/object.ts","../src/ts-dsl/expr/fromValue.ts","../src/ts-dsl/expr/new.ts","../src/ts-dsl/expr/regexp.ts","../src/ts-dsl/expr/template.ts","../src/ts-dsl/expr/ternary.ts","../src/ts-dsl/expr/typeof.ts","../src/ts-dsl/layout/note.ts","../src/ts-dsl/stmt/if.ts","../src/ts-dsl/stmt/return.ts","../src/ts-dsl/stmt/throw.ts","../src/ts-dsl/stmt/try.ts","../src/ts-dsl/stmt/var.ts","../src/ts-dsl/type/alias.ts","../src/ts-dsl/type/and.ts","../src/ts-dsl/type/literal.ts","../src/ts-dsl/type/idx-sig.ts","../src/ts-dsl/type/prop.ts","../src/ts-dsl/type/object.ts","../src/ts-dsl/type/tuple.ts","../src/ts-dsl/type/fromValue.ts","../src/ts-dsl/type/func.ts","../src/ts-dsl/type/idx.ts","../src/ts-dsl/type/mapped.ts","../src/ts-dsl/type/operator.ts","../src/ts-dsl/type/or.ts","../src/ts-dsl/type/query.ts","../src/ts-dsl/type/template.ts","../src/ts-dsl/utils/lazy.ts","../src/ts-dsl/render/utils.ts","../src/ts-dsl/render/typescript.ts","../src/ts-dsl/index.ts","../src/plugins/@hey-api/sdk/shared/auth.ts","../src/plugins/@hey-api/sdk/shared/constants.ts","../src/utils/ref.ts","../src/plugins/@hey-api/sdk/shared/signature.ts","../src/plugins/@hey-api/sdk/shared/validator.ts","../src/plugins/@hey-api/sdk/shared/operation.ts","../src/utils/escape.ts","../src/plugins/shared/utils/operation.ts","../src/plugins/@angular/common/httpRequests.ts","../src/plugins/@angular/common/httpResources.ts","../src/plugins/@angular/common/plugin.ts","../src/plugins/@angular/common/config.ts","../src/plugins/@hey-api/client-core/config.ts","../src/generate/client.ts","../src/utils/url.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-angular/config.ts","../src/plugins/@hey-api/client-axios/config.ts","../src/plugins/@hey-api/client-fetch/config.ts","../src/plugins/@hey-api/client-ky/config.ts","../src/plugins/@hey-api/client-next/config.ts","../src/plugins/@hey-api/client-nuxt/config.ts","../src/plugins/@hey-api/client-ofetch/config.ts","../src/config/utils/package.ts","../src/plugins/@hey-api/schemas/plugin.ts","../src/plugins/@hey-api/schemas/config.ts","../src/plugins/@hey-api/sdk/shared/class.ts","../src/plugins/@hey-api/sdk/shared/functions.ts","../src/plugins/@hey-api/sdk/shared/typeOptions.ts","../src/plugins/@hey-api/sdk/v1/plugin.ts","../src/plugins/@hey-api/sdk/plugin.ts","../src/plugins/@hey-api/sdk/config.ts","../src/plugins/@hey-api/transformers/expressions.ts","../src/plugins/@hey-api/transformers/plugin.ts","../src/plugins/@hey-api/transformers/config.ts","../src/plugins/@hey-api/typescript/shared/clientOptions.ts","../src/plugins/shared/utils/schema.ts","../src/plugins/@hey-api/typescript/shared/export.ts","../src/plugins/@hey-api/typescript/shared/operation.ts","../src/plugins/@hey-api/typescript/shared/webhook.ts","../src/plugins/@hey-api/typescript/v1/toAst/array.ts","../src/plugins/@hey-api/typescript/v1/toAst/boolean.ts","../src/plugins/@hey-api/typescript/v1/toAst/enum.ts","../src/plugins/@hey-api/typescript/v1/toAst/never.ts","../src/plugins/@hey-api/typescript/v1/toAst/null.ts","../src/plugins/@hey-api/typescript/v1/toAst/number.ts","../src/plugins/@hey-api/typescript/v1/toAst/object.ts","../src/plugins/@hey-api/typescript/v1/toAst/string.ts","../src/plugins/@hey-api/typescript/v1/toAst/tuple.ts","../src/plugins/@hey-api/typescript/v1/toAst/undefined.ts","../src/plugins/@hey-api/typescript/v1/toAst/unknown.ts","../src/plugins/@hey-api/typescript/v1/toAst/void.ts","../src/plugins/@hey-api/typescript/v1/toAst/index.ts","../src/plugins/@hey-api/typescript/v1/plugin.ts","../src/plugins/@hey-api/typescript/api.ts","../src/plugins/@hey-api/typescript/plugin.ts","../src/plugins/@hey-api/typescript/config.ts","../src/plugins/@pinia/colada/meta.ts","../src/plugins/@pinia/colada/useType.ts","../src/plugins/@pinia/colada/utils.ts","../src/plugins/@pinia/colada/mutationOptions.ts","../src/plugins/@pinia/colada/queryKey.ts","../src/plugins/@pinia/colada/queryOptions.ts","../src/plugins/@pinia/colada/v0/plugin.ts","../src/plugins/@pinia/colada/plugin.ts","../src/plugins/@pinia/colada/config.ts","../src/plugins/@tanstack/query-core/shared/useType.ts","../src/plugins/@tanstack/query-core/queryKey.ts","../src/plugins/@tanstack/query-core/shared/meta.ts","../src/plugins/@tanstack/query-core/v5/infiniteQueryOptions.ts","../src/plugins/@tanstack/query-core/v5/mutationOptions.ts","../src/plugins/@tanstack/query-core/v5/queryOptions.ts","../src/plugins/@tanstack/query-core/v5/useQuery.ts","../src/plugins/@tanstack/query-core/v5/plugin.ts","../src/plugins/@tanstack/query-core/plugin.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/arktype/v2/api.ts","../src/plugins/arktype/api.ts","../src/plugins/arktype/constants.ts","../src/plugins/arktype/shared/export.ts","../src/plugins/arktype/v2/toAst/null.ts","../src/plugins/arktype/v2/toAst/object.ts","../src/plugins/arktype/v2/toAst/string.ts","../src/plugins/arktype/v2/toAst/index.ts","../src/plugins/arktype/v2/plugin.ts","../src/plugins/arktype/plugin.ts","../src/plugins/arktype/config.ts","../src/plugins/fastify/plugin.ts","../src/plugins/fastify/config.ts","../src/plugins/swr/v2/useSwr.ts","../src/plugins/swr/v2/plugin.ts","../src/plugins/swr/plugin.ts","../src/plugins/swr/config.ts","../src/plugins/valibot/v1/constants.ts","../src/plugins/valibot/v1/api.ts","../src/plugins/valibot/api.ts","../src/plugins/valibot/shared/pipesToAst.ts","../src/plugins/valibot/shared/export.ts","../src/plugins/valibot/shared/numbers.ts","../src/plugins/valibot/shared/operation.ts","../src/plugins/valibot/shared/webhook.ts","../src/plugins/valibot/v1/toAst/unknown.ts","../src/plugins/valibot/v1/toAst/array.ts","../src/plugins/valibot/v1/toAst/boolean.ts","../src/plugins/valibot/v1/toAst/enum.ts","../src/plugins/valibot/v1/toAst/never.ts","../src/plugins/valibot/v1/toAst/null.ts","../src/plugins/valibot/v1/toAst/number.ts","../src/plugins/valibot/v1/toAst/object.ts","../src/plugins/valibot/v1/toAst/string.ts","../src/plugins/valibot/v1/toAst/tuple.ts","../src/plugins/valibot/v1/toAst/undefined.ts","../src/plugins/valibot/v1/toAst/void.ts","../src/plugins/valibot/v1/toAst/index.ts","../src/plugins/valibot/v1/plugin.ts","../src/plugins/valibot/plugin.ts","../src/plugins/valibot/config.ts","../src/plugins/zod/constants.ts","../src/plugins/zod/mini/api.ts","../src/plugins/zod/v3/api.ts","../src/plugins/zod/v4/api.ts","../src/plugins/zod/api.ts","../src/plugins/zod/shared/export.ts","../src/plugins/zod/shared/module.ts","../src/plugins/zod/shared/numbers.ts","../src/plugins/zod/shared/operation.ts","../src/plugins/zod/shared/webhook.ts","../src/plugins/zod/mini/toAst/unknown.ts","../src/plugins/zod/mini/toAst/array.ts","../src/plugins/zod/mini/toAst/boolean.ts","../src/plugins/zod/mini/toAst/enum.ts","../src/plugins/zod/mini/toAst/never.ts","../src/plugins/zod/mini/toAst/null.ts","../src/plugins/zod/mini/toAst/number.ts","../src/plugins/zod/mini/toAst/object.ts","../src/plugins/zod/mini/toAst/string.ts","../src/plugins/zod/mini/toAst/tuple.ts","../src/plugins/zod/mini/toAst/undefined.ts","../src/plugins/zod/mini/toAst/void.ts","../src/plugins/zod/mini/toAst/index.ts","../src/plugins/zod/mini/plugin.ts","../src/plugins/zod/v3/toAst/unknown.ts","../src/plugins/zod/v3/toAst/array.ts","../src/plugins/zod/v3/toAst/boolean.ts","../src/plugins/zod/v3/toAst/enum.ts","../src/plugins/zod/v3/toAst/never.ts","../src/plugins/zod/v3/toAst/null.ts","../src/plugins/zod/v3/toAst/number.ts","../src/plugins/zod/v3/toAst/object.ts","../src/plugins/zod/v3/toAst/string.ts","../src/plugins/zod/v3/toAst/tuple.ts","../src/plugins/zod/v3/toAst/undefined.ts","../src/plugins/zod/v3/toAst/void.ts","../src/plugins/zod/v3/toAst/index.ts","../src/plugins/zod/v3/plugin.ts","../src/plugins/zod/v4/toAst/unknown.ts","../src/plugins/zod/v4/toAst/array.ts","../src/plugins/zod/v4/toAst/boolean.ts","../src/plugins/zod/v4/toAst/enum.ts","../src/plugins/zod/v4/toAst/never.ts","../src/plugins/zod/v4/toAst/null.ts","../src/plugins/zod/v4/toAst/number.ts","../src/plugins/zod/v4/toAst/object.ts","../src/plugins/zod/v4/toAst/string.ts","../src/plugins/zod/v4/toAst/tuple.ts","../src/plugins/zod/v4/toAst/undefined.ts","../src/plugins/zod/v4/toAst/void.ts","../src/plugins/zod/v4/toAst/index.ts","../src/plugins/zod/v4/plugin.ts","../src/plugins/zod/plugin.ts","../src/plugins/zod/config.ts","../src/plugins/config.ts","../src/config/plugins.ts","../src/config/init.ts","../src/plugins/@hey-api/client-core/bundle/params.ts","../src/plugins/@hey-api/client-core/bundle/pathSerializer.ts","../src/plugins/@hey-api/client-fetch/bundle/utils.ts","../src/getSpec.ts","../src/utils/minHeap.ts","../src/graph/walk.ts","../src/ir/graph.ts","../src/plugins/shared/utils/instance.ts","../src/ir/context.ts","../src/openApi/shared/utils/operation.ts","../src/openApi/shared/utils/filter.ts","../src/openApi/shared/graph/meta.ts","../src/openApi/shared/utils/schema.ts","../src/openApi/shared/utils/schemaChildRelationships.ts","../src/openApi/shared/utils/transforms.ts","../src/openApi/shared/transforms/utils.ts","../src/openApi/shared/transforms/enums.ts","../src/openApi/shared/transforms/propertiesRequiredByDefault.ts","../src/openApi/shared/utils/deepEqual.ts","../src/openApi/shared/utils/graph.ts","../src/openApi/shared/transforms/readWrite.ts","../src/openApi/shared/transforms/index.ts","../src/openApi/shared/utils/parameter.ts","../src/openApi/shared/utils/validator.ts","../src/openApi/2.0.x/parser/filter.ts","../src/ir/mediaType.ts","../src/openApi/2.0.x/parser/mediaType.ts","../src/ir/pagination.ts","../src/openApi/shared/utils/discriminator.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/openApi/2.0.x/parser/server.ts","../src/openApi/2.0.x/parser/validate.ts","../src/openApi/2.0.x/parser/index.ts","../src/openApi/3.0.x/parser/filter.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/validate.ts","../src/openApi/3.0.x/parser/index.ts","../src/openApi/3.1.x/parser/filter.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/validate.ts","../src/openApi/3.1.x/parser/webhook.ts","../src/openApi/3.1.x/parser/index.ts","../src/openApi/index.ts"],"sourcesContent":["import fs from 'node:fs';\nimport path from 'node:path';\nimport { fileURLToPath } from 'node:url';\n\nimport ts from 'typescript';\n\nimport type { UserOutput } from '~/types/output';\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\n\nexport const findPackageJson = (): unknown | undefined => {\n let dir = __dirname;\n while (dir !== path.dirname(dir)) {\n const files = fs.readdirSync(dir);\n const candidates = files.filter((file) => file === 'package.json');\n\n if (candidates[0]) {\n const packageJsonPath = path.join(dir, candidates[0]);\n return JSON.parse(\n fs.readFileSync(packageJsonPath, {\n encoding: 'utf8',\n }),\n );\n }\n\n dir = path.dirname(dir);\n }\n\n return;\n};\n\nexport const loadPackageJson = () => {\n const packageJson = findPackageJson();\n\n const safePackage = {\n bugs: {\n url: '',\n },\n name: '',\n version: '',\n };\n\n if (packageJson && typeof packageJson === 'object') {\n if ('name' in packageJson && typeof packageJson.name === 'string') {\n safePackage.name = packageJson.name;\n }\n\n if ('version' in packageJson && typeof packageJson.version === 'string') {\n safePackage.version = packageJson.version;\n }\n\n if (\n 'bugs' in packageJson &&\n packageJson.bugs &&\n typeof packageJson.bugs === 'object'\n ) {\n if (\n 'url' in packageJson.bugs &&\n typeof packageJson.bugs.url === 'string'\n ) {\n safePackage.bugs.url = packageJson.bugs.url;\n if (safePackage.bugs.url && !safePackage.bugs.url.endsWith('/')) {\n safePackage.bugs.url += '/';\n }\n }\n }\n }\n\n return safePackage;\n};\n\nexport const findTsConfigPath = (\n tsConfigPath?: UserOutput['tsConfigPath'],\n): string | null => {\n if (tsConfigPath === null) {\n return null;\n }\n\n if (tsConfigPath) {\n const resolved = path.isAbsolute(tsConfigPath)\n ? tsConfigPath\n : path.resolve(__dirname, tsConfigPath);\n return fs.existsSync(resolved) ? resolved : null;\n }\n\n let dir = __dirname;\n while (dir !== path.dirname(dir)) {\n const files = fs.readdirSync(dir);\n const candidates = files\n .filter((file) => file.startsWith('tsconfig') && file.endsWith('.json'))\n .sort((file) => (file === 'tsconfig.json' ? -1 : 1));\n\n if (candidates[0]) {\n return path.join(dir, candidates[0]);\n }\n\n dir = path.dirname(dir);\n }\n\n return null;\n};\n\nexport const loadTsConfig = (\n configPath: string | null,\n): ts.ParsedCommandLine | null => {\n if (!configPath) {\n return null;\n }\n\n const raw = ts.readConfigFile(configPath, ts.sys.readFile);\n\n if (raw.error) {\n throw new Error(`Couldn't read tsconfig from path: ${configPath}`);\n }\n\n return ts.parseJsonConfigFileContent(\n raw.config,\n ts.sys,\n path.dirname(configPath),\n );\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","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport colors from 'ansi-colors';\n\nimport { loadPackageJson } from '~/generate/tsConfig';\nimport { ensureDirSync } from '~/generate/utils';\n\ntype IJobError = {\n error: Error;\n jobIndex: number;\n};\n\n/**\n * Represents a single configuration error.\n *\n * Used for reporting issues with a specific config instance.\n */\nexport class ConfigError extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'ConfigError';\n }\n}\n\n/**\n * Aggregates multiple config errors with their job indices for reporting.\n */\nexport class ConfigValidationError extends Error {\n readonly errors: ReadonlyArray<IJobError>;\n\n constructor(errors: Array<IJobError>) {\n super(\n `Found ${errors.length} configuration ${errors.length === 1 ? 'error' : 'errors'}.`,\n );\n this.name = 'ConfigValidationError';\n this.errors = errors;\n }\n}\n\n/**\n * Represents a runtime error originating from a specific job.\n *\n * Used for reporting job-level failures that are not config validation errors.\n */\nexport class JobError extends Error {\n readonly originalError: IJobError;\n\n constructor(message: string, error: IJobError) {\n super(message);\n this.name = 'JobError';\n this.originalError = error;\n }\n}\n\nexport class HeyApiError extends Error {\n args: ReadonlyArray<unknown>;\n event: string;\n pluginName: string;\n\n constructor({\n args,\n error,\n event,\n name,\n pluginName,\n }: {\n args: unknown[];\n error: Error;\n event: string;\n name: string;\n pluginName: string;\n }) {\n const message = error instanceof Error ? error.message : 'Unknown error';\n super(message);\n\n this.args = args;\n this.cause = error.cause;\n this.event = event;\n this.name = name || error.name;\n this.pluginName = pluginName;\n this.stack = error.stack;\n }\n}\n\nexport const logCrashReport = (\n error: unknown,\n logsDir: string,\n): string | undefined => {\n if (error instanceof ConfigError || error instanceof ConfigValidationError) {\n return;\n }\n\n if (error instanceof JobError) {\n error = error.originalError.error;\n }\n\n const logName = `openapi-ts-error-${Date.now()}.log`;\n const fullDir = path.resolve(process.cwd(), logsDir);\n ensureDirSync(fullDir);\n const logPath = path.resolve(fullDir, logName);\n\n let logContent = `[${new Date().toISOString()}] `;\n\n if (error instanceof HeyApiError) {\n logContent += `${error.name} during event \"${error.event}\"\\n`;\n if (error.pluginName) {\n logContent += `Plugin: ${error.pluginName}\\n`;\n }\n logContent += `Arguments: ${JSON.stringify(error.args, null, 2)}\\n\\n`;\n }\n\n const message = error instanceof Error ? error.message : String(error);\n const stack = error instanceof Error ? error.stack : undefined;\n\n logContent += `Error: ${message}\\n`;\n if (stack) {\n logContent += `Stack:\\n${stack}\\n`;\n }\n\n fs.writeFileSync(logPath, logContent);\n\n return logPath;\n};\n\nexport const openGitHubIssueWithCrashReport = async (error: unknown) => {\n const packageJson = loadPackageJson();\n if (!packageJson.bugs.url) return;\n\n if (error instanceof JobError) {\n error = error.originalError.error;\n }\n\n let body = '';\n\n if (error instanceof HeyApiError) {\n if (error.pluginName) {\n body += `**Plugin**: \\`${error.pluginName}\\`\\n`;\n }\n body += `**Event**: \\`${error.event}\\`\\n`;\n body += `**Arguments**:\\n\\`\\`\\`ts\\n${JSON.stringify(error.args, null, 2)}\\n\\`\\`\\`\\n\\n`;\n }\n\n const message = error instanceof Error ? error.message : String(error);\n const stack = error instanceof Error ? error.stack : undefined;\n\n body += `**Error**: \\`${message}\\`\\n`;\n if (stack) {\n body += `\\n**Stack Trace**:\\n\\`\\`\\`\\n${stack}\\n\\`\\`\\``;\n }\n\n const search = new URLSearchParams({\n body,\n labels: 'bug 🔥',\n title: 'Crash Report',\n });\n const url = `${packageJson.bugs.url}new?${search.toString()}`;\n const open = (await import('open')).default;\n await open(url);\n};\n\nexport const printCrashReport = ({\n error,\n logPath,\n}: {\n error: unknown;\n logPath: string | undefined;\n}) => {\n if (error instanceof ConfigValidationError && error.errors.length) {\n const groupByJob = new Map<number, Array<Error>>();\n for (const { error: err, jobIndex } of error.errors) {\n if (!groupByJob.has(jobIndex)) {\n groupByJob.set(jobIndex, []);\n }\n groupByJob.get(jobIndex)!.push(err);\n }\n\n for (const [jobIndex, errors] of groupByJob.entries()) {\n const jobPrefix = colors.gray(`[Job ${jobIndex + 1}] `);\n const count = errors.length;\n const baseString = colors.red(\n `Found ${count} configuration ${count === 1 ? 'error' : 'errors'}:`,\n );\n console.error(`${jobPrefix}❗️ ${baseString}`);\n errors.forEach((err, index) => {\n const itemPrefixStr = ` [${index + 1}] `;\n const itemPrefix = colors.red(itemPrefixStr);\n console.error(`${jobPrefix}${itemPrefix}${colors.white(err.message)}`);\n });\n }\n } else {\n let jobPrefix = colors.gray('[root] ');\n if (error instanceof JobError) {\n jobPrefix = colors.gray(`[Job ${error.originalError.jobIndex + 1}] `);\n error = error.originalError.error;\n }\n\n const baseString = colors.red('Failed with the message:');\n console.error(`${jobPrefix}❌ ${baseString}`);\n const itemPrefixStr = ` `;\n const itemPrefix = colors.red(itemPrefixStr);\n console.error(\n `${jobPrefix}${itemPrefix}${typeof error === 'string' ? error : error instanceof Error ? error.message : 'Unknown error'}`,\n );\n }\n\n if (logPath) {\n const jobPrefix = colors.gray('[root] ');\n console.error(\n `${jobPrefix}${colors.cyan('📄 Crash log saved to:')} ${colors.gray(logPath)}`,\n );\n }\n};\n\nexport const shouldReportCrash = async ({\n error,\n isInteractive,\n}: {\n error: unknown;\n isInteractive: boolean | undefined;\n}): Promise<boolean> => {\n if (\n !isInteractive ||\n error instanceof ConfigError ||\n error instanceof ConfigValidationError\n ) {\n return false;\n }\n\n return new Promise((resolve) => {\n const jobPrefix = colors.gray('[root] ');\n console.log(\n `${jobPrefix}${colors.yellow('📢 Open a GitHub issue with crash details? (y/N):')}`,\n );\n process.stdin.setEncoding('utf8');\n process.stdin.once('data', (data: string) => {\n resolve(data.trim().toLowerCase() === 'y');\n });\n });\n};\n","import type { Input } from '~/types/input';\n\n// Regular expression to match Hey API Registry input formats:\n// - {organization}/{project}?{queryParams}\nconst registryRegExp = /^([\\w-]+)\\/([\\w-]+)(?:\\?([\\w=&.-]*))?$/;\n\nexport const heyApiRegistryBaseUrl = 'https://get.heyapi.dev';\n\n/**\n * Creates a full Hey API Registry URL.\n *\n * @param organization - Hey API organization slug\n * @param project - Hey API project slug\n * @param queryParams - Optional query parameters\n * @returns The full Hey API registry URL.\n */\nexport const getRegistryUrl = (\n organization: string,\n project: string,\n queryParams?: string,\n): string =>\n `${heyApiRegistryBaseUrl}/${organization}/${project}${queryParams ? `?${queryParams}` : ''}`;\n\nexport interface Parsed {\n organization: string;\n project: string;\n queryParams?: string;\n}\n\n/**\n * Parses a Hey API input string and extracts components.\n *\n * @param input - Hey API configuration input\n * @returns Parsed Hey API input components\n * @throws Error if the input format is invalid\n */\nexport const parseShorthand = (\n input: Input & {\n path: string;\n },\n): Parsed => {\n let organization = input.organization;\n let project = input.project;\n let queryParams: string | undefined;\n\n if (input.path) {\n const match = input.path.match(registryRegExp);\n\n if (!match) {\n throw new Error(\n `Invalid Hey API shorthand format. Expected \"organization/project?queryParams\" or \"organization/project\", received: ${input.path}`,\n );\n }\n\n organization = match[1];\n project = match[2];\n queryParams = match[3];\n }\n\n if (!organization) {\n throw new Error('The Hey API organization cannot be empty.');\n }\n\n if (!project) {\n throw new Error('The Hey API project cannot be empty.');\n }\n\n const result: Parsed = {\n organization,\n project,\n queryParams,\n };\n\n return result;\n};\n\n/**\n * Transforms a Hey API shorthand string to the corresponding API URL.\n *\n * @param input - Hey API configuration input\n * @returns The Hey API Registry URL\n */\nexport const inputToHeyApiPath = (\n input: Input & {\n path: string;\n },\n): Partial<Input> => {\n const parsed = parseShorthand(input);\n return {\n path: getRegistryUrl(\n parsed.organization,\n parsed.project,\n parsed.queryParams,\n ),\n registry: 'hey-api',\n };\n};\n","import type { Input } from '~/types/input';\n\n// Regular expression to match ReadMe API Registry input formats:\n// - @{organization}/{project}#{uuid}\n// - {uuid}\nconst registryRegExp = /^(@([\\w-]+)\\/([\\w\\-.]+)#)?([\\w-]+)$/;\n\n/**\n * Creates a full ReadMe API Registry URL.\n *\n * @param uuid - ReadMe UUID\n * @returns The full ReadMe API registry URL.\n */\nexport const getRegistryUrl = (uuid: string): string =>\n `https://dash.readme.com/api/v1/api-registry/${uuid}`;\n\nexport interface Parsed {\n organization?: string;\n project?: string;\n uuid: string;\n}\n\nconst namespace = 'readme';\n\n/**\n * Parses a ReadMe input string and extracts components.\n *\n * @param shorthand - ReadMe format string (@org/project#uuid or uuid)\n * @returns Parsed ReadMe input components\n * @throws Error if the input format is invalid\n */\nexport const parseShorthand = (shorthand: string): Parsed => {\n const match = shorthand.match(registryRegExp);\n\n if (!match) {\n throw new Error(\n `Invalid ReadMe shorthand format. Expected \"${namespace}:@organization/project#uuid\" or \"${namespace}:uuid\", received: ${namespace}:${shorthand}`,\n );\n }\n\n const [, , organization, project, uuid] = match;\n\n if (!uuid) {\n