From 6ca385c18db9be1d875e0b0160f028b38e7023ed Mon Sep 17 00:00:00 2001 From: Rohin Bhargava Date: Tue, 19 Nov 2024 15:43:22 -0500 Subject: [PATCH] chore(cli): plumb token header and token prefix oAuth (#5207) * plumb top level roles to FDR * updated changelog * add org id to run preview server * plumbed header key * changed name to token header * chore: update changelog * updated fdr * changelog formatting * chore: update changelog * added example of setting the token-header and prefix, and added note to documentation * chore: update changelog * push fixture test and address comments * chore: update changelog * added yaml example to documentation * fix merge conflicts --------- Co-authored-by: fern-bot Co-authored-by: fern-bot --- api-yml.schema.json | 10 + fern.schema.json | 20 ++ fern/apis/fern-definition/definition/auth.yml | 7 +- .../fern-definition/definition/service.yml | 2 + .../api-definition/fern-definition/auth.mdx | 18 +- generators-yml.schema.json | 10 + package-yml.schema.json | 20 ++ packages/cli/cli/versions.yml | 18 ++ packages/cli/configuration/package.json | 2 +- .../cli/docs-importers/commons/package.json | 2 +- .../cli/docs-importers/mintlify/package.json | 2 +- packages/cli/docs-markdown-utils/package.json | 2 +- packages/cli/docs-preview/package.json | 2 +- .../cli/docs-preview/src/runPreviewServer.ts | 5 +- packages/cli/docs-resolver/package.json | 4 +- .../src/DocsDefinitionResolver.ts | 3 +- packages/cli/ete-tests/package.json | 2 +- .../src/tests/docs-dev/docsDev.test.ts | 2 +- .../resources/auth/types/OAuthSchemeSchema.ts | 3 + .../resources/auth/types/OAuthSchemeSchema.ts | 2 + .../__test__/test-definitions/any-auth.json | 1 + .../oauth-client-credentials-default.json | 1 + ...ent-credentials-environment-variables.json | 1 + .../oauth-client-credentials-nested-root.json | 1 + .../oauth-client-credentials.json | 1 + .../convertOAuthClientCredentials.ts | 1 + .../remote-workspace-runner/package.json | 2 +- .../src/api-yml.schema.json | 10 + .../lazy-fern-workspace/src/fern.schema.json | 20 ++ .../src/package-yml.schema.json | 20 ++ packages/cli/register/package.json | 2 +- .../oauth-client-credentials-default.json | 11 +- ...ent-credentials-environment-variables.json | 11 +- .../oauth-client-credentials-nested-root.json | 11 +- .../oauth-client-credentials.json | 11 +- .../__test__/__snapshots__/oauth.json | 177 ++++++++++++++++++ .../__test__/convertIrToFdrApi.test.ts | 3 + .../fixtures/oauth/fern/definition/api.yml | 14 ++ .../oauth/fern/definition/service.yml | 23 +++ .../__test__/fixtures/oauth/fern/docs.yml | 10 + .../fixtures/oauth/fern/fern.config.json | 4 + .../fixtures/oauth/fern/generators.yml | 1 + .../src/ir-to-fdr-converter/convertAuth.ts | 4 +- packages/core/package.json | 6 +- .../apis/ir-types-latest/definition/auth.yml | 1 + .../auth/types/OAuthClientCredentials.ts | 1 + .../auth/types/OAuthClientCredentials.ts | 2 + pnpm-lock.yaml | 66 +++---- 48 files changed, 492 insertions(+), 60 deletions(-) create mode 100644 packages/cli/register/src/ir-to-fdr-converter/__test__/__snapshots__/oauth.json create mode 100644 packages/cli/register/src/ir-to-fdr-converter/__test__/fixtures/oauth/fern/definition/api.yml create mode 100644 packages/cli/register/src/ir-to-fdr-converter/__test__/fixtures/oauth/fern/definition/service.yml create mode 100644 packages/cli/register/src/ir-to-fdr-converter/__test__/fixtures/oauth/fern/docs.yml create mode 100644 packages/cli/register/src/ir-to-fdr-converter/__test__/fixtures/oauth/fern/fern.config.json create mode 100644 packages/cli/register/src/ir-to-fdr-converter/__test__/fixtures/oauth/fern/generators.yml diff --git a/api-yml.schema.json b/api-yml.schema.json index 446a4643c65..8f0be5f7c4a 100644 --- a/api-yml.schema.json +++ b/api-yml.schema.json @@ -619,6 +619,16 @@ } ] }, + "token-header": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, "get-token": { "$ref": "#/definitions/auth.OAuthGetTokenEndpointSchema" }, diff --git a/fern.schema.json b/fern.schema.json index 5bf909d0050..1087d676904 100644 --- a/fern.schema.json +++ b/fern.schema.json @@ -2656,6 +2656,26 @@ "type": "null" } ] + }, + "transport": { + "oneOf": [ + { + "$ref": "#/definitions/service.ServiceTransport" + }, + { + "type": "null" + } + ] + }, + "source": { + "oneOf": [ + { + "$ref": "#/definitions/source.SourceSchema" + }, + { + "type": "null" + } + ] } }, "required": [ diff --git a/fern/apis/fern-definition/definition/auth.yml b/fern/apis/fern-definition/definition/auth.yml index c68e85ff58b..6cbb665a9fd 100644 --- a/fern/apis/fern-definition/definition/auth.yml +++ b/fern/apis/fern-definition/definition/auth.yml @@ -85,7 +85,12 @@ types: scopes: optional> client-id-env: optional client-secret-env: optional - token-prefix: optional + token-prefix: + type: optional + docs: Sets the token header value prefix. Defaults to 'Bearer' + token-header: + type: optional + docs: Sets the token header key name. Defaults to 'Authorization' get-token: OAuthGetTokenEndpointSchema refresh-token: optional diff --git a/fern/apis/fern-definition/definition/service.yml b/fern/apis/fern-definition/definition/service.yml index e3f2e1bd596..ec62f134f4b 100644 --- a/fern/apis/fern-definition/definition/service.yml +++ b/fern/apis/fern-definition/definition/service.yml @@ -51,6 +51,8 @@ types: errors: optional examples: optional> pagination: optional + transport: optional + source: optional HttpMethodSchema: enum: diff --git a/fern/pages/api-definition/fern-definition/auth.mdx b/fern/pages/api-definition/fern-definition/auth.mdx index 2681db28cf6..e75ebbbd471 100644 --- a/fern/pages/api-definition/fern-definition/auth.mdx +++ b/fern/pages/api-definition/fern-definition/auth.mdx @@ -205,4 +205,20 @@ If the `expires-in` property is set, the generated OAuth token provider will aut Otherwise, it's assumed that the access token is valid indefinitely. With this, all of the OAuth logic happens automatically in the generated SDKs. As long as you configure these settings, your -client will automatically retrieve an access token and refresh it as needed. \ No newline at end of file +client will automatically retrieve an access token and refresh it as needed. + +When using the docs playground, `token-header` and `token-prefix` can optionally be set to customize the header key name and +header value prefix, to match the expected format of the API auth scheme. + +For example, the following would produce a header `Fern-Authorization: Fern-Bearer `: + +```yaml api.yml {5-6} +auth-schemes: + OAuthScheme: + scheme: oauth + type: client-credentials + token-header: Fern-Authorization + token-prefix: Fern-Bearer + get-token: + ... +``` \ No newline at end of file diff --git a/generators-yml.schema.json b/generators-yml.schema.json index 8fa14777043..c096f2964a1 100644 --- a/generators-yml.schema.json +++ b/generators-yml.schema.json @@ -386,6 +386,16 @@ } ] }, + "token-header": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, "get-token": { "$ref": "#/definitions/fernDefinition.auth.OAuthGetTokenEndpointSchema" }, diff --git a/package-yml.schema.json b/package-yml.schema.json index b9e815958a3..13ef45cc541 100644 --- a/package-yml.schema.json +++ b/package-yml.schema.json @@ -2676,6 +2676,26 @@ "type": "null" } ] + }, + "transport": { + "oneOf": [ + { + "$ref": "#/definitions/service.ServiceTransport" + }, + { + "type": "null" + } + ] + }, + "source": { + "oneOf": [ + { + "$ref": "#/definitions/source.SourceSchema" + }, + { + "type": "null" + } + ] } }, "required": [ diff --git a/packages/cli/cli/versions.yml b/packages/cli/cli/versions.yml index d66ba3d680c..6381cf3247c 100644 --- a/packages/cli/cli/versions.yml +++ b/packages/cli/cli/versions.yml @@ -1,3 +1,21 @@ +- changelogEntry: + - summary: | + OAuth Client Credential Auth Scheme now supports the ability to optionally + set token header and prefix fields for use with docs playground. + + ```yml api.yml + auth-schemes: + OAuth: + scheme: oauth + type: client-credentials + token-header: Fern-Authorization + token-prefix: Fern-Bearer + ... + ``` + type: feat + irVersion: 53 + version: 0.45.0-rc48 + - changelogEntry: - summary: | Support SDK generation provided comma-delineated content-type values in OpenAPI specs. diff --git a/packages/cli/configuration/package.json b/packages/cli/configuration/package.json index a12b583bdc8..f3e4375ecb6 100644 --- a/packages/cli/configuration/package.json +++ b/packages/cli/configuration/package.json @@ -32,7 +32,7 @@ "@fern-api/fs-utils": "workspace:*", "@fern-api/task-context": "workspace:*", "@fern-api/fern-definition-schema": "workspace:*", - "@fern-fern/fdr-cjs-sdk": "0.123.0-c32499d0e", + "@fern-fern/fdr-cjs-sdk": "0.126.1-444264056", "@fern-fern/fiddle-sdk": "0.0.584", "@fern-fern/generators-sdk": "0.114.0-5745f9e74", "find-up": "^6.3.0", diff --git a/packages/cli/docs-importers/commons/package.json b/packages/cli/docs-importers/commons/package.json index 88cc3e87a96..c35763532bb 100644 --- a/packages/cli/docs-importers/commons/package.json +++ b/packages/cli/docs-importers/commons/package.json @@ -31,7 +31,7 @@ "@fern-api/configuration": "workspace:*", "@fern-api/fs-utils": "workspace:*", "@fern-api/task-context": "workspace:*", - "@fern-fern/fdr-cjs-sdk": "0.123.0-c32499d0e", + "@fern-fern/fdr-cjs-sdk": "0.126.1-444264056", "js-yaml": "^4.1.0" }, "devDependencies": { diff --git a/packages/cli/docs-importers/mintlify/package.json b/packages/cli/docs-importers/mintlify/package.json index 98d862dbe95..a77bd52b3c4 100644 --- a/packages/cli/docs-importers/mintlify/package.json +++ b/packages/cli/docs-importers/mintlify/package.json @@ -34,7 +34,7 @@ "@fern-api/task-context": "workspace:*", "@fern-api/fs-utils": "workspace:*", "@fern-api/logger": "workspace:*", - "@fern-fern/fdr-cjs-sdk": "0.123.0-c32499d0e", + "@fern-fern/fdr-cjs-sdk": "0.126.1-444264056", "gray-matter": "^4.0.3" }, "devDependencies": { diff --git a/packages/cli/docs-markdown-utils/package.json b/packages/cli/docs-markdown-utils/package.json index 1b9c220eb62..d85f1317673 100644 --- a/packages/cli/docs-markdown-utils/package.json +++ b/packages/cli/docs-markdown-utils/package.json @@ -30,7 +30,7 @@ "dependencies": { "@fern-api/fs-utils": "workspace:*", "@fern-api/task-context": "workspace:*", - "@fern-fern/fdr-cjs-sdk": "0.123.0-c32499d0e", + "@fern-fern/fdr-cjs-sdk": "0.126.1-444264056", "gray-matter": "^4.0.3", "mdast-util-from-markdown": "^2.0.1", "mdast-util-mdx": "^3.0.0", diff --git a/packages/cli/docs-preview/package.json b/packages/cli/docs-preview/package.json index 92d6632d9fa..9342d7e2369 100644 --- a/packages/cli/docs-preview/package.json +++ b/packages/cli/docs-preview/package.json @@ -29,7 +29,7 @@ }, "dependencies": { "@fern-api/docs-resolver": "workspace:*", - "@fern-api/fdr-sdk": "0.123.0-c32499d0e", + "@fern-api/fdr-sdk": "0.126.1-444264056", "@fern-api/fs-utils": "workspace:*", "@fern-api/ir-sdk": "workspace:*", "@fern-api/logger": "workspace:*", diff --git a/packages/cli/docs-preview/src/runPreviewServer.ts b/packages/cli/docs-preview/src/runPreviewServer.ts index 85c3b9a0c70..3c9433fcafb 100644 --- a/packages/cli/docs-preview/src/runPreviewServer.ts +++ b/packages/cli/docs-preview/src/runPreviewServer.ts @@ -1,5 +1,5 @@ import { wrapWithHttps } from "@fern-api/docs-resolver"; -import { DocsV1Read, DocsV2Read } from "@fern-api/fdr-sdk"; +import { FernNavigation, DocsV1Read, DocsV2Read } from "@fern-api/fdr-sdk"; import { dirname, doesPathExist, AbsoluteFilePath } from "@fern-api/fs-utils"; import { Project } from "@fern-api/project-loader"; import { TaskContext } from "@fern-api/task-context"; @@ -189,7 +189,8 @@ export async function runPreviewServer({ basePath: instance.pathname }, definition, - lightModeEnabled: definition.config.colorsV3?.type !== "dark" + lightModeEnabled: definition.config.colorsV3?.type !== "dark", + orgId: FernNavigation.OrgId(initialProject.config.organization) }; res.send(response); } catch (error) { diff --git a/packages/cli/docs-resolver/package.json b/packages/cli/docs-resolver/package.json index e0977cfdb84..9b1694ece31 100644 --- a/packages/cli/docs-resolver/package.json +++ b/packages/cli/docs-resolver/package.json @@ -30,8 +30,8 @@ "@fern-api/configuration": "workspace:*", "@fern-api/core-utils": "workspace:*", "@fern-api/docs-markdown-utils": "workspace:*", - "@fern-api/fdr-sdk": "0.123.0-c32499d0e", - "@fern-api/ui-core-utils": "0.123.0-c32499d0e", + "@fern-api/fdr-sdk": "0.126.1-444264056", + "@fern-api/ui-core-utils": "0.126.1-444264056", "@fern-api/fs-utils": "workspace:*", "@fern-api/ir-generator": "workspace:*", "@fern-api/ir-sdk": "workspace:*", diff --git a/packages/cli/docs-resolver/src/DocsDefinitionResolver.ts b/packages/cli/docs-resolver/src/DocsDefinitionResolver.ts index aae787a669f..2eaae53ba25 100644 --- a/packages/cli/docs-resolver/src/DocsDefinitionResolver.ts +++ b/packages/cli/docs-resolver/src/DocsDefinitionResolver.ts @@ -364,7 +364,8 @@ export class DocsDefinitionResolver { pointsTo: undefined, authed: undefined, viewers: undefined, - orphaned: undefined + orphaned: undefined, + roles: this.parsedDocsConfig.roles?.map((role) => FernNavigation.RoleId(role)) }; } diff --git a/packages/cli/ete-tests/package.json b/packages/cli/ete-tests/package.json index e8980528c76..199b00ca898 100644 --- a/packages/cli/ete-tests/package.json +++ b/packages/cli/ete-tests/package.json @@ -29,7 +29,7 @@ }, "dependencies": { "@fern-api/configuration": "workspace:*", - "@fern-fern/fdr-cjs-sdk": "0.123.0-c32499d0e", + "@fern-fern/fdr-cjs-sdk": "0.126.1-444264056", "@fern-api/fs-utils": "workspace:*", "@fern-api/logging-execa": "workspace:*", "@fern-typescript/fetcher": "workspace:*", diff --git a/packages/cli/ete-tests/src/tests/docs-dev/docsDev.test.ts b/packages/cli/ete-tests/src/tests/docs-dev/docsDev.test.ts index d6915d7a087..de40c935d75 100644 --- a/packages/cli/ete-tests/src/tests/docs-dev/docsDev.test.ts +++ b/packages/cli/ete-tests/src/tests/docs-dev/docsDev.test.ts @@ -30,7 +30,7 @@ describe("fern docs dev", () => { const responseBody = JSON.parse(responseText) as FdrCjsSdk.docs.v2.read.LoadDocsForUrlResponse; expect(typeof responseBody === "object").toEqual(true); // eslint-disable-next-line @typescript-eslint/no-explicit-any - expect(Object.keys(responseBody as any)).toEqual(["baseUrl", "definition", "lightModeEnabled"]); + expect(Object.keys(responseBody as any)).toEqual(["baseUrl", "definition", "lightModeEnabled", "orgId"]); // const root = FernNavigation.utils.convertLoadDocsForUrlResponse(responseBody); // const pageIds = new Set(Object.keys(responseBody.definition.pages)); diff --git a/packages/cli/fern-definition/schema/src/schemas/api/resources/auth/types/OAuthSchemeSchema.ts b/packages/cli/fern-definition/schema/src/schemas/api/resources/auth/types/OAuthSchemeSchema.ts index 0b38b35684d..163dae0572d 100644 --- a/packages/cli/fern-definition/schema/src/schemas/api/resources/auth/types/OAuthSchemeSchema.ts +++ b/packages/cli/fern-definition/schema/src/schemas/api/resources/auth/types/OAuthSchemeSchema.ts @@ -10,7 +10,10 @@ export interface OAuthSchemeSchema extends FernDefinition.WithDocsSchema { scopes?: string[]; "client-id-env"?: string; "client-secret-env"?: string; + /** Sets the token header value prefix. Defaults to 'Bearer' */ "token-prefix"?: string; + /** Sets the token header key name. Defaults to 'Authorization' */ + "token-header"?: string; "get-token": FernDefinition.OAuthGetTokenEndpointSchema; "refresh-token"?: FernDefinition.OAuthRefreshTokenEndpointSchema; } diff --git a/packages/cli/fern-definition/schema/src/schemas/serialization/resources/auth/types/OAuthSchemeSchema.ts b/packages/cli/fern-definition/schema/src/schemas/serialization/resources/auth/types/OAuthSchemeSchema.ts index 258edb324b9..cc703091488 100644 --- a/packages/cli/fern-definition/schema/src/schemas/serialization/resources/auth/types/OAuthSchemeSchema.ts +++ b/packages/cli/fern-definition/schema/src/schemas/serialization/resources/auth/types/OAuthSchemeSchema.ts @@ -20,6 +20,7 @@ export const OAuthSchemeSchema: core.serialization.ObjectSchema< "client-id-env": core.serialization.string().optional(), "client-secret-env": core.serialization.string().optional(), "token-prefix": core.serialization.string().optional(), + "token-header": core.serialization.string().optional(), "get-token": OAuthGetTokenEndpointSchema, "refresh-token": OAuthRefreshTokenEndpointSchema.optional(), }) @@ -33,6 +34,7 @@ export declare namespace OAuthSchemeSchema { "client-id-env"?: string | null; "client-secret-env"?: string | null; "token-prefix"?: string | null; + "token-header"?: string | null; "get-token": OAuthGetTokenEndpointSchema.Raw; "refresh-token"?: OAuthRefreshTokenEndpointSchema.Raw | null; } diff --git a/packages/cli/generation/ir-generator/src/__test__/test-definitions/any-auth.json b/packages/cli/generation/ir-generator/src/__test__/test-definitions/any-auth.json index 8bbc5a2c5f3..810ba8924fe 100644 --- a/packages/cli/generation/ir-generator/src/__test__/test-definitions/any-auth.json +++ b/packages/cli/generation/ir-generator/src/__test__/test-definitions/any-auth.json @@ -95,6 +95,7 @@ "clientIdEnvVar": "MY_CLIENT_ID", "clientSecretEnvVar": "MY_CLIENT_SECRET", "tokenPrefix": null, + "tokenHeader": null, "scopes": null, "tokenEndpoint": { "endpointReference": { diff --git a/packages/cli/generation/ir-generator/src/__test__/test-definitions/oauth-client-credentials-default.json b/packages/cli/generation/ir-generator/src/__test__/test-definitions/oauth-client-credentials-default.json index 88aeb1d4294..d152ee34db4 100644 --- a/packages/cli/generation/ir-generator/src/__test__/test-definitions/oauth-client-credentials-default.json +++ b/packages/cli/generation/ir-generator/src/__test__/test-definitions/oauth-client-credentials-default.json @@ -32,6 +32,7 @@ "clientIdEnvVar": null, "clientSecretEnvVar": null, "tokenPrefix": null, + "tokenHeader": null, "scopes": null, "tokenEndpoint": { "endpointReference": { diff --git a/packages/cli/generation/ir-generator/src/__test__/test-definitions/oauth-client-credentials-environment-variables.json b/packages/cli/generation/ir-generator/src/__test__/test-definitions/oauth-client-credentials-environment-variables.json index 8fe9842f710..e0b9d658835 100644 --- a/packages/cli/generation/ir-generator/src/__test__/test-definitions/oauth-client-credentials-environment-variables.json +++ b/packages/cli/generation/ir-generator/src/__test__/test-definitions/oauth-client-credentials-environment-variables.json @@ -32,6 +32,7 @@ "clientIdEnvVar": "CLIENT_ID", "clientSecretEnvVar": "CLIENT_SECRET", "tokenPrefix": null, + "tokenHeader": null, "scopes": null, "tokenEndpoint": { "endpointReference": { diff --git a/packages/cli/generation/ir-generator/src/__test__/test-definitions/oauth-client-credentials-nested-root.json b/packages/cli/generation/ir-generator/src/__test__/test-definitions/oauth-client-credentials-nested-root.json index 87a87ca43bb..7870e51f28d 100644 --- a/packages/cli/generation/ir-generator/src/__test__/test-definitions/oauth-client-credentials-nested-root.json +++ b/packages/cli/generation/ir-generator/src/__test__/test-definitions/oauth-client-credentials-nested-root.json @@ -32,6 +32,7 @@ "clientIdEnvVar": null, "clientSecretEnvVar": null, "tokenPrefix": null, + "tokenHeader": null, "scopes": null, "tokenEndpoint": { "endpointReference": { diff --git a/packages/cli/generation/ir-generator/src/__test__/test-definitions/oauth-client-credentials.json b/packages/cli/generation/ir-generator/src/__test__/test-definitions/oauth-client-credentials.json index 29dbe4317ed..21ab6fb67fd 100644 --- a/packages/cli/generation/ir-generator/src/__test__/test-definitions/oauth-client-credentials.json +++ b/packages/cli/generation/ir-generator/src/__test__/test-definitions/oauth-client-credentials.json @@ -32,6 +32,7 @@ "clientIdEnvVar": null, "clientSecretEnvVar": null, "tokenPrefix": null, + "tokenHeader": null, "scopes": null, "tokenEndpoint": { "endpointReference": { diff --git a/packages/cli/generation/ir-generator/src/converters/convertOAuthClientCredentials.ts b/packages/cli/generation/ir-generator/src/converters/convertOAuthClientCredentials.ts index 9d70b615ac5..9c066ddcb59 100644 --- a/packages/cli/generation/ir-generator/src/converters/convertOAuthClientCredentials.ts +++ b/packages/cli/generation/ir-generator/src/converters/convertOAuthClientCredentials.ts @@ -44,6 +44,7 @@ export async function convertOAuthClientCredentials({ clientIdEnvVar: oauthScheme["client-id-env"], clientSecretEnvVar: oauthScheme["client-secret-env"], tokenPrefix: oauthScheme["token-prefix"], + tokenHeader: oauthScheme["token-header"], scopes: oauthScheme.scopes, tokenEndpoint: oauthTokenEndpoint, refreshEndpoint diff --git a/packages/cli/generation/remote-generation/remote-workspace-runner/package.json b/packages/cli/generation/remote-generation/remote-workspace-runner/package.json index 5df444e3777..7f73abbfe9d 100644 --- a/packages/cli/generation/remote-generation/remote-workspace-runner/package.json +++ b/packages/cli/generation/remote-generation/remote-workspace-runner/package.json @@ -34,7 +34,7 @@ "@fern-api/core-utils": "workspace:*", "@fern-api/docs-resolver": "workspace:*", "@fern-api/logging-execa": "workspace:*", - "@fern-fern/fdr-cjs-sdk": "0.123.0-c32499d0e", + "@fern-fern/fdr-cjs-sdk": "0.126.1-444264056", "@fern-api/fs-utils": "workspace:*", "@fern-api/ir-generator": "workspace:*", "@fern-api/ir-migrations": "workspace:*", diff --git a/packages/cli/lazy-fern-workspace/src/api-yml.schema.json b/packages/cli/lazy-fern-workspace/src/api-yml.schema.json index 446a4643c65..8f0be5f7c4a 100644 --- a/packages/cli/lazy-fern-workspace/src/api-yml.schema.json +++ b/packages/cli/lazy-fern-workspace/src/api-yml.schema.json @@ -619,6 +619,16 @@ } ] }, + "token-header": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, "get-token": { "$ref": "#/definitions/auth.OAuthGetTokenEndpointSchema" }, diff --git a/packages/cli/lazy-fern-workspace/src/fern.schema.json b/packages/cli/lazy-fern-workspace/src/fern.schema.json index 5bf909d0050..1087d676904 100644 --- a/packages/cli/lazy-fern-workspace/src/fern.schema.json +++ b/packages/cli/lazy-fern-workspace/src/fern.schema.json @@ -2656,6 +2656,26 @@ "type": "null" } ] + }, + "transport": { + "oneOf": [ + { + "$ref": "#/definitions/service.ServiceTransport" + }, + { + "type": "null" + } + ] + }, + "source": { + "oneOf": [ + { + "$ref": "#/definitions/source.SourceSchema" + }, + { + "type": "null" + } + ] } }, "required": [ diff --git a/packages/cli/lazy-fern-workspace/src/package-yml.schema.json b/packages/cli/lazy-fern-workspace/src/package-yml.schema.json index b9e815958a3..13ef45cc541 100644 --- a/packages/cli/lazy-fern-workspace/src/package-yml.schema.json +++ b/packages/cli/lazy-fern-workspace/src/package-yml.schema.json @@ -2676,6 +2676,26 @@ "type": "null" } ] + }, + "transport": { + "oneOf": [ + { + "$ref": "#/definitions/service.ServiceTransport" + }, + { + "type": "null" + } + ] + }, + "source": { + "oneOf": [ + { + "$ref": "#/definitions/source.SourceSchema" + }, + { + "type": "null" + } + ] } }, "required": [ diff --git a/packages/cli/register/package.json b/packages/cli/register/package.json index 06ae64a60b6..27b7d077197 100644 --- a/packages/cli/register/package.json +++ b/packages/cli/register/package.json @@ -32,7 +32,7 @@ "@fern-api/configuration": "workspace:*", "@fern-api/core": "workspace:*", "@fern-api/core-utils": "workspace:*", - "@fern-fern/fdr-cjs-sdk": "0.123.0-c32499d0e", + "@fern-fern/fdr-cjs-sdk": "0.126.1-444264056", "@fern-api/fs-utils": "workspace:*", "@fern-api/ir-generator": "workspace:*", "@fern-api/ir-sdk": "workspace:*", diff --git a/packages/cli/register/src/ir-to-fdr-converter/__test__/__snapshots__/oauth-client-credentials-default.json b/packages/cli/register/src/ir-to-fdr-converter/__test__/__snapshots__/oauth-client-credentials-default.json index d6680bd6558..14d8f965f26 100644 --- a/packages/cli/register/src/ir-to-fdr-converter/__test__/__snapshots__/oauth-client-credentials-default.json +++ b/packages/cli/register/src/ir-to-fdr-converter/__test__/__snapshots__/oauth-client-credentials-default.json @@ -162,8 +162,15 @@ ] }, "auth": { - "type": "bearerAuth", - "tokenName": "token" + "type": "oAuth", + "value": { + "type": "clientCredentials", + "value": { + "type": "referencedEndpoint", + "endpointId": "endpoint_auth.getToken", + "accessTokenLocator": "$.body.access_token" + } + } }, "snippetsConfiguration": {}, "globalHeaders": [] diff --git a/packages/cli/register/src/ir-to-fdr-converter/__test__/__snapshots__/oauth-client-credentials-environment-variables.json b/packages/cli/register/src/ir-to-fdr-converter/__test__/__snapshots__/oauth-client-credentials-environment-variables.json index b999f663573..fe6c3a84dce 100644 --- a/packages/cli/register/src/ir-to-fdr-converter/__test__/__snapshots__/oauth-client-credentials-environment-variables.json +++ b/packages/cli/register/src/ir-to-fdr-converter/__test__/__snapshots__/oauth-client-credentials-environment-variables.json @@ -343,8 +343,15 @@ ] }, "auth": { - "type": "bearerAuth", - "tokenName": "token" + "type": "oAuth", + "value": { + "type": "clientCredentials", + "value": { + "type": "referencedEndpoint", + "endpointId": "endpoint_auth.getTokenWithClientCredentials", + "accessTokenLocator": "$.body.access_token" + } + } }, "snippetsConfiguration": {}, "globalHeaders": [] diff --git a/packages/cli/register/src/ir-to-fdr-converter/__test__/__snapshots__/oauth-client-credentials-nested-root.json b/packages/cli/register/src/ir-to-fdr-converter/__test__/__snapshots__/oauth-client-credentials-nested-root.json index 5ad50f8a7d0..8fd868fb2e9 100644 --- a/packages/cli/register/src/ir-to-fdr-converter/__test__/__snapshots__/oauth-client-credentials-nested-root.json +++ b/packages/cli/register/src/ir-to-fdr-converter/__test__/__snapshots__/oauth-client-credentials-nested-root.json @@ -200,8 +200,15 @@ ] }, "auth": { - "type": "bearerAuth", - "tokenName": "token" + "type": "oAuth", + "value": { + "type": "clientCredentials", + "value": { + "type": "referencedEndpoint", + "endpointId": "endpoint_auth.getToken", + "accessTokenLocator": "$.body.access_token" + } + } }, "snippetsConfiguration": {}, "globalHeaders": [] diff --git a/packages/cli/register/src/ir-to-fdr-converter/__test__/__snapshots__/oauth-client-credentials.json b/packages/cli/register/src/ir-to-fdr-converter/__test__/__snapshots__/oauth-client-credentials.json index b999f663573..fe6c3a84dce 100644 --- a/packages/cli/register/src/ir-to-fdr-converter/__test__/__snapshots__/oauth-client-credentials.json +++ b/packages/cli/register/src/ir-to-fdr-converter/__test__/__snapshots__/oauth-client-credentials.json @@ -343,8 +343,15 @@ ] }, "auth": { - "type": "bearerAuth", - "tokenName": "token" + "type": "oAuth", + "value": { + "type": "clientCredentials", + "value": { + "type": "referencedEndpoint", + "endpointId": "endpoint_auth.getTokenWithClientCredentials", + "accessTokenLocator": "$.body.access_token" + } + } }, "snippetsConfiguration": {}, "globalHeaders": [] diff --git a/packages/cli/register/src/ir-to-fdr-converter/__test__/__snapshots__/oauth.json b/packages/cli/register/src/ir-to-fdr-converter/__test__/__snapshots__/oauth.json new file mode 100644 index 00000000000..07669ca415c --- /dev/null +++ b/packages/cli/register/src/ir-to-fdr-converter/__test__/__snapshots__/oauth.json @@ -0,0 +1,177 @@ +{ + "types": { + "type_service:ResponseObject": { + "name": "ResponseObject", + "shape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "access_token", + "valueType": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + { + "key": "expires_in", + "valueType": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + { + "key": "refresh_token", + "valueType": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + ], + "extraProperties": { + "type": "unknown" + } + } + } + }, + "subpackages": { + "subpackage_service": { + "subpackageId": "subpackage_service", + "name": "service", + "endpoints": [ + { + "auth": false, + "method": "POST", + "id": "auth", + "originalEndpointId": "endpoint_service.auth", + "name": "Auth", + "path": { + "pathParameters": [], + "parts": [ + { + "type": "literal", + "value": "" + }, + { + "type": "literal", + "value": "/auth" + } + ] + }, + "queryParameters": [], + "headers": [], + "request": { + "type": { + "type": "json", + "contentType": "application/json", + "shape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "client_id", + "valueType": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + { + "key": "client_secret", + "valueType": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + ] + } + } + }, + "response": { + "type": { + "type": "reference", + "value": { + "type": "id", + "value": "type_service:ResponseObject" + } + } + }, + "errorsV2": [], + "examples": [ + { + "path": "/auth", + "pathParameters": {}, + "queryParameters": {}, + "headers": {}, + "requestBody": { + "client_id": "client_id", + "client_secret": "client_secret" + }, + "requestBodyV3": { + "type": "json", + "value": { + "client_id": "client_id", + "client_secret": "client_secret" + } + }, + "responseStatusCode": 200, + "responseBody": { + "access_token": "access_token", + "expires_in": 1, + "refresh_token": "refresh_token" + }, + "responseBodyV3": { + "type": "json", + "value": { + "access_token": "access_token", + "expires_in": 1, + "refresh_token": "refresh_token" + } + }, + "codeSamples": [] + } + ] + } + ], + "webhooks": [], + "websockets": [], + "types": [ + "type_service:ResponseObject" + ], + "subpackages": [] + } + }, + "rootPackage": { + "endpoints": [], + "webhooks": [], + "websockets": [], + "types": [], + "subpackages": [ + "subpackage_service" + ] + }, + "auth": { + "type": "oAuth", + "value": { + "type": "clientCredentials", + "value": { + "type": "referencedEndpoint", + "endpointId": "endpoint_service.auth", + "accessTokenLocator": "$.body.access_token", + "headerName": "Fern-Authorization", + "tokenPrefix": "Fern-Bearer" + } + } + }, + "snippetsConfiguration": {}, + "globalHeaders": [] +} \ No newline at end of file diff --git a/packages/cli/register/src/ir-to-fdr-converter/__test__/convertIrToFdrApi.test.ts b/packages/cli/register/src/ir-to-fdr-converter/__test__/convertIrToFdrApi.test.ts index 012cc99ad37..0bb694a8957 100644 --- a/packages/cli/register/src/ir-to-fdr-converter/__test__/convertIrToFdrApi.test.ts +++ b/packages/cli/register/src/ir-to-fdr-converter/__test__/convertIrToFdrApi.test.ts @@ -74,6 +74,9 @@ describe("fdr", async () => { javaSdk: undefined, rubySdk: undefined, goSdk: undefined + }, + playgroundConfig: { + oauth: true } }); diff --git a/packages/cli/register/src/ir-to-fdr-converter/__test__/fixtures/oauth/fern/definition/api.yml b/packages/cli/register/src/ir-to-fdr-converter/__test__/fixtures/oauth/fern/definition/api.yml new file mode 100644 index 00000000000..90cb3c863ce --- /dev/null +++ b/packages/cli/register/src/ir-to-fdr-converter/__test__/fixtures/oauth/fern/definition/api.yml @@ -0,0 +1,14 @@ +name: oauth + +auth: OAuth +auth-schemes: + OAuth: + scheme: oauth + type: client-credentials + token-prefix: Fern-Bearer + token-header: Fern-Authorization + get-token: + endpoint: POST /auth + request-properties: + client-id: $request.client_id + client-secret: $request.client_secret diff --git a/packages/cli/register/src/ir-to-fdr-converter/__test__/fixtures/oauth/fern/definition/service.yml b/packages/cli/register/src/ir-to-fdr-converter/__test__/fixtures/oauth/fern/definition/service.yml new file mode 100644 index 00000000000..f4718e9fcdb --- /dev/null +++ b/packages/cli/register/src/ir-to-fdr-converter/__test__/fixtures/oauth/fern/definition/service.yml @@ -0,0 +1,23 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/fern-api/fern/main/fern.schema.json + +service: + auth: false + base-path: "" + endpoints: + auth: + path: /auth + method: POST + request: + name: RequestObject + body: + properties: + client_id: string + client_secret: string + response: ResponseObject + +types: + ResponseObject: + properties: + access_token: string + expires_in: integer + refresh_token: string diff --git a/packages/cli/register/src/ir-to-fdr-converter/__test__/fixtures/oauth/fern/docs.yml b/packages/cli/register/src/ir-to-fdr-converter/__test__/fixtures/oauth/fern/docs.yml new file mode 100644 index 00000000000..9c1c1b79caf --- /dev/null +++ b/packages/cli/register/src/ir-to-fdr-converter/__test__/fixtures/oauth/fern/docs.yml @@ -0,0 +1,10 @@ +instances: + - url: https://fern.docs.buildwithfern.com +title: fern | Documentation +navigation: + - api: API Reference + playground: + oauth: true +colors: + accentPrimary: '#ffffff' + background: '#000000' diff --git a/packages/cli/register/src/ir-to-fdr-converter/__test__/fixtures/oauth/fern/fern.config.json b/packages/cli/register/src/ir-to-fdr-converter/__test__/fixtures/oauth/fern/fern.config.json new file mode 100644 index 00000000000..7980537f564 --- /dev/null +++ b/packages/cli/register/src/ir-to-fdr-converter/__test__/fixtures/oauth/fern/fern.config.json @@ -0,0 +1,4 @@ +{ + "organization": "fern", + "version": "*" +} \ No newline at end of file diff --git a/packages/cli/register/src/ir-to-fdr-converter/__test__/fixtures/oauth/fern/generators.yml b/packages/cli/register/src/ir-to-fdr-converter/__test__/fixtures/oauth/fern/generators.yml new file mode 100644 index 00000000000..0967ef424bc --- /dev/null +++ b/packages/cli/register/src/ir-to-fdr-converter/__test__/fixtures/oauth/fern/generators.yml @@ -0,0 +1 @@ +{} diff --git a/packages/cli/register/src/ir-to-fdr-converter/convertAuth.ts b/packages/cli/register/src/ir-to-fdr-converter/convertAuth.ts index 77a09752fc4..42ba7b69ce2 100644 --- a/packages/cli/register/src/ir-to-fdr-converter/convertAuth.ts +++ b/packages/cli/register/src/ir-to-fdr-converter/convertAuth.ts @@ -48,7 +48,9 @@ export function convertAuth( endpointId: FdrCjsSdk.EndpointId( scheme.configuration.tokenEndpoint.endpointReference.endpointId ), - accessTokenLocator: FdrCjsSdk.JqString(tokenPath) + accessTokenLocator: FdrCjsSdk.JqString(tokenPath), + headerName: scheme.configuration.tokenHeader, + tokenPrefix: scheme.configuration.tokenPrefix } } } diff --git a/packages/core/package.json b/packages/core/package.json index 7e882e7593c..6a52b4380fa 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -28,14 +28,14 @@ "depcheck": "depcheck" }, "dependencies": { - "@fern-fern/fdr-cjs-sdk": "0.123.0-c32499d0e", + "@fern-fern/fdr-cjs-sdk": "0.126.1-444264056", "@fern-fern/generators-sdk": "0.114.0-5745f9e74", "@fern-api/venus-api-sdk": "0.10.2", "@fern-fern/fdr-test-sdk": "^0.0.5297", "@fern-fern/fiddle-sdk": "0.0.584" }, "devDependencies": { - "@types/jest": "^29.5.12", + "@types/jest": "^29.5.12", "@types/node": "18.7.18", "depcheck": "^1.4.6", "eslint": "^8.56.0", @@ -44,4 +44,4 @@ "prettier": "^2.7.1", "typescript": "4.6.4" } -} +} \ No newline at end of file diff --git a/packages/ir-sdk/fern/apis/ir-types-latest/definition/auth.yml b/packages/ir-sdk/fern/apis/ir-types-latest/definition/auth.yml index fecc35bb54c..be4c49e7ff4 100644 --- a/packages/ir-sdk/fern/apis/ir-types-latest/definition/auth.yml +++ b/packages/ir-sdk/fern/apis/ir-types-latest/definition/auth.yml @@ -46,6 +46,7 @@ types: clientIdEnvVar: optional clientSecretEnvVar: optional tokenPrefix: optional + tokenHeader: optional scopes: optional> tokenEndpoint: OAuthTokenEndpoint refreshEndpoint: optional diff --git a/packages/ir-sdk/src/sdk/api/resources/auth/types/OAuthClientCredentials.ts b/packages/ir-sdk/src/sdk/api/resources/auth/types/OAuthClientCredentials.ts index 58c03935d22..da55a57f09d 100644 --- a/packages/ir-sdk/src/sdk/api/resources/auth/types/OAuthClientCredentials.ts +++ b/packages/ir-sdk/src/sdk/api/resources/auth/types/OAuthClientCredentials.ts @@ -8,6 +8,7 @@ export interface OAuthClientCredentials { clientIdEnvVar: FernIr.EnvironmentVariable | undefined; clientSecretEnvVar: FernIr.EnvironmentVariable | undefined; tokenPrefix: string | undefined; + tokenHeader: string | undefined; scopes: string[] | undefined; tokenEndpoint: FernIr.OAuthTokenEndpoint; refreshEndpoint: FernIr.OAuthRefreshEndpoint | undefined; diff --git a/packages/ir-sdk/src/sdk/serialization/resources/auth/types/OAuthClientCredentials.ts b/packages/ir-sdk/src/sdk/serialization/resources/auth/types/OAuthClientCredentials.ts index dd9d6d55654..d4f276d59db 100644 --- a/packages/ir-sdk/src/sdk/serialization/resources/auth/types/OAuthClientCredentials.ts +++ b/packages/ir-sdk/src/sdk/serialization/resources/auth/types/OAuthClientCredentials.ts @@ -16,6 +16,7 @@ export const OAuthClientCredentials: core.serialization.ObjectSchema< clientIdEnvVar: EnvironmentVariable.optional(), clientSecretEnvVar: EnvironmentVariable.optional(), tokenPrefix: core.serialization.string().optional(), + tokenHeader: core.serialization.string().optional(), scopes: core.serialization.list(core.serialization.string()).optional(), tokenEndpoint: OAuthTokenEndpoint, refreshEndpoint: OAuthRefreshEndpoint.optional(), @@ -26,6 +27,7 @@ export declare namespace OAuthClientCredentials { clientIdEnvVar?: EnvironmentVariable.Raw | null; clientSecretEnvVar?: EnvironmentVariable.Raw | null; tokenPrefix?: string | null; + tokenHeader?: string | null; scopes?: string[] | null; tokenEndpoint: OAuthTokenEndpoint.Raw; refreshEndpoint?: OAuthRefreshEndpoint.Raw | null; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d1f01d5b036..d1c9277f66d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4067,6 +4067,8 @@ importers: specifier: ^2.0.5 version: 2.0.5(@types/node@18.7.18)(jsdom@20.0.3)(sass@1.72.0)(terser@5.31.5) + packages/cli/cli/dist/local: {} + packages/cli/configuration: dependencies: '@fern-api/core-utils': @@ -4082,8 +4084,8 @@ importers: specifier: workspace:* version: link:../task-context '@fern-fern/fdr-cjs-sdk': - specifier: 0.123.0-c32499d0e - version: 0.123.0-c32499d0e + specifier: 0.126.1-444264056 + version: 0.126.1-444264056 '@fern-fern/fiddle-sdk': specifier: 0.0.584 version: 0.0.584 @@ -4158,8 +4160,8 @@ importers: specifier: workspace:* version: link:../../task-context '@fern-fern/fdr-cjs-sdk': - specifier: 0.123.0-c32499d0e - version: 0.123.0-c32499d0e + specifier: 0.126.1-444264056 + version: 0.126.1-444264056 js-yaml: specifier: ^4.1.0 version: 4.1.0 @@ -4210,8 +4212,8 @@ importers: specifier: workspace:* version: link:../../task-context '@fern-fern/fdr-cjs-sdk': - specifier: 0.123.0-c32499d0e - version: 0.123.0-c32499d0e + specifier: 0.126.1-444264056 + version: 0.126.1-444264056 gray-matter: specifier: ^4.0.3 version: 4.0.3 @@ -4247,8 +4249,8 @@ importers: specifier: workspace:* version: link:../task-context '@fern-fern/fdr-cjs-sdk': - specifier: 0.123.0-c32499d0e - version: 0.123.0-c32499d0e + specifier: 0.126.1-444264056 + version: 0.126.1-444264056 gray-matter: specifier: ^4.0.3 version: 4.0.3 @@ -4299,8 +4301,8 @@ importers: specifier: workspace:* version: link:../docs-resolver '@fern-api/fdr-sdk': - specifier: 0.123.0-c32499d0e - version: 0.123.0-c32499d0e(typescript@4.6.4) + specifier: 0.126.1-444264056 + version: 0.126.1-444264056(typescript@4.6.4) '@fern-api/fs-utils': specifier: workspace:* version: link:../../commons/fs-utils @@ -4408,8 +4410,8 @@ importers: specifier: workspace:* version: link:../docs-markdown-utils '@fern-api/fdr-sdk': - specifier: 0.123.0-c32499d0e - version: 0.123.0-c32499d0e(typescript@4.6.4) + specifier: 0.126.1-444264056 + version: 0.126.1-444264056(typescript@4.6.4) '@fern-api/fs-utils': specifier: workspace:* version: link:../../commons/fs-utils @@ -4426,8 +4428,8 @@ importers: specifier: workspace:* version: link:../task-context '@fern-api/ui-core-utils': - specifier: 0.123.0-c32499d0e - version: 0.123.0-c32499d0e + specifier: 0.126.1-444264056 + version: 0.126.1-444264056 dayjs: specifier: ^1.11.11 version: 1.11.11 @@ -4533,8 +4535,8 @@ importers: specifier: workspace:* version: link:../../commons/logging-execa '@fern-fern/fdr-cjs-sdk': - specifier: 0.123.0-c32499d0e - version: 0.123.0-c32499d0e + specifier: 0.126.1-444264056 + version: 0.126.1-444264056 '@fern-typescript/fetcher': specifier: workspace:* version: link:../../../generators/typescript/utils/core-utilities/fetcher @@ -5274,8 +5276,8 @@ importers: specifier: workspace:* version: link:../../../workspace-loader '@fern-fern/fdr-cjs-sdk': - specifier: 0.123.0-c32499d0e - version: 0.123.0-c32499d0e + specifier: 0.126.1-444264056 + version: 0.126.1-444264056 '@fern-fern/fiddle-sdk': specifier: 0.0.584 version: 0.0.584 @@ -5831,8 +5833,8 @@ importers: specifier: workspace:* version: link:../task-context '@fern-fern/fdr-cjs-sdk': - specifier: 0.123.0-c32499d0e - version: 0.123.0-c32499d0e + specifier: 0.126.1-444264056 + version: 0.126.1-444264056 lodash-es: specifier: ^4.17.21 version: 4.17.21 @@ -6318,8 +6320,8 @@ importers: specifier: 0.10.2 version: 0.10.2 '@fern-fern/fdr-cjs-sdk': - specifier: 0.123.0-c32499d0e - version: 0.123.0-c32499d0e + specifier: 0.126.1-444264056 + version: 0.126.1-444264056 '@fern-fern/fdr-test-sdk': specifier: ^0.0.5297 version: 0.0.5297 @@ -7582,8 +7584,8 @@ packages: '@exodus/schemasafe@1.0.0': resolution: {integrity: sha512-2cyupPIZI69HQxEAPllLXBjQp4njDKkOjYRCYxvMZe3/LY9pp9fBM3Tb1wiFAdP6Emo4v3OEbCLGj6u73Q5KLw==} - '@fern-api/fdr-sdk@0.123.0-c32499d0e': - resolution: {integrity: sha512-y/e4V/BnhWYrBWgXM7uhuMLwlK+ZEUh5xCoigKiRwFV5ZiWRPQBXmIt8ylTh5JPuiD42NhtnWlAYcy67uAD87Q==} + '@fern-api/fdr-sdk@0.126.1-444264056': + resolution: {integrity: sha512-Xl1Ctteav1GOulX40756FLEoJAI7VCn6zgkdDb6RRSZhm9Z8fjaBRv/cdMo1saupqHNd62Hm5b8FdmGjwWFAPw==} '@fern-api/sdk@0.12.3': resolution: {integrity: sha512-sexxpQEHBmsAXW3UHo5x7NW8Z9TrHWYLGo/J7eFqHYSH8Sq9LA3vRlR0ni9h4FNlKnPDu9Y55L0BhsQVXYqPKA==} @@ -7591,8 +7593,8 @@ packages: '@fern-api/template-resolver@0.7.5': resolution: {integrity: sha512-hmvSxuhyWMjn1DxJJS/R+CIaZcF5c+UBEyFqFOw+laoBtdDvNgEyCu7XP5cILVMABPHmt7kkIO5KbrsCS5S2kw==} - '@fern-api/ui-core-utils@0.123.0-c32499d0e': - resolution: {integrity: sha512-5Z9dG1F7r8KqJciubz6TB9wTbK345+KaKXNOx0m8mGhcXj7cgw8tZYcPPBaQeEWRvAkanY9rErPNIrXLunxdGQ==} + '@fern-api/ui-core-utils@0.126.1-444264056': + resolution: {integrity: sha512-9L3Tgl83nGaw9Jug17ZXSkPL7ZTeOP3SukG/Fz2Y2Aa/GqEToCrexuGkTO090nwuv2zO9gi7CYDHvQOEl5IIMQ==} '@fern-api/venus-api-sdk@0.10.2': resolution: {integrity: sha512-BD18ZNJeWYvztRXSUWY2lfZ8jFUbNAfHWctvIsWyXgI7C8EL3N0+CWUGD5cZ1QqRnq42nm6XJdWRKhny3yrz4g==} @@ -7600,8 +7602,8 @@ packages: '@fern-fern/docs-config@0.0.80': resolution: {integrity: sha512-wAZCNxwM4qIPn3idoIihPP65KWPjNuoTSfdP4+5f8K2jJLgs5cdkY0pm4cQlGWvi5K6b+lfbUWDaslnXscJ2gQ==} - '@fern-fern/fdr-cjs-sdk@0.123.0-c32499d0e': - resolution: {integrity: sha512-EsT+5mcrl6NYJEbRnqG+BY4aq3eNZkCFOU1Ywiu8AtyB/oRxOsbicIy8PPcnImplw/+TkJazy4SYgiYPi25eow==} + '@fern-fern/fdr-cjs-sdk@0.126.1-444264056': + resolution: {integrity: sha512-APStUB4pA/H620WMm/K6uyCtk7hxXB4ZuroY+VIfLexpieC39ZSHeN6DlpbuG/vPkF6LUtnpYlfWxGpEVCmhrw==} '@fern-fern/fdr-test-sdk@0.0.5297': resolution: {integrity: sha512-jrZUZ6oIA64LHtrv77xEq0X7qJhT9xRMGWhKcLjIUArMsD7h6KMWUHVdoB/1MP0Mz/uL/E2xmM31SOgJicpIcA==} @@ -14583,9 +14585,9 @@ snapshots: '@exodus/schemasafe@1.0.0': {} - '@fern-api/fdr-sdk@0.123.0-c32499d0e(typescript@4.6.4)': + '@fern-api/fdr-sdk@0.126.1-444264056(typescript@4.6.4)': dependencies: - '@fern-api/ui-core-utils': 0.123.0-c32499d0e + '@fern-api/ui-core-utils': 0.126.1-444264056 '@ungap/structured-clone': 1.2.0 dayjs: 1.11.11 es-toolkit: 1.26.0 @@ -14619,7 +14621,7 @@ snapshots: dependencies: prettier: 3.3.3 - '@fern-api/ui-core-utils@0.123.0-c32499d0e': + '@fern-api/ui-core-utils@0.126.1-444264056': dependencies: strip-ansi: 7.1.0 title: 3.5.3 @@ -14639,7 +14641,7 @@ snapshots: '@fern-fern/docs-config@0.0.80': {} - '@fern-fern/fdr-cjs-sdk@0.123.0-c32499d0e': + '@fern-fern/fdr-cjs-sdk@0.126.1-444264056': dependencies: form-data: 4.0.0 formdata-node: 6.0.3