diff --git a/packages/fern-docs/search-server/src/turbopuffer/records/create-markdown-records.ts b/packages/fern-docs/search-server/src/turbopuffer/records/create-markdown-records.ts index 919b4f27ed..9e923520ad 100644 --- a/packages/fern-docs/search-server/src/turbopuffer/records/create-markdown-records.ts +++ b/packages/fern-docs/search-server/src/turbopuffer/records/create-markdown-records.ts @@ -5,12 +5,12 @@ import { markdownToString, splitMarkdownIntoSections, } from "@fern-docs/mdx"; +import { createHash } from "crypto"; import { compact, flatten } from "es-toolkit/array"; import { decode } from "html-entities"; import { maybePrepareMdxContent } from "../../utils/prepare-mdx-content"; import { FernTurbopufferRecordWithoutVector } from "../types"; import { BaseRecord } from "./create-base-record"; -import { createHash } from "crypto"; interface CreateMarkdownRecordsOptions { base: BaseRecord; @@ -181,7 +181,9 @@ export async function createMarkdownRecords({ return chunked_content.map((chunk, i) => { const record: FernTurbopufferRecordWithoutVector = { ...base_markdown_record, - id: createHash("sha256").update(`${base.id}-${heading.id}-chunk:${i}`).digest("hex"), + id: createHash("sha256") + .update(`${base.id}-${heading.id}-chunk:${i}`) + .digest("hex"), attributes: { ...base_markdown_record.attributes, ...hierarchy, diff --git a/packages/parsers/package.json b/packages/parsers/package.json index 2d28dcc27f..e56050aafb 100644 --- a/packages/parsers/package.json +++ b/packages/parsers/package.json @@ -1,6 +1,6 @@ { "name": "@fern-api/docs-parsers", - "version": "0.0.55", + "version": "0.0.56", "repository": { "type": "git", "url": "https://github.com/fern-api/fern-platform.git", diff --git a/packages/parsers/src/openapi/3.1/OpenApiDocumentConverter.node.ts b/packages/parsers/src/openapi/3.1/OpenApiDocumentConverter.node.ts index 77343d7719..605141d676 100644 --- a/packages/parsers/src/openapi/3.1/OpenApiDocumentConverter.node.ts +++ b/packages/parsers/src/openapi/3.1/OpenApiDocumentConverter.node.ts @@ -143,10 +143,7 @@ export class OpenApiDocumentConverterNode extends BaseOpenApiV3_1ConverterNode< FernRegistry.api.latest.SubpackageMetadata > = computeSubpackages({ endpoints, webhookEndpoints }); - const types = { - ...this.components?.convert(), - ...this.context.generatedTypes, - }; + const { types, auths } = this.components?.convert() ?? {}; return { id: FernRegistry.ApiDefinitionId(apiDefinitionId), @@ -159,13 +156,14 @@ export class OpenApiDocumentConverterNode extends BaseOpenApiV3_1ConverterNode< }, types: types != null - ? Object.fromEntries( - Object.entries(types).map(([id, type]) => [id, type]) - ) + ? { + ...types, + ...this.context.generatedTypes, + } : {}, // This is not necessary and will be removed subpackages, - auths: this.auth?.convert() ?? {}, + auths: { ...auths, ...(this.auth?.convert() ?? {}) }, globalHeaders: this.globalHeaders?.convert(), }; } diff --git a/packages/parsers/src/openapi/3.1/auth/OAuth2SecuritySchemeConverter.node.ts b/packages/parsers/src/openapi/3.1/auth/OAuth2SecuritySchemeConverter.node.ts index 6b4ba9ee34..20683be890 100644 --- a/packages/parsers/src/openapi/3.1/auth/OAuth2SecuritySchemeConverter.node.ts +++ b/packages/parsers/src/openapi/3.1/auth/OAuth2SecuritySchemeConverter.node.ts @@ -70,7 +70,10 @@ export class OAuth2SecuritySchemeConverterNode extends BaseOpenApiV3_1ConverterN convert(): FernRegistry.api.latest.AuthScheme | undefined { const accessTokenLocator = this.accessTokenLocatorNode?.convert(); if (accessTokenLocator == null || this.authorizationUrl == null) { - return undefined; + return { + type: "bearerAuth", + tokenName: undefined, + }; } // TODO: revisit this -- this is not correct diff --git a/packages/parsers/src/openapi/3.1/auth/__test__/OAuth2SecuritySchemeConverter.node.test.ts b/packages/parsers/src/openapi/3.1/auth/__test__/OAuth2SecuritySchemeConverter.node.test.ts index 5a3ba0392f..fb33a7083c 100644 --- a/packages/parsers/src/openapi/3.1/auth/__test__/OAuth2SecuritySchemeConverter.node.test.ts +++ b/packages/parsers/src/openapi/3.1/auth/__test__/OAuth2SecuritySchemeConverter.node.test.ts @@ -61,7 +61,10 @@ describe("OAuth2SecuritySchemeConverterNode", () => { pathId: "test", }); - expect(node.convert()).toBeUndefined(); + expect(node.convert()).toEqual({ + type: "bearerAuth", + tokenName: undefined, + }); expect(mockContext.errors.error).toHaveBeenCalledWith({ message: "Expected 'tokenUrl' property to be specified", path: ["test"], @@ -86,7 +89,10 @@ describe("OAuth2SecuritySchemeConverterNode", () => { pathId: "test", }); - expect(node.convert()).toBeUndefined(); + expect(node.convert()).toEqual({ + type: "bearerAuth", + tokenName: undefined, + }); }); it("should handle missing client credentials flow", () => { @@ -102,6 +108,9 @@ describe("OAuth2SecuritySchemeConverterNode", () => { pathId: "test", }); - expect(node.convert()).toBeUndefined(); + expect(node.convert()).toEqual({ + type: "bearerAuth", + tokenName: undefined, + }); }); }); diff --git a/packages/parsers/src/openapi/3.1/auth/__test__/SecuritySchemeConverter.node.test.ts b/packages/parsers/src/openapi/3.1/auth/__test__/SecuritySchemeConverter.node.test.ts index 4734754cc5..648287d7a1 100644 --- a/packages/parsers/src/openapi/3.1/auth/__test__/SecuritySchemeConverter.node.test.ts +++ b/packages/parsers/src/openapi/3.1/auth/__test__/SecuritySchemeConverter.node.test.ts @@ -125,6 +125,26 @@ describe("SecuritySchemeConverterNode", () => { tokenName: "TOKEN_VAR", }); }); + + it("should parse bearer auth with no extension", () => { + const input = { + type: "http", + scheme: "bearer", + } as OpenAPIV3_1.HttpSecurityScheme; + + const node = new SecuritySchemeConverterNode({ + input, + context: mockContext, + accessPath: [], + pathId: "test", + }); + + const converted = node.convert(); + expect(converted).toEqual({ + type: "bearerAuth", + tokenName: undefined, + }); + }); }); describe("header auth", () => { diff --git a/packages/parsers/src/openapi/3.1/schemas/ComponentsConverter.node.ts b/packages/parsers/src/openapi/3.1/schemas/ComponentsConverter.node.ts index e79a596ffa..128d218f97 100644 --- a/packages/parsers/src/openapi/3.1/schemas/ComponentsConverter.node.ts +++ b/packages/parsers/src/openapi/3.1/schemas/ComponentsConverter.node.ts @@ -6,14 +6,33 @@ import { BaseOpenApiV3_1ConverterNode, BaseOpenApiV3_1ConverterNodeConstructorArgs, } from "../../BaseOpenApiV3_1Converter.node"; +import { resolveSecurityScheme } from "../../utils/3.1/resolveSecurityScheme"; import { maybeSingleValueToArray } from "../../utils/maybeSingleValueToArray"; +import { SecuritySchemeConverterNode } from "../auth/SecuritySchemeConverter.node"; +import { isReferenceObject } from "../guards/isReferenceObject"; import { SchemaConverterNode } from "./SchemaConverter.node"; +export function hasOpenApiLikeSecurityScheme( + input: OpenAPIV3_1.ComponentsObject | Components +): input is OpenAPIV3_1.ComponentsObject { + return ( + typeof input.securitySchemes === "object" && input.securitySchemes != null + ); +} + +declare namespace ComponentsConverterNode { + interface Output { + types: FernRegistry.api.latest.ApiDefinition["types"]; + auths: FernRegistry.api.latest.ApiDefinition["auths"]; + } +} + export class ComponentsConverterNode extends BaseOpenApiV3_1ConverterNode< OpenAPIV3_1.ComponentsObject | Components, - FernRegistry.api.latest.ApiDefinition["types"] + ComponentsConverterNode.Output > { typeSchemas: Record | undefined; + securitySchemes: Record | undefined; constructor( args: BaseOpenApiV3_1ConverterNodeConstructorArgs< @@ -41,34 +60,79 @@ export class ComponentsConverterNode extends BaseOpenApiV3_1ConverterNode< }) ); } + if ( + hasOpenApiLikeSecurityScheme(this.input) && + this.input.securitySchemes != null + ) { + this.securitySchemes = Object.fromEntries( + Object.entries(this.input.securitySchemes ?? {}) + .map(([key, securityScheme], index) => { + let resolvedScheme: OpenAPIV3_1.SecuritySchemeObject | undefined; + if (isReferenceObject(securityScheme)) { + resolvedScheme = resolveSecurityScheme( + securityScheme.$ref, + this.context.document + ); + } else { + resolvedScheme = securityScheme; + } + if (resolvedScheme == null) { + return undefined; + } + return [ + key, + new SecuritySchemeConverterNode({ + input: resolvedScheme, + context: this.context, + accessPath: this.accessPath, + pathId: ["securitySchemes", `${index}`], + }), + ]; + }) + .filter(isNonNullish) + ); + } } - convert(): FernRegistry.api.latest.ApiDefinition["types"] | undefined { + convert(): ComponentsConverterNode.Output | undefined { if (this.typeSchemas == null) { return undefined; } - return Object.fromEntries( - Object.entries(this.typeSchemas) - .map(([key, value]) => { - const name = value.name ?? key; - const maybeShapes = maybeSingleValueToArray(value.convert()); + return { + auths: Object.fromEntries( + Object.entries(this.securitySchemes ?? {}) + .map(([key, value]) => { + const maybeAuth = value.convert(); + if (maybeAuth == null) { + return undefined; + } + return [FernRegistry.api.latest.AuthSchemeId(key), maybeAuth]; + }) + .filter(isNonNullish) + ), + types: Object.fromEntries( + Object.entries(this.typeSchemas) + .map(([key, value]) => { + const name = value.name ?? key; + const maybeShapes = maybeSingleValueToArray(value.convert()); - if (maybeShapes == null) { - return [key, undefined]; - } + if (maybeShapes == null) { + return [key, undefined]; + } - return [ - FernRegistry.TypeId(key), - { - name, - shape: maybeShapes[0], - description: value.description, - availability: undefined, - }, - ]; - }) - .filter(([_, value]) => isNonNullish(value)) - ); + return [ + FernRegistry.TypeId(key), + { + name, + shape: maybeShapes[0], + description: value.description, + availability: undefined, + }, + ]; + }) + .filter(([_, value]) => isNonNullish(value)) + ), + }; } } diff --git a/packages/parsers/src/openapi/3.1/schemas/SchemaConverter.node.ts b/packages/parsers/src/openapi/3.1/schemas/SchemaConverter.node.ts index a65d243877..5316568750 100644 --- a/packages/parsers/src/openapi/3.1/schemas/SchemaConverter.node.ts +++ b/packages/parsers/src/openapi/3.1/schemas/SchemaConverter.node.ts @@ -288,10 +288,16 @@ export class SchemaConverterNode extends BaseOpenApiV3_1ConverterNodeWithTrackin accessPath: this.accessPath, pathId: this.pathId, }); - this.context.errors.error({ - message: "Expected type declaration. Received: null", - path: this.accessPath, - }); + if ( + !isReferenceObject(this.input) && + ((!isArraySchema(this.input) && this.input == null) || + (isArraySchema(this.input) && this.input.items == null)) + ) { + this.context.errors.error({ + message: "Expected type declaration. Received: null", + path: this.accessPath, + }); + } } } diff --git a/packages/parsers/src/openapi/3.1/schemas/__test__/ArrayConverter.node.test.ts b/packages/parsers/src/openapi/3.1/schemas/__test__/ArrayConverter.node.test.ts index 159ef2625b..cff4fc6c55 100644 --- a/packages/parsers/src/openapi/3.1/schemas/__test__/ArrayConverter.node.test.ts +++ b/packages/parsers/src/openapi/3.1/schemas/__test__/ArrayConverter.node.test.ts @@ -78,7 +78,7 @@ describe("ArrayConverterNode", () => { ]); }); - it("should return undefined if inner schema conversion fails", () => { + it("should return unknown if inner schema conversion fails", () => { const input: ArrayConverterNode.Input = { type: "array", items: { type: "invalid" as OpenAPIV3_1.NonArraySchemaObjectType }, @@ -91,10 +91,6 @@ describe("ArrayConverterNode", () => { seenSchemas: new Set(), }); const converted = node.convert(); - expect(mockContext.errors.error).toHaveBeenCalledWith({ - message: "Expected type declaration. Received: null", - path: ["test", "items"], - }); expect(converted).toEqual([ { type: "alias", diff --git a/packages/parsers/src/openapi/3.1/schemas/__test__/ComponentsConverter.node.test.ts b/packages/parsers/src/openapi/3.1/schemas/__test__/ComponentsConverter.node.test.ts index d38f074e3f..5306c6c29d 100644 --- a/packages/parsers/src/openapi/3.1/schemas/__test__/ComponentsConverter.node.test.ts +++ b/packages/parsers/src/openapi/3.1/schemas/__test__/ComponentsConverter.node.test.ts @@ -72,10 +72,10 @@ describe("ComponentsConverterNode", () => { accessPath: [], pathId: "test", }); - const result = converter.convert() ?? {}; + const { types } = converter.convert() ?? {}; - expect(result).toBeDefined(); - const firstKey = FernRegistry.TypeId(Object.keys(result)[0] ?? ""); - expect(result[firstKey]?.name).toBe("User"); + expect(types).toBeDefined(); + const firstKey = FernRegistry.TypeId(Object.keys(types)[0] ?? ""); + expect(types[firstKey]?.name).toBe("User"); }); }); diff --git a/packages/parsers/src/openapi/__test__/__snapshots__/deeptune.json b/packages/parsers/src/openapi/__test__/__snapshots__/deeptune.json index 3c65c99479..b6eb6b3d9c 100644 --- a/packages/parsers/src/openapi/__test__/__snapshots__/deeptune.json +++ b/packages/parsers/src/openapi/__test__/__snapshots__/deeptune.json @@ -1067,5 +1067,11 @@ "displayName": "voices" } }, - "auths": {} + "auths": { + "apiKeyAuth": { + "type": "header", + "nameOverride": "apiKey", + "headerWireValue": "X_API_KEY" + } + } } \ No newline at end of file diff --git a/packages/parsers/src/openapi/__test__/__snapshots__/pathing/errors/oauth.txt b/packages/parsers/src/openapi/__test__/__snapshots__/pathing/errors/oauth.txt new file mode 100644 index 0000000000..458d0933d2 --- /dev/null +++ b/packages/parsers/src/openapi/__test__/__snapshots__/pathing/errors/oauth.txt @@ -0,0 +1,10 @@ +[ + { + "message": "Expected 'x-fern-access-token-locator' property to be specified", + "path": [ + "components", + "securitySchemes", + "0", + ], + }, +] \ No newline at end of file diff --git a/packages/parsers/src/openapi/__test__/__snapshots__/pathing/errors/only-include-referenced-schemas.txt b/packages/parsers/src/openapi/__test__/__snapshots__/pathing/errors/only-include-referenced-schemas.txt index 3acd318616..7f83001f73 100644 --- a/packages/parsers/src/openapi/__test__/__snapshots__/pathing/errors/only-include-referenced-schemas.txt +++ b/packages/parsers/src/openapi/__test__/__snapshots__/pathing/errors/only-include-referenced-schemas.txt @@ -17264,286 +17264,6 @@ "enum[0]", ], }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/companies", - "get", - "responses", - "content", - "application/json", - "type", - "company_list", - "properties", - "data", - "items", - "company", - "properties", - "tags", - "items", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/companies", - "post", - "responses", - "content", - "application/json", - "type", - "company", - "properties", - "tags", - "items", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/companies", - "post", - "responses", - "content", - "application/json", - "type", - "company", - "properties", - "tags", - "items", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/companies/{id}", - "get", - "responses", - "content", - "application/json", - "type", - "company", - "properties", - "tags", - "items", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/companies/{id}", - "put", - "responses", - "content", - "application/json", - "type", - "company", - "properties", - "tags", - "items", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/companies/list", - "post", - "responses", - "content", - "application/json", - "type", - "company_list", - "properties", - "data", - "items", - "company", - "properties", - "tags", - "items", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/companies/scroll", - "get", - "responses", - "content", - "application/json", - "type", - "company_scroll", - "properties", - "data", - "items", - "company", - "properties", - "tags", - "items", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/contacts/{id}/companies", - "get", - "responses", - "content", - "application/json", - "type", - "contact_attached_companies", - "properties", - "companies", - "items", - "company", - "properties", - "tags", - "items", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/contacts/{id}/companies", - "post", - "responses", - "content", - "application/json", - "type", - "company", - "properties", - "tags", - "items", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/contacts/{id}/companies", - "post", - "responses", - "content", - "application/json", - "type", - "company", - "properties", - "tags", - "items", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/contacts/{id}/companies", - "post", - "responses", - "content", - "application/json", - "type", - "company", - "properties", - "tags", - "items", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/contacts/{contact_id}/companies/{id}", - "delete", - "responses", - "content", - "application/json", - "type", - "company", - "properties", - "tags", - "items", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/contacts", - "post", - "requestBody", - "content", - "schema", - "create_contact_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/contacts", - "post", - "requestBody", - "content", - "schema", - "create_contact_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/contacts", - "post", - "requestBody", - "content", - "schema", - "create_contact_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/contacts", - "post", - "requestBody", - "content", - "schema", - "create_contact_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/contacts", - "post", - "requestBody", - "content", - "schema", - "create_contact_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/contacts", - "post", - "requestBody", - "content", - "schema", - "create_contact_request", - ], - }, { "message": "Expected enum values to be strings. Received null", "path": [ @@ -19004,327 +18724,87 @@ ], }, { - "message": "Expected type declaration. Received: null", + "message": "Expected schema for JSON response body. Received null", "path": [ "paths", - "/events", + "/phone_call_redirects", "post", - "requestBody", + "responses", + "errors", "content", - "schema", - "create_data_event_request", + "application/json", ], }, { - "message": "Expected type declaration. Received: null", + "message": "Expected schema for JSON response body. Received null", "path": [ "paths", - "/events", + "/phone_call_redirects", "post", - "requestBody", + "responses", + "errors", "content", - "schema", - "create_data_event_request", + "application/json", ], }, { - "message": "Expected type declaration. Received: null", + "message": "Error converting node. Please contact support if the error persists", "path": [ "paths", - "/events", + "/tickets", "post", "requestBody", "content", "schema", - "create_data_event_request", + "create_ticket_request", + "properties", + "ticket_attributes", + "ticket_request_custom_attributes", + "additionalProperties", + "items", ], }, { - "message": "Expected type declaration. Received: null", + "message": "Expected 'items' property to be specified", "path": [ "paths", - "/events", + "/tickets", "post", "requestBody", "content", "schema", - "create_data_event_request", + "create_ticket_request", + "properties", + "ticket_attributes", + "ticket_request_custom_attributes", + "additionalProperties", ], }, { - "message": "Expected type declaration. Received: null", + "message": "Error converting node. Please contact support if the error persists", "path": [ "paths", - "/events", + "/tickets", "post", - "requestBody", + "responses", "content", - "schema", - "create_data_event_request", + "application/json", + "type", + "ticket", + "properties", + "ticket_attributes", + "ticket_custom_attributes", + "additionalProperties", + "items", ], }, { - "message": "Expected type declaration. Received: null", + "message": "Expected 'items' property to be specified", "path": [ "paths", - "/events", + "/tickets", "post", - "requestBody", - "content", - "schema", - "create_data_event_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/messages", - "post", - "requestBody", - "content", - "schema", - "create_message_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/messages", - "post", - "requestBody", - "content", - "schema", - "create_message_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/messages", - "post", - "requestBody", - "content", - "schema", - "create_message_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/messages", - "post", - "requestBody", - "content", - "schema", - "create_message_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/messages", - "post", - "requestBody", - "content", - "schema", - "create_message_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/messages", - "post", - "requestBody", - "content", - "schema", - "create_message_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/messages", - "post", - "requestBody", - "content", - "schema", - "create_message_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/messages", - "post", - "requestBody", - "content", - "schema", - "create_message_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/messages", - "post", - "requestBody", - "content", - "schema", - "create_message_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/messages", - "post", - "requestBody", - "content", - "schema", - "create_message_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/messages", - "post", - "requestBody", - "content", - "schema", - "create_message_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/messages", - "post", - "requestBody", - "content", - "schema", - "create_message_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/messages", - "post", - "requestBody", - "content", - "schema", - "create_message_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/messages", - "post", - "requestBody", - "content", - "schema", - "create_message_request", - ], - }, - { - "message": "Expected schema for JSON response body. Received null", - "path": [ - "paths", - "/phone_call_redirects", - "post", - "responses", - "errors", - "content", - "application/json", - ], - }, - { - "message": "Expected schema for JSON response body. Received null", - "path": [ - "paths", - "/phone_call_redirects", - "post", - "responses", - "errors", - "content", - "application/json", - ], - }, - { - "message": "Error converting node. Please contact support if the error persists", - "path": [ - "paths", - "/tickets", - "post", - "requestBody", - "content", - "schema", - "create_ticket_request", - "properties", - "ticket_attributes", - "ticket_request_custom_attributes", - "additionalProperties", - "items", - ], - }, - { - "message": "Expected 'items' property to be specified", - "path": [ - "paths", - "/tickets", - "post", - "requestBody", - "content", - "schema", - "create_ticket_request", - "properties", - "ticket_attributes", - "ticket_request_custom_attributes", - "additionalProperties", - ], - }, - { - "message": "Error converting node. Please contact support if the error persists", - "path": [ - "paths", - "/tickets", - "post", - "responses", - "content", - "application/json", - "type", - "ticket", - "properties", - "ticket_attributes", - "ticket_custom_attributes", - "additionalProperties", - "items", - ], - }, - { - "message": "Expected 'items' property to be specified", - "path": [ - "paths", - "/tickets", - "post", - "responses", + "responses", "content", "application/json", "type", @@ -19672,278 +19152,6 @@ "enum[3]", ], }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/visitors", - "get", - "responses", - "content", - "application/json", - "type", - "visitor", - "properties", - "companies", - "items", - "company", - "properties", - "tags", - "items", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/visitors", - "put", - "requestBody", - "content", - "schema", - "update_visitor_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/visitors", - "put", - "requestBody", - "content", - "schema", - "update_visitor_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/visitors", - "put", - "requestBody", - "content", - "schema", - "update_visitor_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/visitors", - "put", - "requestBody", - "content", - "schema", - "update_visitor_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/visitors", - "put", - "responses", - "content", - "application/json", - "type", - "visitor", - "properties", - "companies", - "items", - "company", - "properties", - "tags", - "items", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/visitors", - "put", - "requestBody", - "content", - "schema", - "update_visitor_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/visitors", - "put", - "requestBody", - "content", - "schema", - "update_visitor_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/visitors", - "put", - "responses", - "content", - "application/json", - "type", - "visitor", - "properties", - "companies", - "items", - "company", - "properties", - "tags", - "items", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/visitors/convert", - "post", - "requestBody", - "content", - "schema", - "convert_visitor_request", - "properties", - "user", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/visitors/convert", - "post", - "requestBody", - "content", - "schema", - "convert_visitor_request", - "properties", - "user", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/visitors/convert", - "post", - "requestBody", - "content", - "schema", - "convert_visitor_request", - "properties", - "visitor", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/visitors/convert", - "post", - "requestBody", - "content", - "schema", - "convert_visitor_request", - "properties", - "visitor", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/visitors/convert", - "post", - "requestBody", - "content", - "schema", - "convert_visitor_request", - "properties", - "visitor", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/visitors/convert", - "post", - "requestBody", - "content", - "schema", - "convert_visitor_request", - "properties", - "user", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/visitors/convert", - "post", - "requestBody", - "content", - "schema", - "convert_visitor_request", - "properties", - "user", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/visitors/convert", - "post", - "requestBody", - "content", - "schema", - "convert_visitor_request", - "properties", - "visitor", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/visitors/convert", - "post", - "requestBody", - "content", - "schema", - "convert_visitor_request", - "properties", - "visitor", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/visitors/convert", - "post", - "requestBody", - "content", - "schema", - "convert_visitor_request", - "properties", - "visitor", - ], - }, { "message": "Expected enum values to be strings. Received null", "path": [ @@ -19984,117 +19192,6 @@ "enum[0]", ], }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "components", - "company", - "properties", - "tags", - "items", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "components", - "convert_visitor_request", - "properties", - "user", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "components", - "convert_visitor_request", - "properties", - "user", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "components", - "convert_visitor_request", - "properties", - "visitor", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "components", - "convert_visitor_request", - "properties", - "visitor", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "components", - "convert_visitor_request", - "properties", - "visitor", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "components", - "create_contact_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "components", - "create_contact_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "components", - "create_contact_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "components", - "create_data_event_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "components", - "create_data_event_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "components", - "create_data_event_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "components", - "create_message_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "components", - "create_message_request", - ], - }, { "message": "Expected enum values to be strings. Received null", "path": [ @@ -20159,18 +19256,4 @@ "additionalProperties", ], }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "components", - "update_visitor_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "components", - "update_visitor_request", - ], - }, ] \ No newline at end of file diff --git a/packages/parsers/src/openapi/__test__/__snapshots__/pathing/errors/openapi-filter.txt b/packages/parsers/src/openapi/__test__/__snapshots__/pathing/errors/openapi-filter.txt index 3acd318616..7f83001f73 100644 --- a/packages/parsers/src/openapi/__test__/__snapshots__/pathing/errors/openapi-filter.txt +++ b/packages/parsers/src/openapi/__test__/__snapshots__/pathing/errors/openapi-filter.txt @@ -17264,286 +17264,6 @@ "enum[0]", ], }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/companies", - "get", - "responses", - "content", - "application/json", - "type", - "company_list", - "properties", - "data", - "items", - "company", - "properties", - "tags", - "items", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/companies", - "post", - "responses", - "content", - "application/json", - "type", - "company", - "properties", - "tags", - "items", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/companies", - "post", - "responses", - "content", - "application/json", - "type", - "company", - "properties", - "tags", - "items", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/companies/{id}", - "get", - "responses", - "content", - "application/json", - "type", - "company", - "properties", - "tags", - "items", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/companies/{id}", - "put", - "responses", - "content", - "application/json", - "type", - "company", - "properties", - "tags", - "items", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/companies/list", - "post", - "responses", - "content", - "application/json", - "type", - "company_list", - "properties", - "data", - "items", - "company", - "properties", - "tags", - "items", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/companies/scroll", - "get", - "responses", - "content", - "application/json", - "type", - "company_scroll", - "properties", - "data", - "items", - "company", - "properties", - "tags", - "items", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/contacts/{id}/companies", - "get", - "responses", - "content", - "application/json", - "type", - "contact_attached_companies", - "properties", - "companies", - "items", - "company", - "properties", - "tags", - "items", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/contacts/{id}/companies", - "post", - "responses", - "content", - "application/json", - "type", - "company", - "properties", - "tags", - "items", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/contacts/{id}/companies", - "post", - "responses", - "content", - "application/json", - "type", - "company", - "properties", - "tags", - "items", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/contacts/{id}/companies", - "post", - "responses", - "content", - "application/json", - "type", - "company", - "properties", - "tags", - "items", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/contacts/{contact_id}/companies/{id}", - "delete", - "responses", - "content", - "application/json", - "type", - "company", - "properties", - "tags", - "items", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/contacts", - "post", - "requestBody", - "content", - "schema", - "create_contact_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/contacts", - "post", - "requestBody", - "content", - "schema", - "create_contact_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/contacts", - "post", - "requestBody", - "content", - "schema", - "create_contact_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/contacts", - "post", - "requestBody", - "content", - "schema", - "create_contact_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/contacts", - "post", - "requestBody", - "content", - "schema", - "create_contact_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/contacts", - "post", - "requestBody", - "content", - "schema", - "create_contact_request", - ], - }, { "message": "Expected enum values to be strings. Received null", "path": [ @@ -19004,327 +18724,87 @@ ], }, { - "message": "Expected type declaration. Received: null", + "message": "Expected schema for JSON response body. Received null", "path": [ "paths", - "/events", + "/phone_call_redirects", "post", - "requestBody", + "responses", + "errors", "content", - "schema", - "create_data_event_request", + "application/json", ], }, { - "message": "Expected type declaration. Received: null", + "message": "Expected schema for JSON response body. Received null", "path": [ "paths", - "/events", + "/phone_call_redirects", "post", - "requestBody", + "responses", + "errors", "content", - "schema", - "create_data_event_request", + "application/json", ], }, { - "message": "Expected type declaration. Received: null", + "message": "Error converting node. Please contact support if the error persists", "path": [ "paths", - "/events", + "/tickets", "post", "requestBody", "content", "schema", - "create_data_event_request", + "create_ticket_request", + "properties", + "ticket_attributes", + "ticket_request_custom_attributes", + "additionalProperties", + "items", ], }, { - "message": "Expected type declaration. Received: null", + "message": "Expected 'items' property to be specified", "path": [ "paths", - "/events", + "/tickets", "post", "requestBody", "content", "schema", - "create_data_event_request", + "create_ticket_request", + "properties", + "ticket_attributes", + "ticket_request_custom_attributes", + "additionalProperties", ], }, { - "message": "Expected type declaration. Received: null", + "message": "Error converting node. Please contact support if the error persists", "path": [ "paths", - "/events", + "/tickets", "post", - "requestBody", + "responses", "content", - "schema", - "create_data_event_request", + "application/json", + "type", + "ticket", + "properties", + "ticket_attributes", + "ticket_custom_attributes", + "additionalProperties", + "items", ], }, { - "message": "Expected type declaration. Received: null", + "message": "Expected 'items' property to be specified", "path": [ "paths", - "/events", + "/tickets", "post", - "requestBody", - "content", - "schema", - "create_data_event_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/messages", - "post", - "requestBody", - "content", - "schema", - "create_message_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/messages", - "post", - "requestBody", - "content", - "schema", - "create_message_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/messages", - "post", - "requestBody", - "content", - "schema", - "create_message_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/messages", - "post", - "requestBody", - "content", - "schema", - "create_message_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/messages", - "post", - "requestBody", - "content", - "schema", - "create_message_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/messages", - "post", - "requestBody", - "content", - "schema", - "create_message_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/messages", - "post", - "requestBody", - "content", - "schema", - "create_message_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/messages", - "post", - "requestBody", - "content", - "schema", - "create_message_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/messages", - "post", - "requestBody", - "content", - "schema", - "create_message_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/messages", - "post", - "requestBody", - "content", - "schema", - "create_message_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/messages", - "post", - "requestBody", - "content", - "schema", - "create_message_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/messages", - "post", - "requestBody", - "content", - "schema", - "create_message_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/messages", - "post", - "requestBody", - "content", - "schema", - "create_message_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/messages", - "post", - "requestBody", - "content", - "schema", - "create_message_request", - ], - }, - { - "message": "Expected schema for JSON response body. Received null", - "path": [ - "paths", - "/phone_call_redirects", - "post", - "responses", - "errors", - "content", - "application/json", - ], - }, - { - "message": "Expected schema for JSON response body. Received null", - "path": [ - "paths", - "/phone_call_redirects", - "post", - "responses", - "errors", - "content", - "application/json", - ], - }, - { - "message": "Error converting node. Please contact support if the error persists", - "path": [ - "paths", - "/tickets", - "post", - "requestBody", - "content", - "schema", - "create_ticket_request", - "properties", - "ticket_attributes", - "ticket_request_custom_attributes", - "additionalProperties", - "items", - ], - }, - { - "message": "Expected 'items' property to be specified", - "path": [ - "paths", - "/tickets", - "post", - "requestBody", - "content", - "schema", - "create_ticket_request", - "properties", - "ticket_attributes", - "ticket_request_custom_attributes", - "additionalProperties", - ], - }, - { - "message": "Error converting node. Please contact support if the error persists", - "path": [ - "paths", - "/tickets", - "post", - "responses", - "content", - "application/json", - "type", - "ticket", - "properties", - "ticket_attributes", - "ticket_custom_attributes", - "additionalProperties", - "items", - ], - }, - { - "message": "Expected 'items' property to be specified", - "path": [ - "paths", - "/tickets", - "post", - "responses", + "responses", "content", "application/json", "type", @@ -19672,278 +19152,6 @@ "enum[3]", ], }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/visitors", - "get", - "responses", - "content", - "application/json", - "type", - "visitor", - "properties", - "companies", - "items", - "company", - "properties", - "tags", - "items", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/visitors", - "put", - "requestBody", - "content", - "schema", - "update_visitor_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/visitors", - "put", - "requestBody", - "content", - "schema", - "update_visitor_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/visitors", - "put", - "requestBody", - "content", - "schema", - "update_visitor_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/visitors", - "put", - "requestBody", - "content", - "schema", - "update_visitor_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/visitors", - "put", - "responses", - "content", - "application/json", - "type", - "visitor", - "properties", - "companies", - "items", - "company", - "properties", - "tags", - "items", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/visitors", - "put", - "requestBody", - "content", - "schema", - "update_visitor_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/visitors", - "put", - "requestBody", - "content", - "schema", - "update_visitor_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/visitors", - "put", - "responses", - "content", - "application/json", - "type", - "visitor", - "properties", - "companies", - "items", - "company", - "properties", - "tags", - "items", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/visitors/convert", - "post", - "requestBody", - "content", - "schema", - "convert_visitor_request", - "properties", - "user", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/visitors/convert", - "post", - "requestBody", - "content", - "schema", - "convert_visitor_request", - "properties", - "user", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/visitors/convert", - "post", - "requestBody", - "content", - "schema", - "convert_visitor_request", - "properties", - "visitor", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/visitors/convert", - "post", - "requestBody", - "content", - "schema", - "convert_visitor_request", - "properties", - "visitor", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/visitors/convert", - "post", - "requestBody", - "content", - "schema", - "convert_visitor_request", - "properties", - "visitor", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/visitors/convert", - "post", - "requestBody", - "content", - "schema", - "convert_visitor_request", - "properties", - "user", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/visitors/convert", - "post", - "requestBody", - "content", - "schema", - "convert_visitor_request", - "properties", - "user", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/visitors/convert", - "post", - "requestBody", - "content", - "schema", - "convert_visitor_request", - "properties", - "visitor", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/visitors/convert", - "post", - "requestBody", - "content", - "schema", - "convert_visitor_request", - "properties", - "visitor", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "paths", - "/visitors/convert", - "post", - "requestBody", - "content", - "schema", - "convert_visitor_request", - "properties", - "visitor", - ], - }, { "message": "Expected enum values to be strings. Received null", "path": [ @@ -19984,117 +19192,6 @@ "enum[0]", ], }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "components", - "company", - "properties", - "tags", - "items", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "components", - "convert_visitor_request", - "properties", - "user", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "components", - "convert_visitor_request", - "properties", - "user", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "components", - "convert_visitor_request", - "properties", - "visitor", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "components", - "convert_visitor_request", - "properties", - "visitor", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "components", - "convert_visitor_request", - "properties", - "visitor", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "components", - "create_contact_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "components", - "create_contact_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "components", - "create_contact_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "components", - "create_data_event_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "components", - "create_data_event_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "components", - "create_data_event_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "components", - "create_message_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "components", - "create_message_request", - ], - }, { "message": "Expected enum values to be strings. Received null", "path": [ @@ -20159,18 +19256,4 @@ "additionalProperties", ], }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "components", - "update_visitor_request", - ], - }, - { - "message": "Expected type declaration. Received: null", - "path": [ - "components", - "update_visitor_request", - ], - }, ] \ No newline at end of file diff --git a/packages/parsers/src/openapi/__test__/__snapshots__/x-fern-token-variable-name.json b/packages/parsers/src/openapi/__test__/__snapshots__/x-fern-token-variable-name.json index 8575723dc9..524c3ed12b 100644 --- a/packages/parsers/src/openapi/__test__/__snapshots__/x-fern-token-variable-name.json +++ b/packages/parsers/src/openapi/__test__/__snapshots__/x-fern-token-variable-name.json @@ -168,5 +168,17 @@ "displayName": "chatCompletions" } }, - "auths": {} + "auths": { + "api_key": { + "type": "bearerAuth", + "tokenName": "apiKey" + }, + "custom_header": { + "type": "header", + "headerWireValue": "X-API-Key" + }, + "access_token": { + "type": "bearerAuth" + } + } } \ No newline at end of file diff --git a/packages/parsers/src/openapi/__test__/__snapshots__/x-fern-version.json b/packages/parsers/src/openapi/__test__/__snapshots__/x-fern-version.json index 8575723dc9..a8e2ca4912 100644 --- a/packages/parsers/src/openapi/__test__/__snapshots__/x-fern-version.json +++ b/packages/parsers/src/openapi/__test__/__snapshots__/x-fern-version.json @@ -168,5 +168,16 @@ "displayName": "chatCompletions" } }, - "auths": {} + "auths": { + "api_key": { + "type": "bearerAuth" + }, + "custom_header": { + "type": "header", + "headerWireValue": "X-API-Key" + }, + "access_token": { + "type": "bearerAuth" + } + } } \ No newline at end of file diff --git a/packages/parsers/src/openrpc/1.x/OpenrpcDocumentConverter.node.ts b/packages/parsers/src/openrpc/1.x/OpenrpcDocumentConverter.node.ts index 76481d9d9c..ee76eccbaf 100644 --- a/packages/parsers/src/openrpc/1.x/OpenrpcDocumentConverter.node.ts +++ b/packages/parsers/src/openrpc/1.x/OpenrpcDocumentConverter.node.ts @@ -71,7 +71,7 @@ export class OpenrpcDocumentConverterNode extends BaseOpenrpcConverterNode< convert(): FernRegistry.api.latest.ApiDefinition | undefined { const apiDefinitionId = v4(); - const types = this.components?.convert(); + const { types } = this.components?.convert() ?? {}; const methods = this.methods ?.map((method) => { @@ -87,9 +87,7 @@ export class OpenrpcDocumentConverterNode extends BaseOpenrpcConverterNode< return { id: FernRegistry.ApiDefinitionId(apiDefinitionId), - types: Object.fromEntries( - Object.entries(types ?? {}).map(([id, type]) => [id, type]) - ), + types: types ?? {}, endpoints, websockets: {}, webhooks: {},