@fern-api/fdr-sdk 0.142.18-e9aa82058 → 0.142.19-1e35fd1e1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/client/FdrClient.ts","../../../src/client/generated/api/resources/api/index.ts","../../../src/client/generated/api/resources/api/resources/latest/index.ts","../../../src/client/generated/api/resources/api/resources/latest/client/getApiLatest.ts","../../../src/client/generated/api/resources/api/resources/latest/resources/auth/index.ts","../../../src/client/generated/api/resources/api/resources/latest/resources/commons/index.ts","../../../src/client/generated/api/resources/api/resources/latest/resources/endpoint/index.ts","../../../src/client/generated/api/resources/api/resources/latest/resources/type/index.ts","../../../src/client/generated/api/resources/api/resources/latest/resources/type/types/ObjectPropertyAccess.ts","../../../src/client/generated/api/resources/api/resources/latest/resources/webhook/index.ts","../../../src/client/generated/api/resources/api/resources/latest/resources/webhook/types/WebhookHttpMethod.ts","../../../src/client/generated/api/resources/api/resources/latest/resources/websocket/index.ts","../../../src/client/generated/api/resources/api/resources/v1/index.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/commons/index.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/commons/types/SubpackageId.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/commons/types/WebhookHttpMethod.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/commons/types/WebSocketMessageId.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/commons/types/WebSocketMessageOrigin.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/db/index.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/db/resources/endpoint/index.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/read/index.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/read/client/getApi.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/read/client/getEndpointById.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/read/client/getEndpointByLocator.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/read/resources/endpoint/index.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/read/resources/endpoint/types/SupportedLanguage.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/read/resources/type/index.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/read/resources/type/types/ObjectPropertyAccess.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/read/resources/webhook/index.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/read/resources/websocket/index.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/register/index.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/register/client/checkSdkDynamicIrExists.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/register/client/getSdkDynamicIrUploadUrls.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/register/client/registerApiDefinition.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/register/resources/endpoint/index.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/register/resources/type/index.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/register/resources/type/types/ObjectPropertyAccess.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/register/resources/webhook/index.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/register/resources/websocket/index.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/register/types/SourceId.ts","../../../src/client/generated/api/resources/dashboard/index.ts","../../../src/client/generated/api/resources/dashboard/client/getDocsSitesForOrg.ts","../../../src/client/generated/api/resources/diff/index.ts","../../../src/client/generated/api/resources/diff/client/diff.ts","../../../src/client/generated/api/resources/docs/index.ts","../../../src/client/generated/api/resources/docs/resources/latest/index.ts","../../../src/client/generated/api/resources/docs/resources/latest/resources/commons/index.ts","../../../src/client/generated/api/resources/docs/resources/latest/resources/frontmatter/index.ts","../../../src/client/generated/api/resources/docs/resources/latest/resources/frontmatter/types/Layout.ts","../../../src/client/generated/api/resources/docs/resources/latest/resources/seo/index.ts","../../../src/client/generated/api/resources/docs/resources/latest/resources/seo/types/TwitterCardSetting.ts","../../../src/client/generated/api/resources/docs/resources/v1/index.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/commons/index.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/commons/resources/commons/index.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/commons/resources/commons/types/AiChatLocation.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/commons/resources/commons/types/AiModel.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/commons/resources/commons/types/ContentAlignment.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/commons/resources/commons/types/DocsBodyConfig.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/commons/resources/commons/types/DocsPageActionsConfig.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/commons/resources/commons/types/DocsSidebarConfig.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/commons/resources/commons/types/DocsTabsConfig.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/commons/resources/commons/types/FontDisplay.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/commons/resources/commons/types/FontStyle.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/commons/resources/commons/types/FooterNavConfig.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/commons/resources/commons/types/HeaderPosition.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/commons/resources/commons/types/HttpSnippetLanguage.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/commons/resources/commons/types/JsScriptStrategy.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/commons/resources/commons/types/Language.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/commons/resources/commons/types/LanguageSwitcherConfig.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/commons/resources/commons/types/PageActionOption.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/commons/resources/commons/types/ProgrammingLanguage.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/commons/resources/commons/types/SearchbarPlacement.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/commons/resources/commons/types/TabsPlacement.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/commons/resources/commons/types/TwitterCardSetting.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/db/index.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/read/index.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/read/client/getDocsForDomain.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/read/client/getDocsForDomainLegacy.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/write/index.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/write/client/finishDocsRegister.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/write/client/startDocsRegister.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/write/types/DocsRegistrationId.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/write/types/FilePath.ts","../../../src/client/generated/api/resources/docs/resources/v2/index.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/read/index.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/read/client/ensureDocsInS3.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/read/client/getDocsConfigById.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/read/client/getDocsFields.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/read/client/getDocsForUrl.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/read/client/getDocsUrlMetadata.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/read/client/getOrganizationForUrl.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/read/client/getPrivateDocsForUrl.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/read/client/listAllDocsUrls.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/read/client/prepopulateFdrReadS3Bucket.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/read/types/DocsDefinitionField.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/write/index.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/write/client/addAlgoliaPreviewWhitelistEntry.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/write/client/deleteDocsSite.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/write/client/finishDocsRegister.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/write/client/getLibraryDocsGenerationStatus.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/write/client/getLibraryDocsResult.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/write/client/listAlgoliaPreviewWhitelist.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/write/client/removeAlgoliaPreviewWhitelistEntry.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/write/client/setDocsUrlMetadata.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/write/client/setIsArchived.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/write/client/startDocsPreviewRegister.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/write/client/startDocsRegister.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/write/client/startLibraryDocsGeneration.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/write/client/transferOwnershipOfDomain.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/write/types/LibraryDocsErrorCode.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/write/types/LibraryDocsGenerationStatusType.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/write/types/LibraryDocsJobId.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/write/types/LibraryLanguage.ts","../../../src/client/generated/api/resources/docsCache/index.ts","../../../src/client/generated/api/resources/docsCache/client/invalidate.ts","../../../src/client/generated/api/resources/generators/index.ts","../../../src/client/generated/api/resources/generators/client/getGenerator.ts","../../../src/client/generated/api/resources/generators/client/getGeneratorByImage.ts","../../../src/client/generated/api/resources/generators/client/listGenerators.ts","../../../src/client/generated/api/resources/generators/client/upsertGenerator.ts","../../../src/client/generated/api/resources/generators/resources/cli/index.ts","../../../src/client/generated/api/resources/generators/resources/cli/client/getChangelog.ts","../../../src/client/generated/api/resources/generators/resources/cli/client/getCliRelease.ts","../../../src/client/generated/api/resources/generators/resources/cli/client/getLatestCliRelease.ts","../../../src/client/generated/api/resources/generators/resources/cli/client/getMinCliForIr.ts","../../../src/client/generated/api/resources/generators/resources/cli/client/listCliReleases.ts","../../../src/client/generated/api/resources/generators/resources/cli/client/upsertCliRelease.ts","../../../src/client/generated/api/resources/generators/resources/commons/index.ts","../../../src/client/generated/api/resources/generators/resources/commons/types/ChangelogEntryType.ts","../../../src/client/generated/api/resources/generators/resources/commons/types/ReleaseType.ts","../../../src/client/generated/api/resources/generators/resources/versions/index.ts","../../../src/client/generated/api/resources/generators/resources/versions/client/getChangelog.ts","../../../src/client/generated/api/resources/generators/resources/versions/client/getGeneratorRelease.ts","../../../src/client/generated/api/resources/generators/resources/versions/client/getLatestGeneratorRelease.ts","../../../src/client/generated/api/resources/generators/resources/versions/client/listGeneratorReleases.ts","../../../src/client/generated/api/resources/generators/resources/versions/client/upsertGeneratorRelease.ts","../../../src/client/generated/api/resources/generators/types/GeneratorId.ts","../../../src/client/generated/api/resources/generators/types/GeneratorLanguage.ts","../../../src/client/generated/api/resources/git/index.ts","../../../src/client/generated/api/resources/git/client/deletePullRequest.ts","../../../src/client/generated/api/resources/git/client/deleteRepository.ts","../../../src/client/generated/api/resources/git/client/getPullRequest.ts","../../../src/client/generated/api/resources/git/client/getRepository.ts","../../../src/client/generated/api/resources/git/client/listPullRequests.ts","../../../src/client/generated/api/resources/git/client/listRepositories.ts","../../../src/client/generated/api/resources/git/client/upsertPullRequest.ts","../../../src/client/generated/api/resources/git/client/upsertRepository.ts","../../../src/client/generated/api/resources/git/types/PullRequestState.ts","../../../src/client/generated/api/resources/sdks/index.ts","../../../src/client/generated/api/resources/sdks/resources/versions/index.ts","../../../src/client/generated/api/resources/sdks/resources/versions/client/computeSemanticVersion.ts","../../../src/client/generated/api/resources/sdks/resources/versions/types/Language.ts","../../../src/client/generated/api/resources/sdks/resources/versions/types/VersionBump.ts","../../../src/client/generated/api/resources/snippets/index.ts","../../../src/client/generated/api/resources/snippets/client/get.ts","../../../src/client/generated/api/resources/snippets/client/load.ts","../../../src/client/generated/api/resources/snippetsFactory/index.ts","../../../src/client/generated/api/resources/snippetsFactory/client/createSnippetsForSdk.ts","../../../src/client/generated/api/resources/templates/index.ts","../../../src/client/generated/api/resources/templates/client/get.ts","../../../src/client/generated/api/resources/templates/client/register.ts","../../../src/client/generated/api/resources/templates/client/registerBatch.ts","../../../src/client/generated/api/resources/templates/types/PayloadLocation.ts","../../../src/client/generated/api/resources/tokens/index.ts","../../../src/client/generated/api/resources/tokens/client/generate.ts","../../../src/client/generated/api/resources/tokens/client/revoke.ts","../../../src/client/generated/core/headers.ts","../../../src/client/generated/core/fetcher/EndpointSupplier.ts","../../../src/client/generated/core/json.ts","../../../src/client/generated/core/logging/logger.ts","../../../src/client/generated/core/url/qs.ts","../../../src/client/generated/core/fetcher/createRequestUrl.ts","../../../src/client/generated/core/fetcher/BinaryResponse.ts","../../../src/client/generated/core/fetcher/ResponseWithBody.ts","../../../src/client/generated/core/fetcher/getResponseBody.ts","../../../src/client/generated/core/fetcher/getErrorResponseBody.ts","../../../src/client/generated/core/fetcher/getFetchFn.ts","../../../src/client/generated/core/fetcher/getRequestBody.ts","../../../src/client/generated/core/fetcher/Headers.ts","../../../src/client/generated/core/fetcher/signals.ts","../../../src/client/generated/core/fetcher/makeRequest.ts","../../../src/client/generated/core/fetcher/RawResponse.ts","../../../src/client/generated/core/fetcher/requestWithRetries.ts","../../../src/client/generated/core/fetcher/Fetcher.ts","../../../src/client/generated/core/fetcher/HttpResponsePromise.ts","../../../src/client/generated/core/fetcher/Supplier.ts","../../../src/client/generated/core/logging/index.ts","../../../src/client/generated/core/runtime/runtime.ts","../../../src/client/generated/core/url/index.ts","../../../src/client/generated/core/url/encodePathParam.ts","../../../src/client/generated/core/url/join.ts","../../../src/client/generated/BaseClient.ts","../../../src/client/generated/environments.ts","../../../src/client/generated/api/resources/api/resources/latest/client/Client.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/read/client/Client.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/register/client/Client.ts","../../../src/client/generated/api/resources/api/resources/v1/client/Client.ts","../../../src/client/generated/api/resources/api/client/Client.ts","../../../src/client/generated/api/resources/dashboard/client/Client.ts","../../../src/client/generated/api/resources/diff/client/Client.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/read/client/Client.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/write/client/Client.ts","../../../src/client/generated/api/resources/docs/resources/v1/client/Client.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/read/client/Client.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/write/client/Client.ts","../../../src/client/generated/api/resources/docs/resources/v2/client/Client.ts","../../../src/client/generated/api/resources/docs/client/Client.ts","../../../src/client/generated/api/resources/docsCache/client/Client.ts","../../../src/client/generated/api/resources/generators/resources/cli/client/Client.ts","../../../src/client/generated/api/resources/generators/resources/versions/client/Client.ts","../../../src/client/generated/api/resources/generators/client/Client.ts","../../../src/client/generated/api/resources/git/client/Client.ts","../../../src/client/generated/api/resources/sdks/resources/versions/client/Client.ts","../../../src/client/generated/api/resources/sdks/client/Client.ts","../../../src/client/generated/api/resources/snippets/client/Client.ts","../../../src/client/generated/api/resources/snippetsFactory/client/Client.ts","../../../src/client/generated/api/resources/templates/client/Client.ts","../../../src/client/generated/api/resources/tokens/client/Client.ts","../../../src/client/generated/Client.ts"],"sourcesContent":["export { FernRegistryClient as FdrClient } from \"./generated\";\n","export * from \"./client/index.js\";\nexport * from \"./resources/index.js\";\n","export * from \"./client/index.js\";\nexport * from \"./resources/index.js\";\nexport * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.api.latest.getApiLatest.Error.UnauthorizedError\n | FernRegistry.api.latest.getApiLatest.Error.ApiDoesNotExistError\n | FernRegistry.api.latest.getApiLatest.Error._Unknown;\n\nexport namespace Error {\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface ApiDoesNotExistError {\n error: \"ApiDoesNotExistError\";\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n unauthorizedError: (value: string) => _Result;\n apiDoesNotExistError: () => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n unauthorizedError: (value: string): FernRegistry.api.latest.getApiLatest.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n apiDoesNotExistError: (): FernRegistry.api.latest.getApiLatest.Error.ApiDoesNotExistError => {\n return {\n error: \"ApiDoesNotExistError\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.api.latest.getApiLatest.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.api.latest.getApiLatest.Error,\n visitor: FernRegistry.api.latest.getApiLatest.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n case \"ApiDoesNotExistError\":\n return visitor.apiDoesNotExistError();\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","export * from \"./types/index.js\";\n","export * from \"./types/index.js\";\n","export * from \"./types/index.js\";\n","export * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const ObjectPropertyAccess = {\n ReadOnly: \"READ_ONLY\",\n WriteOnly: \"WRITE_ONLY\",\n} as const;\nexport type ObjectPropertyAccess = (typeof ObjectPropertyAccess)[keyof typeof ObjectPropertyAccess];\n","export * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const WebhookHttpMethod = {\n Get: \"GET\",\n Post: \"POST\",\n} as const;\nexport type WebhookHttpMethod = (typeof WebhookHttpMethod)[keyof typeof WebhookHttpMethod];\n","export * from \"./types/index.js\";\n","export * from \"./client/index.js\";\nexport * from \"./resources/index.js\";\n","export * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type SubpackageId = string & {\n api_v1_SubpackageId: void;\n};\n\nexport function SubpackageId(value: string): FernRegistry.api.v1.SubpackageId {\n return value as unknown as FernRegistry.api.v1.SubpackageId;\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const WebhookHttpMethod = {\n Get: \"GET\",\n Post: \"POST\",\n} as const;\nexport type WebhookHttpMethod = (typeof WebhookHttpMethod)[keyof typeof WebhookHttpMethod];\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type WebSocketMessageId = string & {\n api_v1_WebSocketMessageId: void;\n};\n\nexport function WebSocketMessageId(value: string): FernRegistry.api.v1.WebSocketMessageId {\n return value as unknown as FernRegistry.api.v1.WebSocketMessageId;\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const WebSocketMessageOrigin = {\n Client: \"client\",\n Server: \"server\",\n} as const;\nexport type WebSocketMessageOrigin = (typeof WebSocketMessageOrigin)[keyof typeof WebSocketMessageOrigin];\n","export * from \"./resources/index.js\";\nexport * from \"./types/index.js\";\n","export * from \"./types/index.js\";\n","export * from \"./client/index.js\";\nexport * from \"./resources/index.js\";\nexport * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.api.v1.read.getApi.Error.UnauthorizedError\n | FernRegistry.api.v1.read.getApi.Error.ApiDoesNotExistError\n | FernRegistry.api.v1.read.getApi.Error._Unknown;\n\nexport namespace Error {\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface ApiDoesNotExistError {\n error: \"ApiDoesNotExistError\";\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n unauthorizedError: (value: string) => _Result;\n apiDoesNotExistError: () => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n unauthorizedError: (value: string): FernRegistry.api.v1.read.getApi.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n apiDoesNotExistError: (): FernRegistry.api.v1.read.getApi.Error.ApiDoesNotExistError => {\n return {\n error: \"ApiDoesNotExistError\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.api.v1.read.getApi.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.api.v1.read.getApi.Error,\n visitor: FernRegistry.api.v1.read.getApi.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n case \"ApiDoesNotExistError\":\n return visitor.apiDoesNotExistError();\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.api.v1.read.getEndpointById.Error.UnauthorizedError\n | FernRegistry.api.v1.read.getEndpointById.Error.ApiDoesNotExistError\n | FernRegistry.api.v1.read.getEndpointById.Error.EndpointDoesNotExistError\n | FernRegistry.api.v1.read.getEndpointById.Error._Unknown;\n\nexport namespace Error {\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface ApiDoesNotExistError {\n error: \"ApiDoesNotExistError\";\n }\n\n export interface EndpointDoesNotExistError {\n error: \"EndpointDoesNotExistError\";\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n unauthorizedError: (value: string) => _Result;\n apiDoesNotExistError: () => _Result;\n endpointDoesNotExistError: () => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n unauthorizedError: (value: string): FernRegistry.api.v1.read.getEndpointById.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n apiDoesNotExistError: (): FernRegistry.api.v1.read.getEndpointById.Error.ApiDoesNotExistError => {\n return {\n error: \"ApiDoesNotExistError\",\n };\n },\n\n endpointDoesNotExistError: (): FernRegistry.api.v1.read.getEndpointById.Error.EndpointDoesNotExistError => {\n return {\n error: \"EndpointDoesNotExistError\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.api.v1.read.getEndpointById.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.api.v1.read.getEndpointById.Error,\n visitor: FernRegistry.api.v1.read.getEndpointById.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n case \"ApiDoesNotExistError\":\n return visitor.apiDoesNotExistError();\n case \"EndpointDoesNotExistError\":\n return visitor.endpointDoesNotExistError();\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.api.v1.read.getEndpointByLocator.Error.UnauthorizedError\n | FernRegistry.api.v1.read.getEndpointByLocator.Error.ApiDoesNotExistError\n | FernRegistry.api.v1.read.getEndpointByLocator.Error.EndpointDoesNotExistError\n | FernRegistry.api.v1.read.getEndpointByLocator.Error._Unknown;\n\nexport namespace Error {\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface ApiDoesNotExistError {\n error: \"ApiDoesNotExistError\";\n }\n\n export interface EndpointDoesNotExistError {\n error: \"EndpointDoesNotExistError\";\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n unauthorizedError: (value: string) => _Result;\n apiDoesNotExistError: () => _Result;\n endpointDoesNotExistError: () => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n unauthorizedError: (value: string): FernRegistry.api.v1.read.getEndpointByLocator.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n apiDoesNotExistError: (): FernRegistry.api.v1.read.getEndpointByLocator.Error.ApiDoesNotExistError => {\n return {\n error: \"ApiDoesNotExistError\",\n };\n },\n\n endpointDoesNotExistError: (): FernRegistry.api.v1.read.getEndpointByLocator.Error.EndpointDoesNotExistError => {\n return {\n error: \"EndpointDoesNotExistError\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.api.v1.read.getEndpointByLocator.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.api.v1.read.getEndpointByLocator.Error,\n visitor: FernRegistry.api.v1.read.getEndpointByLocator.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n case \"ApiDoesNotExistError\":\n return visitor.apiDoesNotExistError();\n case \"EndpointDoesNotExistError\":\n return visitor.endpointDoesNotExistError();\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","export * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const SupportedLanguage = {\n Curl: \"curl\",\n Python: \"python\",\n Javascript: \"javascript\",\n Js: \"js\",\n Node: \"node\",\n Typescript: \"typescript\",\n Ts: \"ts\",\n Go: \"go\",\n Ruby: \"ruby\",\n Csharp: \"csharp\",\n Php: \"php\",\n Swift: \"swift\",\n Rust: \"rust\",\n} as const;\nexport type SupportedLanguage = (typeof SupportedLanguage)[keyof typeof SupportedLanguage];\n","export * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const ObjectPropertyAccess = {\n ReadOnly: \"READ_ONLY\",\n WriteOnly: \"WRITE_ONLY\",\n} as const;\nexport type ObjectPropertyAccess = (typeof ObjectPropertyAccess)[keyof typeof ObjectPropertyAccess];\n","export * from \"./types/index.js\";\n","export * from \"./types/index.js\";\n","export * from \"./client/index.js\";\nexport * from \"./resources/index.js\";\nexport * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.api.v1.register.checkSdkDynamicIrExists.Error.UnauthorizedError\n | FernRegistry.api.v1.register.checkSdkDynamicIrExists.Error.UserNotInOrgError\n | FernRegistry.api.v1.register.checkSdkDynamicIrExists.Error._Unknown;\n\nexport namespace Error {\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface UserNotInOrgError {\n error: \"UserNotInOrgError\";\n content: string;\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n unauthorizedError: (value: string) => _Result;\n userNotInOrgError: (value: string) => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n unauthorizedError: (\n value: string,\n ): FernRegistry.api.v1.register.checkSdkDynamicIrExists.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n userNotInOrgError: (\n value: string,\n ): FernRegistry.api.v1.register.checkSdkDynamicIrExists.Error.UserNotInOrgError => {\n return {\n content: value,\n error: \"UserNotInOrgError\",\n };\n },\n\n _unknown: (\n fetcherError: core.Fetcher.Error,\n ): FernRegistry.api.v1.register.checkSdkDynamicIrExists.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.api.v1.register.checkSdkDynamicIrExists.Error,\n visitor: FernRegistry.api.v1.register.checkSdkDynamicIrExists.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n case \"UserNotInOrgError\":\n return visitor.userNotInOrgError(value.content);\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.api.v1.register.getSdkDynamicIrUploadUrls.Error.UnauthorizedError\n | FernRegistry.api.v1.register.getSdkDynamicIrUploadUrls.Error.UserNotInOrgError\n | FernRegistry.api.v1.register.getSdkDynamicIrUploadUrls.Error._Unknown;\n\nexport namespace Error {\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface UserNotInOrgError {\n error: \"UserNotInOrgError\";\n content: string;\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n unauthorizedError: (value: string) => _Result;\n userNotInOrgError: (value: string) => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n unauthorizedError: (\n value: string,\n ): FernRegistry.api.v1.register.getSdkDynamicIrUploadUrls.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n userNotInOrgError: (\n value: string,\n ): FernRegistry.api.v1.register.getSdkDynamicIrUploadUrls.Error.UserNotInOrgError => {\n return {\n content: value,\n error: \"UserNotInOrgError\",\n };\n },\n\n _unknown: (\n fetcherError: core.Fetcher.Error,\n ): FernRegistry.api.v1.register.getSdkDynamicIrUploadUrls.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.api.v1.register.getSdkDynamicIrUploadUrls.Error,\n visitor: FernRegistry.api.v1.register.getSdkDynamicIrUploadUrls.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n case \"UserNotInOrgError\":\n return visitor.userNotInOrgError(value.content);\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.api.v1.register.registerApiDefinition.Error.UnauthorizedError\n | FernRegistry.api.v1.register.registerApiDefinition.Error.UserNotInOrgError\n | FernRegistry.api.v1.register.registerApiDefinition.Error._Unknown;\n\nexport namespace Error {\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface UserNotInOrgError {\n error: \"UserNotInOrgError\";\n content: string;\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n unauthorizedError: (value: string) => _Result;\n userNotInOrgError: (value: string) => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n unauthorizedError: (value: string): FernRegistry.api.v1.register.registerApiDefinition.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n userNotInOrgError: (value: string): FernRegistry.api.v1.register.registerApiDefinition.Error.UserNotInOrgError => {\n return {\n content: value,\n error: \"UserNotInOrgError\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.api.v1.register.registerApiDefinition.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.api.v1.register.registerApiDefinition.Error,\n visitor: FernRegistry.api.v1.register.registerApiDefinition.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n case \"UserNotInOrgError\":\n return visitor.userNotInOrgError(value.content);\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","export * from \"./types/index.js\";\n","export * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const ObjectPropertyAccess = {\n ReadOnly: \"READ_ONLY\",\n WriteOnly: \"WRITE_ONLY\",\n} as const;\nexport type ObjectPropertyAccess = (typeof ObjectPropertyAccess)[keyof typeof ObjectPropertyAccess];\n","export * from \"./types/index.js\";\n","export * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type SourceId = string & {\n api_v1_register_SourceId: void;\n};\n\nexport function SourceId(value: string): FernRegistry.api.v1.register.SourceId {\n return value as unknown as FernRegistry.api.v1.register.SourceId;\n}\n","export * from \"./client/index.js\";\nexport * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../index.js\";\n\nexport type Error =\n | FernRegistry.dashboard.getDocsSitesForOrg.Error.UnauthorizedError\n | FernRegistry.dashboard.getDocsSitesForOrg.Error.UserNotInOrgError\n | FernRegistry.dashboard.getDocsSitesForOrg.Error._Unknown;\n\nexport namespace Error {\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface UserNotInOrgError {\n error: \"UserNotInOrgError\";\n content: string;\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n unauthorizedError: (value: string) => _Result;\n userNotInOrgError: (value: string) => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n unauthorizedError: (value: string): FernRegistry.dashboard.getDocsSitesForOrg.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n userNotInOrgError: (value: string): FernRegistry.dashboard.getDocsSitesForOrg.Error.UserNotInOrgError => {\n return {\n content: value,\n error: \"UserNotInOrgError\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.dashboard.getDocsSitesForOrg.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.dashboard.getDocsSitesForOrg.Error,\n visitor: FernRegistry.dashboard.getDocsSitesForOrg.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n case \"UserNotInOrgError\":\n return visitor.userNotInOrgError(value.content);\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","export * from \"./client/index.js\";\nexport * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../index.js\";\n\nexport type Error = FernRegistry.diff.diff.Error._Unknown;\n\nexport namespace Error {\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.diff.diff.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.diff.diff.Error,\n visitor: FernRegistry.diff.diff.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","export * from \"./client/index.js\";\nexport * from \"./resources/index.js\";\n","export * from \"./resources/index.js\";\nexport * from \"./types/index.js\";\n","export * from \"./types/index.js\";\n","export * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const Layout = {\n /**\n * Guides are typically long-form content, and are designed for readability. */\n Guide: \"guide\",\n /**\n * Overview pages are typically meant to be a landing page for a section of the documentation.\n * These pages are 50% wider than guide pages, but the table of contents is still visible. */\n Overview: \"overview\",\n /**\n * Reference pages are best used for API docs or other material that is meant to have a right-hand column.\n * This layout is not recommended for long-form content because they are 2x the width of guide pages and can be difficult to read.\n * Using an <Aside> component is recommended. It will generate a sticky right-hand column for the page, which is useful for code snippets.\n * <Aside> component is not available in guides and overview, and will automatically cause the layout to switch to reference.\n * Note: Table of contents are always hidden on reference pages. */\n Reference: \"reference\",\n /**\n * The layout used for full-width pages. This is useful for landing pages or other custom layouts.\n * Both the navigation sidebar and the table of contents are hidden.\n * The content will take up the full width of the page-width container, which is set by docs.yml. */\n Page: \"page\",\n /**\n * This layout takes over 100% of the viewport width, below the header.\n * Unlike PageLayout, the content will not be constrained to the page-width container, and does not render any padding. */\n Custom: \"custom\",\n} as const;\nexport type Layout = (typeof Layout)[keyof typeof Layout];\n","export * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const TwitterCardSetting = {\n Summary: \"summary\",\n SummaryLargeImage: \"summary_large_image\",\n App: \"app\",\n Player: \"player\",\n} as const;\nexport type TwitterCardSetting = (typeof TwitterCardSetting)[keyof typeof TwitterCardSetting];\n","export * from \"./client/index.js\";\nexport * from \"./resources/index.js\";\n","export * from \"./resources/index.js\";\n","export * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const AiChatLocation = {\n Docs: \"docs\",\n Slack: \"slack\",\n Discord: \"discord\",\n} as const;\nexport type AiChatLocation = (typeof AiChatLocation)[keyof typeof AiChatLocation];\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const AiModel = {\n Claude35: \"claude-3.5\",\n Claude37: \"claude-3.7\",\n Claude4: \"claude-4\",\n CommandA: \"command-a\",\n} as const;\nexport type AiModel = (typeof AiModel)[keyof typeof AiModel];\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const ContentAlignment = {\n Center: \"CENTER\",\n Left: \"LEFT\",\n} as const;\nexport type ContentAlignment = (typeof ContentAlignment)[keyof typeof ContentAlignment];\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const DocsBodyConfig = {\n Default: \"default\",\n Canvas: \"canvas\",\n} as const;\nexport type DocsBodyConfig = (typeof DocsBodyConfig)[keyof typeof DocsBodyConfig];\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const DocsPageActionsConfig = {\n Default: \"default\",\n Toolbar: \"toolbar\",\n} as const;\nexport type DocsPageActionsConfig = (typeof DocsPageActionsConfig)[keyof typeof DocsPageActionsConfig];\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const DocsSidebarConfig = {\n Default: \"default\",\n Minimal: \"minimal\",\n} as const;\nexport type DocsSidebarConfig = (typeof DocsSidebarConfig)[keyof typeof DocsSidebarConfig];\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const DocsTabsConfig = {\n Default: \"default\",\n Bubble: \"bubble\",\n} as const;\nexport type DocsTabsConfig = (typeof DocsTabsConfig)[keyof typeof DocsTabsConfig];\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const FontDisplay = {\n Auto: \"auto\",\n Block: \"block\",\n Swap: \"swap\",\n Fallback: \"fallback\",\n Optional: \"optional\",\n} as const;\nexport type FontDisplay = (typeof FontDisplay)[keyof typeof FontDisplay];\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const FontStyle = {\n Normal: \"normal\",\n Italic: \"italic\",\n} as const;\nexport type FontStyle = (typeof FontStyle)[keyof typeof FontStyle];\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const FooterNavConfig = {\n Default: \"default\",\n Minimal: \"minimal\",\n} as const;\nexport type FooterNavConfig = (typeof FooterNavConfig)[keyof typeof FooterNavConfig];\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const HeaderPosition = {\n Fixed: \"FIXED\",\n Absolute: \"ABSOLUTE\",\n} as const;\nexport type HeaderPosition = (typeof HeaderPosition)[keyof typeof HeaderPosition];\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const HttpSnippetLanguage = {\n Curl: \"curl\",\n Csharp: \"csharp\",\n Go: \"go\",\n Java: \"java\",\n Javascript: \"javascript\",\n Php: \"php\",\n Python: \"python\",\n Ruby: \"ruby\",\n Swift: \"swift\",\n Rust: \"rust\",\n Typescript: \"typescript\",\n} as const;\nexport type HttpSnippetLanguage = (typeof HttpSnippetLanguage)[keyof typeof HttpSnippetLanguage];\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const JsScriptStrategy = {\n BeforeInteractive: \"beforeInteractive\",\n AfterInteractive: \"afterInteractive\",\n LazyOnload: \"lazyOnload\",\n} as const;\nexport type JsScriptStrategy = (typeof JsScriptStrategy)[keyof typeof JsScriptStrategy];\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const Language = {\n En: \"en\",\n Es: \"es\",\n Fr: \"fr\",\n De: \"de\",\n It: \"it\",\n Pt: \"pt\",\n Ja: \"ja\",\n Zh: \"zh\",\n Ko: \"ko\",\n El: \"el\",\n No: \"no\",\n Pl: \"pl\",\n Ru: \"ru\",\n Sv: \"sv\",\n Tr: \"tr\",\n} as const;\nexport type Language = (typeof Language)[keyof typeof Language];\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const LanguageSwitcherConfig = {\n Default: \"default\",\n Minimal: \"minimal\",\n} as const;\nexport type LanguageSwitcherConfig = (typeof LanguageSwitcherConfig)[keyof typeof LanguageSwitcherConfig];\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const PageActionOption = {\n CopyPage: \"copyPage\",\n ViewAsMarkdown: \"viewAsMarkdown\",\n AskAi: \"askAi\",\n OpenAi: \"openAi\",\n Claude: \"claude\",\n Cursor: \"cursor\",\n Vscode: \"vscode\",\n} as const;\nexport type PageActionOption = (typeof PageActionOption)[keyof typeof PageActionOption];\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const ProgrammingLanguage = {\n Typescript: \"typescript\",\n Javascript: \"javascript\",\n Python: \"python\",\n Java: \"java\",\n Go: \"go\",\n Ruby: \"ruby\",\n Csharp: \"csharp\",\n Php: \"php\",\n Swift: \"swift\",\n Rust: \"rust\",\n Nodets: \"nodets\",\n Nodejs: \"nodejs\",\n Dotnet: \"dotnet\",\n Curl: \"curl\",\n Jvm: \"jvm\",\n Ts: \"ts\",\n Js: \"js\",\n} as const;\nexport type ProgrammingLanguage = (typeof ProgrammingLanguage)[keyof typeof ProgrammingLanguage];\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const SearchbarPlacement = {\n Header: \"HEADER\",\n HeaderTabs: \"HEADER_TABS\",\n Sidebar: \"SIDEBAR\",\n} as const;\nexport type SearchbarPlacement = (typeof SearchbarPlacement)[keyof typeof SearchbarPlacement];\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const TabsPlacement = {\n Header: \"HEADER\",\n Sidebar: \"SIDEBAR\",\n} as const;\nexport type TabsPlacement = (typeof TabsPlacement)[keyof typeof TabsPlacement];\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const TwitterCardSetting = {\n Summary: \"summary\",\n SummaryLargeImage: \"summary_large_image\",\n App: \"app\",\n Player: \"player\",\n} as const;\nexport type TwitterCardSetting = (typeof TwitterCardSetting)[keyof typeof TwitterCardSetting];\n","export * from \"./types/index.js\";\n","export * from \"./client/index.js\";\nexport * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.docs.v1.read.getDocsForDomain.Error.UnauthorizedError\n | FernRegistry.docs.v1.read.getDocsForDomain.Error.DomainNotRegisteredError\n | FernRegistry.docs.v1.read.getDocsForDomain.Error._Unknown;\n\nexport namespace Error {\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface DomainNotRegisteredError {\n error: \"DomainNotRegisteredError\";\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n unauthorizedError: (value: string) => _Result;\n domainNotRegisteredError: () => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n unauthorizedError: (value: string): FernRegistry.docs.v1.read.getDocsForDomain.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n domainNotRegisteredError: (): FernRegistry.docs.v1.read.getDocsForDomain.Error.DomainNotRegisteredError => {\n return {\n error: \"DomainNotRegisteredError\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.docs.v1.read.getDocsForDomain.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.docs.v1.read.getDocsForDomain.Error,\n visitor: FernRegistry.docs.v1.read.getDocsForDomain.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n case \"DomainNotRegisteredError\":\n return visitor.domainNotRegisteredError();\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.docs.v1.read.getDocsForDomainLegacy.Error.UnauthorizedError\n | FernRegistry.docs.v1.read.getDocsForDomainLegacy.Error.DomainNotRegisteredError\n | FernRegistry.docs.v1.read.getDocsForDomainLegacy.Error._Unknown;\n\nexport namespace Error {\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface DomainNotRegisteredError {\n error: \"DomainNotRegisteredError\";\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n unauthorizedError: (value: string) => _Result;\n domainNotRegisteredError: () => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n unauthorizedError: (value: string): FernRegistry.docs.v1.read.getDocsForDomainLegacy.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n domainNotRegisteredError: (): FernRegistry.docs.v1.read.getDocsForDomainLegacy.Error.DomainNotRegisteredError => {\n return {\n error: \"DomainNotRegisteredError\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.docs.v1.read.getDocsForDomainLegacy.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.docs.v1.read.getDocsForDomainLegacy.Error,\n visitor: FernRegistry.docs.v1.read.getDocsForDomainLegacy.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n case \"DomainNotRegisteredError\":\n return visitor.domainNotRegisteredError();\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","export * from \"./client/index.js\";\nexport * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.docs.v1.write.finishDocsRegister.Error.UnauthorizedError\n | FernRegistry.docs.v1.write.finishDocsRegister.Error.UserNotInOrgError\n | FernRegistry.docs.v1.write.finishDocsRegister.Error.DocsRegistrationIdNotFound\n | FernRegistry.docs.v1.write.finishDocsRegister.Error._Unknown;\n\nexport namespace Error {\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface UserNotInOrgError {\n error: \"UserNotInOrgError\";\n content: string;\n }\n\n export interface DocsRegistrationIdNotFound {\n error: \"DocsRegistrationIdNotFound\";\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n unauthorizedError: (value: string) => _Result;\n userNotInOrgError: (value: string) => _Result;\n docsRegistrationIdNotFound: () => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n unauthorizedError: (value: string): FernRegistry.docs.v1.write.finishDocsRegister.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n userNotInOrgError: (value: string): FernRegistry.docs.v1.write.finishDocsRegister.Error.UserNotInOrgError => {\n return {\n content: value,\n error: \"UserNotInOrgError\",\n };\n },\n\n docsRegistrationIdNotFound: (): FernRegistry.docs.v1.write.finishDocsRegister.Error.DocsRegistrationIdNotFound => {\n return {\n error: \"DocsRegistrationIdNotFound\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.docs.v1.write.finishDocsRegister.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.docs.v1.write.finishDocsRegister.Error,\n visitor: FernRegistry.docs.v1.write.finishDocsRegister.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n case \"UserNotInOrgError\":\n return visitor.userNotInOrgError(value.content);\n case \"DocsRegistrationIdNotFound\":\n return visitor.docsRegistrationIdNotFound();\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error = FernRegistry.docs.v1.write.startDocsRegister.Error._Unknown;\n\nexport namespace Error {\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.docs.v1.write.startDocsRegister.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.docs.v1.write.startDocsRegister.Error,\n visitor: FernRegistry.docs.v1.write.startDocsRegister.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type DocsRegistrationId = string & {\n docs_v1_write_DocsRegistrationId: void;\n};\n\nexport function DocsRegistrationId(value: string): FernRegistry.docs.v1.write.DocsRegistrationId {\n return value as unknown as FernRegistry.docs.v1.write.DocsRegistrationId;\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\n/**\n * Each string is a unique key for the file. You can use the filepath as a key.\n */\nexport type FilePath = string & {\n docs_v1_write_FilePath: void;\n};\n\nexport function FilePath(value: string): FernRegistry.docs.v1.write.FilePath {\n return value as unknown as FernRegistry.docs.v1.write.FilePath;\n}\n","export * from \"./client/index.js\";\nexport * from \"./resources/index.js\";\n","export * from \"./client/index.js\";\nexport * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.docs.v2.read.ensureDocsInS3.Error.DomainNotRegisteredError\n | FernRegistry.docs.v2.read.ensureDocsInS3.Error.UnauthorizedError\n | FernRegistry.docs.v2.read.ensureDocsInS3.Error._Unknown;\n\nexport namespace Error {\n export interface DomainNotRegisteredError {\n error: \"DomainNotRegisteredError\";\n }\n\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n domainNotRegisteredError: () => _Result;\n unauthorizedError: (value: string) => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n domainNotRegisteredError: (): FernRegistry.docs.v2.read.ensureDocsInS3.Error.DomainNotRegisteredError => {\n return {\n error: \"DomainNotRegisteredError\",\n };\n },\n\n unauthorizedError: (value: string): FernRegistry.docs.v2.read.ensureDocsInS3.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.docs.v2.read.ensureDocsInS3.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.docs.v2.read.ensureDocsInS3.Error,\n visitor: FernRegistry.docs.v2.read.ensureDocsInS3.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"DomainNotRegisteredError\":\n return visitor.domainNotRegisteredError();\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.docs.v2.read.getDocsConfigById.Error.DocsDefinitionNotFoundError\n | FernRegistry.docs.v2.read.getDocsConfigById.Error._Unknown;\n\nexport namespace Error {\n export interface DocsDefinitionNotFoundError {\n error: \"DocsDefinitionNotFoundError\";\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n docsDefinitionNotFoundError: () => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n docsDefinitionNotFoundError: (): FernRegistry.docs.v2.read.getDocsConfigById.Error.DocsDefinitionNotFoundError => {\n return {\n error: \"DocsDefinitionNotFoundError\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.docs.v2.read.getDocsConfigById.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.docs.v2.read.getDocsConfigById.Error,\n visitor: FernRegistry.docs.v2.read.getDocsConfigById.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"DocsDefinitionNotFoundError\":\n return visitor.docsDefinitionNotFoundError();\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.docs.v2.read.getDocsFields.Error.DomainNotRegisteredError\n | FernRegistry.docs.v2.read.getDocsFields.Error.UnauthorizedError\n | FernRegistry.docs.v2.read.getDocsFields.Error._Unknown;\n\nexport namespace Error {\n export interface DomainNotRegisteredError {\n error: \"DomainNotRegisteredError\";\n }\n\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n domainNotRegisteredError: () => _Result;\n unauthorizedError: (value: string) => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n domainNotRegisteredError: (): FernRegistry.docs.v2.read.getDocsFields.Error.DomainNotRegisteredError => {\n return {\n error: \"DomainNotRegisteredError\",\n };\n },\n\n unauthorizedError: (value: string): FernRegistry.docs.v2.read.getDocsFields.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.docs.v2.read.getDocsFields.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.docs.v2.read.getDocsFields.Error,\n visitor: FernRegistry.docs.v2.read.getDocsFields.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"DomainNotRegisteredError\":\n return visitor.domainNotRegisteredError();\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.docs.v2.read.getDocsForUrl.Error.DomainNotRegisteredError\n | FernRegistry.docs.v2.read.getDocsForUrl.Error.UnauthorizedError\n | FernRegistry.docs.v2.read.getDocsForUrl.Error._Unknown;\n\nexport namespace Error {\n export interface DomainNotRegisteredError {\n error: \"DomainNotRegisteredError\";\n }\n\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n domainNotRegisteredError: () => _Result;\n unauthorizedError: (value: string) => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n domainNotRegisteredError: (): FernRegistry.docs.v2.read.getDocsForUrl.Error.DomainNotRegisteredError => {\n return {\n error: \"DomainNotRegisteredError\",\n };\n },\n\n unauthorizedError: (value: string): FernRegistry.docs.v2.read.getDocsForUrl.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.docs.v2.read.getDocsForUrl.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.docs.v2.read.getDocsForUrl.Error,\n visitor: FernRegistry.docs.v2.read.getDocsForUrl.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"DomainNotRegisteredError\":\n return visitor.domainNotRegisteredError();\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.docs.v2.read.getDocsUrlMetadata.Error.DomainNotRegisteredError\n | FernRegistry.docs.v2.read.getDocsUrlMetadata.Error._Unknown;\n\nexport namespace Error {\n export interface DomainNotRegisteredError {\n error: \"DomainNotRegisteredError\";\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n domainNotRegisteredError: () => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n domainNotRegisteredError: (): FernRegistry.docs.v2.read.getDocsUrlMetadata.Error.DomainNotRegisteredError => {\n return {\n error: \"DomainNotRegisteredError\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.docs.v2.read.getDocsUrlMetadata.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.docs.v2.read.getDocsUrlMetadata.Error,\n visitor: FernRegistry.docs.v2.read.getDocsUrlMetadata.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"DomainNotRegisteredError\":\n return visitor.domainNotRegisteredError();\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.docs.v2.read.getOrganizationForUrl.Error.DomainNotRegisteredError\n | FernRegistry.docs.v2.read.getOrganizationForUrl.Error._Unknown;\n\nexport namespace Error {\n export interface DomainNotRegisteredError {\n error: \"DomainNotRegisteredError\";\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n domainNotRegisteredError: () => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n domainNotRegisteredError: (): FernRegistry.docs.v2.read.getOrganizationForUrl.Error.DomainNotRegisteredError => {\n return {\n error: \"DomainNotRegisteredError\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.docs.v2.read.getOrganizationForUrl.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.docs.v2.read.getOrganizationForUrl.Error,\n visitor: FernRegistry.docs.v2.read.getOrganizationForUrl.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"DomainNotRegisteredError\":\n return visitor.domainNotRegisteredError();\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.docs.v2.read.getPrivateDocsForUrl.Error.DomainNotRegisteredError\n | FernRegistry.docs.v2.read.getPrivateDocsForUrl.Error.UnauthorizedError\n | FernRegistry.docs.v2.read.getPrivateDocsForUrl.Error._Unknown;\n\nexport namespace Error {\n export interface DomainNotRegisteredError {\n error: \"DomainNotRegisteredError\";\n }\n\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n domainNotRegisteredError: () => _Result;\n unauthorizedError: (value: string) => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n domainNotRegisteredError: (): FernRegistry.docs.v2.read.getPrivateDocsForUrl.Error.DomainNotRegisteredError => {\n return {\n error: \"DomainNotRegisteredError\",\n };\n },\n\n unauthorizedError: (value: string): FernRegistry.docs.v2.read.getPrivateDocsForUrl.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.docs.v2.read.getPrivateDocsForUrl.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.docs.v2.read.getPrivateDocsForUrl.Error,\n visitor: FernRegistry.docs.v2.read.getPrivateDocsForUrl.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"DomainNotRegisteredError\":\n return visitor.domainNotRegisteredError();\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.docs.v2.read.listAllDocsUrls.Error.UnauthorizedError\n | FernRegistry.docs.v2.read.listAllDocsUrls.Error._Unknown;\n\nexport namespace Error {\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n unauthorizedError: (value: string) => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n unauthorizedError: (value: string): FernRegistry.docs.v2.read.listAllDocsUrls.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.docs.v2.read.listAllDocsUrls.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.docs.v2.read.listAllDocsUrls.Error,\n visitor: FernRegistry.docs.v2.read.listAllDocsUrls.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error = FernRegistry.docs.v2.read.prepopulateFdrReadS3Bucket.Error._Unknown;\n\nexport namespace Error {\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n _unknown: (\n fetcherError: core.Fetcher.Error,\n ): FernRegistry.docs.v2.read.prepopulateFdrReadS3Bucket.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.docs.v2.read.prepopulateFdrReadS3Bucket.Error,\n visitor: FernRegistry.docs.v2.read.prepopulateFdrReadS3Bucket.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\n/** Fields that can be requested from the docs definition */\nexport const DocsDefinitionField = {\n BaseUrl: \"BASE_URL\",\n FilesV2: \"FILES_V2\",\n ApisV2: \"APIS_V2\",\n Apis: \"APIS\",\n Pages: \"PAGES\",\n JsFiles: \"JS_FILES\",\n Config: \"CONFIG\",\n Root: \"ROOT\",\n} as const;\nexport type DocsDefinitionField = (typeof DocsDefinitionField)[keyof typeof DocsDefinitionField];\n","export * from \"./client/index.js\";\nexport * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.docs.v2.write.addAlgoliaPreviewWhitelistEntry.Error.UnauthorizedError\n | FernRegistry.docs.v2.write.addAlgoliaPreviewWhitelistEntry.Error._Unknown;\n\nexport namespace Error {\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n unauthorizedError: (value: string) => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n unauthorizedError: (\n value: string,\n ): FernRegistry.docs.v2.write.addAlgoliaPreviewWhitelistEntry.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n _unknown: (\n fetcherError: core.Fetcher.Error,\n ): FernRegistry.docs.v2.write.addAlgoliaPreviewWhitelistEntry.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.docs.v2.write.addAlgoliaPreviewWhitelistEntry.Error,\n visitor: FernRegistry.docs.v2.write.addAlgoliaPreviewWhitelistEntry.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.docs.v2.write.deleteDocsSite.Error.DocsNotFoundError\n | FernRegistry.docs.v2.write.deleteDocsSite.Error.UnauthorizedError\n | FernRegistry.docs.v2.write.deleteDocsSite.Error._Unknown;\n\nexport namespace Error {\n export interface DocsNotFoundError {\n error: \"DocsNotFoundError\";\n }\n\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n docsNotFoundError: () => _Result;\n unauthorizedError: (value: string) => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n docsNotFoundError: (): FernRegistry.docs.v2.write.deleteDocsSite.Error.DocsNotFoundError => {\n return {\n error: \"DocsNotFoundError\",\n };\n },\n\n unauthorizedError: (value: string): FernRegistry.docs.v2.write.deleteDocsSite.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.docs.v2.write.deleteDocsSite.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.docs.v2.write.deleteDocsSite.Error,\n visitor: FernRegistry.docs.v2.write.deleteDocsSite.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"DocsNotFoundError\":\n return visitor.docsNotFoundError();\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.docs.v2.write.finishDocsRegister.Error.UnauthorizedError\n | FernRegistry.docs.v2.write.finishDocsRegister.Error.UserNotInOrgError\n | FernRegistry.docs.v2.write.finishDocsRegister.Error.DocsRegistrationIdNotFound\n | FernRegistry.docs.v2.write.finishDocsRegister.Error._Unknown;\n\nexport namespace Error {\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface UserNotInOrgError {\n error: \"UserNotInOrgError\";\n content: string;\n }\n\n export interface DocsRegistrationIdNotFound {\n error: \"DocsRegistrationIdNotFound\";\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n unauthorizedError: (value: string) => _Result;\n userNotInOrgError: (value: string) => _Result;\n docsRegistrationIdNotFound: () => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n unauthorizedError: (value: string): FernRegistry.docs.v2.write.finishDocsRegister.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n userNotInOrgError: (value: string): FernRegistry.docs.v2.write.finishDocsRegister.Error.UserNotInOrgError => {\n return {\n content: value,\n error: \"UserNotInOrgError\",\n };\n },\n\n docsRegistrationIdNotFound: (): FernRegistry.docs.v2.write.finishDocsRegister.Error.DocsRegistrationIdNotFound => {\n return {\n error: \"DocsRegistrationIdNotFound\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.docs.v2.write.finishDocsRegister.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.docs.v2.write.finishDocsRegister.Error,\n visitor: FernRegistry.docs.v2.write.finishDocsRegister.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n case \"UserNotInOrgError\":\n return visitor.userNotInOrgError(value.content);\n case \"DocsRegistrationIdNotFound\":\n return visitor.docsRegistrationIdNotFound();\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.docs.v2.write.getLibraryDocsGenerationStatus.Error.LibraryDocsJobNotFoundError\n | FernRegistry.docs.v2.write.getLibraryDocsGenerationStatus.Error._Unknown;\n\nexport namespace Error {\n export interface LibraryDocsJobNotFoundError {\n error: \"LibraryDocsJobNotFoundError\";\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n libraryDocsJobNotFoundError: () => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n libraryDocsJobNotFoundError:\n (): FernRegistry.docs.v2.write.getLibraryDocsGenerationStatus.Error.LibraryDocsJobNotFoundError => {\n return {\n error: \"LibraryDocsJobNotFoundError\",\n };\n },\n\n _unknown: (\n fetcherError: core.Fetcher.Error,\n ): FernRegistry.docs.v2.write.getLibraryDocsGenerationStatus.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.docs.v2.write.getLibraryDocsGenerationStatus.Error,\n visitor: FernRegistry.docs.v2.write.getLibraryDocsGenerationStatus.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"LibraryDocsJobNotFoundError\":\n return visitor.libraryDocsJobNotFoundError();\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.docs.v2.write.getLibraryDocsResult.Error.LibraryDocsJobNotFoundError\n | FernRegistry.docs.v2.write.getLibraryDocsResult.Error.LibraryDocsGenerationNotCompleteError\n | FernRegistry.docs.v2.write.getLibraryDocsResult.Error._Unknown;\n\nexport namespace Error {\n export interface LibraryDocsJobNotFoundError {\n error: \"LibraryDocsJobNotFoundError\";\n }\n\n export interface LibraryDocsGenerationNotCompleteError {\n error: \"LibraryDocsGenerationNotCompleteError\";\n content: string;\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n libraryDocsJobNotFoundError: () => _Result;\n libraryDocsGenerationNotCompleteError: (value: string) => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n libraryDocsJobNotFoundError:\n (): FernRegistry.docs.v2.write.getLibraryDocsResult.Error.LibraryDocsJobNotFoundError => {\n return {\n error: \"LibraryDocsJobNotFoundError\",\n };\n },\n\n libraryDocsGenerationNotCompleteError: (\n value: string,\n ): FernRegistry.docs.v2.write.getLibraryDocsResult.Error.LibraryDocsGenerationNotCompleteError => {\n return {\n content: value,\n error: \"LibraryDocsGenerationNotCompleteError\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.docs.v2.write.getLibraryDocsResult.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.docs.v2.write.getLibraryDocsResult.Error,\n visitor: FernRegistry.docs.v2.write.getLibraryDocsResult.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"LibraryDocsJobNotFoundError\":\n return visitor.libraryDocsJobNotFoundError();\n case \"LibraryDocsGenerationNotCompleteError\":\n return visitor.libraryDocsGenerationNotCompleteError(value.content);\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.docs.v2.write.listAlgoliaPreviewWhitelist.Error.UnauthorizedError\n | FernRegistry.docs.v2.write.listAlgoliaPreviewWhitelist.Error._Unknown;\n\nexport namespace Error {\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n unauthorizedError: (value: string) => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n unauthorizedError: (\n value: string,\n ): FernRegistry.docs.v2.write.listAlgoliaPreviewWhitelist.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n _unknown: (\n fetcherError: core.Fetcher.Error,\n ): FernRegistry.docs.v2.write.listAlgoliaPreviewWhitelist.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.docs.v2.write.listAlgoliaPreviewWhitelist.Error,\n visitor: FernRegistry.docs.v2.write.listAlgoliaPreviewWhitelist.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.docs.v2.write.removeAlgoliaPreviewWhitelistEntry.Error.UnauthorizedError\n | FernRegistry.docs.v2.write.removeAlgoliaPreviewWhitelistEntry.Error._Unknown;\n\nexport namespace Error {\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n unauthorizedError: (value: string) => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n unauthorizedError: (\n value: string,\n ): FernRegistry.docs.v2.write.removeAlgoliaPreviewWhitelistEntry.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n _unknown: (\n fetcherError: core.Fetcher.Error,\n ): FernRegistry.docs.v2.write.removeAlgoliaPreviewWhitelistEntry.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.docs.v2.write.removeAlgoliaPreviewWhitelistEntry.Error,\n visitor: FernRegistry.docs.v2.write.removeAlgoliaPreviewWhitelistEntry.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.docs.v2.write.setDocsUrlMetadata.Error.DocsNotFoundError\n | FernRegistry.docs.v2.write.setDocsUrlMetadata.Error.UnauthorizedError\n | FernRegistry.docs.v2.write.setDocsUrlMetadata.Error._Unknown;\n\nexport namespace Error {\n export interface DocsNotFoundError {\n error: \"DocsNotFoundError\";\n }\n\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n docsNotFoundError: () => _Result;\n unauthorizedError: (value: string) => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n docsNotFoundError: (): FernRegistry.docs.v2.write.setDocsUrlMetadata.Error.DocsNotFoundError => {\n return {\n error: \"DocsNotFoundError\",\n };\n },\n\n unauthorizedError: (value: string): FernRegistry.docs.v2.write.setDocsUrlMetadata.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.docs.v2.write.setDocsUrlMetadata.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.docs.v2.write.setDocsUrlMetadata.Error,\n visitor: FernRegistry.docs.v2.write.setDocsUrlMetadata.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"DocsNotFoundError\":\n return visitor.docsNotFoundError();\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.docs.v2.write.setIsArchived.Error.DocsNotFoundError\n | FernRegistry.docs.v2.write.setIsArchived.Error.UnauthorizedError\n | FernRegistry.docs.v2.write.setIsArchived.Error._Unknown;\n\nexport namespace Error {\n export interface DocsNotFoundError {\n error: \"DocsNotFoundError\";\n }\n\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n docsNotFoundError: () => _Result;\n unauthorizedError: (value: string) => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n docsNotFoundError: (): FernRegistry.docs.v2.write.setIsArchived.Error.DocsNotFoundError => {\n return {\n error: \"DocsNotFoundError\",\n };\n },\n\n unauthorizedError: (value: string): FernRegistry.docs.v2.write.setIsArchived.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.docs.v2.write.setIsArchived.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.docs.v2.write.setIsArchived.Error,\n visitor: FernRegistry.docs.v2.write.setIsArchived.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"DocsNotFoundError\":\n return visitor.docsNotFoundError();\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.docs.v2.write.startDocsPreviewRegister.Error.UnauthorizedError\n | FernRegistry.docs.v2.write.startDocsPreviewRegister.Error.UnavailableError\n | FernRegistry.docs.v2.write.startDocsPreviewRegister.Error.UserNotInOrgError\n | FernRegistry.docs.v2.write.startDocsPreviewRegister.Error.InvalidDomainError\n | FernRegistry.docs.v2.write.startDocsPreviewRegister.Error._Unknown;\n\nexport namespace Error {\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface UnavailableError {\n error: \"UnavailableError\";\n content: string;\n }\n\n export interface UserNotInOrgError {\n error: \"UserNotInOrgError\";\n content: string;\n }\n\n export interface InvalidDomainError {\n error: \"InvalidDomainError\";\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n unauthorizedError: (value: string) => _Result;\n unavailableError: (value: string) => _Result;\n userNotInOrgError: (value: string) => _Result;\n invalidDomainError: () => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n unauthorizedError: (value: string): FernRegistry.docs.v2.write.startDocsPreviewRegister.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n unavailableError: (value: string): FernRegistry.docs.v2.write.startDocsPreviewRegister.Error.UnavailableError => {\n return {\n content: value,\n error: \"UnavailableError\",\n };\n },\n\n userNotInOrgError: (value: string): FernRegistry.docs.v2.write.startDocsPreviewRegister.Error.UserNotInOrgError => {\n return {\n content: value,\n error: \"UserNotInOrgError\",\n };\n },\n\n invalidDomainError: (): FernRegistry.docs.v2.write.startDocsPreviewRegister.Error.InvalidDomainError => {\n return {\n error: \"InvalidDomainError\",\n };\n },\n\n _unknown: (\n fetcherError: core.Fetcher.Error,\n ): FernRegistry.docs.v2.write.startDocsPreviewRegister.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.docs.v2.write.startDocsPreviewRegister.Error,\n visitor: FernRegistry.docs.v2.write.startDocsPreviewRegister.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n case \"UnavailableError\":\n return visitor.unavailableError(value.content);\n case \"UserNotInOrgError\":\n return visitor.userNotInOrgError(value.content);\n case \"InvalidDomainError\":\n return visitor.invalidDomainError();\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.docs.v2.write.startDocsRegister.Error.UnauthorizedError\n | FernRegistry.docs.v2.write.startDocsRegister.Error.UnavailableError\n | FernRegistry.docs.v2.write.startDocsRegister.Error.UserNotInOrgError\n | FernRegistry.docs.v2.write.startDocsRegister.Error.InvalidDomainError\n | FernRegistry.docs.v2.write.startDocsRegister.Error.InvalidCustomDomainError\n | FernRegistry.docs.v2.write.startDocsRegister.Error.DomainBelongsToAnotherOrgError\n | FernRegistry.docs.v2.write.startDocsRegister.Error.InvalidUrlError\n | FernRegistry.docs.v2.write.startDocsRegister.Error._Unknown;\n\nexport namespace Error {\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface UnavailableError {\n error: \"UnavailableError\";\n content: string;\n }\n\n export interface UserNotInOrgError {\n error: \"UserNotInOrgError\";\n content: string;\n }\n\n export interface InvalidDomainError {\n error: \"InvalidDomainError\";\n }\n\n export interface InvalidCustomDomainError {\n error: \"InvalidCustomDomainError\";\n }\n\n export interface DomainBelongsToAnotherOrgError {\n error: \"DomainBelongsToAnotherOrgError\";\n content: string;\n }\n\n export interface InvalidUrlError {\n error: \"InvalidURLError\";\n content: string;\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n unauthorizedError: (value: string) => _Result;\n unavailableError: (value: string) => _Result;\n userNotInOrgError: (value: string) => _Result;\n invalidDomainError: () => _Result;\n invalidCustomDomainError: () => _Result;\n domainBelongsToAnotherOrgError: (value: string) => _Result;\n invalidUrlError: (value: string) => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n unauthorizedError: (value: string): FernRegistry.docs.v2.write.startDocsRegister.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n unavailableError: (value: string): FernRegistry.docs.v2.write.startDocsRegister.Error.UnavailableError => {\n return {\n content: value,\n error: \"UnavailableError\",\n };\n },\n\n userNotInOrgError: (value: string): FernRegistry.docs.v2.write.startDocsRegister.Error.UserNotInOrgError => {\n return {\n content: value,\n error: \"UserNotInOrgError\",\n };\n },\n\n invalidDomainError: (): FernRegistry.docs.v2.write.startDocsRegister.Error.InvalidDomainError => {\n return {\n error: \"InvalidDomainError\",\n };\n },\n\n invalidCustomDomainError: (): FernRegistry.docs.v2.write.startDocsRegister.Error.InvalidCustomDomainError => {\n return {\n error: \"InvalidCustomDomainError\",\n };\n },\n\n domainBelongsToAnotherOrgError: (\n value: string,\n ): FernRegistry.docs.v2.write.startDocsRegister.Error.DomainBelongsToAnotherOrgError => {\n return {\n content: value,\n error: \"DomainBelongsToAnotherOrgError\",\n };\n },\n\n invalidUrlError: (value: string): FernRegistry.docs.v2.write.startDocsRegister.Error.InvalidUrlError => {\n return {\n content: value,\n error: \"InvalidURLError\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.docs.v2.write.startDocsRegister.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.docs.v2.write.startDocsRegister.Error,\n visitor: FernRegistry.docs.v2.write.startDocsRegister.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n case \"UnavailableError\":\n return visitor.unavailableError(value.content);\n case \"UserNotInOrgError\":\n return visitor.userNotInOrgError(value.content);\n case \"InvalidDomainError\":\n return visitor.invalidDomainError();\n case \"InvalidCustomDomainError\":\n return visitor.invalidCustomDomainError();\n case \"DomainBelongsToAnotherOrgError\":\n return visitor.domainBelongsToAnotherOrgError(value.content);\n case \"InvalidURLError\":\n return visitor.invalidUrlError(value.content);\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.docs.v2.write.startLibraryDocsGeneration.Error.UnauthorizedError\n | FernRegistry.docs.v2.write.startLibraryDocsGeneration.Error.UserNotInOrgError\n | FernRegistry.docs.v2.write.startLibraryDocsGeneration.Error.InvalidGithubUrlError\n | FernRegistry.docs.v2.write.startLibraryDocsGeneration.Error.UnsupportedLanguageError\n | FernRegistry.docs.v2.write.startLibraryDocsGeneration.Error._Unknown;\n\nexport namespace Error {\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface UserNotInOrgError {\n error: \"UserNotInOrgError\";\n content: string;\n }\n\n export interface InvalidGithubUrlError {\n error: \"InvalidGithubUrlError\";\n content: string;\n }\n\n export interface UnsupportedLanguageError {\n error: \"UnsupportedLanguageError\";\n content: string;\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n unauthorizedError: (value: string) => _Result;\n userNotInOrgError: (value: string) => _Result;\n invalidGithubUrlError: (value: string) => _Result;\n unsupportedLanguageError: (value: string) => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n unauthorizedError: (\n value: string,\n ): FernRegistry.docs.v2.write.startLibraryDocsGeneration.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n userNotInOrgError: (\n value: string,\n ): FernRegistry.docs.v2.write.startLibraryDocsGeneration.Error.UserNotInOrgError => {\n return {\n content: value,\n error: \"UserNotInOrgError\",\n };\n },\n\n invalidGithubUrlError: (\n value: string,\n ): FernRegistry.docs.v2.write.startLibraryDocsGeneration.Error.InvalidGithubUrlError => {\n return {\n content: value,\n error: \"InvalidGithubUrlError\",\n };\n },\n\n unsupportedLanguageError: (\n value: string,\n ): FernRegistry.docs.v2.write.startLibraryDocsGeneration.Error.UnsupportedLanguageError => {\n return {\n content: value,\n error: \"UnsupportedLanguageError\",\n };\n },\n\n _unknown: (\n fetcherError: core.Fetcher.Error,\n ): FernRegistry.docs.v2.write.startLibraryDocsGeneration.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.docs.v2.write.startLibraryDocsGeneration.Error,\n visitor: FernRegistry.docs.v2.write.startLibraryDocsGeneration.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n case \"UserNotInOrgError\":\n return visitor.userNotInOrgError(value.content);\n case \"InvalidGithubUrlError\":\n return visitor.invalidGithubUrlError(value.content);\n case \"UnsupportedLanguageError\":\n return visitor.unsupportedLanguageError(value.content);\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.docs.v2.write.transferOwnershipOfDomain.Error.DocsNotFoundError\n | FernRegistry.docs.v2.write.transferOwnershipOfDomain.Error.UnauthorizedError\n | FernRegistry.docs.v2.write.transferOwnershipOfDomain.Error._Unknown;\n\nexport namespace Error {\n export interface DocsNotFoundError {\n error: \"DocsNotFoundError\";\n }\n\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n docsNotFoundError: () => _Result;\n unauthorizedError: (value: string) => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n docsNotFoundError: (): FernRegistry.docs.v2.write.transferOwnershipOfDomain.Error.DocsNotFoundError => {\n return {\n error: \"DocsNotFoundError\",\n };\n },\n\n unauthorizedError: (\n value: string,\n ): FernRegistry.docs.v2.write.transferOwnershipOfDomain.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n _unknown: (\n fetcherError: core.Fetcher.Error,\n ): FernRegistry.docs.v2.write.transferOwnershipOfDomain.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.docs.v2.write.transferOwnershipOfDomain.Error,\n visitor: FernRegistry.docs.v2.write.transferOwnershipOfDomain.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"DocsNotFoundError\":\n return visitor.docsNotFoundError();\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const LibraryDocsErrorCode = {\n CloneFailed: \"CLONE_FAILED\",\n ParseFailed: \"PARSE_FAILED\",\n GenerationFailed: \"GENERATION_FAILED\",\n LambdaError: \"LAMBDA_ERROR\",\n LambdaNoIr: \"LAMBDA_NO_IR\",\n LambdaFunctionError: \"LAMBDA_FUNCTION_ERROR\",\n LambdaNoResponse: \"LAMBDA_NO_RESPONSE\",\n Timeout: \"TIMEOUT\",\n InvalidProject: \"INVALID_PROJECT\",\n} as const;\nexport type LibraryDocsErrorCode = (typeof LibraryDocsErrorCode)[keyof typeof LibraryDocsErrorCode];\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const LibraryDocsGenerationStatusType = {\n Pending: \"PENDING\",\n Parsing: \"PARSING\",\n Completed: \"COMPLETED\",\n Failed: \"FAILED\",\n} as const;\nexport type LibraryDocsGenerationStatusType =\n (typeof LibraryDocsGenerationStatusType)[keyof typeof LibraryDocsGenerationStatusType];\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type LibraryDocsJobId = string & {\n docs_v2_write_LibraryDocsJobId: void;\n};\n\nexport function LibraryDocsJobId(value: string): FernRegistry.docs.v2.write.LibraryDocsJobId {\n return value as unknown as FernRegistry.docs.v2.write.LibraryDocsJobId;\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const LibraryLanguage = {\n Python: \"PYTHON\",\n Cpp: \"CPP\",\n} as const;\nexport type LibraryLanguage = (typeof LibraryLanguage)[keyof typeof LibraryLanguage];\n","export * from \"./client/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../index.js\";\n\nexport type Error = FernRegistry.docsCache.invalidate.Error._Unknown;\n\nexport namespace Error {\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.docsCache.invalidate.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.docsCache.invalidate.Error,\n visitor: FernRegistry.docsCache.invalidate.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","export * from \"./client/index.js\";\nexport * from \"./resources/index.js\";\nexport * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../index.js\";\n\nexport type Error = FernRegistry.generators.getGenerator.Error._Unknown;\n\nexport namespace Error {\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.generators.getGenerator.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.generators.getGenerator.Error,\n visitor: FernRegistry.generators.getGenerator.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../index.js\";\n\nexport type Error = FernRegistry.generators.getGeneratorByImage.Error._Unknown;\n\nexport namespace Error {\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.generators.getGeneratorByImage.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.generators.getGeneratorByImage.Error,\n visitor: FernRegistry.generators.getGeneratorByImage.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../index.js\";\n\nexport type Error = FernRegistry.generators.listGenerators.Error._Unknown;\n\nexport namespace Error {\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.generators.listGenerators.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.generators.listGenerators.Error,\n visitor: FernRegistry.generators.listGenerators.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../index.js\";\n\nexport type Error = FernRegistry.generators.upsertGenerator.Error._Unknown;\n\nexport namespace Error {\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.generators.upsertGenerator.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.generators.upsertGenerator.Error,\n visitor: FernRegistry.generators.upsertGenerator.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","export * from \"./client/index.js\";\nexport * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../index.js\";\n\nexport type Error = FernRegistry.generators.cli.getChangelog.Error._Unknown;\n\nexport namespace Error {\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.generators.cli.getChangelog.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.generators.cli.getChangelog.Error,\n visitor: FernRegistry.generators.cli.getChangelog.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.generators.cli.getCliRelease.Error.CliVersionNotFoundError\n | FernRegistry.generators.cli.getCliRelease.Error._Unknown;\n\nexport namespace Error {\n export interface CliVersionNotFoundError {\n error: \"CliVersionNotFoundError\";\n content: FernRegistry.generators.InvalidVersionErrorMessage;\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n cliVersionNotFoundError: (value: FernRegistry.generators.InvalidVersionErrorMessage) => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n cliVersionNotFoundError: (\n value: FernRegistry.generators.InvalidVersionErrorMessage,\n ): FernRegistry.generators.cli.getCliRelease.Error.CliVersionNotFoundError => {\n return {\n content: value,\n error: \"CliVersionNotFoundError\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.generators.cli.getCliRelease.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.generators.cli.getCliRelease.Error,\n visitor: FernRegistry.generators.cli.getCliRelease.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"CliVersionNotFoundError\":\n return visitor.cliVersionNotFoundError(value.content);\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.generators.cli.getLatestCliRelease.Error.NoValidClisFoundError\n | FernRegistry.generators.cli.getLatestCliRelease.Error._Unknown;\n\nexport namespace Error {\n export interface NoValidClisFoundError {\n error: \"NoValidClisFoundError\";\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n noValidClisFoundError: () => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n noValidClisFoundError: (): FernRegistry.generators.cli.getLatestCliRelease.Error.NoValidClisFoundError => {\n return {\n error: \"NoValidClisFoundError\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.generators.cli.getLatestCliRelease.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.generators.cli.getLatestCliRelease.Error,\n visitor: FernRegistry.generators.cli.getLatestCliRelease.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"NoValidClisFoundError\":\n return visitor.noValidClisFoundError();\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.generators.cli.getMinCliForIr.Error.NoValidClisFoundError\n | FernRegistry.generators.cli.getMinCliForIr.Error._Unknown;\n\nexport namespace Error {\n export interface NoValidClisFoundError {\n error: \"NoValidClisFoundError\";\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n noValidClisFoundError: () => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n noValidClisFoundError: (): FernRegistry.generators.cli.getMinCliForIr.Error.NoValidClisFoundError => {\n return {\n error: \"NoValidClisFoundError\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.generators.cli.getMinCliForIr.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.generators.cli.getMinCliForIr.Error,\n visitor: FernRegistry.generators.cli.getMinCliForIr.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"NoValidClisFoundError\":\n return visitor.noValidClisFoundError();\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../index.js\";\n\nexport type Error = FernRegistry.generators.cli.listCliReleases.Error._Unknown;\n\nexport namespace Error {\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.generators.cli.listCliReleases.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.generators.cli.listCliReleases.Error,\n visitor: FernRegistry.generators.cli.listCliReleases.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../index.js\";\n\nexport type Error = FernRegistry.generators.cli.upsertCliRelease.Error._Unknown;\n\nexport namespace Error {\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.generators.cli.upsertCliRelease.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.generators.cli.upsertCliRelease.Error,\n visitor: FernRegistry.generators.cli.upsertCliRelease.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","export * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\n/** Following `conventional commit` types for the entries here. */\nexport const ChangelogEntryType = {\n Fix: \"fix\",\n Feat: \"feat\",\n Chore: \"chore\",\n Break: \"break\",\n Internal: \"internal\",\n} as const;\nexport type ChangelogEntryType = (typeof ChangelogEntryType)[keyof typeof ChangelogEntryType];\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const ReleaseType = {\n Ga: \"GA\",\n Rc: \"RC\",\n} as const;\nexport type ReleaseType = (typeof ReleaseType)[keyof typeof ReleaseType];\n","export * from \"./client/index.js\";\nexport * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../index.js\";\n\nexport type Error = FernRegistry.generators.versions.getChangelog.Error._Unknown;\n\nexport namespace Error {\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.generators.versions.getChangelog.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.generators.versions.getChangelog.Error,\n visitor: FernRegistry.generators.versions.getChangelog.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.generators.versions.getGeneratorRelease.Error.GeneratorVersionNotFoundError\n | FernRegistry.generators.versions.getGeneratorRelease.Error._Unknown;\n\nexport namespace Error {\n export interface GeneratorVersionNotFoundError {\n error: \"GeneratorVersionNotFoundError\";\n content: FernRegistry.generators.InvalidVersionErrorMessage;\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n generatorVersionNotFoundError: (value: FernRegistry.generators.InvalidVersionErrorMessage) => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n generatorVersionNotFoundError: (\n value: FernRegistry.generators.InvalidVersionErrorMessage,\n ): FernRegistry.generators.versions.getGeneratorRelease.Error.GeneratorVersionNotFoundError => {\n return {\n content: value,\n error: \"GeneratorVersionNotFoundError\",\n };\n },\n\n _unknown: (\n fetcherError: core.Fetcher.Error,\n ): FernRegistry.generators.versions.getGeneratorRelease.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.generators.versions.getGeneratorRelease.Error,\n visitor: FernRegistry.generators.versions.getGeneratorRelease.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"GeneratorVersionNotFoundError\":\n return visitor.generatorVersionNotFoundError(value.content);\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.generators.versions.getLatestGeneratorRelease.Error.NoValidGeneratorsFoundError\n | FernRegistry.generators.versions.getLatestGeneratorRelease.Error._Unknown;\n\nexport namespace Error {\n export interface NoValidGeneratorsFoundError {\n error: \"NoValidGeneratorsFoundError\";\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n noValidGeneratorsFoundError: () => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n noValidGeneratorsFoundError:\n (): FernRegistry.generators.versions.getLatestGeneratorRelease.Error.NoValidGeneratorsFoundError => {\n return {\n error: \"NoValidGeneratorsFoundError\",\n };\n },\n\n _unknown: (\n fetcherError: core.Fetcher.Error,\n ): FernRegistry.generators.versions.getLatestGeneratorRelease.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.generators.versions.getLatestGeneratorRelease.Error,\n visitor: FernRegistry.generators.versions.getLatestGeneratorRelease.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"NoValidGeneratorsFoundError\":\n return visitor.noValidGeneratorsFoundError();\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../index.js\";\n\nexport type Error = FernRegistry.generators.versions.listGeneratorReleases.Error._Unknown;\n\nexport namespace Error {\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n _unknown: (\n fetcherError: core.Fetcher.Error,\n ): FernRegistry.generators.versions.listGeneratorReleases.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.generators.versions.listGeneratorReleases.Error,\n visitor: FernRegistry.generators.versions.listGeneratorReleases.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.generators.versions.upsertGeneratorRelease.Error.InvalidVersionError\n | FernRegistry.generators.versions.upsertGeneratorRelease.Error._Unknown;\n\nexport namespace Error {\n export interface InvalidVersionError {\n error: \"InvalidVersionError\";\n content: FernRegistry.generators.InvalidVersionErrorMessage;\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n invalidVersionError: (value: FernRegistry.generators.InvalidVersionErrorMessage) => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n invalidVersionError: (\n value: FernRegistry.generators.InvalidVersionErrorMessage,\n ): FernRegistry.generators.versions.upsertGeneratorRelease.Error.InvalidVersionError => {\n return {\n content: value,\n error: \"InvalidVersionError\",\n };\n },\n\n _unknown: (\n fetcherError: core.Fetcher.Error,\n ): FernRegistry.generators.versions.upsertGeneratorRelease.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.generators.versions.upsertGeneratorRelease.Error,\n visitor: FernRegistry.generators.versions.upsertGeneratorRelease.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"InvalidVersionError\":\n return visitor.invalidVersionError(value.content);\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as FernRegistry from \"../../../index.js\";\n\n/**\n * The type of the generator, e.g. fern-python-sdk\n */\nexport type GeneratorId = string & {\n generators_GeneratorId: void;\n};\n\nexport function GeneratorId(value: string): FernRegistry.generators.GeneratorId {\n return value as unknown as FernRegistry.generators.GeneratorId;\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const GeneratorLanguage = {\n Python: \"python\",\n Go: \"go\",\n Java: \"java\",\n Typescript: \"typescript\",\n Ruby: \"ruby\",\n Csharp: \"csharp\",\n Php: \"php\",\n Swift: \"swift\",\n Rust: \"rust\",\n} as const;\nexport type GeneratorLanguage = (typeof GeneratorLanguage)[keyof typeof GeneratorLanguage];\n","export * from \"./client/index.js\";\nexport * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../index.js\";\n\nexport type Error = FernRegistry.git.deletePullRequest.Error._Unknown;\n\nexport namespace Error {\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.git.deletePullRequest.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.git.deletePullRequest.Error,\n visitor: FernRegistry.git.deletePullRequest.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../index.js\";\n\nexport type Error = FernRegistry.git.deleteRepository.Error._Unknown;\n\nexport namespace Error {\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.git.deleteRepository.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.git.deleteRepository.Error,\n visitor: FernRegistry.git.deleteRepository.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../index.js\";\n\nexport type Error = FernRegistry.git.getPullRequest.Error._Unknown;\n\nexport namespace Error {\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.git.getPullRequest.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.git.getPullRequest.Error,\n visitor: FernRegistry.git.getPullRequest.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../index.js\";\n\nexport type Error = FernRegistry.git.getRepository.Error._Unknown;\n\nexport namespace Error {\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.git.getRepository.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.git.getRepository.Error,\n visitor: FernRegistry.git.getRepository.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../index.js\";\n\nexport type Error = FernRegistry.git.listPullRequests.Error._Unknown;\n\nexport namespace Error {\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.git.listPullRequests.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.git.listPullRequests.Error,\n visitor: FernRegistry.git.listPullRequests.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../index.js\";\n\nexport type Error = FernRegistry.git.listRepositories.Error._Unknown;\n\nexport namespace Error {\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.git.listRepositories.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.git.listRepositories.Error,\n visitor: FernRegistry.git.listRepositories.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../index.js\";\n\nexport type Error = FernRegistry.git.upsertPullRequest.Error._Unknown;\n\nexport namespace Error {\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.git.upsertPullRequest.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.git.upsertPullRequest.Error,\n visitor: FernRegistry.git.upsertPullRequest.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../index.js\";\n\nexport type Error = FernRegistry.git.upsertRepository.Error._Unknown;\n\nexport namespace Error {\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.git.upsertRepository.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.git.upsertRepository.Error,\n visitor: FernRegistry.git.upsertRepository.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const PullRequestState = {\n Open: \"open\",\n Closed: \"closed\",\n Merged: \"merged\",\n} as const;\nexport type PullRequestState = (typeof PullRequestState)[keyof typeof PullRequestState];\n","export * from \"./client/index.js\";\nexport * from \"./resources/index.js\";\n","export * from \"./client/index.js\";\nexport * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.sdks.versions.computeSemanticVersion.Error.FailedToComputeExistingVersion\n | FernRegistry.sdks.versions.computeSemanticVersion.Error.FailedToIncrementVersion\n | FernRegistry.sdks.versions.computeSemanticVersion.Error._Unknown;\n\nexport namespace Error {\n export interface FailedToComputeExistingVersion {\n error: \"FailedToComputeExistingVersion\";\n }\n\n export interface FailedToIncrementVersion {\n error: \"FailedToIncrementVersion\";\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n failedToComputeExistingVersion: () => _Result;\n failedToIncrementVersion: () => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n failedToComputeExistingVersion:\n (): FernRegistry.sdks.versions.computeSemanticVersion.Error.FailedToComputeExistingVersion => {\n return {\n error: \"FailedToComputeExistingVersion\",\n };\n },\n\n failedToIncrementVersion: (): FernRegistry.sdks.versions.computeSemanticVersion.Error.FailedToIncrementVersion => {\n return {\n error: \"FailedToIncrementVersion\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.sdks.versions.computeSemanticVersion.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.sdks.versions.computeSemanticVersion.Error,\n visitor: FernRegistry.sdks.versions.computeSemanticVersion.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"FailedToComputeExistingVersion\":\n return visitor.failedToComputeExistingVersion();\n case \"FailedToIncrementVersion\":\n return visitor.failedToIncrementVersion();\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const Language = {\n Go: \"Go\",\n TypeScript: \"TypeScript\",\n Java: \"Java\",\n Python: \"Python\",\n Csharp: \"Csharp\",\n Ruby: \"Ruby\",\n Php: \"Php\",\n Swift: \"Swift\",\n Rust: \"Rust\",\n} as const;\nexport type Language = (typeof Language)[keyof typeof Language];\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const VersionBump = {\n Major: \"MAJOR\",\n Minor: \"MINOR\",\n Patch: \"PATCH\",\n} as const;\nexport type VersionBump = (typeof VersionBump)[keyof typeof VersionBump];\n","export * from \"./client/index.js\";\nexport * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../index.js\";\n\nexport type Error =\n | FernRegistry.snippets.get.Error.UnauthorizedError\n | FernRegistry.snippets.get.Error.UserNotInOrgError\n | FernRegistry.snippets.get.Error.UnavailableError\n | FernRegistry.snippets.get.Error.ApiIdRequiredError\n | FernRegistry.snippets.get.Error.OrgIdRequiredError\n | FernRegistry.snippets.get.Error.OrgIdAndApiIdNotFound\n | FernRegistry.snippets.get.Error.OrgIdNotFound\n | FernRegistry.snippets.get.Error.EndpointNotFound\n | FernRegistry.snippets.get.Error.SdkNotFound\n | FernRegistry.snippets.get.Error._Unknown;\n\nexport namespace Error {\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface UserNotInOrgError {\n error: \"UserNotInOrgError\";\n content: string;\n }\n\n export interface UnavailableError {\n error: \"UnavailableError\";\n content: string;\n }\n\n export interface ApiIdRequiredError {\n error: \"ApiIdRequiredError\";\n content: string;\n }\n\n export interface OrgIdRequiredError {\n error: \"OrgIdRequiredError\";\n content: string;\n }\n\n export interface OrgIdAndApiIdNotFound {\n error: \"OrgIdAndApiIdNotFound\";\n content: string;\n }\n\n export interface OrgIdNotFound {\n error: \"OrgIdNotFound\";\n content: string;\n }\n\n export interface EndpointNotFound {\n error: \"EndpointNotFound\";\n content: string;\n }\n\n export interface SdkNotFound {\n error: \"SDKNotFound\";\n content: string;\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n unauthorizedError: (value: string) => _Result;\n userNotInOrgError: (value: string) => _Result;\n unavailableError: (value: string) => _Result;\n apiIdRequiredError: (value: string) => _Result;\n orgIdRequiredError: (value: string) => _Result;\n orgIdAndApiIdNotFound: (value: string) => _Result;\n orgIdNotFound: (value: string) => _Result;\n endpointNotFound: (value: string) => _Result;\n sdkNotFound: (value: string) => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n unauthorizedError: (value: string): FernRegistry.snippets.get.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n userNotInOrgError: (value: string): FernRegistry.snippets.get.Error.UserNotInOrgError => {\n return {\n content: value,\n error: \"UserNotInOrgError\",\n };\n },\n\n unavailableError: (value: string): FernRegistry.snippets.get.Error.UnavailableError => {\n return {\n content: value,\n error: \"UnavailableError\",\n };\n },\n\n apiIdRequiredError: (value: string): FernRegistry.snippets.get.Error.ApiIdRequiredError => {\n return {\n content: value,\n error: \"ApiIdRequiredError\",\n };\n },\n\n orgIdRequiredError: (value: string): FernRegistry.snippets.get.Error.OrgIdRequiredError => {\n return {\n content: value,\n error: \"OrgIdRequiredError\",\n };\n },\n\n orgIdAndApiIdNotFound: (value: string): FernRegistry.snippets.get.Error.OrgIdAndApiIdNotFound => {\n return {\n content: value,\n error: \"OrgIdAndApiIdNotFound\",\n };\n },\n\n orgIdNotFound: (value: string): FernRegistry.snippets.get.Error.OrgIdNotFound => {\n return {\n content: value,\n error: \"OrgIdNotFound\",\n };\n },\n\n endpointNotFound: (value: string): FernRegistry.snippets.get.Error.EndpointNotFound => {\n return {\n content: value,\n error: \"EndpointNotFound\",\n };\n },\n\n sdkNotFound: (value: string): FernRegistry.snippets.get.Error.SdkNotFound => {\n return {\n content: value,\n error: \"SDKNotFound\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.snippets.get.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.snippets.get.Error,\n visitor: FernRegistry.snippets.get.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n case \"UserNotInOrgError\":\n return visitor.userNotInOrgError(value.content);\n case \"UnavailableError\":\n return visitor.unavailableError(value.content);\n case \"ApiIdRequiredError\":\n return visitor.apiIdRequiredError(value.content);\n case \"OrgIdRequiredError\":\n return visitor.orgIdRequiredError(value.content);\n case \"OrgIdAndApiIdNotFound\":\n return visitor.orgIdAndApiIdNotFound(value.content);\n case \"OrgIdNotFound\":\n return visitor.orgIdNotFound(value.content);\n case \"EndpointNotFound\":\n return visitor.endpointNotFound(value.content);\n case \"SDKNotFound\":\n return visitor.sdkNotFound(value.content);\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../index.js\";\n\nexport type Error =\n | FernRegistry.snippets.load.Error.UnauthorizedError\n | FernRegistry.snippets.load.Error.UserNotInOrgError\n | FernRegistry.snippets.load.Error.UnavailableError\n | FernRegistry.snippets.load.Error.InvalidPageError\n | FernRegistry.snippets.load.Error.ApiIdRequiredError\n | FernRegistry.snippets.load.Error.OrgIdRequiredError\n | FernRegistry.snippets.load.Error.OrgIdAndApiIdNotFound\n | FernRegistry.snippets.load.Error.OrgIdNotFound\n | FernRegistry.snippets.load.Error.SdkNotFound\n | FernRegistry.snippets.load.Error._Unknown;\n\nexport namespace Error {\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface UserNotInOrgError {\n error: \"UserNotInOrgError\";\n content: string;\n }\n\n export interface UnavailableError {\n error: \"UnavailableError\";\n content: string;\n }\n\n export interface InvalidPageError {\n error: \"InvalidPageError\";\n content: string;\n }\n\n export interface ApiIdRequiredError {\n error: \"ApiIdRequiredError\";\n content: string;\n }\n\n export interface OrgIdRequiredError {\n error: \"OrgIdRequiredError\";\n content: string;\n }\n\n export interface OrgIdAndApiIdNotFound {\n error: \"OrgIdAndApiIdNotFound\";\n content: string;\n }\n\n export interface OrgIdNotFound {\n error: \"OrgIdNotFound\";\n content: string;\n }\n\n export interface SdkNotFound {\n error: \"SDKNotFound\";\n content: string;\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n unauthorizedError: (value: string) => _Result;\n userNotInOrgError: (value: string) => _Result;\n unavailableError: (value: string) => _Result;\n invalidPageError: (value: string) => _Result;\n apiIdRequiredError: (value: string) => _Result;\n orgIdRequiredError: (value: string) => _Result;\n orgIdAndApiIdNotFound: (value: string) => _Result;\n orgIdNotFound: (value: string) => _Result;\n sdkNotFound: (value: string) => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n unauthorizedError: (value: string): FernRegistry.snippets.load.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n userNotInOrgError: (value: string): FernRegistry.snippets.load.Error.UserNotInOrgError => {\n return {\n content: value,\n error: \"UserNotInOrgError\",\n };\n },\n\n unavailableError: (value: string): FernRegistry.snippets.load.Error.UnavailableError => {\n return {\n content: value,\n error: \"UnavailableError\",\n };\n },\n\n invalidPageError: (value: string): FernRegistry.snippets.load.Error.InvalidPageError => {\n return {\n content: value,\n error: \"InvalidPageError\",\n };\n },\n\n apiIdRequiredError: (value: string): FernRegistry.snippets.load.Error.ApiIdRequiredError => {\n return {\n content: value,\n error: \"ApiIdRequiredError\",\n };\n },\n\n orgIdRequiredError: (value: string): FernRegistry.snippets.load.Error.OrgIdRequiredError => {\n return {\n content: value,\n error: \"OrgIdRequiredError\",\n };\n },\n\n orgIdAndApiIdNotFound: (value: string): FernRegistry.snippets.load.Error.OrgIdAndApiIdNotFound => {\n return {\n content: value,\n error: \"OrgIdAndApiIdNotFound\",\n };\n },\n\n orgIdNotFound: (value: string): FernRegistry.snippets.load.Error.OrgIdNotFound => {\n return {\n content: value,\n error: \"OrgIdNotFound\",\n };\n },\n\n sdkNotFound: (value: string): FernRegistry.snippets.load.Error.SdkNotFound => {\n return {\n content: value,\n error: \"SDKNotFound\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.snippets.load.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.snippets.load.Error,\n visitor: FernRegistry.snippets.load.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n case \"UserNotInOrgError\":\n return visitor.userNotInOrgError(value.content);\n case \"UnavailableError\":\n return visitor.unavailableError(value.content);\n case \"InvalidPageError\":\n return visitor.invalidPageError(value.content);\n case \"ApiIdRequiredError\":\n return visitor.apiIdRequiredError(value.content);\n case \"OrgIdRequiredError\":\n return visitor.orgIdRequiredError(value.content);\n case \"OrgIdAndApiIdNotFound\":\n return visitor.orgIdAndApiIdNotFound(value.content);\n case \"OrgIdNotFound\":\n return visitor.orgIdNotFound(value.content);\n case \"SDKNotFound\":\n return visitor.sdkNotFound(value.content);\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","export * from \"./client/index.js\";\nexport * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../index.js\";\n\nexport type Error =\n | FernRegistry.snippetsFactory.createSnippetsForSdk.Error.UnauthorizedError\n | FernRegistry.snippetsFactory.createSnippetsForSdk.Error.UserNotInOrgError\n | FernRegistry.snippetsFactory.createSnippetsForSdk.Error.OrgIdNotFound\n | FernRegistry.snippetsFactory.createSnippetsForSdk.Error.SdkNotFound\n | FernRegistry.snippetsFactory.createSnippetsForSdk.Error._Unknown;\n\nexport namespace Error {\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface UserNotInOrgError {\n error: \"UserNotInOrgError\";\n content: string;\n }\n\n export interface OrgIdNotFound {\n error: \"OrgIdNotFound\";\n content: string;\n }\n\n export interface SdkNotFound {\n error: \"SDKNotFound\";\n content: string;\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n unauthorizedError: (value: string) => _Result;\n userNotInOrgError: (value: string) => _Result;\n orgIdNotFound: (value: string) => _Result;\n sdkNotFound: (value: string) => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n unauthorizedError: (value: string): FernRegistry.snippetsFactory.createSnippetsForSdk.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n userNotInOrgError: (value: string): FernRegistry.snippetsFactory.createSnippetsForSdk.Error.UserNotInOrgError => {\n return {\n content: value,\n error: \"UserNotInOrgError\",\n };\n },\n\n orgIdNotFound: (value: string): FernRegistry.snippetsFactory.createSnippetsForSdk.Error.OrgIdNotFound => {\n return {\n content: value,\n error: \"OrgIdNotFound\",\n };\n },\n\n sdkNotFound: (value: string): FernRegistry.snippetsFactory.createSnippetsForSdk.Error.SdkNotFound => {\n return {\n content: value,\n error: \"SDKNotFound\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.snippetsFactory.createSnippetsForSdk.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.snippetsFactory.createSnippetsForSdk.Error,\n visitor: FernRegistry.snippetsFactory.createSnippetsForSdk.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n case \"UserNotInOrgError\":\n return visitor.userNotInOrgError(value.content);\n case \"OrgIdNotFound\":\n return visitor.orgIdNotFound(value.content);\n case \"SDKNotFound\":\n return visitor.sdkNotFound(value.content);\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","export * from \"./client/index.js\";\nexport * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../index.js\";\n\nexport type Error =\n | FernRegistry.templates.get.Error.UnauthorizedError\n | FernRegistry.templates.get.Error.SnippetNotFound\n | FernRegistry.templates.get.Error._Unknown;\n\nexport namespace Error {\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface SnippetNotFound {\n error: \"SnippetNotFound\";\n content: string;\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n unauthorizedError: (value: string) => _Result;\n snippetNotFound: (value: string) => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n unauthorizedError: (value: string): FernRegistry.templates.get.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n snippetNotFound: (value: string): FernRegistry.templates.get.Error.SnippetNotFound => {\n return {\n content: value,\n error: \"SnippetNotFound\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.templates.get.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.templates.get.Error,\n visitor: FernRegistry.templates.get.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n case \"SnippetNotFound\":\n return visitor.snippetNotFound(value.content);\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../index.js\";\n\nexport type Error = FernRegistry.templates.register.Error._Unknown;\n\nexport namespace Error {\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.templates.register.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.templates.register.Error,\n visitor: FernRegistry.templates.register.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../index.js\";\n\nexport type Error = FernRegistry.templates.registerBatch.Error._Unknown;\n\nexport namespace Error {\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.templates.registerBatch.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.templates.registerBatch.Error,\n visitor: FernRegistry.templates.registerBatch.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\n/**\n * The location of the payload, if omitted the full payload is used.\n * Note that RELATIVE should be used for iterables primarily, so be\n * able to specify the path to the field relative to the iterated on object\n */\nexport const PayloadLocation = {\n Body: \"BODY\",\n Query: \"QUERY\",\n Path: \"PATH\",\n Headers: \"HEADERS\",\n Relative: \"RELATIVE\",\n Auth: \"AUTH\",\n} as const;\nexport type PayloadLocation = (typeof PayloadLocation)[keyof typeof PayloadLocation];\n","export * from \"./client/index.js\";\nexport * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../index.js\";\n\nexport type Error = FernRegistry.tokens.generate.Error._Unknown;\n\nexport namespace Error {\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.tokens.generate.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.tokens.generate.Error,\n visitor: FernRegistry.tokens.generate.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../index.js\";\n\nexport type Error = FernRegistry.tokens.revoke.Error._Unknown;\n\nexport namespace Error {\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.tokens.revoke.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.tokens.revoke.Error,\n visitor: FernRegistry.tokens.revoke.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","export function mergeHeaders<THeaderValue>(\n ...headersArray: (Record<string, THeaderValue> | null | undefined)[]\n): Record<string, string | THeaderValue> {\n const result: Record<string, THeaderValue> = {};\n\n for (const [key, value] of headersArray\n .filter((headers) => headers != null)\n .flatMap((headers) => Object.entries(headers))) {\n const insensitiveKey = key.toLowerCase();\n if (value != null) {\n result[insensitiveKey] = value;\n } else if (insensitiveKey in result) {\n delete result[insensitiveKey];\n }\n }\n\n return result;\n}\n\nexport function mergeOnlyDefinedHeaders<THeaderValue>(\n ...headersArray: (Record<string, THeaderValue> | null | undefined)[]\n): Record<string, THeaderValue> {\n const result: Record<string, THeaderValue> = {};\n\n for (const [key, value] of headersArray\n .filter((headers) => headers != null)\n .flatMap((headers) => Object.entries(headers))) {\n const insensitiveKey = key.toLowerCase();\n if (value != null) {\n result[insensitiveKey] = value;\n }\n }\n\n return result;\n}\n","import type { EndpointMetadata } from \"./EndpointMetadata.js\";\nimport type { Supplier } from \"./Supplier.js\";\n\ntype EndpointSupplierFn<T> = (arg: { endpointMetadata: EndpointMetadata }) => T | Promise<T>;\nexport type EndpointSupplier<T> = Supplier<T> | EndpointSupplierFn<T>;\nexport const EndpointSupplier = {\n get: async <T>(supplier: EndpointSupplier<T>, arg: { endpointMetadata: EndpointMetadata }): Promise<T> => {\n if (typeof supplier === \"function\") {\n return (supplier as EndpointSupplierFn<T>)(arg);\n } else {\n return supplier;\n }\n },\n};\n","/**\n * Serialize a value to JSON\n * @param value A JavaScript value, usually an object or array, to be converted.\n * @param replacer A function that transforms the results.\n * @param space Adds indentation, white space, and line break characters to the return-value JSON text to make it easier to read.\n * @returns JSON string\n */\nexport const toJson = (\n value: unknown,\n replacer?: (this: unknown, key: string, value: unknown) => unknown,\n space?: string | number,\n): string => {\n return JSON.stringify(value, replacer, space);\n};\n\n/**\n * Parse JSON string to object, array, or other type\n * @param text A valid JSON string.\n * @param reviver A function that transforms the results. This function is called for each member of the object. If a member contains nested objects, the nested objects are transformed before the parent object is.\n * @returns Parsed object, array, or other type\n */\nexport function fromJson<T = unknown>(\n text: string,\n reviver?: (this: unknown, key: string, value: unknown) => unknown,\n): T {\n return JSON.parse(text, reviver);\n}\n","export const LogLevel = {\n Debug: \"debug\",\n Info: \"info\",\n Warn: \"warn\",\n Error: \"error\",\n} as const;\nexport type LogLevel = (typeof LogLevel)[keyof typeof LogLevel];\nconst logLevelMap: Record<LogLevel, number> = {\n [LogLevel.Debug]: 1,\n [LogLevel.Info]: 2,\n [LogLevel.Warn]: 3,\n [LogLevel.Error]: 4,\n};\n\nexport interface ILogger {\n /**\n * Logs a debug message.\n * @param message - The message to log\n * @param args - Additional arguments to log\n */\n debug(message: string, ...args: unknown[]): void;\n /**\n * Logs an info message.\n * @param message - The message to log\n * @param args - Additional arguments to log\n */\n info(message: string, ...args: unknown[]): void;\n /**\n * Logs a warning message.\n * @param message - The message to log\n * @param args - Additional arguments to log\n */\n warn(message: string, ...args: unknown[]): void;\n /**\n * Logs an error message.\n * @param message - The message to log\n * @param args - Additional arguments to log\n */\n error(message: string, ...args: unknown[]): void;\n}\n\n/**\n * Configuration for logger initialization.\n */\nexport interface LogConfig {\n /**\n * Minimum log level to output.\n * @default LogLevel.Info\n */\n level?: LogLevel;\n /**\n * Logger implementation to use.\n * @default new ConsoleLogger()\n */\n logger?: ILogger;\n /**\n * Whether logging should be silenced.\n * @default true\n */\n silent?: boolean;\n}\n\n/**\n * Default console-based logger implementation.\n */\nexport class ConsoleLogger implements ILogger {\n debug(message: string, ...args: unknown[]): void {\n console.debug(message, ...args);\n }\n info(message: string, ...args: unknown[]): void {\n console.info(message, ...args);\n }\n warn(message: string, ...args: unknown[]): void {\n console.warn(message, ...args);\n }\n error(message: string, ...args: unknown[]): void {\n console.error(message, ...args);\n }\n}\n\n/**\n * Logger class that provides level-based logging functionality.\n */\nexport class Logger {\n private readonly level: number;\n private readonly logger: ILogger;\n private readonly silent: boolean;\n\n /**\n * Creates a new logger instance.\n * @param config - Logger configuration\n */\n constructor(config: Required<LogConfig>) {\n this.level = logLevelMap[config.level];\n this.logger = config.logger;\n this.silent = config.silent;\n }\n\n /**\n * Checks if a log level should be output based on configuration.\n * @param level - The log level to check\n * @returns True if the level should be logged\n */\n public shouldLog(level: LogLevel): boolean {\n return !this.silent && this.level <= logLevelMap[level];\n }\n\n /**\n * Checks if debug logging is enabled.\n * @returns True if debug logs should be output\n */\n public isDebug(): boolean {\n return this.shouldLog(LogLevel.Debug);\n }\n\n /**\n * Logs a debug message if debug logging is enabled.\n * @param message - The message to log\n * @param args - Additional arguments to log\n */\n public debug(message: string, ...args: unknown[]): void {\n if (this.isDebug()) {\n this.logger.debug(message, ...args);\n }\n }\n\n /**\n * Checks if info logging is enabled.\n * @returns True if info logs should be output\n */\n public isInfo(): boolean {\n return this.shouldLog(LogLevel.Info);\n }\n\n /**\n * Logs an info message if info logging is enabled.\n * @param message - The message to log\n * @param args - Additional arguments to log\n */\n public info(message: string, ...args: unknown[]): void {\n if (this.isInfo()) {\n this.logger.info(message, ...args);\n }\n }\n\n /**\n * Checks if warning logging is enabled.\n * @returns True if warning logs should be output\n */\n public isWarn(): boolean {\n return this.shouldLog(LogLevel.Warn);\n }\n\n /**\n * Logs a warning message if warning logging is enabled.\n * @param message - The message to log\n * @param args - Additional arguments to log\n */\n public warn(message: string, ...args: unknown[]): void {\n if (this.isWarn()) {\n this.logger.warn(message, ...args);\n }\n }\n\n /**\n * Checks if error logging is enabled.\n * @returns True if error logs should be output\n */\n public isError(): boolean {\n return this.shouldLog(LogLevel.Error);\n }\n\n /**\n * Logs an error message if error logging is enabled.\n * @param message - The message to log\n * @param args - Additional arguments to log\n */\n public error(message: string, ...args: unknown[]): void {\n if (this.isError()) {\n this.logger.error(message, ...args);\n }\n }\n}\n\nexport function createLogger(config?: LogConfig | Logger): Logger {\n if (config == null) {\n return defaultLogger;\n }\n if (config instanceof Logger) {\n return config;\n }\n config = config ?? {};\n config.level ??= LogLevel.Info;\n config.logger ??= new ConsoleLogger();\n config.silent ??= true;\n return new Logger(config as Required<LogConfig>);\n}\n\nconst defaultLogger: Logger = new Logger({\n level: LogLevel.Info,\n logger: new ConsoleLogger(),\n silent: true,\n});\n","interface QueryStringOptions {\n arrayFormat?: \"indices\" | \"repeat\";\n encode?: boolean;\n}\n\nconst defaultQsOptions: Required<QueryStringOptions> = {\n arrayFormat: \"indices\",\n encode: true,\n} as const;\n\nfunction encodeValue(value: unknown, shouldEncode: boolean): string {\n if (value === undefined) {\n return \"\";\n }\n if (value === null) {\n return \"\";\n }\n const stringValue = String(value);\n return shouldEncode ? encodeURIComponent(stringValue) : stringValue;\n}\n\nfunction stringifyObject(obj: Record<string, unknown>, prefix = \"\", options: Required<QueryStringOptions>): string[] {\n const parts: string[] = [];\n\n for (const [key, value] of Object.entries(obj)) {\n const fullKey = prefix ? `${prefix}[${key}]` : key;\n\n if (value === undefined) {\n continue;\n }\n\n if (Array.isArray(value)) {\n if (value.length === 0) {\n continue;\n }\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n if (item === undefined) {\n continue;\n }\n if (typeof item === \"object\" && !Array.isArray(item) && item !== null) {\n const arrayKey = options.arrayFormat === \"indices\" ? `${fullKey}[${i}]` : fullKey;\n parts.push(...stringifyObject(item as Record<string, unknown>, arrayKey, options));\n } else {\n const arrayKey = options.arrayFormat === \"indices\" ? `${fullKey}[${i}]` : fullKey;\n const encodedKey = options.encode ? encodeURIComponent(arrayKey) : arrayKey;\n parts.push(`${encodedKey}=${encodeValue(item, options.encode)}`);\n }\n }\n } else if (typeof value === \"object\" && value !== null) {\n if (Object.keys(value as Record<string, unknown>).length === 0) {\n continue;\n }\n parts.push(...stringifyObject(value as Record<string, unknown>, fullKey, options));\n } else {\n const encodedKey = options.encode ? encodeURIComponent(fullKey) : fullKey;\n parts.push(`${encodedKey}=${encodeValue(value, options.encode)}`);\n }\n }\n\n return parts;\n}\n\nexport function toQueryString(obj: unknown, options?: QueryStringOptions): string {\n if (obj == null || typeof obj !== \"object\") {\n return \"\";\n }\n\n const parts = stringifyObject(obj as Record<string, unknown>, \"\", {\n ...defaultQsOptions,\n ...options,\n });\n return parts.join(\"&\");\n}\n","import { toQueryString } from \"../url/qs.js\";\n\nexport function createRequestUrl(baseUrl: string, queryParameters?: Record<string, unknown>): string {\n const queryString = toQueryString(queryParameters, { arrayFormat: \"repeat\" });\n return queryString ? `${baseUrl}?${queryString}` : baseUrl;\n}\n","import type { ResponseWithBody } from \"./ResponseWithBody.js\";\n\nexport type BinaryResponse = {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/bodyUsed) */\n bodyUsed: boolean;\n /**\n * Returns a ReadableStream of the response body.\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/body)\n */\n stream: () => ReadableStream<Uint8Array>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/arrayBuffer) */\n arrayBuffer: () => Promise<ArrayBuffer>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/blob) */\n blob: () => Promise<Blob>;\n /**\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/bytes)\n * Some versions of the Fetch API may not support this method.\n */\n bytes?(): Promise<Uint8Array>;\n};\n\nexport function getBinaryResponse(response: ResponseWithBody): BinaryResponse {\n const binaryResponse: BinaryResponse = {\n get bodyUsed() {\n return response.bodyUsed;\n },\n stream: () => response.body,\n arrayBuffer: response.arrayBuffer.bind(response),\n blob: response.blob.bind(response),\n };\n if (\"bytes\" in response && typeof response.bytes === \"function\") {\n binaryResponse.bytes = response.bytes.bind(response);\n }\n\n return binaryResponse;\n}\n","export type ResponseWithBody = Response & {\n body: ReadableStream<Uint8Array>;\n};\n\nexport function isResponseWithBody(response: Response): response is ResponseWithBody {\n return (response as ResponseWithBody).body != null;\n}\n","import { fromJson } from \"../json.js\";\nimport { getBinaryResponse } from \"./BinaryResponse.js\";\nimport { isResponseWithBody } from \"./ResponseWithBody.js\";\n\nexport async function getResponseBody(response: Response, responseType?: string): Promise<unknown> {\n if (!isResponseWithBody(response)) {\n return undefined;\n }\n switch (responseType) {\n case \"binary-response\":\n return getBinaryResponse(response);\n case \"blob\":\n return await response.blob();\n case \"arrayBuffer\":\n return await response.arrayBuffer();\n case \"sse\":\n return response.body;\n case \"streaming\":\n return response.body;\n\n case \"text\":\n return await response.text();\n }\n\n // if responseType is \"json\" or not specified, try to parse as JSON\n const text = await response.text();\n if (text.length > 0) {\n try {\n const responseBody = fromJson(text);\n return responseBody;\n } catch (_err) {\n return {\n ok: false,\n error: {\n reason: \"non-json\",\n statusCode: response.status,\n rawBody: text,\n },\n };\n }\n }\n return undefined;\n}\n","import { fromJson } from \"../json.js\";\nimport { getResponseBody } from \"./getResponseBody.js\";\n\nexport async function getErrorResponseBody(response: Response): Promise<unknown> {\n let contentType = response.headers.get(\"Content-Type\")?.toLowerCase();\n if (contentType == null || contentType.length === 0) {\n return getResponseBody(response);\n }\n\n if (contentType.indexOf(\";\") !== -1) {\n contentType = contentType.split(\";\")[0]?.trim() ?? \"\";\n }\n switch (contentType) {\n case \"application/hal+json\":\n case \"application/json\":\n case \"application/ld+json\":\n case \"application/problem+json\":\n case \"application/vnd.api+json\":\n case \"text/json\": {\n const text = await response.text();\n return text.length > 0 ? fromJson(text) : undefined;\n }\n default:\n if (contentType.startsWith(\"application/vnd.\") && contentType.endsWith(\"+json\")) {\n const text = await response.text();\n return text.length > 0 ? fromJson(text) : undefined;\n }\n\n // Fallback to plain text if content type is not recognized\n // Even if no body is present, the response will be an empty string\n return await response.text();\n }\n}\n","export async function getFetchFn(): Promise<typeof fetch> {\n return fetch;\n}\n","import { toJson } from \"../json.js\";\nimport { toQueryString } from \"../url/qs.js\";\n\nexport declare namespace GetRequestBody {\n interface Args {\n body: unknown;\n type: \"json\" | \"file\" | \"bytes\" | \"form\" | \"other\";\n }\n}\n\nexport async function getRequestBody({ body, type }: GetRequestBody.Args): Promise<BodyInit | undefined> {\n if (type === \"form\") {\n return toQueryString(body, { arrayFormat: \"repeat\", encode: true });\n }\n if (type.includes(\"json\")) {\n return toJson(body);\n } else {\n return body as BodyInit;\n }\n}\n","let Headers: typeof globalThis.Headers;\n\nif (typeof globalThis.Headers !== \"undefined\") {\n Headers = globalThis.Headers;\n} else {\n Headers = class Headers implements Headers {\n private headers: Map<string, string[]>;\n\n constructor(init?: HeadersInit) {\n this.headers = new Map();\n\n if (init) {\n if (init instanceof Headers) {\n init.forEach((value, key) => this.append(key, value));\n } else if (Array.isArray(init)) {\n for (const [key, value] of init) {\n if (typeof key === \"string\" && typeof value === \"string\") {\n this.append(key, value);\n } else {\n throw new TypeError(\"Each header entry must be a [string, string] tuple\");\n }\n }\n } else {\n for (const [key, value] of Object.entries(init)) {\n if (typeof value === \"string\") {\n this.append(key, value);\n } else {\n throw new TypeError(\"Header values must be strings\");\n }\n }\n }\n }\n }\n\n append(name: string, value: string): void {\n const key = name.toLowerCase();\n const existing = this.headers.get(key) || [];\n this.headers.set(key, [...existing, value]);\n }\n\n delete(name: string): void {\n const key = name.toLowerCase();\n this.headers.delete(key);\n }\n\n get(name: string): string | null {\n const key = name.toLowerCase();\n const values = this.headers.get(key);\n return values ? values.join(\", \") : null;\n }\n\n has(name: string): boolean {\n const key = name.toLowerCase();\n return this.headers.has(key);\n }\n\n set(name: string, value: string): void {\n const key = name.toLowerCase();\n this.headers.set(key, [value]);\n }\n\n forEach(callbackfn: (value: string, key: string, parent: Headers) => void, thisArg?: unknown): void {\n const boundCallback = thisArg ? callbackfn.bind(thisArg) : callbackfn;\n this.headers.forEach((values, key) => boundCallback(values.join(\", \"), key, this));\n }\n\n getSetCookie(): string[] {\n return this.headers.get(\"set-cookie\") || [];\n }\n\n *entries(): HeadersIterator<[string, string]> {\n for (const [key, values] of this.headers.entries()) {\n yield [key, values.join(\", \")];\n }\n }\n\n *keys(): HeadersIterator<string> {\n yield* this.headers.keys();\n }\n\n *values(): HeadersIterator<string> {\n for (const values of this.headers.values()) {\n yield values.join(\", \");\n }\n }\n\n [Symbol.iterator](): HeadersIterator<[string, string]> {\n return this.entries();\n }\n };\n}\n\nexport { Headers };\n","const TIMEOUT = \"timeout\";\n\nexport function getTimeoutSignal(timeoutMs: number): { signal: AbortSignal; abortId: NodeJS.Timeout } {\n const controller = new AbortController();\n const abortId = setTimeout(() => controller.abort(TIMEOUT), timeoutMs);\n return { signal: controller.signal, abortId };\n}\n\nexport function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal {\n const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args) as AbortSignal[];\n\n const controller = new AbortController();\n\n for (const signal of signals) {\n if (signal.aborted) {\n controller.abort((signal as any)?.reason);\n break;\n }\n\n signal.addEventListener(\"abort\", () => controller.abort((signal as any)?.reason), {\n signal: controller.signal,\n });\n }\n\n return controller.signal;\n}\n","import { anySignal, getTimeoutSignal } from \"./signals.js\";\n\nexport const makeRequest = async (\n fetchFn: (url: string, init: RequestInit) => Promise<Response>,\n url: string,\n method: string,\n headers: Headers | Record<string, string>,\n requestBody: BodyInit | undefined,\n timeoutMs?: number,\n abortSignal?: AbortSignal,\n withCredentials?: boolean,\n duplex?: \"half\",\n): Promise<Response> => {\n const signals: AbortSignal[] = [];\n\n let timeoutAbortId: NodeJS.Timeout | undefined;\n if (timeoutMs != null) {\n const { signal, abortId } = getTimeoutSignal(timeoutMs);\n timeoutAbortId = abortId;\n signals.push(signal);\n }\n\n if (abortSignal != null) {\n signals.push(abortSignal);\n }\n const newSignals = anySignal(signals);\n const response = await fetchFn(url, {\n method: method,\n headers,\n body: requestBody,\n signal: newSignals,\n credentials: withCredentials ? \"include\" : undefined,\n // @ts-ignore\n duplex,\n });\n\n if (timeoutAbortId != null) {\n clearTimeout(timeoutAbortId);\n }\n\n return response;\n};\n","import { Headers } from \"./Headers.js\";\n\n/**\n * The raw response from the fetch call excluding the body.\n */\nexport type RawResponse = Omit<\n {\n [K in keyof Response as Response[K] extends Function ? never : K]: Response[K]; // strips out functions\n },\n \"ok\" | \"body\" | \"bodyUsed\"\n>; // strips out body and bodyUsed\n\n/**\n * A raw response indicating that the request was aborted.\n */\nexport const abortRawResponse: RawResponse = {\n headers: new Headers(),\n redirected: false,\n status: 499,\n statusText: \"Client Closed Request\",\n type: \"error\",\n url: \"\",\n} as const;\n\n/**\n * A raw response indicating an unknown error.\n */\nexport const unknownRawResponse: RawResponse = {\n headers: new Headers(),\n redirected: false,\n status: 0,\n statusText: \"Unknown Error\",\n type: \"error\",\n url: \"\",\n} as const;\n\n/**\n * Converts a `RawResponse` object into a `RawResponse` by extracting its properties,\n * excluding the `body` and `bodyUsed` fields.\n *\n * @param response - The `RawResponse` object to convert.\n * @returns A `RawResponse` object containing the extracted properties of the input response.\n */\nexport function toRawResponse(response: Response): RawResponse {\n return {\n headers: response.headers,\n redirected: response.redirected,\n status: response.status,\n statusText: response.statusText,\n type: response.type,\n url: response.url,\n };\n}\n\n/**\n * Creates a `RawResponse` from a standard `Response` object.\n */\nexport interface WithRawResponse<T> {\n readonly data: T;\n readonly rawResponse: RawResponse;\n}\n","const INITIAL_RETRY_DELAY = 1000; // in milliseconds\nconst MAX_RETRY_DELAY = 60000; // in milliseconds\nconst DEFAULT_MAX_RETRIES = 2;\nconst JITTER_FACTOR = 0.2; // 20% random jitter\n\nfunction addPositiveJitter(delay: number): number {\n const jitterMultiplier = 1 + Math.random() * JITTER_FACTOR;\n return delay * jitterMultiplier;\n}\n\nfunction addSymmetricJitter(delay: number): number {\n const jitterMultiplier = 1 + (Math.random() - 0.5) * JITTER_FACTOR;\n return delay * jitterMultiplier;\n}\n\nfunction getRetryDelayFromHeaders(response: Response, retryAttempt: number): number {\n const retryAfter = response.headers.get(\"Retry-After\");\n if (retryAfter) {\n const retryAfterSeconds = parseInt(retryAfter, 10);\n if (!Number.isNaN(retryAfterSeconds) && retryAfterSeconds > 0) {\n return Math.min(retryAfterSeconds * 1000, MAX_RETRY_DELAY);\n }\n\n const retryAfterDate = new Date(retryAfter);\n if (!Number.isNaN(retryAfterDate.getTime())) {\n const delay = retryAfterDate.getTime() - Date.now();\n if (delay > 0) {\n return Math.min(Math.max(delay, 0), MAX_RETRY_DELAY);\n }\n }\n }\n\n const rateLimitReset = response.headers.get(\"X-RateLimit-Reset\");\n if (rateLimitReset) {\n const resetTime = parseInt(rateLimitReset, 10);\n if (!Number.isNaN(resetTime)) {\n const delay = resetTime * 1000 - Date.now();\n if (delay > 0) {\n return addPositiveJitter(Math.min(delay, MAX_RETRY_DELAY));\n }\n }\n }\n\n return addSymmetricJitter(Math.min(INITIAL_RETRY_DELAY * 2 ** retryAttempt, MAX_RETRY_DELAY));\n}\n\nexport async function requestWithRetries(\n requestFn: () => Promise<Response>,\n maxRetries: number = DEFAULT_MAX_RETRIES,\n): Promise<Response> {\n let response: Response = await requestFn();\n\n for (let i = 0; i < maxRetries; ++i) {\n if ([408, 429].includes(response.status) || response.status >= 500) {\n const delay = getRetryDelayFromHeaders(response, i);\n\n await new Promise((resolve) => setTimeout(resolve, delay));\n response = await requestFn();\n } else {\n break;\n }\n }\n return response!;\n}\n","import { toJson } from \"../json.js\";\nimport { createLogger, type LogConfig, type Logger } from \"../logging/logger.js\";\nimport type { APIResponse } from \"./APIResponse.js\";\nimport { createRequestUrl } from \"./createRequestUrl.js\";\nimport type { EndpointMetadata } from \"./EndpointMetadata.js\";\nimport { EndpointSupplier } from \"./EndpointSupplier.js\";\nimport { getErrorResponseBody } from \"./getErrorResponseBody.js\";\nimport { getFetchFn } from \"./getFetchFn.js\";\nimport { getRequestBody } from \"./getRequestBody.js\";\nimport { getResponseBody } from \"./getResponseBody.js\";\nimport { Headers } from \"./Headers.js\";\nimport { makeRequest } from \"./makeRequest.js\";\nimport { abortRawResponse, toRawResponse, unknownRawResponse } from \"./RawResponse.js\";\nimport { requestWithRetries } from \"./requestWithRetries.js\";\n\nexport type FetchFunction = <R = unknown>(args: Fetcher.Args) => Promise<APIResponse<R, Fetcher.Error>>;\n\nexport declare namespace Fetcher {\n export interface Args {\n url: string;\n method: string;\n contentType?: string;\n headers?: Record<string, string | EndpointSupplier<string | null | undefined> | null | undefined>;\n queryParameters?: Record<string, unknown>;\n body?: unknown;\n timeoutMs?: number;\n maxRetries?: number;\n withCredentials?: boolean;\n abortSignal?: AbortSignal;\n requestType?: \"json\" | \"file\" | \"bytes\" | \"form\" | \"other\";\n responseType?: \"json\" | \"blob\" | \"sse\" | \"streaming\" | \"text\" | \"arrayBuffer\" | \"binary-response\";\n duplex?: \"half\";\n endpointMetadata?: EndpointMetadata;\n fetchFn?: typeof fetch;\n logging?: LogConfig | Logger;\n }\n\n export type Error = FailedStatusCodeError | NonJsonError | TimeoutError | UnknownError;\n\n export interface FailedStatusCodeError {\n reason: \"status-code\";\n statusCode: number;\n body: unknown;\n }\n\n export interface NonJsonError {\n reason: \"non-json\";\n statusCode: number;\n rawBody: string;\n }\n\n export interface TimeoutError {\n reason: \"timeout\";\n }\n\n export interface UnknownError {\n reason: \"unknown\";\n errorMessage: string;\n }\n}\n\nconst SENSITIVE_HEADERS = new Set([\n \"authorization\",\n \"www-authenticate\",\n \"x-api-key\",\n \"api-key\",\n \"apikey\",\n \"x-api-token\",\n \"x-auth-token\",\n \"auth-token\",\n \"cookie\",\n \"set-cookie\",\n \"proxy-authorization\",\n \"proxy-authenticate\",\n \"x-csrf-token\",\n \"x-xsrf-token\",\n \"x-session-token\",\n \"x-access-token\",\n]);\n\nfunction redactHeaders(headers: Headers | Record<string, string>): Record<string, string> {\n const filtered: Record<string, string> = {};\n for (const [key, value] of headers instanceof Headers ? headers.entries() : Object.entries(headers)) {\n if (SENSITIVE_HEADERS.has(key.toLowerCase())) {\n filtered[key] = \"[REDACTED]\";\n } else {\n filtered[key] = value;\n }\n }\n return filtered;\n}\n\nconst SENSITIVE_QUERY_PARAMS = new Set([\n \"api_key\",\n \"api-key\",\n \"apikey\",\n \"token\",\n \"access_token\",\n \"access-token\",\n \"auth_token\",\n \"auth-token\",\n \"password\",\n \"passwd\",\n \"secret\",\n \"api_secret\",\n \"api-secret\",\n \"apisecret\",\n \"key\",\n \"session\",\n \"session_id\",\n \"session-id\",\n]);\n\nfunction redactQueryParameters(queryParameters?: Record<string, unknown>): Record<string, unknown> | undefined {\n if (queryParameters == null) {\n return queryParameters;\n }\n const redacted: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(queryParameters)) {\n if (SENSITIVE_QUERY_PARAMS.has(key.toLowerCase())) {\n redacted[key] = \"[REDACTED]\";\n } else {\n redacted[key] = value;\n }\n }\n return redacted;\n}\n\nfunction redactUrl(url: string): string {\n const protocolIndex = url.indexOf(\"://\");\n if (protocolIndex === -1) return url;\n\n const afterProtocol = protocolIndex + 3;\n\n // Find the first delimiter that marks the end of the authority section\n const pathStart = url.indexOf(\"/\", afterProtocol);\n let queryStart = url.indexOf(\"?\", afterProtocol);\n let fragmentStart = url.indexOf(\"#\", afterProtocol);\n\n const firstDelimiter = Math.min(\n pathStart === -1 ? url.length : pathStart,\n queryStart === -1 ? url.length : queryStart,\n fragmentStart === -1 ? url.length : fragmentStart,\n );\n\n // Find the LAST @ before the delimiter (handles multiple @ in credentials)\n let atIndex = -1;\n for (let i = afterProtocol; i < firstDelimiter; i++) {\n if (url[i] === \"@\") {\n atIndex = i;\n }\n }\n\n if (atIndex !== -1) {\n url = `${url.slice(0, afterProtocol)}[REDACTED]@${url.slice(atIndex + 1)}`;\n }\n\n // Recalculate queryStart since url might have changed\n queryStart = url.indexOf(\"?\");\n if (queryStart === -1) return url;\n\n fragmentStart = url.indexOf(\"#\", queryStart);\n const queryEnd = fragmentStart !== -1 ? fragmentStart : url.length;\n const queryString = url.slice(queryStart + 1, queryEnd);\n\n if (queryString.length === 0) return url;\n\n // FAST PATH: Quick check if any sensitive keywords present\n // Using indexOf is faster than regex for simple substring matching\n const lower = queryString.toLowerCase();\n const hasSensitive =\n lower.includes(\"token\") ||\n lower.includes(\"key\") ||\n lower.includes(\"password\") ||\n lower.includes(\"passwd\") ||\n lower.includes(\"secret\") ||\n lower.includes(\"session\") ||\n lower.includes(\"auth\");\n\n if (!hasSensitive) {\n return url;\n }\n\n // SLOW PATH: Parse and redact\n const redactedParams: string[] = [];\n const params = queryString.split(\"&\");\n\n for (const param of params) {\n const equalIndex = param.indexOf(\"=\");\n if (equalIndex === -1) {\n redactedParams.push(param);\n continue;\n }\n\n const key = param.slice(0, equalIndex);\n let shouldRedact = SENSITIVE_QUERY_PARAMS.has(key.toLowerCase());\n\n if (!shouldRedact && key.includes(\"%\")) {\n try {\n const decodedKey = decodeURIComponent(key);\n shouldRedact = SENSITIVE_QUERY_PARAMS.has(decodedKey.toLowerCase());\n } catch {}\n }\n\n redactedParams.push(shouldRedact ? `${key}=[REDACTED]` : param);\n }\n\n return url.slice(0, queryStart + 1) + redactedParams.join(\"&\") + url.slice(queryEnd);\n}\n\nasync function getHeaders(args: Fetcher.Args): Promise<Headers> {\n const newHeaders: Headers = new Headers();\n\n newHeaders.set(\n \"Accept\",\n args.responseType === \"json\" ? \"application/json\" : args.responseType === \"text\" ? \"text/plain\" : \"*/*\",\n );\n if (args.body !== undefined && args.contentType != null) {\n newHeaders.set(\"Content-Type\", args.contentType);\n }\n\n if (args.headers == null) {\n return newHeaders;\n }\n\n for (const [key, value] of Object.entries(args.headers)) {\n const result = await EndpointSupplier.get(value, { endpointMetadata: args.endpointMetadata ?? {} });\n if (typeof result === \"string\") {\n newHeaders.set(key, result);\n continue;\n }\n if (result == null) {\n continue;\n }\n newHeaders.set(key, `${result}`);\n }\n return newHeaders;\n}\n\nexport async function fetcherImpl<R = unknown>(args: Fetcher.Args): Promise<APIResponse<R, Fetcher.Error>> {\n const url = createRequestUrl(args.url, args.queryParameters);\n const requestBody: BodyInit | undefined = await getRequestBody({\n body: args.body,\n type: args.requestType ?? \"other\",\n });\n const fetchFn = args.fetchFn ?? (await getFetchFn());\n const headers = await getHeaders(args);\n const logger = createLogger(args.logging);\n\n if (logger.isDebug()) {\n const metadata = {\n method: args.method,\n url: redactUrl(url),\n headers: redactHeaders(headers),\n queryParameters: redactQueryParameters(args.queryParameters),\n hasBody: requestBody != null,\n };\n logger.debug(\"Making HTTP request\", metadata);\n }\n\n try {\n const response = await requestWithRetries(\n async () =>\n makeRequest(\n fetchFn,\n url,\n args.method,\n headers,\n requestBody,\n args.timeoutMs,\n args.abortSignal,\n args.withCredentials,\n args.duplex,\n ),\n args.maxRetries,\n );\n\n if (response.status >= 200 && response.status < 400) {\n if (logger.isDebug()) {\n const metadata = {\n method: args.method,\n url: redactUrl(url),\n statusCode: response.status,\n responseHeaders: redactHeaders(response.headers),\n };\n logger.debug(\"HTTP request succeeded\", metadata);\n }\n return {\n ok: true,\n body: (await getResponseBody(response, args.responseType)) as R,\n headers: response.headers,\n rawResponse: toRawResponse(response),\n };\n } else {\n if (logger.isError()) {\n const metadata = {\n method: args.method,\n url: redactUrl(url),\n statusCode: response.status,\n responseHeaders: redactHeaders(Object.fromEntries(response.headers.entries())),\n };\n logger.error(\"HTTP request failed with error status\", metadata);\n }\n return {\n ok: false,\n error: {\n reason: \"status-code\",\n statusCode: response.status,\n body: await getErrorResponseBody(response),\n },\n rawResponse: toRawResponse(response),\n };\n }\n } catch (error) {\n if (args.abortSignal?.aborted) {\n if (logger.isError()) {\n const metadata = {\n method: args.method,\n url: redactUrl(url),\n };\n logger.error(\"HTTP request was aborted\", metadata);\n }\n return {\n ok: false,\n error: {\n reason: \"unknown\",\n errorMessage: \"The user aborted a request\",\n },\n rawResponse: abortRawResponse,\n };\n } else if (error instanceof Error && error.name === \"AbortError\") {\n if (logger.isError()) {\n const metadata = {\n method: args.method,\n url: redactUrl(url),\n timeoutMs: args.timeoutMs,\n };\n logger.error(\"HTTP request timed out\", metadata);\n }\n return {\n ok: false,\n error: {\n reason: \"timeout\",\n },\n rawResponse: abortRawResponse,\n };\n } else if (error instanceof Error) {\n if (logger.isError()) {\n const metadata = {\n method: args.method,\n url: redactUrl(url),\n errorMessage: error.message,\n };\n logger.error(\"HTTP request failed with error\", metadata);\n }\n return {\n ok: false,\n error: {\n reason: \"unknown\",\n errorMessage: error.message,\n },\n rawResponse: unknownRawResponse,\n };\n }\n\n if (logger.isError()) {\n const metadata = {\n method: args.method,\n url: redactUrl(url),\n error: toJson(error),\n };\n logger.error(\"HTTP request failed with unknown error\", metadata);\n }\n return {\n ok: false,\n error: {\n reason: \"unknown\",\n errorMessage: toJson(error),\n },\n rawResponse: unknownRawResponse,\n };\n }\n}\n\nexport const fetcher: FetchFunction = fetcherImpl;\n","import type { WithRawResponse } from \"./RawResponse.js\";\n\n/**\n * A promise that returns the parsed response and lets you retrieve the raw response too.\n */\nexport class HttpResponsePromise<T> extends Promise<T> {\n private innerPromise: Promise<WithRawResponse<T>>;\n private unwrappedPromise: Promise<T> | undefined;\n\n private constructor(promise: Promise<WithRawResponse<T>>) {\n // Initialize with a no-op to avoid premature parsing\n super((resolve) => {\n resolve(undefined as unknown as T);\n });\n this.innerPromise = promise;\n }\n\n /**\n * Creates an `HttpResponsePromise` from a function that returns a promise.\n *\n * @param fn - A function that returns a promise resolving to a `WithRawResponse` object.\n * @param args - Arguments to pass to the function.\n * @returns An `HttpResponsePromise` instance.\n */\n public static fromFunction<F extends (...args: never[]) => Promise<WithRawResponse<T>>, T>(\n fn: F,\n ...args: Parameters<F>\n ): HttpResponsePromise<T> {\n return new HttpResponsePromise<T>(fn(...args));\n }\n\n /**\n * Creates a function that returns an `HttpResponsePromise` from a function that returns a promise.\n *\n * @param fn - A function that returns a promise resolving to a `WithRawResponse` object.\n * @returns A function that returns an `HttpResponsePromise` instance.\n */\n public static interceptFunction<\n F extends (...args: never[]) => Promise<WithRawResponse<T>>,\n T = Awaited<ReturnType<F>>[\"data\"],\n >(fn: F): (...args: Parameters<F>) => HttpResponsePromise<T> {\n return (...args: Parameters<F>): HttpResponsePromise<T> => {\n return HttpResponsePromise.fromPromise<T>(fn(...args));\n };\n }\n\n /**\n * Creates an `HttpResponsePromise` from an existing promise.\n *\n * @param promise - A promise resolving to a `WithRawResponse` object.\n * @returns An `HttpResponsePromise` instance.\n */\n public static fromPromise<T>(promise: Promise<WithRawResponse<T>>): HttpResponsePromise<T> {\n return new HttpResponsePromise<T>(promise);\n }\n\n /**\n * Creates an `HttpResponsePromise` from an executor function.\n *\n * @param executor - A function that takes resolve and reject callbacks to create a promise.\n * @returns An `HttpResponsePromise` instance.\n */\n public static fromExecutor<T>(\n executor: (resolve: (value: WithRawResponse<T>) => void, reject: (reason?: unknown) => void) => void,\n ): HttpResponsePromise<T> {\n const promise = new Promise<WithRawResponse<T>>(executor);\n return new HttpResponsePromise<T>(promise);\n }\n\n /**\n * Creates an `HttpResponsePromise` from a resolved result.\n *\n * @param result - A `WithRawResponse` object to resolve immediately.\n * @returns An `HttpResponsePromise` instance.\n */\n public static fromResult<T>(result: WithRawResponse<T>): HttpResponsePromise<T> {\n const promise = Promise.resolve(result);\n return new HttpResponsePromise<T>(promise);\n }\n\n private unwrap(): Promise<T> {\n if (!this.unwrappedPromise) {\n this.unwrappedPromise = this.innerPromise.then(({ data }) => data);\n }\n return this.unwrappedPromise;\n }\n\n /** @inheritdoc */\n public override then<TResult1 = T, TResult2 = never>(\n onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | null,\n onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null,\n ): Promise<TResult1 | TResult2> {\n return this.unwrap().then(onfulfilled, onrejected);\n }\n\n /** @inheritdoc */\n public override catch<TResult = never>(\n onrejected?: ((reason: unknown) => TResult | PromiseLike<TResult>) | null,\n ): Promise<T | TResult> {\n return this.unwrap().catch(onrejected);\n }\n\n /** @inheritdoc */\n public override finally(onfinally?: (() => void) | null): Promise<T> {\n return this.unwrap().finally(onfinally);\n }\n\n /**\n * Retrieves the data and raw response.\n *\n * @returns A promise resolving to a `WithRawResponse` object.\n */\n public async withRawResponse(): Promise<WithRawResponse<T>> {\n return await this.innerPromise;\n }\n}\n","export type Supplier<T> = T | Promise<T> | (() => T | Promise<T>);\n\nexport const Supplier = {\n get: async <T>(supplier: Supplier<T>): Promise<T> => {\n if (typeof supplier === \"function\") {\n return (supplier as () => T)();\n } else {\n return supplier;\n }\n },\n};\n","export * from \"./logger.js\";\n","interface DenoGlobal {\n version: {\n deno: string;\n };\n}\n\ninterface BunGlobal {\n version: string;\n}\n\ndeclare const Deno: DenoGlobal | undefined;\ndeclare const Bun: BunGlobal | undefined;\ndeclare const EdgeRuntime: string | undefined;\ndeclare const self: typeof globalThis.self & {\n importScripts?: unknown;\n};\n\n/**\n * A constant that indicates which environment and version the SDK is running in.\n */\nexport const RUNTIME: Runtime = evaluateRuntime();\n\nexport interface Runtime {\n type: \"browser\" | \"web-worker\" | \"deno\" | \"bun\" | \"node\" | \"react-native\" | \"unknown\" | \"workerd\" | \"edge-runtime\";\n version?: string;\n parsedVersion?: number;\n}\n\nfunction evaluateRuntime(): Runtime {\n /**\n * A constant that indicates whether the environment the code is running is a Web Browser.\n */\n const isBrowser = typeof window !== \"undefined\" && typeof window.document !== \"undefined\";\n if (isBrowser) {\n return {\n type: \"browser\",\n version: window.navigator.userAgent,\n };\n }\n\n /**\n * A constant that indicates whether the environment the code is running is Cloudflare.\n * https://developers.cloudflare.com/workers/runtime-apis/web-standards/#navigatoruseragent\n */\n const isCloudflare = typeof globalThis !== \"undefined\" && globalThis?.navigator?.userAgent === \"Cloudflare-Workers\";\n if (isCloudflare) {\n return {\n type: \"workerd\",\n };\n }\n\n /**\n * A constant that indicates whether the environment the code is running is Edge Runtime.\n * https://vercel.com/docs/functions/runtimes/edge-runtime#check-if-you're-running-on-the-edge-runtime\n */\n const isEdgeRuntime = typeof EdgeRuntime === \"string\";\n if (isEdgeRuntime) {\n return {\n type: \"edge-runtime\",\n };\n }\n\n /**\n * A constant that indicates whether the environment the code is running is a Web Worker.\n */\n const isWebWorker =\n typeof self === \"object\" &&\n typeof self?.importScripts === \"function\" &&\n (self.constructor?.name === \"DedicatedWorkerGlobalScope\" ||\n self.constructor?.name === \"ServiceWorkerGlobalScope\" ||\n self.constructor?.name === \"SharedWorkerGlobalScope\");\n if (isWebWorker) {\n return {\n type: \"web-worker\",\n };\n }\n\n /**\n * A constant that indicates whether the environment the code is running is Deno.\n * FYI Deno spoofs process.versions.node, see https://deno.land/std@0.177.0/node/process.ts?s=versions\n */\n const isDeno =\n typeof Deno !== \"undefined\" && typeof Deno.version !== \"undefined\" && typeof Deno.version.deno !== \"undefined\";\n if (isDeno) {\n return {\n type: \"deno\",\n version: Deno.version.deno,\n };\n }\n\n /**\n * A constant that indicates whether the environment the code is running is Bun.sh.\n */\n const isBun = typeof Bun !== \"undefined\" && typeof Bun.version !== \"undefined\";\n if (isBun) {\n return {\n type: \"bun\",\n version: Bun.version,\n };\n }\n\n /**\n * A constant that indicates whether the environment the code is running is Node.JS.\n */\n const isNode =\n typeof process !== \"undefined\" &&\n \"version\" in process &&\n !!process.version &&\n \"versions\" in process &&\n !!process.versions?.node;\n if (isNode) {\n return {\n type: \"node\",\n version: process.versions.node,\n parsedVersion: Number(process.versions.node.split(\".\")[0]),\n };\n }\n\n /**\n * A constant that indicates whether the environment the code is running is in React-Native.\n * https://github.com/facebook/react-native/blob/main/packages/react-native/Libraries/Core/setUpNavigator.js\n */\n const isReactNative = typeof navigator !== \"undefined\" && navigator?.product === \"ReactNative\";\n if (isReactNative) {\n return {\n type: \"react-native\",\n };\n }\n\n return {\n type: \"unknown\",\n };\n}\n","export { encodePathParam } from \"./encodePathParam.js\";\nexport { join } from \"./join.js\";\nexport { toQueryString } from \"./qs.js\";\n","export function encodePathParam(param: unknown): string {\n if (param === null) {\n return \"null\";\n }\n const typeofParam = typeof param;\n switch (typeofParam) {\n case \"undefined\":\n return \"undefined\";\n case \"string\":\n case \"number\":\n case \"boolean\":\n break;\n default:\n param = String(param);\n break;\n }\n return encodeURIComponent(param as string | number | boolean);\n}\n","export function join(base: string, ...segments: string[]): string {\n if (!base) {\n return \"\";\n }\n\n if (segments.length === 0) {\n return base;\n }\n\n if (base.includes(\"://\")) {\n let url: URL;\n try {\n url = new URL(base);\n } catch {\n return joinPath(base, ...segments);\n }\n\n const lastSegment = segments[segments.length - 1];\n const shouldPreserveTrailingSlash = lastSegment?.endsWith(\"/\");\n\n for (const segment of segments) {\n const cleanSegment = trimSlashes(segment);\n if (cleanSegment) {\n url.pathname = joinPathSegments(url.pathname, cleanSegment);\n }\n }\n\n if (shouldPreserveTrailingSlash && !url.pathname.endsWith(\"/\")) {\n url.pathname += \"/\";\n }\n\n return url.toString();\n }\n\n return joinPath(base, ...segments);\n}\n\nfunction joinPath(base: string, ...segments: string[]): string {\n if (segments.length === 0) {\n return base;\n }\n\n let result = base;\n\n const lastSegment = segments[segments.length - 1];\n const shouldPreserveTrailingSlash = lastSegment?.endsWith(\"/\");\n\n for (const segment of segments) {\n const cleanSegment = trimSlashes(segment);\n if (cleanSegment) {\n result = joinPathSegments(result, cleanSegment);\n }\n }\n\n if (shouldPreserveTrailingSlash && !result.endsWith(\"/\")) {\n result += \"/\";\n }\n\n return result;\n}\n\nfunction joinPathSegments(left: string, right: string): string {\n if (left.endsWith(\"/\")) {\n return left + right;\n }\n return `${left}/${right}`;\n}\n\nfunction trimSlashes(str: string): string {\n if (!str) return str;\n\n let start = 0;\n let end = str.length;\n\n if (str.startsWith(\"/\")) start = 1;\n if (str.endsWith(\"/\")) end = str.length - 1;\n\n return start === 0 && end === str.length ? str : str.slice(start, end);\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport { mergeHeaders } from \"./core/headers.js\";\nimport * as core from \"./core/index.js\";\nimport type * as environments from \"./environments.js\";\n\nexport interface BaseClientOptions {\n environment?: core.Supplier<environments.FernRegistryEnvironment | string>;\n /** Specify a custom URL to connect the client to. */\n baseUrl?: core.Supplier<string>;\n token?: core.Supplier<core.BearerToken | undefined>;\n /** Additional headers to include in requests. */\n headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;\n /** The default maximum time to wait for a response in seconds. */\n timeoutInSeconds?: number;\n /** The default number of times to retry the request. Defaults to 2. */\n maxRetries?: number;\n /** Provide a custom fetch implementation. Useful for platforms that don't have a built-in fetch or need a custom implementation. */\n fetch?: typeof fetch;\n /** Configure logging for the client. */\n logging?: core.logging.LogConfig | core.logging.Logger;\n}\n\nexport interface BaseRequestOptions {\n /** The maximum time to wait for a response in seconds. */\n timeoutInSeconds?: number;\n /** The number of times to retry the request. Defaults to 2. */\n maxRetries?: number;\n /** A hook to abort the request. */\n abortSignal?: AbortSignal;\n /** Additional query string parameters to include in the request. */\n queryParams?: Record<string, unknown>;\n /** Additional headers to include in the request. */\n headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;\n}\n\nexport function normalizeClientOptions<T extends BaseClientOptions>(options: T): T {\n const headers = mergeHeaders(\n {\n \"X-Fern-Language\": \"JavaScript\",\n \"X-Fern-Runtime\": core.RUNTIME.type,\n \"X-Fern-Runtime-Version\": core.RUNTIME.version,\n },\n options?.headers,\n );\n\n return {\n ...options,\n logging: core.logging.createLogger(options?.logging),\n headers,\n } as T;\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const FernRegistryEnvironment = {\n Prod: \"https://registry.buildwithfern.com\",\n Lambda: \"https://registry-v2.buildwithfern.com\",\n} as const;\n\nexport type FernRegistryEnvironment = typeof FernRegistryEnvironment.Prod | typeof FernRegistryEnvironment.Lambda;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../../../BaseClient.js\";\nimport { normalizeClientOptions } from \"../../../../../../BaseClient.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../../../core/headers.js\";\nimport * as core from \"../../../../../../core/index.js\";\nimport * as environments from \"../../../../../../environments.js\";\nimport * as FernRegistry from \"../../../../../index.js\";\n\nexport declare namespace LatestClient {\n export interface Options extends BaseClientOptions {}\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\nexport class LatestClient {\n protected readonly _options: LatestClient.Options;\n\n constructor(options: LatestClient.Options = {}) {\n this._options = normalizeClientOptions(options);\n }\n\n /**\n * @param {FernRegistry.ApiDefinitionId} apiDefinitionId\n * @param {LatestClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.api.latest.getApiLatest(FernRegistry.ApiDefinitionId(\"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\"))\n */\n public getApiLatest(\n apiDefinitionId: FernRegistry.ApiDefinitionId,\n requestOptions?: LatestClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<FernRegistry.api.latest.ApiDefinition, FernRegistry.api.latest.getApiLatest.Error>\n > {\n return core.HttpResponsePromise.fromPromise(this.__getApiLatest(apiDefinitionId, requestOptions));\n }\n\n private async __getApiLatest(\n apiDefinitionId: FernRegistry.ApiDefinitionId,\n requestOptions?: LatestClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<FernRegistry.api.latest.ApiDefinition, FernRegistry.api.latest.getApiLatest.Error>\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n `/registry/api/latest/load/${core.url.encodePathParam(apiDefinitionId)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.api.latest.ApiDefinition,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.api.latest.getApiLatest.Error)?.error) {\n case \"UnauthorizedError\":\n case \"ApiDoesNotExistError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.api.latest.getApiLatest.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.api.latest.getApiLatest.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../../../../../BaseClient.js\";\nimport { normalizeClientOptions } from \"../../../../../../../../BaseClient.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../../../../../core/headers.js\";\nimport * as core from \"../../../../../../../../core/index.js\";\nimport * as environments from \"../../../../../../../../environments.js\";\nimport * as FernRegistry from \"../../../../../../../index.js\";\n\nexport declare namespace ReadClient {\n export interface Options extends BaseClientOptions {}\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\nexport class ReadClient {\n protected readonly _options: ReadClient.Options;\n\n constructor(options: ReadClient.Options = {}) {\n this._options = normalizeClientOptions(options);\n }\n\n /**\n * @param {FernRegistry.ApiDefinitionId} apiDefinitionId\n * @param {ReadClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.api.v1.read.getApi(FernRegistry.ApiDefinitionId(\"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\"))\n */\n public getApi(\n apiDefinitionId: FernRegistry.ApiDefinitionId,\n requestOptions?: ReadClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<FernRegistry.api.v1.read.ApiDefinition, FernRegistry.api.v1.read.getApi.Error>\n > {\n return core.HttpResponsePromise.fromPromise(this.__getApi(apiDefinitionId, requestOptions));\n }\n\n private async __getApi(\n apiDefinitionId: FernRegistry.ApiDefinitionId,\n requestOptions?: ReadClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<FernRegistry.api.v1.read.ApiDefinition, FernRegistry.api.v1.read.getApi.Error>\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n `/registry/api/load/${core.url.encodePathParam(apiDefinitionId)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.api.v1.read.ApiDefinition,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.api.v1.read.getApi.Error)?.error) {\n case \"UnauthorizedError\":\n case \"ApiDoesNotExistError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.api.v1.read.getApi.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.api.v1.read.getApi.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * @param {FernRegistry.ApiDefinitionId} apiDefinitionId\n * @param {FernRegistry.EndpointId} endpointId\n * @param {ReadClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.api.v1.read.getEndpointById(FernRegistry.ApiDefinitionId(\"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\"), FernRegistry.EndpointId(\"endpointId\"))\n */\n public getEndpointById(\n apiDefinitionId: FernRegistry.ApiDefinitionId,\n endpointId: FernRegistry.EndpointId,\n requestOptions?: ReadClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<FernRegistry.api.v1.read.EndpointWithContext, FernRegistry.api.v1.read.getEndpointById.Error>\n > {\n return core.HttpResponsePromise.fromPromise(\n this.__getEndpointById(apiDefinitionId, endpointId, requestOptions),\n );\n }\n\n private async __getEndpointById(\n apiDefinitionId: FernRegistry.ApiDefinitionId,\n endpointId: FernRegistry.EndpointId,\n requestOptions?: ReadClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.api.v1.read.EndpointWithContext,\n FernRegistry.api.v1.read.getEndpointById.Error\n >\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n `/registry/api/load/${core.url.encodePathParam(apiDefinitionId)}/endpoint/${core.url.encodePathParam(endpointId)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.api.v1.read.EndpointWithContext,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.api.v1.read.getEndpointById.Error)?.error) {\n case \"UnauthorizedError\":\n case \"ApiDoesNotExistError\":\n case \"EndpointDoesNotExistError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.api.v1.read.getEndpointById.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.api.v1.read.getEndpointById.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * @param {FernRegistry.ApiDefinitionId} apiDefinitionId\n * @param {FernRegistry.api.v1.read.GetEndpointByLocatorRequest} request\n * @param {ReadClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.api.v1.read.getEndpointByLocator(FernRegistry.ApiDefinitionId(\"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\"), {\n * method: \"method\",\n * path: \"path\"\n * })\n */\n public getEndpointByLocator(\n apiDefinitionId: FernRegistry.ApiDefinitionId,\n request: FernRegistry.api.v1.read.GetEndpointByLocatorRequest,\n requestOptions?: ReadClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<\n FernRegistry.api.v1.read.EndpointWithContext,\n FernRegistry.api.v1.read.getEndpointByLocator.Error\n >\n > {\n return core.HttpResponsePromise.fromPromise(\n this.__getEndpointByLocator(apiDefinitionId, request, requestOptions),\n );\n }\n\n private async __getEndpointByLocator(\n apiDefinitionId: FernRegistry.ApiDefinitionId,\n request: FernRegistry.api.v1.read.GetEndpointByLocatorRequest,\n requestOptions?: ReadClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.api.v1.read.EndpointWithContext,\n FernRegistry.api.v1.read.getEndpointByLocator.Error\n >\n >\n > {\n const { method, path } = request;\n const _queryParams: Record<string, string | string[] | object | object[] | null> = {};\n _queryParams.method = method;\n _queryParams.path = path;\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n `/registry/api/load/${core.url.encodePathParam(apiDefinitionId)}/endpoint`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: { ..._queryParams, ...requestOptions?.queryParams },\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.api.v1.read.EndpointWithContext,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.api.v1.read.getEndpointByLocator.Error)?.error) {\n case \"UnauthorizedError\":\n case \"ApiDoesNotExistError\":\n case \"EndpointDoesNotExistError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.api.v1.read.getEndpointByLocator.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.api.v1.read.getEndpointByLocator.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../../../../../BaseClient.js\";\nimport { normalizeClientOptions } from \"../../../../../../../../BaseClient.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../../../../../core/headers.js\";\nimport * as core from \"../../../../../../../../core/index.js\";\nimport * as environments from \"../../../../../../../../environments.js\";\nimport * as FernRegistry from \"../../../../../../../index.js\";\n\nexport declare namespace RegisterClient {\n export interface Options extends BaseClientOptions {}\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\nexport class RegisterClient {\n protected readonly _options: RegisterClient.Options;\n\n constructor(options: RegisterClient.Options = {}) {\n this._options = normalizeClientOptions(options);\n }\n\n /**\n * @param {FernRegistry.api.v1.register.RegisterApiDefinitionRequest} request\n * @param {RegisterClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.api.v1.register.registerApiDefinition({\n * orgId: FernRegistry.OrgId(\"orgId\"),\n * apiId: FernRegistry.ApiId(\"apiId\")\n * })\n */\n public registerApiDefinition(\n request: FernRegistry.api.v1.register.RegisterApiDefinitionRequest,\n requestOptions?: RegisterClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<\n FernRegistry.api.v1.register.RegisterApiDefinitionResponse,\n FernRegistry.api.v1.register.registerApiDefinition.Error\n >\n > {\n return core.HttpResponsePromise.fromPromise(this.__registerApiDefinition(request, requestOptions));\n }\n\n private async __registerApiDefinition(\n request: FernRegistry.api.v1.register.RegisterApiDefinitionRequest,\n requestOptions?: RegisterClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.api.v1.register.RegisterApiDefinitionResponse,\n FernRegistry.api.v1.register.registerApiDefinition.Error\n >\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/registry/api/register\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.api.v1.register.RegisterApiDefinitionResponse,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.api.v1.register.registerApiDefinition.Error)?.error) {\n case \"UnauthorizedError\":\n case \"UserNotInOrgError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.api.v1.register.registerApiDefinition.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.api.v1.register.registerApiDefinition.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Get presigned S3 upload URLs for SDK dynamic IR without requiring full API registration. Used for SDK generation.\n *\n * @param {FernRegistry.api.v1.register.GetSdkDynamicIrUploadUrlsRequest} request\n * @param {RegisterClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.api.v1.register.getSdkDynamicIrUploadUrls({\n * orgId: FernRegistry.OrgId(\"orgId\"),\n * version: \"version\",\n * snippetConfiguration: {\n * \"snippetConfiguration\": \"snippetConfiguration\"\n * }\n * })\n */\n public getSdkDynamicIrUploadUrls(\n request: FernRegistry.api.v1.register.GetSdkDynamicIrUploadUrlsRequest,\n requestOptions?: RegisterClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<\n FernRegistry.api.v1.register.GetSdkDynamicIrUploadUrlsResponse,\n FernRegistry.api.v1.register.getSdkDynamicIrUploadUrls.Error\n >\n > {\n return core.HttpResponsePromise.fromPromise(this.__getSdkDynamicIrUploadUrls(request, requestOptions));\n }\n\n private async __getSdkDynamicIrUploadUrls(\n request: FernRegistry.api.v1.register.GetSdkDynamicIrUploadUrlsRequest,\n requestOptions?: RegisterClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.api.v1.register.GetSdkDynamicIrUploadUrlsResponse,\n FernRegistry.api.v1.register.getSdkDynamicIrUploadUrls.Error\n >\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/registry/api/sdk-dynamic-ir-upload-urls\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.api.v1.register.GetSdkDynamicIrUploadUrlsResponse,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.api.v1.register.getSdkDynamicIrUploadUrls.Error)?.error) {\n case \"UnauthorizedError\":\n case \"UserNotInOrgError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.api.v1.register.getSdkDynamicIrUploadUrls.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.api.v1.register.getSdkDynamicIrUploadUrls.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Check if SDK dynamic IR exists in S3 for the given languages/snippets. Returns download URLs for existing dynamic IRs.\n *\n * @param {FernRegistry.api.v1.register.CheckSdkDynamicIrExistsRequest} request\n * @param {RegisterClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.api.v1.register.checkSdkDynamicIrExists({\n * orgId: FernRegistry.OrgId(\"orgId\"),\n * snippetConfiguration: {\n * \"snippetConfiguration\": {\n * packageName: \"packageName\",\n * version: \"version\"\n * }\n * }\n * })\n */\n public checkSdkDynamicIrExists(\n request: FernRegistry.api.v1.register.CheckSdkDynamicIrExistsRequest,\n requestOptions?: RegisterClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<\n FernRegistry.api.v1.register.CheckSdkDynamicIrExistsResponse,\n FernRegistry.api.v1.register.checkSdkDynamicIrExists.Error\n >\n > {\n return core.HttpResponsePromise.fromPromise(this.__checkSdkDynamicIrExists(request, requestOptions));\n }\n\n private async __checkSdkDynamicIrExists(\n request: FernRegistry.api.v1.register.CheckSdkDynamicIrExistsRequest,\n requestOptions?: RegisterClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.api.v1.register.CheckSdkDynamicIrExistsResponse,\n FernRegistry.api.v1.register.checkSdkDynamicIrExists.Error\n >\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/registry/api/check-sdk-dynamic-ir\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.api.v1.register.CheckSdkDynamicIrExistsResponse,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.api.v1.register.checkSdkDynamicIrExists.Error)?.error) {\n case \"UnauthorizedError\":\n case \"UserNotInOrgError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.api.v1.register.checkSdkDynamicIrExists.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.api.v1.register.checkSdkDynamicIrExists.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions } from \"../../../../../../BaseClient.js\";\nimport { normalizeClientOptions } from \"../../../../../../BaseClient.js\";\nimport { ReadClient } from \"../resources/read/client/Client.js\";\nimport { RegisterClient } from \"../resources/register/client/Client.js\";\n\nexport declare namespace V1Client {\n export interface Options extends BaseClientOptions {}\n}\n\nexport class V1Client {\n protected readonly _options: V1Client.Options;\n protected _read: ReadClient | undefined;\n protected _register: RegisterClient | undefined;\n\n constructor(options: V1Client.Options = {}) {\n this._options = normalizeClientOptions(options);\n }\n\n public get read(): ReadClient {\n return (this._read ??= new ReadClient(this._options));\n }\n\n public get register(): RegisterClient {\n return (this._register ??= new RegisterClient(this._options));\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions } from \"../../../../BaseClient.js\";\nimport { normalizeClientOptions } from \"../../../../BaseClient.js\";\nimport { LatestClient } from \"../resources/latest/client/Client.js\";\nimport { V1Client } from \"../resources/v1/client/Client.js\";\n\nexport declare namespace ApiClient {\n export interface Options extends BaseClientOptions {}\n}\n\nexport class ApiClient {\n protected readonly _options: ApiClient.Options;\n protected _latest: LatestClient | undefined;\n protected _v1: V1Client | undefined;\n\n constructor(options: ApiClient.Options = {}) {\n this._options = normalizeClientOptions(options);\n }\n\n public get latest(): LatestClient {\n return (this._latest ??= new LatestClient(this._options));\n }\n\n public get v1(): V1Client {\n return (this._v1 ??= new V1Client(this._options));\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../BaseClient.js\";\nimport { normalizeClientOptions } from \"../../../../BaseClient.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../core/headers.js\";\nimport * as core from \"../../../../core/index.js\";\nimport * as environments from \"../../../../environments.js\";\nimport * as FernRegistry from \"../../../index.js\";\n\nexport declare namespace DashboardClient {\n export interface Options extends BaseClientOptions {}\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\n/**\n * APIs for the Fern Dashboard\n */\nexport class DashboardClient {\n protected readonly _options: DashboardClient.Options;\n\n constructor(options: DashboardClient.Options = {}) {\n this._options = normalizeClientOptions(options);\n }\n\n /**\n * Get all docs sites that belong to a given organization\n *\n * @param {FernRegistry.dashboard.GetDocsSitesForOrgRequest} request\n * @param {DashboardClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.dashboard.getDocsSitesForOrg({\n * orgId: FernRegistry.OrgId(\"orgId\")\n * })\n */\n public getDocsSitesForOrg(\n request: FernRegistry.dashboard.GetDocsSitesForOrgRequest,\n requestOptions?: DashboardClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<\n FernRegistry.dashboard.GetDocsSitesForOrgResponse,\n FernRegistry.dashboard.getDocsSitesForOrg.Error\n >\n > {\n return core.HttpResponsePromise.fromPromise(this.__getDocsSitesForOrg(request, requestOptions));\n }\n\n private async __getDocsSitesForOrg(\n request: FernRegistry.dashboard.GetDocsSitesForOrgRequest,\n requestOptions?: DashboardClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.dashboard.GetDocsSitesForOrgResponse,\n FernRegistry.dashboard.getDocsSitesForOrg.Error\n >\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/dashboard/get-docs-sites-for-org\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.dashboard.GetDocsSitesForOrgResponse,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.dashboard.getDocsSitesForOrg.Error)?.error) {\n case \"UnauthorizedError\":\n case \"UserNotInOrgError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.dashboard.getDocsSitesForOrg.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.dashboard.getDocsSitesForOrg.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../BaseClient.js\";\nimport { normalizeClientOptions } from \"../../../../BaseClient.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../core/headers.js\";\nimport * as core from \"../../../../core/index.js\";\nimport * as environments from \"../../../../environments.js\";\nimport * as FernRegistry from \"../../../index.js\";\n\nexport declare namespace DiffClient {\n export interface Options extends BaseClientOptions {}\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\nexport class DiffClient {\n protected readonly _options: DiffClient.Options;\n\n constructor(options: DiffClient.Options = {}) {\n this._options = normalizeClientOptions(options);\n }\n\n /**\n * @param {FernRegistry.ApiDiffRequest} request\n * @param {DiffClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.diff.diff({\n * previousApiDefinitionId: FernRegistry.ApiDefinitionId(\"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\"),\n * currentApiDefinitionId: FernRegistry.ApiDefinitionId(\"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\")\n * })\n */\n public diff(\n request: FernRegistry.ApiDiffRequest,\n requestOptions?: DiffClient.RequestOptions,\n ): core.HttpResponsePromise<core.APIResponse<FernRegistry.ApiDiff, FernRegistry.diff.diff.Error>> {\n return core.HttpResponsePromise.fromPromise(this.__diff(request, requestOptions));\n }\n\n private async __diff(\n request: FernRegistry.ApiDiffRequest,\n requestOptions?: DiffClient.RequestOptions,\n ): Promise<core.WithRawResponse<core.APIResponse<FernRegistry.ApiDiff, FernRegistry.diff.diff.Error>>> {\n const { previousApiDefinitionId, currentApiDefinitionId } = request;\n const _queryParams: Record<string, string | string[] | object | object[] | null> = {};\n _queryParams.previousApiDefinitionId = previousApiDefinitionId;\n _queryParams.currentApiDefinitionId = currentApiDefinitionId;\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/registry/diff\",\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: { ..._queryParams, ...requestOptions?.queryParams },\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.ApiDiff,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.diff.diff.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../../../../../BaseClient.js\";\nimport { normalizeClientOptions } from \"../../../../../../../../BaseClient.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../../../../../core/headers.js\";\nimport * as core from \"../../../../../../../../core/index.js\";\nimport * as environments from \"../../../../../../../../environments.js\";\nimport * as FernRegistry from \"../../../../../../../index.js\";\n\nexport declare namespace ReadClient {\n export interface Options extends BaseClientOptions {}\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\nexport class ReadClient {\n protected readonly _options: ReadClient.Options;\n\n constructor(options: ReadClient.Options = {}) {\n this._options = normalizeClientOptions(options);\n }\n\n /**\n * @param {string} domain\n * @param {ReadClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.docs.v1.read.getDocsForDomainLegacy(\"domain\")\n */\n public getDocsForDomainLegacy(\n domain: string,\n requestOptions?: ReadClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<\n FernRegistry.docs.v1.read.DocsDefinition,\n FernRegistry.docs.v1.read.getDocsForDomainLegacy.Error\n >\n > {\n return core.HttpResponsePromise.fromPromise(this.__getDocsForDomainLegacy(domain, requestOptions));\n }\n\n private async __getDocsForDomainLegacy(\n domain: string,\n requestOptions?: ReadClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.docs.v1.read.DocsDefinition,\n FernRegistry.docs.v1.read.getDocsForDomainLegacy.Error\n >\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n `/registry/docs/load/${core.url.encodePathParam(domain)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.docs.v1.read.DocsDefinition,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.docs.v1.read.getDocsForDomainLegacy.Error)?.error) {\n case \"UnauthorizedError\":\n case \"DomainNotRegisteredError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.docs.v1.read.getDocsForDomainLegacy.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.docs.v1.read.getDocsForDomainLegacy.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * @param {FernRegistry.docs.v1.read.LoadDocsForDomainRequest} request\n * @param {ReadClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.docs.v1.read.getDocsForDomain({\n * domain: \"domain\"\n * })\n */\n public getDocsForDomain(\n request: FernRegistry.docs.v1.read.LoadDocsForDomainRequest,\n requestOptions?: ReadClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<FernRegistry.docs.v1.read.DocsDefinition, FernRegistry.docs.v1.read.getDocsForDomain.Error>\n > {\n return core.HttpResponsePromise.fromPromise(this.__getDocsForDomain(request, requestOptions));\n }\n\n private async __getDocsForDomain(\n request: FernRegistry.docs.v1.read.LoadDocsForDomainRequest,\n requestOptions?: ReadClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<FernRegistry.docs.v1.read.DocsDefinition, FernRegistry.docs.v1.read.getDocsForDomain.Error>\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/registry/docs/load\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.docs.v1.read.DocsDefinition,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.docs.v1.read.getDocsForDomain.Error)?.error) {\n case \"UnauthorizedError\":\n case \"DomainNotRegisteredError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.docs.v1.read.getDocsForDomain.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.docs.v1.read.getDocsForDomain.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../../../../../BaseClient.js\";\nimport { normalizeClientOptions } from \"../../../../../../../../BaseClient.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../../../../../core/headers.js\";\nimport * as core from \"../../../../../../../../core/index.js\";\nimport * as environments from \"../../../../../../../../environments.js\";\nimport * as FernRegistry from \"../../../../../../../index.js\";\n\nexport declare namespace WriteClient {\n export interface Options extends BaseClientOptions {}\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\nexport class WriteClient {\n protected readonly _options: WriteClient.Options;\n\n constructor(options: WriteClient.Options = {}) {\n this._options = normalizeClientOptions(options);\n }\n\n /**\n * @param {FernRegistry.docs.v1.write.StartDocsRegisterRequest} request\n * @param {WriteClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.docs.v1.write.startDocsRegister({\n * domain: \"domain\",\n * orgId: FernRegistry.OrgId(\"orgId\"),\n * filepaths: [FernRegistry.docs.v1.write.FilePath(\"filepaths\"), FernRegistry.docs.v1.write.FilePath(\"filepaths\")]\n * })\n */\n public startDocsRegister(\n request: FernRegistry.docs.v1.write.StartDocsRegisterRequest,\n requestOptions?: WriteClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<\n FernRegistry.docs.v1.write.StartDocsRegisterResponse,\n FernRegistry.docs.v1.write.startDocsRegister.Error\n >\n > {\n return core.HttpResponsePromise.fromPromise(this.__startDocsRegister(request, requestOptions));\n }\n\n private async __startDocsRegister(\n request: FernRegistry.docs.v1.write.StartDocsRegisterRequest,\n requestOptions?: WriteClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.docs.v1.write.StartDocsRegisterResponse,\n FernRegistry.docs.v1.write.startDocsRegister.Error\n >\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/registry/docs/init\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.docs.v1.write.StartDocsRegisterResponse,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.docs.v1.write.startDocsRegister.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * @param {FernRegistry.docs.v1.write.DocsRegistrationId} docsRegistrationId\n * @param {FernRegistry.docs.v1.write.RegisterDocsRequest} request\n * @param {WriteClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.docs.v1.write.finishDocsRegister(FernRegistry.docs.v1.write.DocsRegistrationId(\"docsRegistrationId\"), {\n * docsDefinition: {\n * pages: {\n * \"pages\": {\n * markdown: \"markdown\",\n * editThisPageUrl: undefined,\n * rawMarkdown: undefined\n * }\n * },\n * config: {\n * title: undefined,\n * defaultLanguage: undefined,\n * languages: undefined,\n * announcement: undefined,\n * navigation: undefined,\n * root: undefined,\n * navbarLinks: undefined,\n * footerLinks: undefined,\n * hideNavLinks: undefined,\n * logoHeight: undefined,\n * logoHref: undefined,\n * logoRightText: undefined,\n * favicon: undefined,\n * metadata: undefined,\n * redirects: undefined,\n * colorsV3: undefined,\n * layout: undefined,\n * theme: undefined,\n * settings: undefined,\n * typographyV2: undefined,\n * analyticsConfig: undefined,\n * integrations: undefined,\n * css: undefined,\n * js: undefined,\n * aiChatConfig: undefined,\n * pageActions: undefined,\n * backgroundImage: undefined,\n * logoV2: undefined,\n * logo: undefined,\n * colors: undefined,\n * colorsV2: undefined,\n * typography: undefined\n * },\n * jsFiles: undefined\n * }\n * })\n */\n public finishDocsRegister(\n docsRegistrationId: FernRegistry.docs.v1.write.DocsRegistrationId,\n request: FernRegistry.docs.v1.write.RegisterDocsRequest,\n requestOptions?: WriteClient.RequestOptions,\n ): core.HttpResponsePromise<core.APIResponse<void, FernRegistry.docs.v1.write.finishDocsRegister.Error>> {\n return core.HttpResponsePromise.fromPromise(\n this.__finishDocsRegister(docsRegistrationId, request, requestOptions),\n );\n }\n\n private async __finishDocsRegister(\n docsRegistrationId: FernRegistry.docs.v1.write.DocsRegistrationId,\n request: FernRegistry.docs.v1.write.RegisterDocsRequest,\n requestOptions?: WriteClient.RequestOptions,\n ): Promise<core.WithRawResponse<core.APIResponse<void, FernRegistry.docs.v1.write.finishDocsRegister.Error>>> {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n `/registry/docs/register/${core.url.encodePathParam(docsRegistrationId)}`,\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: undefined,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.docs.v1.write.finishDocsRegister.Error)?.error) {\n case \"UnauthorizedError\":\n case \"UserNotInOrgError\":\n case \"DocsRegistrationIdNotFound\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.docs.v1.write.finishDocsRegister.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.docs.v1.write.finishDocsRegister.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions } from \"../../../../../../BaseClient.js\";\nimport { normalizeClientOptions } from \"../../../../../../BaseClient.js\";\nimport { ReadClient } from \"../resources/read/client/Client.js\";\nimport { WriteClient } from \"../resources/write/client/Client.js\";\n\nexport declare namespace V1Client {\n export interface Options extends BaseClientOptions {}\n}\n\nexport class V1Client {\n protected readonly _options: V1Client.Options;\n protected _read: ReadClient | undefined;\n protected _write: WriteClient | undefined;\n\n constructor(options: V1Client.Options = {}) {\n this._options = normalizeClientOptions(options);\n }\n\n public get read(): ReadClient {\n return (this._read ??= new ReadClient(this._options));\n }\n\n public get write(): WriteClient {\n return (this._write ??= new WriteClient(this._options));\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../../../../../BaseClient.js\";\nimport { normalizeClientOptions } from \"../../../../../../../../BaseClient.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../../../../../core/headers.js\";\nimport * as core from \"../../../../../../../../core/index.js\";\nimport * as environments from \"../../../../../../../../environments.js\";\nimport * as FernRegistry from \"../../../../../../../index.js\";\n\nexport declare namespace ReadClient {\n export interface Options extends BaseClientOptions {}\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\nexport class ReadClient {\n protected readonly _options: ReadClient.Options;\n\n constructor(options: ReadClient.Options = {}) {\n this._options = normalizeClientOptions(options);\n }\n\n /**\n * @param {FernRegistry.docs.v2.read.GetOrganizationForUrlRequest} request\n * @param {ReadClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.docs.v2.read.getOrganizationForUrl({\n * url: FernRegistry.Url(\"url\")\n * })\n */\n public getOrganizationForUrl(\n request: FernRegistry.docs.v2.read.GetOrganizationForUrlRequest,\n requestOptions?: ReadClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<FernRegistry.OrgId, FernRegistry.docs.v2.read.getOrganizationForUrl.Error>\n > {\n return core.HttpResponsePromise.fromPromise(this.__getOrganizationForUrl(request, requestOptions));\n }\n\n private async __getOrganizationForUrl(\n request: FernRegistry.docs.v2.read.GetOrganizationForUrlRequest,\n requestOptions?: ReadClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<FernRegistry.OrgId, FernRegistry.docs.v2.read.getOrganizationForUrl.Error>\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/v2/registry/docs/organization-for-url\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.OrgId,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.docs.v2.read.getOrganizationForUrl.Error)?.error) {\n case \"DomainNotRegisteredError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.docs.v2.read.getOrganizationForUrl.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.docs.v2.read.getOrganizationForUrl.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * @param {FernRegistry.docs.v2.read.GetMetadataForUrlRequest} request\n * @param {ReadClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.docs.v2.read.getDocsUrlMetadata({\n * url: FernRegistry.Url(\"url\")\n * })\n */\n public getDocsUrlMetadata(\n request: FernRegistry.docs.v2.read.GetMetadataForUrlRequest,\n requestOptions?: ReadClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<FernRegistry.docs.v2.read.DocsUrlMetadata, FernRegistry.docs.v2.read.getDocsUrlMetadata.Error>\n > {\n return core.HttpResponsePromise.fromPromise(this.__getDocsUrlMetadata(request, requestOptions));\n }\n\n private async __getDocsUrlMetadata(\n request: FernRegistry.docs.v2.read.GetMetadataForUrlRequest,\n requestOptions?: ReadClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.docs.v2.read.DocsUrlMetadata,\n FernRegistry.docs.v2.read.getDocsUrlMetadata.Error\n >\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/v2/registry/docs/metadata-for-url\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.docs.v2.read.DocsUrlMetadata,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.docs.v2.read.getDocsUrlMetadata.Error)?.error) {\n case \"DomainNotRegisteredError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.docs.v2.read.getDocsUrlMetadata.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.docs.v2.read.getDocsUrlMetadata.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * @param {FernRegistry.docs.v2.read.LoadDocsForUrlRequest} request\n * @param {ReadClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.docs.v2.read.getDocsForUrl({\n * url: FernRegistry.Url(\"url\")\n * })\n */\n public getDocsForUrl(\n request: FernRegistry.docs.v2.read.LoadDocsForUrlRequest,\n requestOptions?: ReadClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<\n FernRegistry.docs.v2.read.LoadDocsForUrlResponse,\n FernRegistry.docs.v2.read.getDocsForUrl.Error\n >\n > {\n return core.HttpResponsePromise.fromPromise(this.__getDocsForUrl(request, requestOptions));\n }\n\n private async __getDocsForUrl(\n request: FernRegistry.docs.v2.read.LoadDocsForUrlRequest,\n requestOptions?: ReadClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.docs.v2.read.LoadDocsForUrlResponse,\n FernRegistry.docs.v2.read.getDocsForUrl.Error\n >\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/v2/registry/docs/load-with-url\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.docs.v2.read.LoadDocsForUrlResponse,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.docs.v2.read.getDocsForUrl.Error)?.error) {\n case \"DomainNotRegisteredError\":\n case \"UnauthorizedError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.docs.v2.read.getDocsForUrl.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.docs.v2.read.getDocsForUrl.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Loads docs from the database and stores them in S3.\n * Returns the S3 URL where the docs definition can be accessed.\n * This endpoint always writes to S3 idempotently, regardless of whether the docs already exist in S3.\n *\n * @param {FernRegistry.docs.v2.read.EnsureDocsInS3Request} request\n * @param {ReadClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.docs.v2.read.ensureDocsInS3({\n * url: FernRegistry.Url(\"url\")\n * })\n */\n public ensureDocsInS3(\n request: FernRegistry.docs.v2.read.EnsureDocsInS3Request,\n requestOptions?: ReadClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<\n FernRegistry.docs.v2.read.EnsureDocsInS3Response,\n FernRegistry.docs.v2.read.ensureDocsInS3.Error\n >\n > {\n return core.HttpResponsePromise.fromPromise(this.__ensureDocsInS3(request, requestOptions));\n }\n\n private async __ensureDocsInS3(\n request: FernRegistry.docs.v2.read.EnsureDocsInS3Request,\n requestOptions?: ReadClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.docs.v2.read.EnsureDocsInS3Response,\n FernRegistry.docs.v2.read.ensureDocsInS3.Error\n >\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/v2/registry/docs/ensure-docs-in-s3\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.docs.v2.read.EnsureDocsInS3Response,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.docs.v2.read.ensureDocsInS3.Error)?.error) {\n case \"DomainNotRegisteredError\":\n case \"UnauthorizedError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.docs.v2.read.ensureDocsInS3.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.docs.v2.read.ensureDocsInS3.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * @param {FernRegistry.docs.v2.read.LoadPrivateDocsForUrlRequest} request\n * @param {ReadClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.docs.v2.read.getPrivateDocsForUrl({\n * url: FernRegistry.Url(\"url\")\n * })\n */\n public getPrivateDocsForUrl(\n request: FernRegistry.docs.v2.read.LoadPrivateDocsForUrlRequest,\n requestOptions?: ReadClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<\n FernRegistry.docs.v2.read.LoadDocsForUrlResponse,\n FernRegistry.docs.v2.read.getPrivateDocsForUrl.Error\n >\n > {\n return core.HttpResponsePromise.fromPromise(this.__getPrivateDocsForUrl(request, requestOptions));\n }\n\n private async __getPrivateDocsForUrl(\n request: FernRegistry.docs.v2.read.LoadPrivateDocsForUrlRequest,\n requestOptions?: ReadClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.docs.v2.read.LoadDocsForUrlResponse,\n FernRegistry.docs.v2.read.getPrivateDocsForUrl.Error\n >\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/v2/registry/docs/private/load-with-url\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.docs.v2.read.LoadDocsForUrlResponse,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.docs.v2.read.getPrivateDocsForUrl.Error)?.error) {\n case \"DomainNotRegisteredError\":\n case \"UnauthorizedError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.docs.v2.read.getPrivateDocsForUrl.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.docs.v2.read.getPrivateDocsForUrl.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Returns a list of all public docs.\n *\n * @param {FernRegistry.docs.v2.read.ListAllDocsUrlsRequest} request\n * @param {ReadClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.docs.v2.read.listAllDocsUrls()\n */\n public listAllDocsUrls(\n request: FernRegistry.docs.v2.read.ListAllDocsUrlsRequest = {},\n requestOptions?: ReadClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<\n FernRegistry.docs.v2.read.ListAllDocsUrlsResponse,\n FernRegistry.docs.v2.read.listAllDocsUrls.Error\n >\n > {\n return core.HttpResponsePromise.fromPromise(this.__listAllDocsUrls(request, requestOptions));\n }\n\n private async __listAllDocsUrls(\n request: FernRegistry.docs.v2.read.ListAllDocsUrlsRequest = {},\n requestOptions?: ReadClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.docs.v2.read.ListAllDocsUrlsResponse,\n FernRegistry.docs.v2.read.listAllDocsUrls.Error\n >\n >\n > {\n const { page, limit, custom } = request;\n const _queryParams: Record<string, string | string[] | object | object[] | null> = {};\n if (page != null) {\n _queryParams.page = page.toString();\n }\n\n if (limit != null) {\n _queryParams.limit = limit.toString();\n }\n\n if (custom != null) {\n _queryParams.custom = custom.toString();\n }\n\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/v2/registry/docs/urls/list\",\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: { ..._queryParams, ...requestOptions?.queryParams },\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.docs.v2.read.ListAllDocsUrlsResponse,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.docs.v2.read.listAllDocsUrls.Error)?.error) {\n case \"UnauthorizedError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.docs.v2.read.listAllDocsUrls.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.docs.v2.read.listAllDocsUrls.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Loads the Docs Config and any referenced APIs by ID.\n *\n * @param {FernRegistry.DocsConfigId} docsConfigId\n * @param {ReadClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.docs.v2.read.getDocsConfigById(FernRegistry.DocsConfigId(\"docsConfigId\"))\n */\n public getDocsConfigById(\n docsConfigId: FernRegistry.DocsConfigId,\n requestOptions?: ReadClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<\n FernRegistry.docs.v2.read.GetDocsConfigByIdResponse,\n FernRegistry.docs.v2.read.getDocsConfigById.Error\n >\n > {\n return core.HttpResponsePromise.fromPromise(this.__getDocsConfigById(docsConfigId, requestOptions));\n }\n\n private async __getDocsConfigById(\n docsConfigId: FernRegistry.DocsConfigId,\n requestOptions?: ReadClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.docs.v2.read.GetDocsConfigByIdResponse,\n FernRegistry.docs.v2.read.getDocsConfigById.Error\n >\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n `/v2/registry/docs/${core.url.encodePathParam(docsConfigId)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.docs.v2.read.GetDocsConfigByIdResponse,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.docs.v2.read.getDocsConfigById.Error)?.error) {\n case \"DocsDefinitionNotFoundError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.docs.v2.read.getDocsConfigById.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.docs.v2.read.getDocsConfigById.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Prepopulates the FDR read S3 bucket with docs definitions\n *\n * @param {ReadClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.docs.v2.read.prepopulateFdrReadS3Bucket()\n */\n public prepopulateFdrReadS3Bucket(\n requestOptions?: ReadClient.RequestOptions,\n ): core.HttpResponsePromise<core.APIResponse<void, FernRegistry.docs.v2.read.prepopulateFdrReadS3Bucket.Error>> {\n return core.HttpResponsePromise.fromPromise(this.__prepopulateFdrReadS3Bucket(requestOptions));\n }\n\n private async __prepopulateFdrReadS3Bucket(\n requestOptions?: ReadClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<core.APIResponse<void, FernRegistry.docs.v2.read.prepopulateFdrReadS3Bucket.Error>>\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/v2/registry/docs/prepopulate-s3-bucket\",\n ),\n method: \"POST\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: undefined,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.docs.v2.read.prepopulateFdrReadS3Bucket.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Loads specific fields from the docs definition with proper conversion (e.g., S3 URLs resolved).\n * This is more efficient than loading the entire docs definition when you only need specific parts.\n *\n * @param {FernRegistry.docs.v2.read.GetDocsFieldsRequest} request\n * @param {ReadClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.docs.v2.read.getDocsFields({\n * domain: \"domain\",\n * fields: [\"BASE_URL\", \"BASE_URL\"]\n * })\n */\n public getDocsFields(\n request: FernRegistry.docs.v2.read.GetDocsFieldsRequest,\n requestOptions?: ReadClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<FernRegistry.docs.v2.read.GetDocsFieldsResponse, FernRegistry.docs.v2.read.getDocsFields.Error>\n > {\n return core.HttpResponsePromise.fromPromise(this.__getDocsFields(request, requestOptions));\n }\n\n private async __getDocsFields(\n request: FernRegistry.docs.v2.read.GetDocsFieldsRequest,\n requestOptions?: ReadClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.docs.v2.read.GetDocsFieldsResponse,\n FernRegistry.docs.v2.read.getDocsFields.Error\n >\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/v2/registry/docs/load-fields\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.docs.v2.read.GetDocsFieldsResponse,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.docs.v2.read.getDocsFields.Error)?.error) {\n case \"DomainNotRegisteredError\":\n case \"UnauthorizedError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.docs.v2.read.getDocsFields.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.docs.v2.read.getDocsFields.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../../../../../BaseClient.js\";\nimport { normalizeClientOptions } from \"../../../../../../../../BaseClient.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../../../../../core/headers.js\";\nimport * as core from \"../../../../../../../../core/index.js\";\nimport * as environments from \"../../../../../../../../environments.js\";\nimport * as FernRegistry from \"../../../../../../../index.js\";\n\nexport declare namespace WriteClient {\n export interface Options extends BaseClientOptions {}\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\nexport class WriteClient {\n protected readonly _options: WriteClient.Options;\n\n constructor(options: WriteClient.Options = {}) {\n this._options = normalizeClientOptions(options);\n }\n\n /**\n * @param {FernRegistry.docs.v2.write.StartDocsRegisterRequestV2} request\n * @param {WriteClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.docs.v2.write.startDocsRegister({\n * domain: \"domain\",\n * customDomains: [\"customDomains\", \"customDomains\"],\n * orgId: FernRegistry.OrgId(\"orgId\"),\n * apiId: FernRegistry.ApiId(\"apiId\"),\n * filepaths: [FernRegistry.docs.v1.write.FilePath(\"filepaths\"), FernRegistry.docs.v1.write.FilePath(\"filepaths\")]\n * })\n */\n public startDocsRegister(\n request: FernRegistry.docs.v2.write.StartDocsRegisterRequestV2,\n requestOptions?: WriteClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<\n FernRegistry.docs.v1.write.StartDocsRegisterResponse,\n FernRegistry.docs.v2.write.startDocsRegister.Error\n >\n > {\n return core.HttpResponsePromise.fromPromise(this.__startDocsRegister(request, requestOptions));\n }\n\n private async __startDocsRegister(\n request: FernRegistry.docs.v2.write.StartDocsRegisterRequestV2,\n requestOptions?: WriteClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.docs.v1.write.StartDocsRegisterResponse,\n FernRegistry.docs.v2.write.startDocsRegister.Error\n >\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/v2/registry/docs/v2/init\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.docs.v1.write.StartDocsRegisterResponse,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.docs.v2.write.startDocsRegister.Error)?.error) {\n case \"UnauthorizedError\":\n case \"UnavailableError\":\n case \"UserNotInOrgError\":\n case \"InvalidDomainError\":\n case \"InvalidCustomDomainError\":\n case \"DomainBelongsToAnotherOrgError\":\n case \"InvalidURLError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.docs.v2.write.startDocsRegister.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.docs.v2.write.startDocsRegister.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * @param {FernRegistry.docs.v2.write.StartDocsPreviewRegisterRequestV2} request\n * @param {WriteClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.docs.v2.write.startDocsPreviewRegister({\n * orgId: FernRegistry.OrgId(\"orgId\"),\n * filepaths: [FernRegistry.docs.v1.write.FilePath(\"filepaths\"), FernRegistry.docs.v1.write.FilePath(\"filepaths\")]\n * })\n */\n public startDocsPreviewRegister(\n request: FernRegistry.docs.v2.write.StartDocsPreviewRegisterRequestV2,\n requestOptions?: WriteClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<\n FernRegistry.docs.v2.write.StartDocsPreviewRegisterResponse,\n FernRegistry.docs.v2.write.startDocsPreviewRegister.Error\n >\n > {\n return core.HttpResponsePromise.fromPromise(this.__startDocsPreviewRegister(request, requestOptions));\n }\n\n private async __startDocsPreviewRegister(\n request: FernRegistry.docs.v2.write.StartDocsPreviewRegisterRequestV2,\n requestOptions?: WriteClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.docs.v2.write.StartDocsPreviewRegisterResponse,\n FernRegistry.docs.v2.write.startDocsPreviewRegister.Error\n >\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/v2/registry/docs/preview/init\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.docs.v2.write.StartDocsPreviewRegisterResponse,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.docs.v2.write.startDocsPreviewRegister.Error)?.error) {\n case \"UnauthorizedError\":\n case \"UnavailableError\":\n case \"UserNotInOrgError\":\n case \"InvalidDomainError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.docs.v2.write.startDocsPreviewRegister.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.docs.v2.write.startDocsPreviewRegister.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * @param {FernRegistry.docs.v1.write.DocsRegistrationId} docsRegistrationId\n * @param {FernRegistry.docs.v2.write.RegisterDocsRequest} request\n * @param {WriteClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.docs.v2.write.finishDocsRegister(FernRegistry.docs.v1.write.DocsRegistrationId(\"docsRegistrationId\"), {\n * docsDefinition: {\n * pages: {\n * \"pages\": {\n * markdown: \"markdown\",\n * editThisPageUrl: undefined,\n * rawMarkdown: undefined\n * }\n * },\n * config: {\n * title: undefined,\n * defaultLanguage: undefined,\n * languages: undefined,\n * announcement: undefined,\n * navigation: undefined,\n * root: undefined,\n * navbarLinks: undefined,\n * footerLinks: undefined,\n * hideNavLinks: undefined,\n * logoHeight: undefined,\n * logoHref: undefined,\n * logoRightText: undefined,\n * favicon: undefined,\n * metadata: undefined,\n * redirects: undefined,\n * colorsV3: undefined,\n * layout: undefined,\n * theme: undefined,\n * settings: undefined,\n * typographyV2: undefined,\n * analyticsConfig: undefined,\n * integrations: undefined,\n * css: undefined,\n * js: undefined,\n * aiChatConfig: undefined,\n * pageActions: undefined,\n * backgroundImage: undefined,\n * logoV2: undefined,\n * logo: undefined,\n * colors: undefined,\n * colorsV2: undefined,\n * typography: undefined\n * },\n * jsFiles: undefined\n * }\n * })\n */\n public finishDocsRegister(\n docsRegistrationId: FernRegistry.docs.v1.write.DocsRegistrationId,\n request: FernRegistry.docs.v2.write.RegisterDocsRequest,\n requestOptions?: WriteClient.RequestOptions,\n ): core.HttpResponsePromise<core.APIResponse<void, FernRegistry.docs.v2.write.finishDocsRegister.Error>> {\n return core.HttpResponsePromise.fromPromise(\n this.__finishDocsRegister(docsRegistrationId, request, requestOptions),\n );\n }\n\n private async __finishDocsRegister(\n docsRegistrationId: FernRegistry.docs.v1.write.DocsRegistrationId,\n request: FernRegistry.docs.v2.write.RegisterDocsRequest,\n requestOptions?: WriteClient.RequestOptions,\n ): Promise<core.WithRawResponse<core.APIResponse<void, FernRegistry.docs.v2.write.finishDocsRegister.Error>>> {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n `/v2/registry/docs/register/${core.url.encodePathParam(docsRegistrationId)}`,\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: undefined,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.docs.v2.write.finishDocsRegister.Error)?.error) {\n case \"UnauthorizedError\":\n case \"UserNotInOrgError\":\n case \"DocsRegistrationIdNotFound\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.docs.v2.write.finishDocsRegister.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.docs.v2.write.finishDocsRegister.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * @param {FernRegistry.docs.v2.write.TransferDomainOwnershipRequest} request\n * @param {WriteClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.docs.v2.write.transferOwnershipOfDomain({\n * domain: \"domain\",\n * toOrgId: \"toOrgId\"\n * })\n */\n public transferOwnershipOfDomain(\n request: FernRegistry.docs.v2.write.TransferDomainOwnershipRequest,\n requestOptions?: WriteClient.RequestOptions,\n ): core.HttpResponsePromise<core.APIResponse<void, FernRegistry.docs.v2.write.transferOwnershipOfDomain.Error>> {\n return core.HttpResponsePromise.fromPromise(this.__transferOwnershipOfDomain(request, requestOptions));\n }\n\n private async __transferOwnershipOfDomain(\n request: FernRegistry.docs.v2.write.TransferDomainOwnershipRequest,\n requestOptions?: WriteClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<core.APIResponse<void, FernRegistry.docs.v2.write.transferOwnershipOfDomain.Error>>\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/v2/registry/docs/transfer-ownership\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: undefined,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.docs.v2.write.transferOwnershipOfDomain.Error)?.error) {\n case \"DocsNotFoundError\":\n case \"UnauthorizedError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.docs.v2.write.transferOwnershipOfDomain.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.docs.v2.write.transferOwnershipOfDomain.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * @param {FernRegistry.docs.v2.write.SetIsArchivedRequest} request\n * @param {WriteClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.docs.v2.write.setIsArchived({\n * url: FernRegistry.Url(\"url\"),\n * isArchived: true\n * })\n */\n public setIsArchived(\n request: FernRegistry.docs.v2.write.SetIsArchivedRequest,\n requestOptions?: WriteClient.RequestOptions,\n ): core.HttpResponsePromise<core.APIResponse<void, FernRegistry.docs.v2.write.setIsArchived.Error>> {\n return core.HttpResponsePromise.fromPromise(this.__setIsArchived(request, requestOptions));\n }\n\n private async __setIsArchived(\n request: FernRegistry.docs.v2.write.SetIsArchivedRequest,\n requestOptions?: WriteClient.RequestOptions,\n ): Promise<core.WithRawResponse<core.APIResponse<void, FernRegistry.docs.v2.write.setIsArchived.Error>>> {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/v2/registry/docs/set-is-archived\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: undefined,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.docs.v2.write.setIsArchived.Error)?.error) {\n case \"DocsNotFoundError\":\n case \"UnauthorizedError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.docs.v2.write.setIsArchived.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.docs.v2.write.setIsArchived.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * @param {FernRegistry.docs.v2.write.SetDocsUrlMetadataRequest} request\n * @param {WriteClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.docs.v2.write.setDocsUrlMetadata({\n * url: FernRegistry.Url(\"url\")\n * })\n */\n public setDocsUrlMetadata(\n request: FernRegistry.docs.v2.write.SetDocsUrlMetadataRequest,\n requestOptions?: WriteClient.RequestOptions,\n ): core.HttpResponsePromise<core.APIResponse<void, FernRegistry.docs.v2.write.setDocsUrlMetadata.Error>> {\n return core.HttpResponsePromise.fromPromise(this.__setDocsUrlMetadata(request, requestOptions));\n }\n\n private async __setDocsUrlMetadata(\n request: FernRegistry.docs.v2.write.SetDocsUrlMetadataRequest,\n requestOptions?: WriteClient.RequestOptions,\n ): Promise<core.WithRawResponse<core.APIResponse<void, FernRegistry.docs.v2.write.setDocsUrlMetadata.Error>>> {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/v2/registry/docs/set-metadata-for-url\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: undefined,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.docs.v2.write.setDocsUrlMetadata.Error)?.error) {\n case \"DocsNotFoundError\":\n case \"UnauthorizedError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.docs.v2.write.setDocsUrlMetadata.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.docs.v2.write.setDocsUrlMetadata.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Add a domain to the Algolia preview whitelist to enable search on preview URLs\n *\n * @param {FernRegistry.docs.v2.write.AddAlgoliaPreviewWhitelistRequest} request\n * @param {WriteClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.docs.v2.write.addAlgoliaPreviewWhitelistEntry({\n * domain: \"domain\"\n * })\n */\n public addAlgoliaPreviewWhitelistEntry(\n request: FernRegistry.docs.v2.write.AddAlgoliaPreviewWhitelistRequest,\n requestOptions?: WriteClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<void, FernRegistry.docs.v2.write.addAlgoliaPreviewWhitelistEntry.Error>\n > {\n return core.HttpResponsePromise.fromPromise(this.__addAlgoliaPreviewWhitelistEntry(request, requestOptions));\n }\n\n private async __addAlgoliaPreviewWhitelistEntry(\n request: FernRegistry.docs.v2.write.AddAlgoliaPreviewWhitelistRequest,\n requestOptions?: WriteClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<core.APIResponse<void, FernRegistry.docs.v2.write.addAlgoliaPreviewWhitelistEntry.Error>>\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/v2/registry/docs/algolia-preview-whitelist/add\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: undefined,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.docs.v2.write.addAlgoliaPreviewWhitelistEntry.Error)?.error) {\n case \"UnauthorizedError\":\n return {\n data: {\n ok: false,\n error: _response.error\n .body as FernRegistry.docs.v2.write.addAlgoliaPreviewWhitelistEntry.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.docs.v2.write.addAlgoliaPreviewWhitelistEntry.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Remove a domain from the Algolia preview whitelist\n *\n * @param {FernRegistry.docs.v2.write.RemoveAlgoliaPreviewWhitelistRequest} request\n * @param {WriteClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.docs.v2.write.removeAlgoliaPreviewWhitelistEntry({\n * domain: \"domain\"\n * })\n */\n public removeAlgoliaPreviewWhitelistEntry(\n request: FernRegistry.docs.v2.write.RemoveAlgoliaPreviewWhitelistRequest,\n requestOptions?: WriteClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<void, FernRegistry.docs.v2.write.removeAlgoliaPreviewWhitelistEntry.Error>\n > {\n return core.HttpResponsePromise.fromPromise(this.__removeAlgoliaPreviewWhitelistEntry(request, requestOptions));\n }\n\n private async __removeAlgoliaPreviewWhitelistEntry(\n request: FernRegistry.docs.v2.write.RemoveAlgoliaPreviewWhitelistRequest,\n requestOptions?: WriteClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<void, FernRegistry.docs.v2.write.removeAlgoliaPreviewWhitelistEntry.Error>\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/v2/registry/docs/algolia-preview-whitelist/remove\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: undefined,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch (\n (_response.error.body as FernRegistry.docs.v2.write.removeAlgoliaPreviewWhitelistEntry.Error)?.error\n ) {\n case \"UnauthorizedError\":\n return {\n data: {\n ok: false,\n error: _response.error\n .body as FernRegistry.docs.v2.write.removeAlgoliaPreviewWhitelistEntry.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.docs.v2.write.removeAlgoliaPreviewWhitelistEntry.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * List all domains in the Algolia preview whitelist\n *\n * @param {WriteClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.docs.v2.write.listAlgoliaPreviewWhitelist()\n */\n public listAlgoliaPreviewWhitelist(\n requestOptions?: WriteClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<\n FernRegistry.docs.v2.write.ListAlgoliaPreviewWhitelistResponse,\n FernRegistry.docs.v2.write.listAlgoliaPreviewWhitelist.Error\n >\n > {\n return core.HttpResponsePromise.fromPromise(this.__listAlgoliaPreviewWhitelist(requestOptions));\n }\n\n private async __listAlgoliaPreviewWhitelist(\n requestOptions?: WriteClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.docs.v2.write.ListAlgoliaPreviewWhitelistResponse,\n FernRegistry.docs.v2.write.listAlgoliaPreviewWhitelist.Error\n >\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/v2/registry/docs/algolia-preview-whitelist/list\",\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.docs.v2.write.ListAlgoliaPreviewWhitelistResponse,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.docs.v2.write.listAlgoliaPreviewWhitelist.Error)?.error) {\n case \"UnauthorizedError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.docs.v2.write.listAlgoliaPreviewWhitelist.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.docs.v2.write.listAlgoliaPreviewWhitelist.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Delete a docs site and all associated data including S3 assets\n *\n * @param {FernRegistry.docs.v2.write.DeleteDocsSiteRequest} request\n * @param {WriteClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.docs.v2.write.deleteDocsSite({\n * url: FernRegistry.Url(\"url\")\n * })\n */\n public deleteDocsSite(\n request: FernRegistry.docs.v2.write.DeleteDocsSiteRequest,\n requestOptions?: WriteClient.RequestOptions,\n ): core.HttpResponsePromise<core.APIResponse<void, FernRegistry.docs.v2.write.deleteDocsSite.Error>> {\n return core.HttpResponsePromise.fromPromise(this.__deleteDocsSite(request, requestOptions));\n }\n\n private async __deleteDocsSite(\n request: FernRegistry.docs.v2.write.DeleteDocsSiteRequest,\n requestOptions?: WriteClient.RequestOptions,\n ): Promise<core.WithRawResponse<core.APIResponse<void, FernRegistry.docs.v2.write.deleteDocsSite.Error>>> {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/v2/registry/docs/delete\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: undefined,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.docs.v2.write.deleteDocsSite.Error)?.error) {\n case \"DocsNotFoundError\":\n case \"UnauthorizedError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.docs.v2.write.deleteDocsSite.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.docs.v2.write.deleteDocsSite.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Start async documentation generation for a library from source code.\n *\n * @param {FernRegistry.docs.v2.write.StartLibraryDocsGenerationRequest} request\n * @param {WriteClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.docs.v2.write.startLibraryDocsGeneration({\n * orgId: FernRegistry.OrgId(\"orgId\"),\n * githubUrl: FernRegistry.Url(\"githubUrl\"),\n * language: \"PYTHON\"\n * })\n */\n public startLibraryDocsGeneration(\n request: FernRegistry.docs.v2.write.StartLibraryDocsGenerationRequest,\n requestOptions?: WriteClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<\n FernRegistry.docs.v2.write.StartLibraryDocsGenerationResponse,\n FernRegistry.docs.v2.write.startLibraryDocsGeneration.Error\n >\n > {\n return core.HttpResponsePromise.fromPromise(this.__startLibraryDocsGeneration(request, requestOptions));\n }\n\n private async __startLibraryDocsGeneration(\n request: FernRegistry.docs.v2.write.StartLibraryDocsGenerationRequest,\n requestOptions?: WriteClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.docs.v2.write.StartLibraryDocsGenerationResponse,\n FernRegistry.docs.v2.write.startLibraryDocsGeneration.Error\n >\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/v2/registry/docs/library-docs/generate\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.docs.v2.write.StartLibraryDocsGenerationResponse,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.docs.v2.write.startLibraryDocsGeneration.Error)?.error) {\n case \"UnauthorizedError\":\n case \"UserNotInOrgError\":\n case \"InvalidGithubUrlError\":\n case \"UnsupportedLanguageError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.docs.v2.write.startLibraryDocsGeneration.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.docs.v2.write.startLibraryDocsGeneration.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Get the status of a documentation generation job.\n *\n * @param {FernRegistry.docs.v2.write.LibraryDocsJobId} jobId\n * @param {WriteClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.docs.v2.write.getLibraryDocsGenerationStatus(FernRegistry.docs.v2.write.LibraryDocsJobId(\"jobId\"))\n */\n public getLibraryDocsGenerationStatus(\n jobId: FernRegistry.docs.v2.write.LibraryDocsJobId,\n requestOptions?: WriteClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<\n FernRegistry.docs.v2.write.LibraryDocsGenerationStatus,\n FernRegistry.docs.v2.write.getLibraryDocsGenerationStatus.Error\n >\n > {\n return core.HttpResponsePromise.fromPromise(this.__getLibraryDocsGenerationStatus(jobId, requestOptions));\n }\n\n private async __getLibraryDocsGenerationStatus(\n jobId: FernRegistry.docs.v2.write.LibraryDocsJobId,\n requestOptions?: WriteClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.docs.v2.write.LibraryDocsGenerationStatus,\n FernRegistry.docs.v2.write.getLibraryDocsGenerationStatus.Error\n >\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n `/v2/registry/docs/library-docs/status/${core.url.encodePathParam(jobId)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.docs.v2.write.LibraryDocsGenerationStatus,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.docs.v2.write.getLibraryDocsGenerationStatus.Error)?.error) {\n case \"LibraryDocsJobNotFoundError\":\n return {\n data: {\n ok: false,\n error: _response.error\n .body as FernRegistry.docs.v2.write.getLibraryDocsGenerationStatus.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.docs.v2.write.getLibraryDocsGenerationStatus.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Get the result of a completed documentation generation job.\n *\n * @param {FernRegistry.docs.v2.write.LibraryDocsJobId} jobId\n * @param {WriteClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.docs.v2.write.getLibraryDocsResult(FernRegistry.docs.v2.write.LibraryDocsJobId(\"jobId\"))\n */\n public getLibraryDocsResult(\n jobId: FernRegistry.docs.v2.write.LibraryDocsJobId,\n requestOptions?: WriteClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<\n FernRegistry.docs.v2.write.LibraryDocsResult,\n FernRegistry.docs.v2.write.getLibraryDocsResult.Error\n >\n > {\n return core.HttpResponsePromise.fromPromise(this.__getLibraryDocsResult(jobId, requestOptions));\n }\n\n private async __getLibraryDocsResult(\n jobId: FernRegistry.docs.v2.write.LibraryDocsJobId,\n requestOptions?: WriteClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.docs.v2.write.LibraryDocsResult,\n FernRegistry.docs.v2.write.getLibraryDocsResult.Error\n >\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n `/v2/registry/docs/library-docs/result/${core.url.encodePathParam(jobId)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.docs.v2.write.LibraryDocsResult,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.docs.v2.write.getLibraryDocsResult.Error)?.error) {\n case \"LibraryDocsJobNotFoundError\":\n case \"LibraryDocsGenerationNotCompleteError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.docs.v2.write.getLibraryDocsResult.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.docs.v2.write.getLibraryDocsResult.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions } from \"../../../../../../BaseClient.js\";\nimport { normalizeClientOptions } from \"../../../../../../BaseClient.js\";\nimport { ReadClient } from \"../resources/read/client/Client.js\";\nimport { WriteClient } from \"../resources/write/client/Client.js\";\n\nexport declare namespace V2Client {\n export interface Options extends BaseClientOptions {}\n}\n\nexport class V2Client {\n protected readonly _options: V2Client.Options;\n protected _read: ReadClient | undefined;\n protected _write: WriteClient | undefined;\n\n constructor(options: V2Client.Options = {}) {\n this._options = normalizeClientOptions(options);\n }\n\n public get read(): ReadClient {\n return (this._read ??= new ReadClient(this._options));\n }\n\n public get write(): WriteClient {\n return (this._write ??= new WriteClient(this._options));\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions } from \"../../../../BaseClient.js\";\nimport { normalizeClientOptions } from \"../../../../BaseClient.js\";\nimport { V1Client } from \"../resources/v1/client/Client.js\";\nimport { V2Client } from \"../resources/v2/client/Client.js\";\n\nexport declare namespace DocsClient {\n export interface Options extends BaseClientOptions {}\n}\n\nexport class DocsClient {\n protected readonly _options: DocsClient.Options;\n protected _v1: V1Client | undefined;\n protected _v2: V2Client | undefined;\n\n constructor(options: DocsClient.Options = {}) {\n this._options = normalizeClientOptions(options);\n }\n\n public get v1(): V1Client {\n return (this._v1 ??= new V1Client(this._options));\n }\n\n public get v2(): V2Client {\n return (this._v2 ??= new V2Client(this._options));\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../BaseClient.js\";\nimport { normalizeClientOptions } from \"../../../../BaseClient.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../core/headers.js\";\nimport * as core from \"../../../../core/index.js\";\nimport * as environments from \"../../../../environments.js\";\nimport * as FernRegistry from \"../../../index.js\";\n\nexport declare namespace DocsCacheClient {\n export interface Options extends BaseClientOptions {}\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\nexport class DocsCacheClient {\n protected readonly _options: DocsCacheClient.Options;\n\n constructor(options: DocsCacheClient.Options = {}) {\n this._options = normalizeClientOptions(options);\n }\n\n /**\n * @param {FernRegistry.InvalidateCachedDocsRequest} request\n * @param {DocsCacheClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.docsCache.invalidate({\n * url: FernRegistry.Url(\"url\")\n * })\n */\n public invalidate(\n request: FernRegistry.InvalidateCachedDocsRequest,\n requestOptions?: DocsCacheClient.RequestOptions,\n ): core.HttpResponsePromise<core.APIResponse<void, FernRegistry.docsCache.invalidate.Error>> {\n return core.HttpResponsePromise.fromPromise(this.__invalidate(request, requestOptions));\n }\n\n private async __invalidate(\n request: FernRegistry.InvalidateCachedDocsRequest,\n requestOptions?: DocsCacheClient.RequestOptions,\n ): Promise<core.WithRawResponse<core.APIResponse<void, FernRegistry.docsCache.invalidate.Error>>> {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/docs-cache/invalidate\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: undefined,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.docsCache.invalidate.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../../../BaseClient.js\";\nimport { normalizeClientOptions } from \"../../../../../../BaseClient.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../../../core/headers.js\";\nimport * as core from \"../../../../../../core/index.js\";\nimport * as environments from \"../../../../../../environments.js\";\nimport * as FernRegistry from \"../../../../../index.js\";\n\nexport declare namespace CliClient {\n export interface Options extends BaseClientOptions {}\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\n/**\n * CRUD API for managing CLI versions, as well as the corresponding IR metadata.\n */\nexport class CliClient {\n protected readonly _options: CliClient.Options;\n\n constructor(options: CliClient.Options = {}) {\n this._options = normalizeClientOptions(options);\n }\n\n /**\n * Get the latest CLI version that has not been yanked.\n *\n * @param {FernRegistry.generators.GetLatestCliReleaseRequest} request\n * @param {CliClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.generators.cli.getLatestCliRelease()\n */\n public getLatestCliRelease(\n request: FernRegistry.generators.GetLatestCliReleaseRequest = {},\n requestOptions?: CliClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<FernRegistry.generators.CliRelease, FernRegistry.generators.cli.getLatestCliRelease.Error>\n > {\n return core.HttpResponsePromise.fromPromise(this.__getLatestCliRelease(request, requestOptions));\n }\n\n private async __getLatestCliRelease(\n request: FernRegistry.generators.GetLatestCliReleaseRequest = {},\n requestOptions?: CliClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<FernRegistry.generators.CliRelease, FernRegistry.generators.cli.getLatestCliRelease.Error>\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/generators/cli/latest\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.generators.CliRelease,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.generators.cli.getLatestCliRelease.Error)?.error) {\n case \"NoValidClisFoundError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.generators.cli.getLatestCliRelease.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.generators.cli.getLatestCliRelease.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Get the changelog for the specified CLI upgrade. The response will be a map of the generator version to it's corresponding changelog.\n *\n * @param {FernRegistry.generators.GetChangelogRequest} request\n * @param {CliClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.generators.cli.getChangelog({\n * fromVersion: {\n * type: \"inclusive\",\n * value: \"fromVersion\"\n * },\n * toVersion: {\n * type: \"inclusive\",\n * value: \"toVersion\"\n * }\n * })\n */\n public getChangelog(\n request: FernRegistry.generators.GetChangelogRequest,\n requestOptions?: CliClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<FernRegistry.generators.GetChangelogResponse, FernRegistry.generators.cli.getChangelog.Error>\n > {\n return core.HttpResponsePromise.fromPromise(this.__getChangelog(request, requestOptions));\n }\n\n private async __getChangelog(\n request: FernRegistry.generators.GetChangelogRequest,\n requestOptions?: CliClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.generators.GetChangelogResponse,\n FernRegistry.generators.cli.getChangelog.Error\n >\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/generators/cli/changelog\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.generators.GetChangelogResponse,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.generators.cli.getChangelog.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Get the minimum CLI version that supports the given IR version. This does not include RCs.\n *\n * @param {number} irVersion\n * @param {CliClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.generators.cli.getMinCliForIr(1)\n */\n public getMinCliForIr(\n irVersion: number,\n requestOptions?: CliClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<FernRegistry.generators.CliRelease, FernRegistry.generators.cli.getMinCliForIr.Error>\n > {\n return core.HttpResponsePromise.fromPromise(this.__getMinCliForIr(irVersion, requestOptions));\n }\n\n private async __getMinCliForIr(\n irVersion: number,\n requestOptions?: CliClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<FernRegistry.generators.CliRelease, FernRegistry.generators.cli.getMinCliForIr.Error>\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n `/generators/cli/for-ir/${core.url.encodePathParam(irVersion)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.generators.CliRelease,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.generators.cli.getMinCliForIr.Error)?.error) {\n case \"NoValidClisFoundError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.generators.cli.getMinCliForIr.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.generators.cli.getMinCliForIr.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Update or create the specified CLI version.\n *\n * @param {FernRegistry.generators.CliReleaseRequest} request\n * @param {CliClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.generators.cli.upsertCliRelease({\n * version: \"version\",\n * createdAt: undefined,\n * isYanked: undefined,\n * changelogEntry: undefined,\n * irVersion: 1,\n * tags: undefined\n * })\n */\n public upsertCliRelease(\n request: FernRegistry.generators.CliReleaseRequest,\n requestOptions?: CliClient.RequestOptions,\n ): core.HttpResponsePromise<core.APIResponse<void, FernRegistry.generators.cli.upsertCliRelease.Error>> {\n return core.HttpResponsePromise.fromPromise(this.__upsertCliRelease(request, requestOptions));\n }\n\n private async __upsertCliRelease(\n request: FernRegistry.generators.CliReleaseRequest,\n requestOptions?: CliClient.RequestOptions,\n ): Promise<core.WithRawResponse<core.APIResponse<void, FernRegistry.generators.cli.upsertCliRelease.Error>>> {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/generators/cli\",\n ),\n method: \"PUT\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: undefined,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.generators.cli.upsertCliRelease.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Get the specified CLI version.\n *\n * @param {string} cliVersion\n * @param {CliClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.generators.cli.getCliRelease(\"cliVersion\")\n */\n public getCliRelease(\n cliVersion: string,\n requestOptions?: CliClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<FernRegistry.generators.CliRelease, FernRegistry.generators.cli.getCliRelease.Error>\n > {\n return core.HttpResponsePromise.fromPromise(this.__getCliRelease(cliVersion, requestOptions));\n }\n\n private async __getCliRelease(\n cliVersion: string,\n requestOptions?: CliClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<FernRegistry.generators.CliRelease, FernRegistry.generators.cli.getCliRelease.Error>\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n `/generators/cli/${core.url.encodePathParam(cliVersion)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.generators.CliRelease,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.generators.cli.getCliRelease.Error)?.error) {\n case \"CliVersionNotFoundError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.generators.cli.getCliRelease.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.generators.cli.getCliRelease.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Get all CLI versions.\n *\n * @param {FernRegistry.generators.ListCliReleasesRequest} request\n * @param {CliClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.generators.cli.listCliReleases()\n */\n public listCliReleases(\n request: FernRegistry.generators.ListCliReleasesRequest = {},\n requestOptions?: CliClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<\n FernRegistry.generators.ListCliReleasesResponse,\n FernRegistry.generators.cli.listCliReleases.Error\n >\n > {\n return core.HttpResponsePromise.fromPromise(this.__listCliReleases(request, requestOptions));\n }\n\n private async __listCliReleases(\n request: FernRegistry.generators.ListCliReleasesRequest = {},\n requestOptions?: CliClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.generators.ListCliReleasesResponse,\n FernRegistry.generators.cli.listCliReleases.Error\n >\n >\n > {\n const { page, pageSize } = request;\n const _queryParams: Record<string, string | string[] | object | object[] | null> = {};\n if (page != null) {\n _queryParams.page = page.toString();\n }\n\n if (pageSize != null) {\n _queryParams.pageSize = pageSize.toString();\n }\n\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/generators/cli\",\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: { ..._queryParams, ...requestOptions?.queryParams },\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.generators.ListCliReleasesResponse,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.generators.cli.listCliReleases.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../../../BaseClient.js\";\nimport { normalizeClientOptions } from \"../../../../../../BaseClient.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../../../core/headers.js\";\nimport * as core from \"../../../../../../core/index.js\";\nimport * as environments from \"../../../../../../environments.js\";\nimport * as FernRegistry from \"../../../../../index.js\";\n\nexport declare namespace VersionsClient {\n export interface Options extends BaseClientOptions {}\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\n/**\n * CRUD API for managing generator versions.\n */\nexport class VersionsClient {\n protected readonly _options: VersionsClient.Options;\n\n constructor(options: VersionsClient.Options = {}) {\n this._options = normalizeClientOptions(options);\n }\n\n /**\n * Get the latest generator version that has not been yanked.\n *\n * @param {FernRegistry.generators.GetLatestGeneratorReleaseRequest} request\n * @param {VersionsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.generators.versions.getLatestGeneratorRelease({\n * generator: FernRegistry.generators.GeneratorId(\"generator\")\n * })\n */\n public getLatestGeneratorRelease(\n request: FernRegistry.generators.GetLatestGeneratorReleaseRequest,\n requestOptions?: VersionsClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<\n FernRegistry.generators.GeneratorRelease,\n FernRegistry.generators.versions.getLatestGeneratorRelease.Error\n >\n > {\n return core.HttpResponsePromise.fromPromise(this.__getLatestGeneratorRelease(request, requestOptions));\n }\n\n private async __getLatestGeneratorRelease(\n request: FernRegistry.generators.GetLatestGeneratorReleaseRequest,\n requestOptions?: VersionsClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.generators.GeneratorRelease,\n FernRegistry.generators.versions.getLatestGeneratorRelease.Error\n >\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/generators/versions/latest\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.generators.GeneratorRelease,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.generators.versions.getLatestGeneratorRelease.Error)?.error) {\n case \"NoValidGeneratorsFoundError\":\n return {\n data: {\n ok: false,\n error: _response.error\n .body as FernRegistry.generators.versions.getLatestGeneratorRelease.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.generators.versions.getLatestGeneratorRelease.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Get the changelog for the specified generator upgrade. The response will be a map of the generator version to it's corresponding changelog.\n *\n * @param {FernRegistry.generators.GeneratorId} generator\n * @param {FernRegistry.generators.GetChangelogRequest} request\n * @param {VersionsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.generators.versions.getChangelog(FernRegistry.generators.GeneratorId(\"generator\"), {\n * fromVersion: {\n * type: \"inclusive\",\n * value: \"fromVersion\"\n * },\n * toVersion: {\n * type: \"inclusive\",\n * value: \"toVersion\"\n * }\n * })\n */\n public getChangelog(\n generator: FernRegistry.generators.GeneratorId,\n request: FernRegistry.generators.GetChangelogRequest,\n requestOptions?: VersionsClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<\n FernRegistry.generators.GetChangelogResponse,\n FernRegistry.generators.versions.getChangelog.Error\n >\n > {\n return core.HttpResponsePromise.fromPromise(this.__getChangelog(generator, request, requestOptions));\n }\n\n private async __getChangelog(\n generator: FernRegistry.generators.GeneratorId,\n request: FernRegistry.generators.GetChangelogRequest,\n requestOptions?: VersionsClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.generators.GetChangelogResponse,\n FernRegistry.generators.versions.getChangelog.Error\n >\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n `/generators/versions/${core.url.encodePathParam(generator)}/changelog`,\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.generators.GetChangelogResponse,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.generators.versions.getChangelog.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Update or create the specified generator version.\n *\n * @param {FernRegistry.generators.GeneratorReleaseRequest} request\n * @param {VersionsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.generators.versions.upsertGeneratorRelease({\n * version: \"version\",\n * createdAt: undefined,\n * isYanked: undefined,\n * changelogEntry: undefined,\n * generatorId: FernRegistry.generators.GeneratorId(\"generatorId\"),\n * irVersion: 1,\n * migration: undefined,\n * customConfigSchema: undefined,\n * tags: undefined\n * })\n */\n public upsertGeneratorRelease(\n request: FernRegistry.generators.GeneratorReleaseRequest,\n requestOptions?: VersionsClient.RequestOptions,\n ): core.HttpResponsePromise<core.APIResponse<void, FernRegistry.generators.versions.upsertGeneratorRelease.Error>> {\n return core.HttpResponsePromise.fromPromise(this.__upsertGeneratorRelease(request, requestOptions));\n }\n\n private async __upsertGeneratorRelease(\n request: FernRegistry.generators.GeneratorReleaseRequest,\n requestOptions?: VersionsClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<core.APIResponse<void, FernRegistry.generators.versions.upsertGeneratorRelease.Error>>\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/generators/versions\",\n ),\n method: \"PUT\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: undefined,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.generators.versions.upsertGeneratorRelease.Error)?.error) {\n case \"InvalidVersionError\":\n return {\n data: {\n ok: false,\n error: _response.error\n .body as FernRegistry.generators.versions.upsertGeneratorRelease.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.generators.versions.upsertGeneratorRelease.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Get the specified generator version.\n *\n * @param {FernRegistry.generators.GeneratorId} generator\n * @param {string} version\n * @param {VersionsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.generators.versions.getGeneratorRelease(FernRegistry.generators.GeneratorId(\"generator\"), \"version\")\n */\n public getGeneratorRelease(\n generator: FernRegistry.generators.GeneratorId,\n version: string,\n requestOptions?: VersionsClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<\n FernRegistry.generators.GeneratorRelease,\n FernRegistry.generators.versions.getGeneratorRelease.Error\n >\n > {\n return core.HttpResponsePromise.fromPromise(this.__getGeneratorRelease(generator, version, requestOptions));\n }\n\n private async __getGeneratorRelease(\n generator: FernRegistry.generators.GeneratorId,\n version: string,\n requestOptions?: VersionsClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.generators.GeneratorRelease,\n FernRegistry.generators.versions.getGeneratorRelease.Error\n >\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n `/generators/versions/${core.url.encodePathParam(generator)}/${core.url.encodePathParam(version)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.generators.GeneratorRelease,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.generators.versions.getGeneratorRelease.Error)?.error) {\n case \"GeneratorVersionNotFoundError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.generators.versions.getGeneratorRelease.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.generators.versions.getGeneratorRelease.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Get all generator versions for the specified generator.\n *\n * @param {FernRegistry.generators.GeneratorId} generator\n * @param {FernRegistry.generators.ListGeneratorReleasesRequest} request\n * @param {VersionsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.generators.versions.listGeneratorReleases(FernRegistry.generators.GeneratorId(\"generator\"))\n */\n public listGeneratorReleases(\n generator: FernRegistry.generators.GeneratorId,\n request: FernRegistry.generators.ListGeneratorReleasesRequest = {},\n requestOptions?: VersionsClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<\n FernRegistry.generators.ListGeneratorReleasesResponse,\n FernRegistry.generators.versions.listGeneratorReleases.Error\n >\n > {\n return core.HttpResponsePromise.fromPromise(this.__listGeneratorReleases(generator, request, requestOptions));\n }\n\n private async __listGeneratorReleases(\n generator: FernRegistry.generators.GeneratorId,\n request: FernRegistry.generators.ListGeneratorReleasesRequest = {},\n requestOptions?: VersionsClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.generators.ListGeneratorReleasesResponse,\n FernRegistry.generators.versions.listGeneratorReleases.Error\n >\n >\n > {\n const { page, pageSize } = request;\n const _queryParams: Record<string, string | string[] | object | object[] | null> = {};\n if (page != null) {\n _queryParams.page = page.toString();\n }\n\n if (pageSize != null) {\n _queryParams.pageSize = pageSize.toString();\n }\n\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n `/generators/versions/${core.url.encodePathParam(generator)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: { ..._queryParams, ...requestOptions?.queryParams },\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.generators.ListGeneratorReleasesResponse,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.generators.versions.listGeneratorReleases.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../BaseClient.js\";\nimport { normalizeClientOptions } from \"../../../../BaseClient.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../core/headers.js\";\nimport * as core from \"../../../../core/index.js\";\nimport * as environments from \"../../../../environments.js\";\nimport * as FernRegistry from \"../../../index.js\";\nimport { CliClient } from \"../resources/cli/client/Client.js\";\nimport { VersionsClient } from \"../resources/versions/client/Client.js\";\n\nexport declare namespace GeneratorsClient {\n export interface Options extends BaseClientOptions {}\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\n/**\n * CRUD API for managing the generator entity itself.\n */\nexport class GeneratorsClient {\n protected readonly _options: GeneratorsClient.Options;\n protected _cli: CliClient | undefined;\n protected _versions: VersionsClient | undefined;\n\n constructor(options: GeneratorsClient.Options = {}) {\n this._options = normalizeClientOptions(options);\n }\n\n public get cli(): CliClient {\n return (this._cli ??= new CliClient(this._options));\n }\n\n public get versions(): VersionsClient {\n return (this._versions ??= new VersionsClient(this._options));\n }\n\n /**\n * Update or create the specified generator.\n *\n * @param {FernRegistry.generators.Generator} request\n * @param {GeneratorsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.generators.upsertGenerator({\n * id: FernRegistry.generators.GeneratorId(\"id\"),\n * displayName: \"displayName\",\n * generatorType: {\n * type: \"sdk\"\n * },\n * generatorLanguage: undefined,\n * dockerImage: \"dockerImage\",\n * scripts: undefined\n * })\n */\n public upsertGenerator(\n request: FernRegistry.generators.Generator,\n requestOptions?: GeneratorsClient.RequestOptions,\n ): core.HttpResponsePromise<core.APIResponse<void, FernRegistry.generators.upsertGenerator.Error>> {\n return core.HttpResponsePromise.fromPromise(this.__upsertGenerator(request, requestOptions));\n }\n\n private async __upsertGenerator(\n request: FernRegistry.generators.Generator,\n requestOptions?: GeneratorsClient.RequestOptions,\n ): Promise<core.WithRawResponse<core.APIResponse<void, FernRegistry.generators.upsertGenerator.Error>>> {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/generators\",\n ),\n method: \"PUT\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: undefined,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.generators.upsertGenerator.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Get the generator corresponding to the given docker image.\n *\n * @param {FernRegistry.generators.GetGeneratorByImageRequest} request\n * @param {GeneratorsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.generators.getGeneratorByImage({\n * dockerImage: \"dockerImage\"\n * })\n */\n public getGeneratorByImage(\n request: FernRegistry.generators.GetGeneratorByImageRequest,\n requestOptions?: GeneratorsClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<\n FernRegistry.generators.Generator | undefined,\n FernRegistry.generators.getGeneratorByImage.Error\n >\n > {\n return core.HttpResponsePromise.fromPromise(this.__getGeneratorByImage(request, requestOptions));\n }\n\n private async __getGeneratorByImage(\n request: FernRegistry.generators.GetGeneratorByImageRequest,\n requestOptions?: GeneratorsClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.generators.Generator | undefined,\n FernRegistry.generators.getGeneratorByImage.Error\n >\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(this._options?.headers, requestOptions?.headers);\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/generators/by-image\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.generators.Generator | undefined,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.generators.getGeneratorByImage.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Get the specified generator.\n *\n * @param {FernRegistry.generators.GeneratorId} generatorId\n * @param {GeneratorsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.generators.getGenerator(FernRegistry.generators.GeneratorId(\"generatorId\"))\n */\n public getGenerator(\n generatorId: FernRegistry.generators.GeneratorId,\n requestOptions?: GeneratorsClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<FernRegistry.generators.Generator | undefined, FernRegistry.generators.getGenerator.Error>\n > {\n return core.HttpResponsePromise.fromPromise(this.__getGenerator(generatorId, requestOptions));\n }\n\n private async __getGenerator(\n generatorId: FernRegistry.generators.GeneratorId,\n requestOptions?: GeneratorsClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<FernRegistry.generators.Generator | undefined, FernRegistry.generators.getGenerator.Error>\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(this._options?.headers, requestOptions?.headers);\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n `/generators/${core.url.encodePathParam(generatorId)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.generators.Generator | undefined,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.generators.getGenerator.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Get the all generators. This is currently not paginated since the list will be short, but there may in the future be need for pagination.\n *\n * @param {GeneratorsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.generators.listGenerators()\n */\n public listGenerators(\n requestOptions?: GeneratorsClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<FernRegistry.generators.Generator[], FernRegistry.generators.listGenerators.Error>\n > {\n return core.HttpResponsePromise.fromPromise(this.__listGenerators(requestOptions));\n }\n\n private async __listGenerators(\n requestOptions?: GeneratorsClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<FernRegistry.generators.Generator[], FernRegistry.generators.listGenerators.Error>\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(this._options?.headers, requestOptions?.headers);\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/generators\",\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.generators.Generator[],\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.generators.listGenerators.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../BaseClient.js\";\nimport { normalizeClientOptions } from \"../../../../BaseClient.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../core/headers.js\";\nimport * as core from \"../../../../core/index.js\";\nimport * as environments from \"../../../../environments.js\";\nimport * as FernRegistry from \"../../../index.js\";\n\nexport declare namespace GitClient {\n export interface Options extends BaseClientOptions {}\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\n/**\n * Produces an internal schema to easily track and view pull requests across Fern-managed repositories. This API is named `git` to allow for flexibility in adding other git providers down the line (e.g. gitlab).\n */\nexport class GitClient {\n protected readonly _options: GitClient.Options;\n\n constructor(options: GitClient.Options = {}) {\n this._options = normalizeClientOptions(options);\n }\n\n /**\n * Get a repository by its name (mirroring the Github API, this is the main get request).\n *\n * @param {string} repositoryOwner\n * @param {string} repositoryName\n * @param {GitClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.git.getRepository(\"repositoryOwner\", \"repositoryName\")\n */\n public getRepository(\n repositoryOwner: string,\n repositoryName: string,\n requestOptions?: GitClient.RequestOptions,\n ): core.HttpResponsePromise<core.APIResponse<FernRegistry.FernRepository, FernRegistry.git.getRepository.Error>> {\n return core.HttpResponsePromise.fromPromise(\n this.__getRepository(repositoryOwner, repositoryName, requestOptions),\n );\n }\n\n private async __getRepository(\n repositoryOwner: string,\n repositoryName: string,\n requestOptions?: GitClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<core.APIResponse<FernRegistry.FernRepository, FernRegistry.git.getRepository.Error>>\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n `/generators/github/repository/${core.url.encodePathParam(repositoryOwner)}/${core.url.encodePathParam(repositoryName)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.FernRepository,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.git.getRepository.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Get all repositories.\n *\n * @param {FernRegistry.ListRepositoriesRequest} request\n * @param {GitClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.git.listRepositories()\n */\n public listRepositories(\n request: FernRegistry.ListRepositoriesRequest = {},\n requestOptions?: GitClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<FernRegistry.ListRepositoriesResponse, FernRegistry.git.listRepositories.Error>\n > {\n return core.HttpResponsePromise.fromPromise(this.__listRepositories(request, requestOptions));\n }\n\n private async __listRepositories(\n request: FernRegistry.ListRepositoriesRequest = {},\n requestOptions?: GitClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<FernRegistry.ListRepositoriesResponse, FernRegistry.git.listRepositories.Error>\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/generators/github/repository/list\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.ListRepositoriesResponse,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.git.listRepositories.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Update or create the specified repository.\n *\n * @param {FernRegistry.FernRepository} request\n * @param {GitClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.git.upsertRepository({\n * type: \"sdk\",\n * sdkLanguage: \"sdkLanguage\",\n * id: {\n * type: \"github\",\n * id: \"id\"\n * },\n * name: \"name\",\n * owner: \"owner\",\n * fullName: \"fullName\",\n * url: FernRegistry.Url(\"url\"),\n * repositoryOwnerOrganizationId: FernRegistry.OrgId(\"repositoryOwnerOrganizationId\"),\n * defaultBranchChecks: [{\n * checkId: \"checkId\",\n * repositoryOwner: \"repositoryOwner\",\n * repositoryName: \"repositoryName\",\n * ref: \"ref\",\n * name: \"name\",\n * status: \"status\",\n * conclusion: \"conclusion\",\n * checkRunUrl: \"checkRunUrl\",\n * createdAt: \"2024-01-15T09:30:00Z\",\n * completedAt: undefined,\n * rawCheckRun: {\n * \"key\": \"value\"\n * }\n * }, {\n * checkId: \"checkId\",\n * repositoryOwner: \"repositoryOwner\",\n * repositoryName: \"repositoryName\",\n * ref: \"ref\",\n * name: \"name\",\n * status: \"status\",\n * conclusion: \"conclusion\",\n * checkRunUrl: \"checkRunUrl\",\n * createdAt: \"2024-01-15T09:30:00Z\",\n * completedAt: undefined,\n * rawCheckRun: {\n * \"key\": \"value\"\n * }\n * }]\n * })\n */\n public upsertRepository(\n request: FernRegistry.FernRepository,\n requestOptions?: GitClient.RequestOptions,\n ): core.HttpResponsePromise<core.APIResponse<void, FernRegistry.git.upsertRepository.Error>> {\n return core.HttpResponsePromise.fromPromise(this.__upsertRepository(request, requestOptions));\n }\n\n private async __upsertRepository(\n request: FernRegistry.FernRepository,\n requestOptions?: GitClient.RequestOptions,\n ): Promise<core.WithRawResponse<core.APIResponse<void, FernRegistry.git.upsertRepository.Error>>> {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/generators/github/repository/upsert\",\n ),\n method: \"PUT\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: undefined,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.git.upsertRepository.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Delete specified repository.\n *\n * @param {string} repositoryOwner\n * @param {string} repositoryName\n * @param {GitClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.git.deleteRepository(\"repositoryOwner\", \"repositoryName\")\n */\n public deleteRepository(\n repositoryOwner: string,\n repositoryName: string,\n requestOptions?: GitClient.RequestOptions,\n ): core.HttpResponsePromise<core.APIResponse<void, FernRegistry.git.deleteRepository.Error>> {\n return core.HttpResponsePromise.fromPromise(\n this.__deleteRepository(repositoryOwner, repositoryName, requestOptions),\n );\n }\n\n private async __deleteRepository(\n repositoryOwner: string,\n repositoryName: string,\n requestOptions?: GitClient.RequestOptions,\n ): Promise<core.WithRawResponse<core.APIResponse<void, FernRegistry.git.deleteRepository.Error>>> {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n `/generators/github/repository/${core.url.encodePathParam(repositoryOwner)}/${core.url.encodePathParam(repositoryName)}/delete`,\n ),\n method: \"DELETE\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: undefined,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.git.deleteRepository.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Get a pull request by its ID.\n *\n * @param {string} repositoryOwner\n * @param {string} repositoryName\n * @param {number} pullRequestNumber\n * @param {GitClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.git.getPullRequest(\"repositoryOwner\", \"repositoryName\", 1)\n */\n public getPullRequest(\n repositoryOwner: string,\n repositoryName: string,\n pullRequestNumber: number,\n requestOptions?: GitClient.RequestOptions,\n ): core.HttpResponsePromise<core.APIResponse<FernRegistry.PullRequest, FernRegistry.git.getPullRequest.Error>> {\n return core.HttpResponsePromise.fromPromise(\n this.__getPullRequest(repositoryOwner, repositoryName, pullRequestNumber, requestOptions),\n );\n }\n\n private async __getPullRequest(\n repositoryOwner: string,\n repositoryName: string,\n pullRequestNumber: number,\n requestOptions?: GitClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<core.APIResponse<FernRegistry.PullRequest, FernRegistry.git.getPullRequest.Error>>\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n `/generators/github/pull-request/${core.url.encodePathParam(repositoryOwner)}/${core.url.encodePathParam(repositoryName)}/${core.url.encodePathParam(pullRequestNumber)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.PullRequest,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.git.getPullRequest.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Get all pull requests.\n *\n * @param {FernRegistry.ListPullRequestsRequest} request\n * @param {GitClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.git.listPullRequests()\n */\n public listPullRequests(\n request: FernRegistry.ListPullRequestsRequest = {},\n requestOptions?: GitClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<FernRegistry.ListPullRequestsResponse, FernRegistry.git.listPullRequests.Error>\n > {\n return core.HttpResponsePromise.fromPromise(this.__listPullRequests(request, requestOptions));\n }\n\n private async __listPullRequests(\n request: FernRegistry.ListPullRequestsRequest = {},\n requestOptions?: GitClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<FernRegistry.ListPullRequestsResponse, FernRegistry.git.listPullRequests.Error>\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/generators/github/pull-request/list\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.ListPullRequestsResponse,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.git.listPullRequests.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Update or create the specified pull request.\n *\n * @param {FernRegistry.PullRequest} request\n * @param {GitClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.git.upsertPullRequest({\n * pullRequestNumber: 1,\n * repositoryName: \"repositoryName\",\n * repositoryOwner: \"repositoryOwner\",\n * author: undefined,\n * reviewers: [{\n * type: \"user\",\n * name: undefined,\n * email: undefined,\n * username: \"username\"\n * }, {\n * type: \"user\",\n * name: undefined,\n * email: undefined,\n * username: \"username\"\n * }],\n * title: \"title\",\n * url: FernRegistry.Url(\"url\"),\n * checks: [{\n * checkId: \"checkId\",\n * repositoryOwner: \"repositoryOwner\",\n * repositoryName: \"repositoryName\",\n * ref: \"ref\",\n * name: \"name\",\n * status: \"status\",\n * conclusion: \"conclusion\",\n * checkRunUrl: \"checkRunUrl\",\n * createdAt: \"2024-01-15T09:30:00Z\",\n * completedAt: undefined,\n * rawCheckRun: {\n * \"key\": \"value\"\n * }\n * }, {\n * checkId: \"checkId\",\n * repositoryOwner: \"repositoryOwner\",\n * repositoryName: \"repositoryName\",\n * ref: \"ref\",\n * name: \"name\",\n * status: \"status\",\n * conclusion: \"conclusion\",\n * checkRunUrl: \"checkRunUrl\",\n * createdAt: \"2024-01-15T09:30:00Z\",\n * completedAt: undefined,\n * rawCheckRun: {\n * \"key\": \"value\"\n * }\n * }],\n * state: \"open\",\n * createdAt: \"2024-01-15T09:30:00Z\",\n * updatedAt: undefined,\n * mergedAt: undefined,\n * closedAt: undefined\n * })\n */\n public upsertPullRequest(\n request: FernRegistry.PullRequest,\n requestOptions?: GitClient.RequestOptions,\n ): core.HttpResponsePromise<core.APIResponse<void, FernRegistry.git.upsertPullRequest.Error>> {\n return core.HttpResponsePromise.fromPromise(this.__upsertPullRequest(request, requestOptions));\n }\n\n private async __upsertPullRequest(\n request: FernRegistry.PullRequest,\n requestOptions?: GitClient.RequestOptions,\n ): Promise<core.WithRawResponse<core.APIResponse<void, FernRegistry.git.upsertPullRequest.Error>>> {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/generators/github/pull-request/upsert\",\n ),\n method: \"PUT\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: undefined,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.git.upsertPullRequest.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Delete specified pull request.\n *\n * @param {string} repositoryOwner\n * @param {string} repositoryName\n * @param {number} pullRequestNumber\n * @param {GitClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.git.deletePullRequest(\"repositoryOwner\", \"repositoryName\", 1)\n */\n public deletePullRequest(\n repositoryOwner: string,\n repositoryName: string,\n pullRequestNumber: number,\n requestOptions?: GitClient.RequestOptions,\n ): core.HttpResponsePromise<core.APIResponse<void, FernRegistry.git.deletePullRequest.Error>> {\n return core.HttpResponsePromise.fromPromise(\n this.__deletePullRequest(repositoryOwner, repositoryName, pullRequestNumber, requestOptions),\n );\n }\n\n private async __deletePullRequest(\n repositoryOwner: string,\n repositoryName: string,\n pullRequestNumber: number,\n requestOptions?: GitClient.RequestOptions,\n ): Promise<core.WithRawResponse<core.APIResponse<void, FernRegistry.git.deletePullRequest.Error>>> {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n `/generators/github/pull-request/${core.url.encodePathParam(repositoryOwner)}/${core.url.encodePathParam(repositoryName)}/${core.url.encodePathParam(pullRequestNumber)}/delete`,\n ),\n method: \"DELETE\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: undefined,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.git.deletePullRequest.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../../../BaseClient.js\";\nimport { normalizeClientOptions } from \"../../../../../../BaseClient.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../../../core/headers.js\";\nimport * as core from \"../../../../../../core/index.js\";\nimport * as environments from \"../../../../../../environments.js\";\nimport * as FernRegistry from \"../../../../../index.js\";\n\nexport declare namespace VersionsClient {\n export interface Options extends BaseClientOptions {}\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\nexport class VersionsClient {\n protected readonly _options: VersionsClient.Options;\n\n constructor(options: VersionsClient.Options = {}) {\n this._options = normalizeClientOptions(options);\n }\n\n /**\n * Computes a semantic version for the SDK to be relesed on.\n * The endpoint tries to find existing versions by looking up against\n * registries and github repositories. If none are found an error is thrown.\n * If a version is found, a new semantic version is returned.\n *\n * @param {FernRegistry.sdks.ComputeSemanticVersionRequest} request\n * @param {VersionsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.sdks.versions.computeSemanticVersion({\n * \"package\": \"package\",\n * language: \"Go\"\n * })\n */\n public computeSemanticVersion(\n request: FernRegistry.sdks.ComputeSemanticVersionRequest,\n requestOptions?: VersionsClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<\n FernRegistry.sdks.ComputedSemanticVersionResponse,\n FernRegistry.sdks.versions.computeSemanticVersion.Error\n >\n > {\n return core.HttpResponsePromise.fromPromise(this.__computeSemanticVersion(request, requestOptions));\n }\n\n private async __computeSemanticVersion(\n request: FernRegistry.sdks.ComputeSemanticVersionRequest,\n requestOptions?: VersionsClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.sdks.ComputedSemanticVersionResponse,\n FernRegistry.sdks.versions.computeSemanticVersion.Error\n >\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/sdks/semantic-version/compute\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.sdks.ComputedSemanticVersionResponse,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.sdks.versions.computeSemanticVersion.Error)?.error) {\n case \"FailedToComputeExistingVersion\":\n case \"FailedToIncrementVersion\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.sdks.versions.computeSemanticVersion.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.sdks.versions.computeSemanticVersion.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions } from \"../../../../BaseClient.js\";\nimport { normalizeClientOptions } from \"../../../../BaseClient.js\";\nimport { VersionsClient } from \"../resources/versions/client/Client.js\";\n\nexport declare namespace SdksClient {\n export interface Options extends BaseClientOptions {}\n}\n\nexport class SdksClient {\n protected readonly _options: SdksClient.Options;\n protected _versions: VersionsClient | undefined;\n\n constructor(options: SdksClient.Options = {}) {\n this._options = normalizeClientOptions(options);\n }\n\n public get versions(): VersionsClient {\n return (this._versions ??= new VersionsClient(this._options));\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../BaseClient.js\";\nimport { normalizeClientOptions } from \"../../../../BaseClient.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../core/headers.js\";\nimport * as core from \"../../../../core/index.js\";\nimport * as environments from \"../../../../environments.js\";\nimport * as FernRegistry from \"../../../index.js\";\n\nexport declare namespace SnippetsClient {\n export interface Options extends BaseClientOptions {}\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\nexport class SnippetsClient {\n protected readonly _options: SnippetsClient.Options;\n\n constructor(options: SnippetsClient.Options = {}) {\n this._options = normalizeClientOptions(options);\n }\n\n /**\n * Get snippet by endpoint method and path\n *\n * @param {FernRegistry.GetSnippetRequest} request\n * @param {SnippetsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.snippets.get({\n * endpoint: {\n * method: \"GET\",\n * path: FernRegistry.EndpointPathLiteral(\"/v1/search\")\n * }\n * })\n */\n public get(\n request: FernRegistry.GetSnippetRequest,\n requestOptions?: SnippetsClient.RequestOptions,\n ): core.HttpResponsePromise<core.APIResponse<FernRegistry.Snippet[], FernRegistry.snippets.get.Error>> {\n return core.HttpResponsePromise.fromPromise(this.__get(request, requestOptions));\n }\n\n private async __get(\n request: FernRegistry.GetSnippetRequest,\n requestOptions?: SnippetsClient.RequestOptions,\n ): Promise<core.WithRawResponse<core.APIResponse<FernRegistry.Snippet[], FernRegistry.snippets.get.Error>>> {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/snippets\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.Snippet[],\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.snippets.get.Error)?.error) {\n case \"UnauthorizedError\":\n case \"UserNotInOrgError\":\n case \"UnavailableError\":\n case \"ApiIdRequiredError\":\n case \"OrgIdRequiredError\":\n case \"OrgIdAndApiIdNotFound\":\n case \"OrgIdNotFound\":\n case \"EndpointNotFound\":\n case \"SDKNotFound\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.snippets.get.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.snippets.get.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * @param {FernRegistry.ListSnippetsRequest} request\n * @param {SnippetsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.snippets.load({\n * page: 1,\n * orgId: FernRegistry.OrgId(\"vellum\"),\n * apiId: FernRegistry.ApiId(\"vellum-ai\"),\n * sdks: [{\n * type: \"python\",\n * \"package\": \"vellum-ai\"\n * }]\n * })\n */\n public load(\n request: FernRegistry.ListSnippetsRequest = {},\n requestOptions?: SnippetsClient.RequestOptions,\n ): core.HttpResponsePromise<core.APIResponse<FernRegistry.SnippetsPage, FernRegistry.snippets.load.Error>> {\n return core.HttpResponsePromise.fromPromise(this.__load(request, requestOptions));\n }\n\n private async __load(\n request: FernRegistry.ListSnippetsRequest = {},\n requestOptions?: SnippetsClient.RequestOptions,\n ): Promise<core.WithRawResponse<core.APIResponse<FernRegistry.SnippetsPage, FernRegistry.snippets.load.Error>>> {\n const { page, ..._body } = request;\n const _queryParams: Record<string, string | string[] | object | object[] | null> = {};\n if (page != null) {\n _queryParams.page = page.toString();\n }\n\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/snippets/load\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: { ..._queryParams, ...requestOptions?.queryParams },\n requestType: \"json\",\n body: _body,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.SnippetsPage,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.snippets.load.Error)?.error) {\n case \"UnauthorizedError\":\n case \"UserNotInOrgError\":\n case \"UnavailableError\":\n case \"InvalidPageError\":\n case \"ApiIdRequiredError\":\n case \"OrgIdRequiredError\":\n case \"OrgIdAndApiIdNotFound\":\n case \"OrgIdNotFound\":\n case \"SDKNotFound\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.snippets.load.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.snippets.load.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../BaseClient.js\";\nimport { normalizeClientOptions } from \"../../../../BaseClient.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../core/headers.js\";\nimport * as core from \"../../../../core/index.js\";\nimport * as environments from \"../../../../environments.js\";\nimport * as FernRegistry from \"../../../index.js\";\n\nexport declare namespace SnippetsFactoryClient {\n export interface Options extends BaseClientOptions {}\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\nexport class SnippetsFactoryClient {\n protected readonly _options: SnippetsFactoryClient.Options;\n\n constructor(options: SnippetsFactoryClient.Options = {}) {\n this._options = normalizeClientOptions(options);\n }\n\n /**\n * Store endpoint snippets for a particular SDK.\n *\n * @param {FernRegistry.CreateSnippetRequest} request\n * @param {SnippetsFactoryClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.snippetsFactory.createSnippetsForSdk({\n * orgId: FernRegistry.OrgId(\"orgId\"),\n * apiId: FernRegistry.ApiId(\"apiId\"),\n * snippets: {\n * type: \"typescript\",\n * sdk: {\n * \"package\": \"package\",\n * version: \"version\"\n * },\n * snippets: [{\n * snippet: {\n * client: \"client\"\n * },\n * endpoint: {\n * path: FernRegistry.EndpointPathLiteral(\"path\"),\n * method: \"GET\",\n * identifierOverride: undefined\n * },\n * exampleIdentifier: undefined\n * }, {\n * snippet: {\n * client: \"client\"\n * },\n * endpoint: {\n * path: FernRegistry.EndpointPathLiteral(\"path\"),\n * method: \"GET\",\n * identifierOverride: undefined\n * },\n * exampleIdentifier: undefined\n * }]\n * }\n * })\n */\n public createSnippetsForSdk(\n request: FernRegistry.CreateSnippetRequest,\n requestOptions?: SnippetsFactoryClient.RequestOptions,\n ): core.HttpResponsePromise<core.APIResponse<void, FernRegistry.snippetsFactory.createSnippetsForSdk.Error>> {\n return core.HttpResponsePromise.fromPromise(this.__createSnippetsForSdk(request, requestOptions));\n }\n\n private async __createSnippetsForSdk(\n request: FernRegistry.CreateSnippetRequest,\n requestOptions?: SnippetsFactoryClient.RequestOptions,\n ): Promise<core.WithRawResponse<core.APIResponse<void, FernRegistry.snippetsFactory.createSnippetsForSdk.Error>>> {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/snippets/create\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: undefined,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.snippetsFactory.createSnippetsForSdk.Error)?.error) {\n case \"UnauthorizedError\":\n case \"UserNotInOrgError\":\n case \"OrgIdNotFound\":\n case \"SDKNotFound\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.snippetsFactory.createSnippetsForSdk.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.snippetsFactory.createSnippetsForSdk.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../BaseClient.js\";\nimport { normalizeClientOptions } from \"../../../../BaseClient.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../core/headers.js\";\nimport * as core from \"../../../../core/index.js\";\nimport * as environments from \"../../../../environments.js\";\nimport * as FernRegistry from \"../../../index.js\";\n\nexport declare namespace TemplatesClient {\n export interface Options extends BaseClientOptions {}\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\nexport class TemplatesClient {\n protected readonly _options: TemplatesClient.Options;\n\n constructor(options: TemplatesClient.Options = {}) {\n this._options = normalizeClientOptions(options);\n }\n\n /**\n * Store endpoint snippet for a particular SDK.\n *\n * @param {FernRegistry.RegisterSnippetTemplateRequest} request\n * @param {TemplatesClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.templates.register({\n * orgId: FernRegistry.OrgId(\"orgId\"),\n * apiId: FernRegistry.ApiId(\"apiId\"),\n * apiDefinitionId: FernRegistry.ApiDefinitionId(\"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\"),\n * snippet: {\n * sdk: {\n * type: \"typescript\",\n * \"package\": \"package\",\n * version: \"version\"\n * },\n * endpointId: {\n * path: FernRegistry.EndpointPathLiteral(\"path\"),\n * method: \"GET\",\n * identifierOverride: undefined\n * },\n * snippetTemplate: {\n * type: \"v1\",\n * clientInstantiation: \"clientInstantiation\",\n * functionInvocation: {\n * type: \"generic\",\n * imports: undefined,\n * isOptional: true,\n * templateString: \"templateString\",\n * templateInputs: undefined,\n * inputDelimiter: undefined\n * }\n * },\n * additionalTemplates: undefined\n * }\n * })\n */\n public register(\n request: FernRegistry.RegisterSnippetTemplateRequest,\n requestOptions?: TemplatesClient.RequestOptions,\n ): core.HttpResponsePromise<core.APIResponse<void, FernRegistry.templates.register.Error>> {\n return core.HttpResponsePromise.fromPromise(this.__register(request, requestOptions));\n }\n\n private async __register(\n request: FernRegistry.RegisterSnippetTemplateRequest,\n requestOptions?: TemplatesClient.RequestOptions,\n ): Promise<core.WithRawResponse<core.APIResponse<void, FernRegistry.templates.register.Error>>> {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(this._options?.headers, requestOptions?.headers);\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/snippet-template/register\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: undefined,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.templates.register.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Store endpoint snippets for a particular SDK.\n *\n * @param {FernRegistry.RegisterSnippetTemplateBatchRequest} request\n * @param {TemplatesClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.templates.registerBatch({\n * orgId: FernRegistry.OrgId(\"orgId\"),\n * apiId: FernRegistry.ApiId(\"apiId\"),\n * apiDefinitionId: FernRegistry.ApiDefinitionId(\"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\"),\n * snippets: [{\n * sdk: {\n * type: \"typescript\",\n * \"package\": \"package\",\n * version: \"version\"\n * },\n * endpointId: {\n * path: FernRegistry.EndpointPathLiteral(\"path\"),\n * method: \"GET\",\n * identifierOverride: undefined\n * },\n * snippetTemplate: {\n * type: \"v1\",\n * clientInstantiation: \"clientInstantiation\",\n * functionInvocation: {\n * type: \"generic\",\n * imports: undefined,\n * isOptional: true,\n * templateString: \"templateString\",\n * templateInputs: undefined,\n * inputDelimiter: undefined\n * }\n * },\n * additionalTemplates: undefined\n * }, {\n * sdk: {\n * type: \"typescript\",\n * \"package\": \"package\",\n * version: \"version\"\n * },\n * endpointId: {\n * path: FernRegistry.EndpointPathLiteral(\"path\"),\n * method: \"GET\",\n * identifierOverride: undefined\n * },\n * snippetTemplate: {\n * type: \"v1\",\n * clientInstantiation: \"clientInstantiation\",\n * functionInvocation: {\n * type: \"generic\",\n * imports: undefined,\n * isOptional: true,\n * templateString: \"templateString\",\n * templateInputs: undefined,\n * inputDelimiter: undefined\n * }\n * },\n * additionalTemplates: undefined\n * }]\n * })\n */\n public registerBatch(\n request: FernRegistry.RegisterSnippetTemplateBatchRequest,\n requestOptions?: TemplatesClient.RequestOptions,\n ): core.HttpResponsePromise<core.APIResponse<void, FernRegistry.templates.registerBatch.Error>> {\n return core.HttpResponsePromise.fromPromise(this.__registerBatch(request, requestOptions));\n }\n\n private async __registerBatch(\n request: FernRegistry.RegisterSnippetTemplateBatchRequest,\n requestOptions?: TemplatesClient.RequestOptions,\n ): Promise<core.WithRawResponse<core.APIResponse<void, FernRegistry.templates.registerBatch.Error>>> {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(this._options?.headers, requestOptions?.headers);\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/snippet-template/register/batch\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: undefined,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.templates.registerBatch.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Get the endpoint's snippet template for a particular SDK.\n *\n * @param {FernRegistry.GetSnippetTemplate} request\n * @param {TemplatesClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.templates.get({\n * orgId: FernRegistry.OrgId(\"orgId\"),\n * apiId: FernRegistry.ApiId(\"apiId\"),\n * sdk: {\n * type: \"typescript\",\n * \"package\": \"package\",\n * version: undefined\n * },\n * endpointId: {\n * path: FernRegistry.EndpointPathLiteral(\"path\"),\n * method: \"GET\",\n * identifierOverride: undefined\n * }\n * })\n */\n public get(\n request: FernRegistry.GetSnippetTemplate,\n requestOptions?: TemplatesClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<FernRegistry.EndpointSnippetTemplate, FernRegistry.templates.get.Error>\n > {\n return core.HttpResponsePromise.fromPromise(this.__get(request, requestOptions));\n }\n\n private async __get(\n request: FernRegistry.GetSnippetTemplate,\n requestOptions?: TemplatesClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<core.APIResponse<FernRegistry.EndpointSnippetTemplate, FernRegistry.templates.get.Error>>\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/snippet-template/get\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.EndpointSnippetTemplate,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.templates.get.Error)?.error) {\n case \"UnauthorizedError\":\n case \"SnippetNotFound\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.templates.get.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.templates.get.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../BaseClient.js\";\nimport { normalizeClientOptions } from \"../../../../BaseClient.js\";\nimport { mergeHeaders } from \"../../../../core/headers.js\";\nimport * as core from \"../../../../core/index.js\";\nimport * as environments from \"../../../../environments.js\";\nimport * as FernRegistry from \"../../../index.js\";\n\nexport declare namespace TokensClient {\n export interface Options extends BaseClientOptions {}\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\nexport class TokensClient {\n protected readonly _options: TokensClient.Options;\n\n constructor(options: TokensClient.Options = {}) {\n this._options = normalizeClientOptions(options);\n }\n\n /**\n * Generate a token\n *\n * @param {FernRegistry.GenerateTokenRequest} request\n * @param {TokensClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.tokens.generate({\n * orgId: FernRegistry.OrgId(\"orgId\"),\n * scope: \"scope\"\n * })\n */\n public generate(\n request: FernRegistry.GenerateTokenRequest,\n requestOptions?: TokensClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<FernRegistry.GenerateTokenResponse, FernRegistry.tokens.generate.Error>\n > {\n return core.HttpResponsePromise.fromPromise(this.__generate(request, requestOptions));\n }\n\n private async __generate(\n request: FernRegistry.GenerateTokenRequest,\n requestOptions?: TokensClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<core.APIResponse<FernRegistry.GenerateTokenResponse, FernRegistry.tokens.generate.Error>>\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(this._options?.headers, requestOptions?.headers);\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/tokens/generate\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.GenerateTokenResponse,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.tokens.generate.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Revoke a token\n *\n * @param {FernRegistry.RevokeTokenRequest} request\n * @param {TokensClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.tokens.revoke({\n * orgId: FernRegistry.OrgId(\"orgId\"),\n * tokenId: FernRegistry.TokenId(\"tokenId\")\n * })\n */\n public revoke(\n request: FernRegistry.RevokeTokenRequest,\n requestOptions?: TokensClient.RequestOptions,\n ): core.HttpResponsePromise<core.APIResponse<void, FernRegistry.tokens.revoke.Error>> {\n return core.HttpResponsePromise.fromPromise(this.__revoke(request, requestOptions));\n }\n\n private async __revoke(\n request: FernRegistry.RevokeTokenRequest,\n requestOptions?: TokensClient.RequestOptions,\n ): Promise<core.WithRawResponse<core.APIResponse<void, FernRegistry.tokens.revoke.Error>>> {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(this._options?.headers, requestOptions?.headers);\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/tokens/revoke\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: undefined,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.tokens.revoke.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport { ApiClient } from \"./api/resources/api/client/Client.js\";\nimport { DashboardClient } from \"./api/resources/dashboard/client/Client.js\";\nimport { DiffClient } from \"./api/resources/diff/client/Client.js\";\nimport { DocsClient } from \"./api/resources/docs/client/Client.js\";\nimport { DocsCacheClient } from \"./api/resources/docsCache/client/Client.js\";\nimport { GeneratorsClient } from \"./api/resources/generators/client/Client.js\";\nimport { GitClient } from \"./api/resources/git/client/Client.js\";\nimport { SdksClient } from \"./api/resources/sdks/client/Client.js\";\nimport { SnippetsClient } from \"./api/resources/snippets/client/Client.js\";\nimport { SnippetsFactoryClient } from \"./api/resources/snippetsFactory/client/Client.js\";\nimport { TemplatesClient } from \"./api/resources/templates/client/Client.js\";\nimport { TokensClient } from \"./api/resources/tokens/client/Client.js\";\nimport type { BaseClientOptions, BaseRequestOptions } from \"./BaseClient.js\";\nimport { normalizeClientOptions } from \"./BaseClient.js\";\n\nexport declare namespace FernRegistryClient {\n export interface Options extends BaseClientOptions {}\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\nexport class FernRegistryClient {\n protected readonly _options: FernRegistryClient.Options;\n protected _api: ApiClient | undefined;\n protected _dashboard: DashboardClient | undefined;\n protected _docs: DocsClient | undefined;\n protected _generators: GeneratorsClient | undefined;\n protected _diff: DiffClient | undefined;\n protected _docsCache: DocsCacheClient | undefined;\n protected _git: GitClient | undefined;\n protected _sdks: SdksClient | undefined;\n protected _snippetsFactory: SnippetsFactoryClient | undefined;\n protected _snippets: SnippetsClient | undefined;\n protected _templates: TemplatesClient | undefined;\n protected _tokens: TokensClient | undefined;\n\n constructor(options: FernRegistryClient.Options = {}) {\n this._options = normalizeClientOptions(options);\n }\n\n public get api(): ApiClient {\n return (this._api ??= new ApiClient(this._options));\n }\n\n public get dashboard(): DashboardClient {\n return (this._dashboard ??= new DashboardClient(this._options));\n }\n\n public get docs(): DocsClient {\n return (this._docs ??= new DocsClient(this._options));\n }\n\n public get generators(): GeneratorsClient {\n return (this._generators ??= new GeneratorsClient(this._options));\n }\n\n public get diff(): DiffClient {\n return (this._diff ??= new DiffClient(this._options));\n }\n\n public get docsCache(): DocsCacheClient {\n return (this._docsCache ??= new DocsCacheClient(this._options));\n }\n\n public get git(): GitClient {\n return (this._git ??= new GitClient(this._options));\n }\n\n public get sdks(): SdksClient {\n return (this._sdks ??= new SdksClient(this._options));\n }\n\n public get snippetsFactory(): SnippetsFactoryClient {\n return (this._snippetsFactory ??= new SnippetsFactoryClient(this._options));\n }\n\n public get snippets(): SnippetsClient {\n return (this._snippets ??= new SnippetsClient(this._options));\n }\n\n public get templates(): TemplatesClient {\n return (this._templates ??= new TemplatesClient(this._options));\n }\n\n public get tokens(): TokensClient {\n return (this._tokens ??= new TokensClient(this._options));\n }\n}\n"],"mappings":"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","names":["Error","WebhookHttpMethod","commons_exports","commons_exports","WebhookHttpMethod","WebhookHttpMethod","endpoint_exports","endpoint_exports","ObjectPropertyAccess","endpoint_exports","type_exports","webhook_exports","websocket_exports","Error","Error","Error","endpoint_exports","type_exports","ObjectPropertyAccess","ObjectPropertyAccess","webhook_exports","websocket_exports","ObjectPropertyAccess","endpoint_exports","type_exports","webhook_exports","websocket_exports","Error","Error","Error","endpoint_exports","type_exports","ObjectPropertyAccess","ObjectPropertyAccess","webhook_exports","websocket_exports","Error","diff_exports","Error","latest_exports","v1_exports","latest_exports","commons_exports","commons_exports","v1_exports","commons_exports","db_exports","read_exports","commons_exports","TwitterCardSetting","commons_exports","TwitterCardSetting","TwitterCardSetting","db_exports","read_exports","Error","Error","Error","Error","read_exports","write_exports","read_exports","Error","Error","Error","Error","Error","Error","Error","Error","Error","write_exports","finishDocsRegister_exports","startDocsRegister_exports","Error","Error","finishDocsRegister_exports","Error","Error","Error","Error","Error","Error","Error","Error","startDocsRegister_exports","Error","Error","Error","Error","commons_exports","Error","Error","Error","Error","Error","Error","Error","Error","Error","Error","commons_exports","getChangelog_exports","getChangelog_exports","Error","Error","Error","Error","Error","Error","Error","Error","Error","Error","Error","Error","Error","Language","versions_exports","versions_exports","Language","Error","Language","Error","Error","Error","get_exports","register_exports","get_exports","Error","register_exports","Error","Error","Error","Error","Headers","diff_exports","ReadClient","V1Client","ReadClient","ReadClient","WriteClient","ReadClient","WriteClient","V1Client","VersionsClient","VersionsClient"]}
1
+ {"version":3,"sources":["../../../src/client/FdrClient.ts","../../../src/client/generated/api/resources/api/index.ts","../../../src/client/generated/api/resources/api/resources/latest/index.ts","../../../src/client/generated/api/resources/api/resources/latest/client/getApiLatest.ts","../../../src/client/generated/api/resources/api/resources/latest/resources/auth/index.ts","../../../src/client/generated/api/resources/api/resources/latest/resources/commons/index.ts","../../../src/client/generated/api/resources/api/resources/latest/resources/endpoint/index.ts","../../../src/client/generated/api/resources/api/resources/latest/resources/type/index.ts","../../../src/client/generated/api/resources/api/resources/latest/resources/type/types/ObjectPropertyAccess.ts","../../../src/client/generated/api/resources/api/resources/latest/resources/webhook/index.ts","../../../src/client/generated/api/resources/api/resources/latest/resources/webhook/types/WebhookHttpMethod.ts","../../../src/client/generated/api/resources/api/resources/latest/resources/websocket/index.ts","../../../src/client/generated/api/resources/api/resources/v1/index.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/commons/index.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/commons/types/SubpackageId.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/commons/types/WebhookHttpMethod.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/commons/types/WebSocketMessageId.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/commons/types/WebSocketMessageOrigin.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/db/index.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/db/resources/endpoint/index.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/read/index.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/read/client/getApi.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/read/client/getEndpointById.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/read/client/getEndpointByLocator.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/read/resources/endpoint/index.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/read/resources/endpoint/types/SupportedLanguage.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/read/resources/type/index.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/read/resources/type/types/ObjectPropertyAccess.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/read/resources/webhook/index.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/read/resources/websocket/index.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/register/index.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/register/client/checkSdkDynamicIrExists.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/register/client/getSdkDynamicIrUploadUrls.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/register/client/registerApiDefinition.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/register/resources/endpoint/index.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/register/resources/type/index.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/register/resources/type/types/ObjectPropertyAccess.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/register/resources/webhook/index.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/register/resources/websocket/index.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/register/types/SourceId.ts","../../../src/client/generated/api/resources/dashboard/index.ts","../../../src/client/generated/api/resources/dashboard/client/getDocsSitesForOrg.ts","../../../src/client/generated/api/resources/diff/index.ts","../../../src/client/generated/api/resources/diff/client/diff.ts","../../../src/client/generated/api/resources/docs/index.ts","../../../src/client/generated/api/resources/docs/resources/latest/index.ts","../../../src/client/generated/api/resources/docs/resources/latest/resources/commons/index.ts","../../../src/client/generated/api/resources/docs/resources/latest/resources/frontmatter/index.ts","../../../src/client/generated/api/resources/docs/resources/latest/resources/frontmatter/types/Layout.ts","../../../src/client/generated/api/resources/docs/resources/latest/resources/seo/index.ts","../../../src/client/generated/api/resources/docs/resources/latest/resources/seo/types/TwitterCardSetting.ts","../../../src/client/generated/api/resources/docs/resources/v1/index.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/commons/index.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/commons/resources/commons/index.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/commons/resources/commons/types/AiChatLocation.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/commons/resources/commons/types/AiModel.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/commons/resources/commons/types/ContentAlignment.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/commons/resources/commons/types/DocsBodyConfig.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/commons/resources/commons/types/DocsPageActionsConfig.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/commons/resources/commons/types/DocsSidebarConfig.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/commons/resources/commons/types/DocsTabsConfig.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/commons/resources/commons/types/FontDisplay.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/commons/resources/commons/types/FontStyle.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/commons/resources/commons/types/FooterNavConfig.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/commons/resources/commons/types/HeaderPosition.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/commons/resources/commons/types/HttpSnippetLanguage.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/commons/resources/commons/types/JsScriptStrategy.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/commons/resources/commons/types/Language.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/commons/resources/commons/types/LanguageSwitcherConfig.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/commons/resources/commons/types/PageActionOption.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/commons/resources/commons/types/ProgrammingLanguage.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/commons/resources/commons/types/SearchbarPlacement.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/commons/resources/commons/types/TabsPlacement.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/commons/resources/commons/types/TwitterCardSetting.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/db/index.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/read/index.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/read/client/getDocsForDomain.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/read/client/getDocsForDomainLegacy.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/write/index.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/write/client/finishDocsRegister.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/write/client/startDocsRegister.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/write/types/DocsRegistrationId.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/write/types/FilePath.ts","../../../src/client/generated/api/resources/docs/resources/v2/index.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/read/index.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/read/client/ensureDocsInS3.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/read/client/getDocsConfigById.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/read/client/getDocsFields.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/read/client/getDocsForUrl.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/read/client/getDocsUrlMetadata.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/read/client/getOrganizationForUrl.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/read/client/getPrivateDocsForUrl.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/read/client/listAllDocsUrls.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/read/client/prepopulateFdrReadS3Bucket.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/read/types/DocsDefinitionField.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/write/index.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/write/client/addAlgoliaPreviewWhitelistEntry.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/write/client/deleteDocsSite.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/write/client/finishDocsRegister.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/write/client/getLibraryDocsGenerationStatus.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/write/client/getLibraryDocsResult.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/write/client/listAlgoliaPreviewWhitelist.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/write/client/removeAlgoliaPreviewWhitelistEntry.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/write/client/setDocsUrlMetadata.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/write/client/setIsArchived.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/write/client/startDocsPreviewRegister.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/write/client/startDocsRegister.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/write/client/startLibraryDocsGeneration.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/write/client/transferOwnershipOfDomain.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/write/types/LibraryDocsErrorCode.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/write/types/LibraryDocsGenerationStatusType.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/write/types/LibraryDocsJobId.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/write/types/LibraryLanguage.ts","../../../src/client/generated/api/resources/docsCache/index.ts","../../../src/client/generated/api/resources/docsCache/client/invalidate.ts","../../../src/client/generated/api/resources/generators/index.ts","../../../src/client/generated/api/resources/generators/client/getGenerator.ts","../../../src/client/generated/api/resources/generators/client/getGeneratorByImage.ts","../../../src/client/generated/api/resources/generators/client/listGenerators.ts","../../../src/client/generated/api/resources/generators/client/upsertGenerator.ts","../../../src/client/generated/api/resources/generators/resources/cli/index.ts","../../../src/client/generated/api/resources/generators/resources/cli/client/getChangelog.ts","../../../src/client/generated/api/resources/generators/resources/cli/client/getCliRelease.ts","../../../src/client/generated/api/resources/generators/resources/cli/client/getLatestCliRelease.ts","../../../src/client/generated/api/resources/generators/resources/cli/client/getMinCliForIr.ts","../../../src/client/generated/api/resources/generators/resources/cli/client/listCliReleases.ts","../../../src/client/generated/api/resources/generators/resources/cli/client/upsertCliRelease.ts","../../../src/client/generated/api/resources/generators/resources/commons/index.ts","../../../src/client/generated/api/resources/generators/resources/commons/types/ChangelogEntryType.ts","../../../src/client/generated/api/resources/generators/resources/commons/types/ReleaseType.ts","../../../src/client/generated/api/resources/generators/resources/versions/index.ts","../../../src/client/generated/api/resources/generators/resources/versions/client/getChangelog.ts","../../../src/client/generated/api/resources/generators/resources/versions/client/getGeneratorRelease.ts","../../../src/client/generated/api/resources/generators/resources/versions/client/getLatestGeneratorRelease.ts","../../../src/client/generated/api/resources/generators/resources/versions/client/listGeneratorReleases.ts","../../../src/client/generated/api/resources/generators/resources/versions/client/upsertGeneratorRelease.ts","../../../src/client/generated/api/resources/generators/types/GeneratorId.ts","../../../src/client/generated/api/resources/generators/types/GeneratorLanguage.ts","../../../src/client/generated/api/resources/git/index.ts","../../../src/client/generated/api/resources/git/client/deletePullRequest.ts","../../../src/client/generated/api/resources/git/client/deleteRepository.ts","../../../src/client/generated/api/resources/git/client/getPullRequest.ts","../../../src/client/generated/api/resources/git/client/getRepository.ts","../../../src/client/generated/api/resources/git/client/listPullRequests.ts","../../../src/client/generated/api/resources/git/client/listRepositories.ts","../../../src/client/generated/api/resources/git/client/upsertPullRequest.ts","../../../src/client/generated/api/resources/git/client/upsertRepository.ts","../../../src/client/generated/api/resources/git/types/PullRequestState.ts","../../../src/client/generated/api/resources/sdks/index.ts","../../../src/client/generated/api/resources/sdks/resources/versions/index.ts","../../../src/client/generated/api/resources/sdks/resources/versions/client/computeSemanticVersion.ts","../../../src/client/generated/api/resources/sdks/resources/versions/types/Language.ts","../../../src/client/generated/api/resources/sdks/resources/versions/types/VersionBump.ts","../../../src/client/generated/api/resources/snippets/index.ts","../../../src/client/generated/api/resources/snippets/client/get.ts","../../../src/client/generated/api/resources/snippets/client/load.ts","../../../src/client/generated/api/resources/snippetsFactory/index.ts","../../../src/client/generated/api/resources/snippetsFactory/client/createSnippetsForSdk.ts","../../../src/client/generated/api/resources/templates/index.ts","../../../src/client/generated/api/resources/templates/client/get.ts","../../../src/client/generated/api/resources/templates/client/register.ts","../../../src/client/generated/api/resources/templates/client/registerBatch.ts","../../../src/client/generated/api/resources/templates/types/PayloadLocation.ts","../../../src/client/generated/api/resources/tokens/index.ts","../../../src/client/generated/api/resources/tokens/client/generate.ts","../../../src/client/generated/api/resources/tokens/client/revoke.ts","../../../src/client/generated/core/headers.ts","../../../src/client/generated/core/fetcher/EndpointSupplier.ts","../../../src/client/generated/core/json.ts","../../../src/client/generated/core/logging/logger.ts","../../../src/client/generated/core/url/qs.ts","../../../src/client/generated/core/fetcher/createRequestUrl.ts","../../../src/client/generated/core/fetcher/BinaryResponse.ts","../../../src/client/generated/core/fetcher/ResponseWithBody.ts","../../../src/client/generated/core/fetcher/getResponseBody.ts","../../../src/client/generated/core/fetcher/getErrorResponseBody.ts","../../../src/client/generated/core/fetcher/getFetchFn.ts","../../../src/client/generated/core/fetcher/getRequestBody.ts","../../../src/client/generated/core/fetcher/Headers.ts","../../../src/client/generated/core/fetcher/signals.ts","../../../src/client/generated/core/fetcher/makeRequest.ts","../../../src/client/generated/core/fetcher/RawResponse.ts","../../../src/client/generated/core/fetcher/requestWithRetries.ts","../../../src/client/generated/core/fetcher/Fetcher.ts","../../../src/client/generated/core/fetcher/HttpResponsePromise.ts","../../../src/client/generated/core/fetcher/Supplier.ts","../../../src/client/generated/core/logging/index.ts","../../../src/client/generated/core/runtime/runtime.ts","../../../src/client/generated/core/url/index.ts","../../../src/client/generated/core/url/encodePathParam.ts","../../../src/client/generated/core/url/join.ts","../../../src/client/generated/BaseClient.ts","../../../src/client/generated/environments.ts","../../../src/client/generated/api/resources/api/resources/latest/client/Client.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/read/client/Client.ts","../../../src/client/generated/api/resources/api/resources/v1/resources/register/client/Client.ts","../../../src/client/generated/api/resources/api/resources/v1/client/Client.ts","../../../src/client/generated/api/resources/api/client/Client.ts","../../../src/client/generated/api/resources/dashboard/client/Client.ts","../../../src/client/generated/api/resources/diff/client/Client.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/read/client/Client.ts","../../../src/client/generated/api/resources/docs/resources/v1/resources/write/client/Client.ts","../../../src/client/generated/api/resources/docs/resources/v1/client/Client.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/read/client/Client.ts","../../../src/client/generated/api/resources/docs/resources/v2/resources/write/client/Client.ts","../../../src/client/generated/api/resources/docs/resources/v2/client/Client.ts","../../../src/client/generated/api/resources/docs/client/Client.ts","../../../src/client/generated/api/resources/docsCache/client/Client.ts","../../../src/client/generated/api/resources/generators/resources/cli/client/Client.ts","../../../src/client/generated/api/resources/generators/resources/versions/client/Client.ts","../../../src/client/generated/api/resources/generators/client/Client.ts","../../../src/client/generated/api/resources/git/client/Client.ts","../../../src/client/generated/api/resources/sdks/resources/versions/client/Client.ts","../../../src/client/generated/api/resources/sdks/client/Client.ts","../../../src/client/generated/api/resources/snippets/client/Client.ts","../../../src/client/generated/api/resources/snippetsFactory/client/Client.ts","../../../src/client/generated/api/resources/templates/client/Client.ts","../../../src/client/generated/api/resources/tokens/client/Client.ts","../../../src/client/generated/Client.ts"],"sourcesContent":["export { FernRegistryClient as FdrClient } from \"./generated\";\n","export * from \"./client/index.js\";\nexport * from \"./resources/index.js\";\n","export * from \"./client/index.js\";\nexport * from \"./resources/index.js\";\nexport * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.api.latest.getApiLatest.Error.UnauthorizedError\n | FernRegistry.api.latest.getApiLatest.Error.ApiDoesNotExistError\n | FernRegistry.api.latest.getApiLatest.Error._Unknown;\n\nexport namespace Error {\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface ApiDoesNotExistError {\n error: \"ApiDoesNotExistError\";\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n unauthorizedError: (value: string) => _Result;\n apiDoesNotExistError: () => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n unauthorizedError: (value: string): FernRegistry.api.latest.getApiLatest.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n apiDoesNotExistError: (): FernRegistry.api.latest.getApiLatest.Error.ApiDoesNotExistError => {\n return {\n error: \"ApiDoesNotExistError\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.api.latest.getApiLatest.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.api.latest.getApiLatest.Error,\n visitor: FernRegistry.api.latest.getApiLatest.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n case \"ApiDoesNotExistError\":\n return visitor.apiDoesNotExistError();\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","export * from \"./types/index.js\";\n","export * from \"./types/index.js\";\n","export * from \"./types/index.js\";\n","export * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const ObjectPropertyAccess = {\n ReadOnly: \"READ_ONLY\",\n WriteOnly: \"WRITE_ONLY\",\n} as const;\nexport type ObjectPropertyAccess = (typeof ObjectPropertyAccess)[keyof typeof ObjectPropertyAccess];\n","export * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const WebhookHttpMethod = {\n Get: \"GET\",\n Post: \"POST\",\n} as const;\nexport type WebhookHttpMethod = (typeof WebhookHttpMethod)[keyof typeof WebhookHttpMethod];\n","export * from \"./types/index.js\";\n","export * from \"./client/index.js\";\nexport * from \"./resources/index.js\";\n","export * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type SubpackageId = string & {\n api_v1_SubpackageId: void;\n};\n\nexport function SubpackageId(value: string): FernRegistry.api.v1.SubpackageId {\n return value as unknown as FernRegistry.api.v1.SubpackageId;\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const WebhookHttpMethod = {\n Get: \"GET\",\n Post: \"POST\",\n} as const;\nexport type WebhookHttpMethod = (typeof WebhookHttpMethod)[keyof typeof WebhookHttpMethod];\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type WebSocketMessageId = string & {\n api_v1_WebSocketMessageId: void;\n};\n\nexport function WebSocketMessageId(value: string): FernRegistry.api.v1.WebSocketMessageId {\n return value as unknown as FernRegistry.api.v1.WebSocketMessageId;\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const WebSocketMessageOrigin = {\n Client: \"client\",\n Server: \"server\",\n} as const;\nexport type WebSocketMessageOrigin = (typeof WebSocketMessageOrigin)[keyof typeof WebSocketMessageOrigin];\n","export * from \"./resources/index.js\";\nexport * from \"./types/index.js\";\n","export * from \"./types/index.js\";\n","export * from \"./client/index.js\";\nexport * from \"./resources/index.js\";\nexport * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.api.v1.read.getApi.Error.UnauthorizedError\n | FernRegistry.api.v1.read.getApi.Error.ApiDoesNotExistError\n | FernRegistry.api.v1.read.getApi.Error._Unknown;\n\nexport namespace Error {\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface ApiDoesNotExistError {\n error: \"ApiDoesNotExistError\";\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n unauthorizedError: (value: string) => _Result;\n apiDoesNotExistError: () => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n unauthorizedError: (value: string): FernRegistry.api.v1.read.getApi.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n apiDoesNotExistError: (): FernRegistry.api.v1.read.getApi.Error.ApiDoesNotExistError => {\n return {\n error: \"ApiDoesNotExistError\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.api.v1.read.getApi.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.api.v1.read.getApi.Error,\n visitor: FernRegistry.api.v1.read.getApi.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n case \"ApiDoesNotExistError\":\n return visitor.apiDoesNotExistError();\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.api.v1.read.getEndpointById.Error.UnauthorizedError\n | FernRegistry.api.v1.read.getEndpointById.Error.ApiDoesNotExistError\n | FernRegistry.api.v1.read.getEndpointById.Error.EndpointDoesNotExistError\n | FernRegistry.api.v1.read.getEndpointById.Error._Unknown;\n\nexport namespace Error {\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface ApiDoesNotExistError {\n error: \"ApiDoesNotExistError\";\n }\n\n export interface EndpointDoesNotExistError {\n error: \"EndpointDoesNotExistError\";\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n unauthorizedError: (value: string) => _Result;\n apiDoesNotExistError: () => _Result;\n endpointDoesNotExistError: () => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n unauthorizedError: (value: string): FernRegistry.api.v1.read.getEndpointById.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n apiDoesNotExistError: (): FernRegistry.api.v1.read.getEndpointById.Error.ApiDoesNotExistError => {\n return {\n error: \"ApiDoesNotExistError\",\n };\n },\n\n endpointDoesNotExistError: (): FernRegistry.api.v1.read.getEndpointById.Error.EndpointDoesNotExistError => {\n return {\n error: \"EndpointDoesNotExistError\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.api.v1.read.getEndpointById.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.api.v1.read.getEndpointById.Error,\n visitor: FernRegistry.api.v1.read.getEndpointById.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n case \"ApiDoesNotExistError\":\n return visitor.apiDoesNotExistError();\n case \"EndpointDoesNotExistError\":\n return visitor.endpointDoesNotExistError();\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.api.v1.read.getEndpointByLocator.Error.UnauthorizedError\n | FernRegistry.api.v1.read.getEndpointByLocator.Error.ApiDoesNotExistError\n | FernRegistry.api.v1.read.getEndpointByLocator.Error.EndpointDoesNotExistError\n | FernRegistry.api.v1.read.getEndpointByLocator.Error._Unknown;\n\nexport namespace Error {\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface ApiDoesNotExistError {\n error: \"ApiDoesNotExistError\";\n }\n\n export interface EndpointDoesNotExistError {\n error: \"EndpointDoesNotExistError\";\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n unauthorizedError: (value: string) => _Result;\n apiDoesNotExistError: () => _Result;\n endpointDoesNotExistError: () => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n unauthorizedError: (value: string): FernRegistry.api.v1.read.getEndpointByLocator.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n apiDoesNotExistError: (): FernRegistry.api.v1.read.getEndpointByLocator.Error.ApiDoesNotExistError => {\n return {\n error: \"ApiDoesNotExistError\",\n };\n },\n\n endpointDoesNotExistError: (): FernRegistry.api.v1.read.getEndpointByLocator.Error.EndpointDoesNotExistError => {\n return {\n error: \"EndpointDoesNotExistError\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.api.v1.read.getEndpointByLocator.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.api.v1.read.getEndpointByLocator.Error,\n visitor: FernRegistry.api.v1.read.getEndpointByLocator.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n case \"ApiDoesNotExistError\":\n return visitor.apiDoesNotExistError();\n case \"EndpointDoesNotExistError\":\n return visitor.endpointDoesNotExistError();\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","export * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const SupportedLanguage = {\n Curl: \"curl\",\n Python: \"python\",\n Javascript: \"javascript\",\n Js: \"js\",\n Node: \"node\",\n Typescript: \"typescript\",\n Ts: \"ts\",\n Go: \"go\",\n Ruby: \"ruby\",\n Csharp: \"csharp\",\n Php: \"php\",\n Swift: \"swift\",\n Rust: \"rust\",\n} as const;\nexport type SupportedLanguage = (typeof SupportedLanguage)[keyof typeof SupportedLanguage];\n","export * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const ObjectPropertyAccess = {\n ReadOnly: \"READ_ONLY\",\n WriteOnly: \"WRITE_ONLY\",\n} as const;\nexport type ObjectPropertyAccess = (typeof ObjectPropertyAccess)[keyof typeof ObjectPropertyAccess];\n","export * from \"./types/index.js\";\n","export * from \"./types/index.js\";\n","export * from \"./client/index.js\";\nexport * from \"./resources/index.js\";\nexport * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.api.v1.register.checkSdkDynamicIrExists.Error.UnauthorizedError\n | FernRegistry.api.v1.register.checkSdkDynamicIrExists.Error.UserNotInOrgError\n | FernRegistry.api.v1.register.checkSdkDynamicIrExists.Error._Unknown;\n\nexport namespace Error {\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface UserNotInOrgError {\n error: \"UserNotInOrgError\";\n content: string;\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n unauthorizedError: (value: string) => _Result;\n userNotInOrgError: (value: string) => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n unauthorizedError: (\n value: string,\n ): FernRegistry.api.v1.register.checkSdkDynamicIrExists.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n userNotInOrgError: (\n value: string,\n ): FernRegistry.api.v1.register.checkSdkDynamicIrExists.Error.UserNotInOrgError => {\n return {\n content: value,\n error: \"UserNotInOrgError\",\n };\n },\n\n _unknown: (\n fetcherError: core.Fetcher.Error,\n ): FernRegistry.api.v1.register.checkSdkDynamicIrExists.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.api.v1.register.checkSdkDynamicIrExists.Error,\n visitor: FernRegistry.api.v1.register.checkSdkDynamicIrExists.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n case \"UserNotInOrgError\":\n return visitor.userNotInOrgError(value.content);\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.api.v1.register.getSdkDynamicIrUploadUrls.Error.UnauthorizedError\n | FernRegistry.api.v1.register.getSdkDynamicIrUploadUrls.Error.UserNotInOrgError\n | FernRegistry.api.v1.register.getSdkDynamicIrUploadUrls.Error._Unknown;\n\nexport namespace Error {\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface UserNotInOrgError {\n error: \"UserNotInOrgError\";\n content: string;\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n unauthorizedError: (value: string) => _Result;\n userNotInOrgError: (value: string) => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n unauthorizedError: (\n value: string,\n ): FernRegistry.api.v1.register.getSdkDynamicIrUploadUrls.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n userNotInOrgError: (\n value: string,\n ): FernRegistry.api.v1.register.getSdkDynamicIrUploadUrls.Error.UserNotInOrgError => {\n return {\n content: value,\n error: \"UserNotInOrgError\",\n };\n },\n\n _unknown: (\n fetcherError: core.Fetcher.Error,\n ): FernRegistry.api.v1.register.getSdkDynamicIrUploadUrls.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.api.v1.register.getSdkDynamicIrUploadUrls.Error,\n visitor: FernRegistry.api.v1.register.getSdkDynamicIrUploadUrls.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n case \"UserNotInOrgError\":\n return visitor.userNotInOrgError(value.content);\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.api.v1.register.registerApiDefinition.Error.UnauthorizedError\n | FernRegistry.api.v1.register.registerApiDefinition.Error.UserNotInOrgError\n | FernRegistry.api.v1.register.registerApiDefinition.Error._Unknown;\n\nexport namespace Error {\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface UserNotInOrgError {\n error: \"UserNotInOrgError\";\n content: string;\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n unauthorizedError: (value: string) => _Result;\n userNotInOrgError: (value: string) => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n unauthorizedError: (value: string): FernRegistry.api.v1.register.registerApiDefinition.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n userNotInOrgError: (value: string): FernRegistry.api.v1.register.registerApiDefinition.Error.UserNotInOrgError => {\n return {\n content: value,\n error: \"UserNotInOrgError\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.api.v1.register.registerApiDefinition.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.api.v1.register.registerApiDefinition.Error,\n visitor: FernRegistry.api.v1.register.registerApiDefinition.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n case \"UserNotInOrgError\":\n return visitor.userNotInOrgError(value.content);\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","export * from \"./types/index.js\";\n","export * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const ObjectPropertyAccess = {\n ReadOnly: \"READ_ONLY\",\n WriteOnly: \"WRITE_ONLY\",\n} as const;\nexport type ObjectPropertyAccess = (typeof ObjectPropertyAccess)[keyof typeof ObjectPropertyAccess];\n","export * from \"./types/index.js\";\n","export * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type SourceId = string & {\n api_v1_register_SourceId: void;\n};\n\nexport function SourceId(value: string): FernRegistry.api.v1.register.SourceId {\n return value as unknown as FernRegistry.api.v1.register.SourceId;\n}\n","export * from \"./client/index.js\";\nexport * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../index.js\";\n\nexport type Error =\n | FernRegistry.dashboard.getDocsSitesForOrg.Error.UnauthorizedError\n | FernRegistry.dashboard.getDocsSitesForOrg.Error.UserNotInOrgError\n | FernRegistry.dashboard.getDocsSitesForOrg.Error._Unknown;\n\nexport namespace Error {\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface UserNotInOrgError {\n error: \"UserNotInOrgError\";\n content: string;\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n unauthorizedError: (value: string) => _Result;\n userNotInOrgError: (value: string) => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n unauthorizedError: (value: string): FernRegistry.dashboard.getDocsSitesForOrg.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n userNotInOrgError: (value: string): FernRegistry.dashboard.getDocsSitesForOrg.Error.UserNotInOrgError => {\n return {\n content: value,\n error: \"UserNotInOrgError\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.dashboard.getDocsSitesForOrg.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.dashboard.getDocsSitesForOrg.Error,\n visitor: FernRegistry.dashboard.getDocsSitesForOrg.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n case \"UserNotInOrgError\":\n return visitor.userNotInOrgError(value.content);\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","export * from \"./client/index.js\";\nexport * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../index.js\";\n\nexport type Error = FernRegistry.diff.diff.Error._Unknown;\n\nexport namespace Error {\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.diff.diff.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.diff.diff.Error,\n visitor: FernRegistry.diff.diff.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","export * from \"./client/index.js\";\nexport * from \"./resources/index.js\";\n","export * from \"./resources/index.js\";\nexport * from \"./types/index.js\";\n","export * from \"./types/index.js\";\n","export * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const Layout = {\n /**\n * Guides are typically long-form content, and are designed for readability. */\n Guide: \"guide\",\n /**\n * Overview pages are typically meant to be a landing page for a section of the documentation.\n * These pages are 50% wider than guide pages, but the table of contents is still visible. */\n Overview: \"overview\",\n /**\n * Reference pages are best used for API docs or other material that is meant to have a right-hand column.\n * This layout is not recommended for long-form content because they are 2x the width of guide pages and can be difficult to read.\n * Using an <Aside> component is recommended. It will generate a sticky right-hand column for the page, which is useful for code snippets.\n * <Aside> component is not available in guides and overview, and will automatically cause the layout to switch to reference.\n * Note: Table of contents are always hidden on reference pages. */\n Reference: \"reference\",\n /**\n * The layout used for full-width pages. This is useful for landing pages or other custom layouts.\n * Both the navigation sidebar and the table of contents are hidden.\n * The content will take up the full width of the page-width container, which is set by docs.yml. */\n Page: \"page\",\n /**\n * This layout takes over 100% of the viewport width, below the header.\n * Unlike PageLayout, the content will not be constrained to the page-width container, and does not render any padding. */\n Custom: \"custom\",\n} as const;\nexport type Layout = (typeof Layout)[keyof typeof Layout];\n","export * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const TwitterCardSetting = {\n Summary: \"summary\",\n SummaryLargeImage: \"summary_large_image\",\n App: \"app\",\n Player: \"player\",\n} as const;\nexport type TwitterCardSetting = (typeof TwitterCardSetting)[keyof typeof TwitterCardSetting];\n","export * from \"./client/index.js\";\nexport * from \"./resources/index.js\";\n","export * from \"./resources/index.js\";\n","export * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const AiChatLocation = {\n Docs: \"docs\",\n Slack: \"slack\",\n Discord: \"discord\",\n} as const;\nexport type AiChatLocation = (typeof AiChatLocation)[keyof typeof AiChatLocation];\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const AiModel = {\n Claude35: \"claude-3.5\",\n Claude37: \"claude-3.7\",\n Claude4: \"claude-4\",\n CommandA: \"command-a\",\n} as const;\nexport type AiModel = (typeof AiModel)[keyof typeof AiModel];\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const ContentAlignment = {\n Center: \"CENTER\",\n Left: \"LEFT\",\n} as const;\nexport type ContentAlignment = (typeof ContentAlignment)[keyof typeof ContentAlignment];\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const DocsBodyConfig = {\n Default: \"default\",\n Canvas: \"canvas\",\n} as const;\nexport type DocsBodyConfig = (typeof DocsBodyConfig)[keyof typeof DocsBodyConfig];\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const DocsPageActionsConfig = {\n Default: \"default\",\n Toolbar: \"toolbar\",\n} as const;\nexport type DocsPageActionsConfig = (typeof DocsPageActionsConfig)[keyof typeof DocsPageActionsConfig];\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const DocsSidebarConfig = {\n Default: \"default\",\n Minimal: \"minimal\",\n} as const;\nexport type DocsSidebarConfig = (typeof DocsSidebarConfig)[keyof typeof DocsSidebarConfig];\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const DocsTabsConfig = {\n Default: \"default\",\n Bubble: \"bubble\",\n} as const;\nexport type DocsTabsConfig = (typeof DocsTabsConfig)[keyof typeof DocsTabsConfig];\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const FontDisplay = {\n Auto: \"auto\",\n Block: \"block\",\n Swap: \"swap\",\n Fallback: \"fallback\",\n Optional: \"optional\",\n} as const;\nexport type FontDisplay = (typeof FontDisplay)[keyof typeof FontDisplay];\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const FontStyle = {\n Normal: \"normal\",\n Italic: \"italic\",\n} as const;\nexport type FontStyle = (typeof FontStyle)[keyof typeof FontStyle];\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const FooterNavConfig = {\n Default: \"default\",\n Minimal: \"minimal\",\n} as const;\nexport type FooterNavConfig = (typeof FooterNavConfig)[keyof typeof FooterNavConfig];\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const HeaderPosition = {\n Fixed: \"FIXED\",\n Absolute: \"ABSOLUTE\",\n} as const;\nexport type HeaderPosition = (typeof HeaderPosition)[keyof typeof HeaderPosition];\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const HttpSnippetLanguage = {\n Curl: \"curl\",\n Csharp: \"csharp\",\n Go: \"go\",\n Java: \"java\",\n Javascript: \"javascript\",\n Php: \"php\",\n Python: \"python\",\n Ruby: \"ruby\",\n Swift: \"swift\",\n Rust: \"rust\",\n Typescript: \"typescript\",\n} as const;\nexport type HttpSnippetLanguage = (typeof HttpSnippetLanguage)[keyof typeof HttpSnippetLanguage];\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const JsScriptStrategy = {\n BeforeInteractive: \"beforeInteractive\",\n AfterInteractive: \"afterInteractive\",\n LazyOnload: \"lazyOnload\",\n} as const;\nexport type JsScriptStrategy = (typeof JsScriptStrategy)[keyof typeof JsScriptStrategy];\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const Language = {\n En: \"en\",\n Es: \"es\",\n Fr: \"fr\",\n De: \"de\",\n It: \"it\",\n Pt: \"pt\",\n Ja: \"ja\",\n Zh: \"zh\",\n Ko: \"ko\",\n El: \"el\",\n No: \"no\",\n Pl: \"pl\",\n Ru: \"ru\",\n Sv: \"sv\",\n Tr: \"tr\",\n} as const;\nexport type Language = (typeof Language)[keyof typeof Language];\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const LanguageSwitcherConfig = {\n Default: \"default\",\n Minimal: \"minimal\",\n} as const;\nexport type LanguageSwitcherConfig = (typeof LanguageSwitcherConfig)[keyof typeof LanguageSwitcherConfig];\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const PageActionOption = {\n CopyPage: \"copyPage\",\n ViewAsMarkdown: \"viewAsMarkdown\",\n AskAi: \"askAi\",\n OpenAi: \"openAi\",\n Claude: \"claude\",\n Cursor: \"cursor\",\n Vscode: \"vscode\",\n} as const;\nexport type PageActionOption = (typeof PageActionOption)[keyof typeof PageActionOption];\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const ProgrammingLanguage = {\n Typescript: \"typescript\",\n Javascript: \"javascript\",\n Python: \"python\",\n Java: \"java\",\n Go: \"go\",\n Ruby: \"ruby\",\n Csharp: \"csharp\",\n Php: \"php\",\n Swift: \"swift\",\n Rust: \"rust\",\n Nodets: \"nodets\",\n Nodejs: \"nodejs\",\n Dotnet: \"dotnet\",\n Curl: \"curl\",\n Jvm: \"jvm\",\n Ts: \"ts\",\n Js: \"js\",\n} as const;\nexport type ProgrammingLanguage = (typeof ProgrammingLanguage)[keyof typeof ProgrammingLanguage];\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const SearchbarPlacement = {\n Header: \"HEADER\",\n HeaderTabs: \"HEADER_TABS\",\n Sidebar: \"SIDEBAR\",\n} as const;\nexport type SearchbarPlacement = (typeof SearchbarPlacement)[keyof typeof SearchbarPlacement];\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const TabsPlacement = {\n Header: \"HEADER\",\n Sidebar: \"SIDEBAR\",\n} as const;\nexport type TabsPlacement = (typeof TabsPlacement)[keyof typeof TabsPlacement];\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const TwitterCardSetting = {\n Summary: \"summary\",\n SummaryLargeImage: \"summary_large_image\",\n App: \"app\",\n Player: \"player\",\n} as const;\nexport type TwitterCardSetting = (typeof TwitterCardSetting)[keyof typeof TwitterCardSetting];\n","export * from \"./types/index.js\";\n","export * from \"./client/index.js\";\nexport * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.docs.v1.read.getDocsForDomain.Error.UnauthorizedError\n | FernRegistry.docs.v1.read.getDocsForDomain.Error.DomainNotRegisteredError\n | FernRegistry.docs.v1.read.getDocsForDomain.Error._Unknown;\n\nexport namespace Error {\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface DomainNotRegisteredError {\n error: \"DomainNotRegisteredError\";\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n unauthorizedError: (value: string) => _Result;\n domainNotRegisteredError: () => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n unauthorizedError: (value: string): FernRegistry.docs.v1.read.getDocsForDomain.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n domainNotRegisteredError: (): FernRegistry.docs.v1.read.getDocsForDomain.Error.DomainNotRegisteredError => {\n return {\n error: \"DomainNotRegisteredError\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.docs.v1.read.getDocsForDomain.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.docs.v1.read.getDocsForDomain.Error,\n visitor: FernRegistry.docs.v1.read.getDocsForDomain.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n case \"DomainNotRegisteredError\":\n return visitor.domainNotRegisteredError();\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.docs.v1.read.getDocsForDomainLegacy.Error.UnauthorizedError\n | FernRegistry.docs.v1.read.getDocsForDomainLegacy.Error.DomainNotRegisteredError\n | FernRegistry.docs.v1.read.getDocsForDomainLegacy.Error._Unknown;\n\nexport namespace Error {\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface DomainNotRegisteredError {\n error: \"DomainNotRegisteredError\";\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n unauthorizedError: (value: string) => _Result;\n domainNotRegisteredError: () => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n unauthorizedError: (value: string): FernRegistry.docs.v1.read.getDocsForDomainLegacy.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n domainNotRegisteredError: (): FernRegistry.docs.v1.read.getDocsForDomainLegacy.Error.DomainNotRegisteredError => {\n return {\n error: \"DomainNotRegisteredError\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.docs.v1.read.getDocsForDomainLegacy.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.docs.v1.read.getDocsForDomainLegacy.Error,\n visitor: FernRegistry.docs.v1.read.getDocsForDomainLegacy.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n case \"DomainNotRegisteredError\":\n return visitor.domainNotRegisteredError();\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","export * from \"./client/index.js\";\nexport * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.docs.v1.write.finishDocsRegister.Error.UnauthorizedError\n | FernRegistry.docs.v1.write.finishDocsRegister.Error.UserNotInOrgError\n | FernRegistry.docs.v1.write.finishDocsRegister.Error.DocsRegistrationIdNotFound\n | FernRegistry.docs.v1.write.finishDocsRegister.Error._Unknown;\n\nexport namespace Error {\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface UserNotInOrgError {\n error: \"UserNotInOrgError\";\n content: string;\n }\n\n export interface DocsRegistrationIdNotFound {\n error: \"DocsRegistrationIdNotFound\";\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n unauthorizedError: (value: string) => _Result;\n userNotInOrgError: (value: string) => _Result;\n docsRegistrationIdNotFound: () => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n unauthorizedError: (value: string): FernRegistry.docs.v1.write.finishDocsRegister.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n userNotInOrgError: (value: string): FernRegistry.docs.v1.write.finishDocsRegister.Error.UserNotInOrgError => {\n return {\n content: value,\n error: \"UserNotInOrgError\",\n };\n },\n\n docsRegistrationIdNotFound: (): FernRegistry.docs.v1.write.finishDocsRegister.Error.DocsRegistrationIdNotFound => {\n return {\n error: \"DocsRegistrationIdNotFound\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.docs.v1.write.finishDocsRegister.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.docs.v1.write.finishDocsRegister.Error,\n visitor: FernRegistry.docs.v1.write.finishDocsRegister.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n case \"UserNotInOrgError\":\n return visitor.userNotInOrgError(value.content);\n case \"DocsRegistrationIdNotFound\":\n return visitor.docsRegistrationIdNotFound();\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error = FernRegistry.docs.v1.write.startDocsRegister.Error._Unknown;\n\nexport namespace Error {\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.docs.v1.write.startDocsRegister.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.docs.v1.write.startDocsRegister.Error,\n visitor: FernRegistry.docs.v1.write.startDocsRegister.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type DocsRegistrationId = string & {\n docs_v1_write_DocsRegistrationId: void;\n};\n\nexport function DocsRegistrationId(value: string): FernRegistry.docs.v1.write.DocsRegistrationId {\n return value as unknown as FernRegistry.docs.v1.write.DocsRegistrationId;\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\n/**\n * Each string is a unique key for the file. You can use the filepath as a key.\n */\nexport type FilePath = string & {\n docs_v1_write_FilePath: void;\n};\n\nexport function FilePath(value: string): FernRegistry.docs.v1.write.FilePath {\n return value as unknown as FernRegistry.docs.v1.write.FilePath;\n}\n","export * from \"./client/index.js\";\nexport * from \"./resources/index.js\";\n","export * from \"./client/index.js\";\nexport * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.docs.v2.read.ensureDocsInS3.Error.DomainNotRegisteredError\n | FernRegistry.docs.v2.read.ensureDocsInS3.Error.UnauthorizedError\n | FernRegistry.docs.v2.read.ensureDocsInS3.Error._Unknown;\n\nexport namespace Error {\n export interface DomainNotRegisteredError {\n error: \"DomainNotRegisteredError\";\n }\n\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n domainNotRegisteredError: () => _Result;\n unauthorizedError: (value: string) => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n domainNotRegisteredError: (): FernRegistry.docs.v2.read.ensureDocsInS3.Error.DomainNotRegisteredError => {\n return {\n error: \"DomainNotRegisteredError\",\n };\n },\n\n unauthorizedError: (value: string): FernRegistry.docs.v2.read.ensureDocsInS3.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.docs.v2.read.ensureDocsInS3.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.docs.v2.read.ensureDocsInS3.Error,\n visitor: FernRegistry.docs.v2.read.ensureDocsInS3.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"DomainNotRegisteredError\":\n return visitor.domainNotRegisteredError();\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.docs.v2.read.getDocsConfigById.Error.DocsDefinitionNotFoundError\n | FernRegistry.docs.v2.read.getDocsConfigById.Error._Unknown;\n\nexport namespace Error {\n export interface DocsDefinitionNotFoundError {\n error: \"DocsDefinitionNotFoundError\";\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n docsDefinitionNotFoundError: () => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n docsDefinitionNotFoundError: (): FernRegistry.docs.v2.read.getDocsConfigById.Error.DocsDefinitionNotFoundError => {\n return {\n error: \"DocsDefinitionNotFoundError\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.docs.v2.read.getDocsConfigById.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.docs.v2.read.getDocsConfigById.Error,\n visitor: FernRegistry.docs.v2.read.getDocsConfigById.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"DocsDefinitionNotFoundError\":\n return visitor.docsDefinitionNotFoundError();\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.docs.v2.read.getDocsFields.Error.DomainNotRegisteredError\n | FernRegistry.docs.v2.read.getDocsFields.Error.UnauthorizedError\n | FernRegistry.docs.v2.read.getDocsFields.Error._Unknown;\n\nexport namespace Error {\n export interface DomainNotRegisteredError {\n error: \"DomainNotRegisteredError\";\n }\n\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n domainNotRegisteredError: () => _Result;\n unauthorizedError: (value: string) => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n domainNotRegisteredError: (): FernRegistry.docs.v2.read.getDocsFields.Error.DomainNotRegisteredError => {\n return {\n error: \"DomainNotRegisteredError\",\n };\n },\n\n unauthorizedError: (value: string): FernRegistry.docs.v2.read.getDocsFields.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.docs.v2.read.getDocsFields.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.docs.v2.read.getDocsFields.Error,\n visitor: FernRegistry.docs.v2.read.getDocsFields.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"DomainNotRegisteredError\":\n return visitor.domainNotRegisteredError();\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.docs.v2.read.getDocsForUrl.Error.DomainNotRegisteredError\n | FernRegistry.docs.v2.read.getDocsForUrl.Error.UnauthorizedError\n | FernRegistry.docs.v2.read.getDocsForUrl.Error._Unknown;\n\nexport namespace Error {\n export interface DomainNotRegisteredError {\n error: \"DomainNotRegisteredError\";\n }\n\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n domainNotRegisteredError: () => _Result;\n unauthorizedError: (value: string) => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n domainNotRegisteredError: (): FernRegistry.docs.v2.read.getDocsForUrl.Error.DomainNotRegisteredError => {\n return {\n error: \"DomainNotRegisteredError\",\n };\n },\n\n unauthorizedError: (value: string): FernRegistry.docs.v2.read.getDocsForUrl.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.docs.v2.read.getDocsForUrl.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.docs.v2.read.getDocsForUrl.Error,\n visitor: FernRegistry.docs.v2.read.getDocsForUrl.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"DomainNotRegisteredError\":\n return visitor.domainNotRegisteredError();\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.docs.v2.read.getDocsUrlMetadata.Error.DomainNotRegisteredError\n | FernRegistry.docs.v2.read.getDocsUrlMetadata.Error._Unknown;\n\nexport namespace Error {\n export interface DomainNotRegisteredError {\n error: \"DomainNotRegisteredError\";\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n domainNotRegisteredError: () => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n domainNotRegisteredError: (): FernRegistry.docs.v2.read.getDocsUrlMetadata.Error.DomainNotRegisteredError => {\n return {\n error: \"DomainNotRegisteredError\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.docs.v2.read.getDocsUrlMetadata.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.docs.v2.read.getDocsUrlMetadata.Error,\n visitor: FernRegistry.docs.v2.read.getDocsUrlMetadata.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"DomainNotRegisteredError\":\n return visitor.domainNotRegisteredError();\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.docs.v2.read.getOrganizationForUrl.Error.DomainNotRegisteredError\n | FernRegistry.docs.v2.read.getOrganizationForUrl.Error._Unknown;\n\nexport namespace Error {\n export interface DomainNotRegisteredError {\n error: \"DomainNotRegisteredError\";\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n domainNotRegisteredError: () => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n domainNotRegisteredError: (): FernRegistry.docs.v2.read.getOrganizationForUrl.Error.DomainNotRegisteredError => {\n return {\n error: \"DomainNotRegisteredError\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.docs.v2.read.getOrganizationForUrl.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.docs.v2.read.getOrganizationForUrl.Error,\n visitor: FernRegistry.docs.v2.read.getOrganizationForUrl.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"DomainNotRegisteredError\":\n return visitor.domainNotRegisteredError();\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.docs.v2.read.getPrivateDocsForUrl.Error.DomainNotRegisteredError\n | FernRegistry.docs.v2.read.getPrivateDocsForUrl.Error.UnauthorizedError\n | FernRegistry.docs.v2.read.getPrivateDocsForUrl.Error._Unknown;\n\nexport namespace Error {\n export interface DomainNotRegisteredError {\n error: \"DomainNotRegisteredError\";\n }\n\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n domainNotRegisteredError: () => _Result;\n unauthorizedError: (value: string) => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n domainNotRegisteredError: (): FernRegistry.docs.v2.read.getPrivateDocsForUrl.Error.DomainNotRegisteredError => {\n return {\n error: \"DomainNotRegisteredError\",\n };\n },\n\n unauthorizedError: (value: string): FernRegistry.docs.v2.read.getPrivateDocsForUrl.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.docs.v2.read.getPrivateDocsForUrl.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.docs.v2.read.getPrivateDocsForUrl.Error,\n visitor: FernRegistry.docs.v2.read.getPrivateDocsForUrl.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"DomainNotRegisteredError\":\n return visitor.domainNotRegisteredError();\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.docs.v2.read.listAllDocsUrls.Error.UnauthorizedError\n | FernRegistry.docs.v2.read.listAllDocsUrls.Error._Unknown;\n\nexport namespace Error {\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n unauthorizedError: (value: string) => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n unauthorizedError: (value: string): FernRegistry.docs.v2.read.listAllDocsUrls.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.docs.v2.read.listAllDocsUrls.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.docs.v2.read.listAllDocsUrls.Error,\n visitor: FernRegistry.docs.v2.read.listAllDocsUrls.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error = FernRegistry.docs.v2.read.prepopulateFdrReadS3Bucket.Error._Unknown;\n\nexport namespace Error {\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n _unknown: (\n fetcherError: core.Fetcher.Error,\n ): FernRegistry.docs.v2.read.prepopulateFdrReadS3Bucket.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.docs.v2.read.prepopulateFdrReadS3Bucket.Error,\n visitor: FernRegistry.docs.v2.read.prepopulateFdrReadS3Bucket.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\n/** Fields that can be requested from the docs definition */\nexport const DocsDefinitionField = {\n BaseUrl: \"BASE_URL\",\n FilesV2: \"FILES_V2\",\n ApisV2: \"APIS_V2\",\n Apis: \"APIS\",\n Pages: \"PAGES\",\n JsFiles: \"JS_FILES\",\n Config: \"CONFIG\",\n Root: \"ROOT\",\n} as const;\nexport type DocsDefinitionField = (typeof DocsDefinitionField)[keyof typeof DocsDefinitionField];\n","export * from \"./client/index.js\";\nexport * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.docs.v2.write.addAlgoliaPreviewWhitelistEntry.Error.UnauthorizedError\n | FernRegistry.docs.v2.write.addAlgoliaPreviewWhitelistEntry.Error._Unknown;\n\nexport namespace Error {\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n unauthorizedError: (value: string) => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n unauthorizedError: (\n value: string,\n ): FernRegistry.docs.v2.write.addAlgoliaPreviewWhitelistEntry.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n _unknown: (\n fetcherError: core.Fetcher.Error,\n ): FernRegistry.docs.v2.write.addAlgoliaPreviewWhitelistEntry.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.docs.v2.write.addAlgoliaPreviewWhitelistEntry.Error,\n visitor: FernRegistry.docs.v2.write.addAlgoliaPreviewWhitelistEntry.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.docs.v2.write.deleteDocsSite.Error.DocsNotFoundError\n | FernRegistry.docs.v2.write.deleteDocsSite.Error.UnauthorizedError\n | FernRegistry.docs.v2.write.deleteDocsSite.Error._Unknown;\n\nexport namespace Error {\n export interface DocsNotFoundError {\n error: \"DocsNotFoundError\";\n }\n\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n docsNotFoundError: () => _Result;\n unauthorizedError: (value: string) => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n docsNotFoundError: (): FernRegistry.docs.v2.write.deleteDocsSite.Error.DocsNotFoundError => {\n return {\n error: \"DocsNotFoundError\",\n };\n },\n\n unauthorizedError: (value: string): FernRegistry.docs.v2.write.deleteDocsSite.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.docs.v2.write.deleteDocsSite.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.docs.v2.write.deleteDocsSite.Error,\n visitor: FernRegistry.docs.v2.write.deleteDocsSite.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"DocsNotFoundError\":\n return visitor.docsNotFoundError();\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.docs.v2.write.finishDocsRegister.Error.UnauthorizedError\n | FernRegistry.docs.v2.write.finishDocsRegister.Error.UserNotInOrgError\n | FernRegistry.docs.v2.write.finishDocsRegister.Error.DocsRegistrationIdNotFound\n | FernRegistry.docs.v2.write.finishDocsRegister.Error._Unknown;\n\nexport namespace Error {\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface UserNotInOrgError {\n error: \"UserNotInOrgError\";\n content: string;\n }\n\n export interface DocsRegistrationIdNotFound {\n error: \"DocsRegistrationIdNotFound\";\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n unauthorizedError: (value: string) => _Result;\n userNotInOrgError: (value: string) => _Result;\n docsRegistrationIdNotFound: () => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n unauthorizedError: (value: string): FernRegistry.docs.v2.write.finishDocsRegister.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n userNotInOrgError: (value: string): FernRegistry.docs.v2.write.finishDocsRegister.Error.UserNotInOrgError => {\n return {\n content: value,\n error: \"UserNotInOrgError\",\n };\n },\n\n docsRegistrationIdNotFound: (): FernRegistry.docs.v2.write.finishDocsRegister.Error.DocsRegistrationIdNotFound => {\n return {\n error: \"DocsRegistrationIdNotFound\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.docs.v2.write.finishDocsRegister.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.docs.v2.write.finishDocsRegister.Error,\n visitor: FernRegistry.docs.v2.write.finishDocsRegister.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n case \"UserNotInOrgError\":\n return visitor.userNotInOrgError(value.content);\n case \"DocsRegistrationIdNotFound\":\n return visitor.docsRegistrationIdNotFound();\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.docs.v2.write.getLibraryDocsGenerationStatus.Error.LibraryDocsJobNotFoundError\n | FernRegistry.docs.v2.write.getLibraryDocsGenerationStatus.Error._Unknown;\n\nexport namespace Error {\n export interface LibraryDocsJobNotFoundError {\n error: \"LibraryDocsJobNotFoundError\";\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n libraryDocsJobNotFoundError: () => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n libraryDocsJobNotFoundError:\n (): FernRegistry.docs.v2.write.getLibraryDocsGenerationStatus.Error.LibraryDocsJobNotFoundError => {\n return {\n error: \"LibraryDocsJobNotFoundError\",\n };\n },\n\n _unknown: (\n fetcherError: core.Fetcher.Error,\n ): FernRegistry.docs.v2.write.getLibraryDocsGenerationStatus.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.docs.v2.write.getLibraryDocsGenerationStatus.Error,\n visitor: FernRegistry.docs.v2.write.getLibraryDocsGenerationStatus.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"LibraryDocsJobNotFoundError\":\n return visitor.libraryDocsJobNotFoundError();\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.docs.v2.write.getLibraryDocsResult.Error.LibraryDocsJobNotFoundError\n | FernRegistry.docs.v2.write.getLibraryDocsResult.Error.LibraryDocsGenerationNotCompleteError\n | FernRegistry.docs.v2.write.getLibraryDocsResult.Error._Unknown;\n\nexport namespace Error {\n export interface LibraryDocsJobNotFoundError {\n error: \"LibraryDocsJobNotFoundError\";\n }\n\n export interface LibraryDocsGenerationNotCompleteError {\n error: \"LibraryDocsGenerationNotCompleteError\";\n content: string;\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n libraryDocsJobNotFoundError: () => _Result;\n libraryDocsGenerationNotCompleteError: (value: string) => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n libraryDocsJobNotFoundError:\n (): FernRegistry.docs.v2.write.getLibraryDocsResult.Error.LibraryDocsJobNotFoundError => {\n return {\n error: \"LibraryDocsJobNotFoundError\",\n };\n },\n\n libraryDocsGenerationNotCompleteError: (\n value: string,\n ): FernRegistry.docs.v2.write.getLibraryDocsResult.Error.LibraryDocsGenerationNotCompleteError => {\n return {\n content: value,\n error: \"LibraryDocsGenerationNotCompleteError\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.docs.v2.write.getLibraryDocsResult.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.docs.v2.write.getLibraryDocsResult.Error,\n visitor: FernRegistry.docs.v2.write.getLibraryDocsResult.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"LibraryDocsJobNotFoundError\":\n return visitor.libraryDocsJobNotFoundError();\n case \"LibraryDocsGenerationNotCompleteError\":\n return visitor.libraryDocsGenerationNotCompleteError(value.content);\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.docs.v2.write.listAlgoliaPreviewWhitelist.Error.UnauthorizedError\n | FernRegistry.docs.v2.write.listAlgoliaPreviewWhitelist.Error._Unknown;\n\nexport namespace Error {\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n unauthorizedError: (value: string) => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n unauthorizedError: (\n value: string,\n ): FernRegistry.docs.v2.write.listAlgoliaPreviewWhitelist.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n _unknown: (\n fetcherError: core.Fetcher.Error,\n ): FernRegistry.docs.v2.write.listAlgoliaPreviewWhitelist.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.docs.v2.write.listAlgoliaPreviewWhitelist.Error,\n visitor: FernRegistry.docs.v2.write.listAlgoliaPreviewWhitelist.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.docs.v2.write.removeAlgoliaPreviewWhitelistEntry.Error.UnauthorizedError\n | FernRegistry.docs.v2.write.removeAlgoliaPreviewWhitelistEntry.Error._Unknown;\n\nexport namespace Error {\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n unauthorizedError: (value: string) => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n unauthorizedError: (\n value: string,\n ): FernRegistry.docs.v2.write.removeAlgoliaPreviewWhitelistEntry.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n _unknown: (\n fetcherError: core.Fetcher.Error,\n ): FernRegistry.docs.v2.write.removeAlgoliaPreviewWhitelistEntry.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.docs.v2.write.removeAlgoliaPreviewWhitelistEntry.Error,\n visitor: FernRegistry.docs.v2.write.removeAlgoliaPreviewWhitelistEntry.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.docs.v2.write.setDocsUrlMetadata.Error.DocsNotFoundError\n | FernRegistry.docs.v2.write.setDocsUrlMetadata.Error.UnauthorizedError\n | FernRegistry.docs.v2.write.setDocsUrlMetadata.Error._Unknown;\n\nexport namespace Error {\n export interface DocsNotFoundError {\n error: \"DocsNotFoundError\";\n }\n\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n docsNotFoundError: () => _Result;\n unauthorizedError: (value: string) => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n docsNotFoundError: (): FernRegistry.docs.v2.write.setDocsUrlMetadata.Error.DocsNotFoundError => {\n return {\n error: \"DocsNotFoundError\",\n };\n },\n\n unauthorizedError: (value: string): FernRegistry.docs.v2.write.setDocsUrlMetadata.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.docs.v2.write.setDocsUrlMetadata.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.docs.v2.write.setDocsUrlMetadata.Error,\n visitor: FernRegistry.docs.v2.write.setDocsUrlMetadata.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"DocsNotFoundError\":\n return visitor.docsNotFoundError();\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.docs.v2.write.setIsArchived.Error.DocsNotFoundError\n | FernRegistry.docs.v2.write.setIsArchived.Error.UnauthorizedError\n | FernRegistry.docs.v2.write.setIsArchived.Error._Unknown;\n\nexport namespace Error {\n export interface DocsNotFoundError {\n error: \"DocsNotFoundError\";\n }\n\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n docsNotFoundError: () => _Result;\n unauthorizedError: (value: string) => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n docsNotFoundError: (): FernRegistry.docs.v2.write.setIsArchived.Error.DocsNotFoundError => {\n return {\n error: \"DocsNotFoundError\",\n };\n },\n\n unauthorizedError: (value: string): FernRegistry.docs.v2.write.setIsArchived.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.docs.v2.write.setIsArchived.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.docs.v2.write.setIsArchived.Error,\n visitor: FernRegistry.docs.v2.write.setIsArchived.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"DocsNotFoundError\":\n return visitor.docsNotFoundError();\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.docs.v2.write.startDocsPreviewRegister.Error.UnauthorizedError\n | FernRegistry.docs.v2.write.startDocsPreviewRegister.Error.UnavailableError\n | FernRegistry.docs.v2.write.startDocsPreviewRegister.Error.UserNotInOrgError\n | FernRegistry.docs.v2.write.startDocsPreviewRegister.Error.InvalidDomainError\n | FernRegistry.docs.v2.write.startDocsPreviewRegister.Error._Unknown;\n\nexport namespace Error {\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface UnavailableError {\n error: \"UnavailableError\";\n content: string;\n }\n\n export interface UserNotInOrgError {\n error: \"UserNotInOrgError\";\n content: string;\n }\n\n export interface InvalidDomainError {\n error: \"InvalidDomainError\";\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n unauthorizedError: (value: string) => _Result;\n unavailableError: (value: string) => _Result;\n userNotInOrgError: (value: string) => _Result;\n invalidDomainError: () => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n unauthorizedError: (value: string): FernRegistry.docs.v2.write.startDocsPreviewRegister.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n unavailableError: (value: string): FernRegistry.docs.v2.write.startDocsPreviewRegister.Error.UnavailableError => {\n return {\n content: value,\n error: \"UnavailableError\",\n };\n },\n\n userNotInOrgError: (value: string): FernRegistry.docs.v2.write.startDocsPreviewRegister.Error.UserNotInOrgError => {\n return {\n content: value,\n error: \"UserNotInOrgError\",\n };\n },\n\n invalidDomainError: (): FernRegistry.docs.v2.write.startDocsPreviewRegister.Error.InvalidDomainError => {\n return {\n error: \"InvalidDomainError\",\n };\n },\n\n _unknown: (\n fetcherError: core.Fetcher.Error,\n ): FernRegistry.docs.v2.write.startDocsPreviewRegister.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.docs.v2.write.startDocsPreviewRegister.Error,\n visitor: FernRegistry.docs.v2.write.startDocsPreviewRegister.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n case \"UnavailableError\":\n return visitor.unavailableError(value.content);\n case \"UserNotInOrgError\":\n return visitor.userNotInOrgError(value.content);\n case \"InvalidDomainError\":\n return visitor.invalidDomainError();\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.docs.v2.write.startDocsRegister.Error.UnauthorizedError\n | FernRegistry.docs.v2.write.startDocsRegister.Error.UnavailableError\n | FernRegistry.docs.v2.write.startDocsRegister.Error.UserNotInOrgError\n | FernRegistry.docs.v2.write.startDocsRegister.Error.InvalidDomainError\n | FernRegistry.docs.v2.write.startDocsRegister.Error.InvalidCustomDomainError\n | FernRegistry.docs.v2.write.startDocsRegister.Error.DomainBelongsToAnotherOrgError\n | FernRegistry.docs.v2.write.startDocsRegister.Error.InvalidUrlError\n | FernRegistry.docs.v2.write.startDocsRegister.Error._Unknown;\n\nexport namespace Error {\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface UnavailableError {\n error: \"UnavailableError\";\n content: string;\n }\n\n export interface UserNotInOrgError {\n error: \"UserNotInOrgError\";\n content: string;\n }\n\n export interface InvalidDomainError {\n error: \"InvalidDomainError\";\n }\n\n export interface InvalidCustomDomainError {\n error: \"InvalidCustomDomainError\";\n }\n\n export interface DomainBelongsToAnotherOrgError {\n error: \"DomainBelongsToAnotherOrgError\";\n content: string;\n }\n\n export interface InvalidUrlError {\n error: \"InvalidURLError\";\n content: string;\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n unauthorizedError: (value: string) => _Result;\n unavailableError: (value: string) => _Result;\n userNotInOrgError: (value: string) => _Result;\n invalidDomainError: () => _Result;\n invalidCustomDomainError: () => _Result;\n domainBelongsToAnotherOrgError: (value: string) => _Result;\n invalidUrlError: (value: string) => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n unauthorizedError: (value: string): FernRegistry.docs.v2.write.startDocsRegister.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n unavailableError: (value: string): FernRegistry.docs.v2.write.startDocsRegister.Error.UnavailableError => {\n return {\n content: value,\n error: \"UnavailableError\",\n };\n },\n\n userNotInOrgError: (value: string): FernRegistry.docs.v2.write.startDocsRegister.Error.UserNotInOrgError => {\n return {\n content: value,\n error: \"UserNotInOrgError\",\n };\n },\n\n invalidDomainError: (): FernRegistry.docs.v2.write.startDocsRegister.Error.InvalidDomainError => {\n return {\n error: \"InvalidDomainError\",\n };\n },\n\n invalidCustomDomainError: (): FernRegistry.docs.v2.write.startDocsRegister.Error.InvalidCustomDomainError => {\n return {\n error: \"InvalidCustomDomainError\",\n };\n },\n\n domainBelongsToAnotherOrgError: (\n value: string,\n ): FernRegistry.docs.v2.write.startDocsRegister.Error.DomainBelongsToAnotherOrgError => {\n return {\n content: value,\n error: \"DomainBelongsToAnotherOrgError\",\n };\n },\n\n invalidUrlError: (value: string): FernRegistry.docs.v2.write.startDocsRegister.Error.InvalidUrlError => {\n return {\n content: value,\n error: \"InvalidURLError\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.docs.v2.write.startDocsRegister.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.docs.v2.write.startDocsRegister.Error,\n visitor: FernRegistry.docs.v2.write.startDocsRegister.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n case \"UnavailableError\":\n return visitor.unavailableError(value.content);\n case \"UserNotInOrgError\":\n return visitor.userNotInOrgError(value.content);\n case \"InvalidDomainError\":\n return visitor.invalidDomainError();\n case \"InvalidCustomDomainError\":\n return visitor.invalidCustomDomainError();\n case \"DomainBelongsToAnotherOrgError\":\n return visitor.domainBelongsToAnotherOrgError(value.content);\n case \"InvalidURLError\":\n return visitor.invalidUrlError(value.content);\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.docs.v2.write.startLibraryDocsGeneration.Error.UnauthorizedError\n | FernRegistry.docs.v2.write.startLibraryDocsGeneration.Error.UserNotInOrgError\n | FernRegistry.docs.v2.write.startLibraryDocsGeneration.Error.InvalidGithubUrlError\n | FernRegistry.docs.v2.write.startLibraryDocsGeneration.Error.UnsupportedLanguageError\n | FernRegistry.docs.v2.write.startLibraryDocsGeneration.Error._Unknown;\n\nexport namespace Error {\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface UserNotInOrgError {\n error: \"UserNotInOrgError\";\n content: string;\n }\n\n export interface InvalidGithubUrlError {\n error: \"InvalidGithubUrlError\";\n content: string;\n }\n\n export interface UnsupportedLanguageError {\n error: \"UnsupportedLanguageError\";\n content: string;\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n unauthorizedError: (value: string) => _Result;\n userNotInOrgError: (value: string) => _Result;\n invalidGithubUrlError: (value: string) => _Result;\n unsupportedLanguageError: (value: string) => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n unauthorizedError: (\n value: string,\n ): FernRegistry.docs.v2.write.startLibraryDocsGeneration.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n userNotInOrgError: (\n value: string,\n ): FernRegistry.docs.v2.write.startLibraryDocsGeneration.Error.UserNotInOrgError => {\n return {\n content: value,\n error: \"UserNotInOrgError\",\n };\n },\n\n invalidGithubUrlError: (\n value: string,\n ): FernRegistry.docs.v2.write.startLibraryDocsGeneration.Error.InvalidGithubUrlError => {\n return {\n content: value,\n error: \"InvalidGithubUrlError\",\n };\n },\n\n unsupportedLanguageError: (\n value: string,\n ): FernRegistry.docs.v2.write.startLibraryDocsGeneration.Error.UnsupportedLanguageError => {\n return {\n content: value,\n error: \"UnsupportedLanguageError\",\n };\n },\n\n _unknown: (\n fetcherError: core.Fetcher.Error,\n ): FernRegistry.docs.v2.write.startLibraryDocsGeneration.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.docs.v2.write.startLibraryDocsGeneration.Error,\n visitor: FernRegistry.docs.v2.write.startLibraryDocsGeneration.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n case \"UserNotInOrgError\":\n return visitor.userNotInOrgError(value.content);\n case \"InvalidGithubUrlError\":\n return visitor.invalidGithubUrlError(value.content);\n case \"UnsupportedLanguageError\":\n return visitor.unsupportedLanguageError(value.content);\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.docs.v2.write.transferOwnershipOfDomain.Error.DocsNotFoundError\n | FernRegistry.docs.v2.write.transferOwnershipOfDomain.Error.UnauthorizedError\n | FernRegistry.docs.v2.write.transferOwnershipOfDomain.Error._Unknown;\n\nexport namespace Error {\n export interface DocsNotFoundError {\n error: \"DocsNotFoundError\";\n }\n\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n docsNotFoundError: () => _Result;\n unauthorizedError: (value: string) => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n docsNotFoundError: (): FernRegistry.docs.v2.write.transferOwnershipOfDomain.Error.DocsNotFoundError => {\n return {\n error: \"DocsNotFoundError\",\n };\n },\n\n unauthorizedError: (\n value: string,\n ): FernRegistry.docs.v2.write.transferOwnershipOfDomain.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n _unknown: (\n fetcherError: core.Fetcher.Error,\n ): FernRegistry.docs.v2.write.transferOwnershipOfDomain.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.docs.v2.write.transferOwnershipOfDomain.Error,\n visitor: FernRegistry.docs.v2.write.transferOwnershipOfDomain.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"DocsNotFoundError\":\n return visitor.docsNotFoundError();\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const LibraryDocsErrorCode = {\n CloneFailed: \"CLONE_FAILED\",\n ParseFailed: \"PARSE_FAILED\",\n GenerationFailed: \"GENERATION_FAILED\",\n LambdaError: \"LAMBDA_ERROR\",\n LambdaNoIr: \"LAMBDA_NO_IR\",\n LambdaFunctionError: \"LAMBDA_FUNCTION_ERROR\",\n LambdaNoResponse: \"LAMBDA_NO_RESPONSE\",\n Timeout: \"TIMEOUT\",\n InvalidProject: \"INVALID_PROJECT\",\n} as const;\nexport type LibraryDocsErrorCode = (typeof LibraryDocsErrorCode)[keyof typeof LibraryDocsErrorCode];\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const LibraryDocsGenerationStatusType = {\n Pending: \"PENDING\",\n Parsing: \"PARSING\",\n Completed: \"COMPLETED\",\n Failed: \"FAILED\",\n} as const;\nexport type LibraryDocsGenerationStatusType =\n (typeof LibraryDocsGenerationStatusType)[keyof typeof LibraryDocsGenerationStatusType];\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as FernRegistry from \"../../../../../../../index.js\";\n\nexport type LibraryDocsJobId = string & {\n docs_v2_write_LibraryDocsJobId: void;\n};\n\nexport function LibraryDocsJobId(value: string): FernRegistry.docs.v2.write.LibraryDocsJobId {\n return value as unknown as FernRegistry.docs.v2.write.LibraryDocsJobId;\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const LibraryLanguage = {\n Python: \"PYTHON\",\n Cpp: \"CPP\",\n} as const;\nexport type LibraryLanguage = (typeof LibraryLanguage)[keyof typeof LibraryLanguage];\n","export * from \"./client/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../index.js\";\n\nexport type Error = FernRegistry.docsCache.invalidate.Error._Unknown;\n\nexport namespace Error {\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.docsCache.invalidate.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.docsCache.invalidate.Error,\n visitor: FernRegistry.docsCache.invalidate.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","export * from \"./client/index.js\";\nexport * from \"./resources/index.js\";\nexport * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../index.js\";\n\nexport type Error = FernRegistry.generators.getGenerator.Error._Unknown;\n\nexport namespace Error {\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.generators.getGenerator.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.generators.getGenerator.Error,\n visitor: FernRegistry.generators.getGenerator.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../index.js\";\n\nexport type Error = FernRegistry.generators.getGeneratorByImage.Error._Unknown;\n\nexport namespace Error {\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.generators.getGeneratorByImage.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.generators.getGeneratorByImage.Error,\n visitor: FernRegistry.generators.getGeneratorByImage.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../index.js\";\n\nexport type Error = FernRegistry.generators.listGenerators.Error._Unknown;\n\nexport namespace Error {\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.generators.listGenerators.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.generators.listGenerators.Error,\n visitor: FernRegistry.generators.listGenerators.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../index.js\";\n\nexport type Error = FernRegistry.generators.upsertGenerator.Error._Unknown;\n\nexport namespace Error {\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.generators.upsertGenerator.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.generators.upsertGenerator.Error,\n visitor: FernRegistry.generators.upsertGenerator.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","export * from \"./client/index.js\";\nexport * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../index.js\";\n\nexport type Error = FernRegistry.generators.cli.getChangelog.Error._Unknown;\n\nexport namespace Error {\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.generators.cli.getChangelog.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.generators.cli.getChangelog.Error,\n visitor: FernRegistry.generators.cli.getChangelog.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.generators.cli.getCliRelease.Error.CliVersionNotFoundError\n | FernRegistry.generators.cli.getCliRelease.Error._Unknown;\n\nexport namespace Error {\n export interface CliVersionNotFoundError {\n error: \"CliVersionNotFoundError\";\n content: FernRegistry.generators.InvalidVersionErrorMessage;\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n cliVersionNotFoundError: (value: FernRegistry.generators.InvalidVersionErrorMessage) => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n cliVersionNotFoundError: (\n value: FernRegistry.generators.InvalidVersionErrorMessage,\n ): FernRegistry.generators.cli.getCliRelease.Error.CliVersionNotFoundError => {\n return {\n content: value,\n error: \"CliVersionNotFoundError\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.generators.cli.getCliRelease.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.generators.cli.getCliRelease.Error,\n visitor: FernRegistry.generators.cli.getCliRelease.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"CliVersionNotFoundError\":\n return visitor.cliVersionNotFoundError(value.content);\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.generators.cli.getLatestCliRelease.Error.NoValidClisFoundError\n | FernRegistry.generators.cli.getLatestCliRelease.Error._Unknown;\n\nexport namespace Error {\n export interface NoValidClisFoundError {\n error: \"NoValidClisFoundError\";\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n noValidClisFoundError: () => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n noValidClisFoundError: (): FernRegistry.generators.cli.getLatestCliRelease.Error.NoValidClisFoundError => {\n return {\n error: \"NoValidClisFoundError\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.generators.cli.getLatestCliRelease.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.generators.cli.getLatestCliRelease.Error,\n visitor: FernRegistry.generators.cli.getLatestCliRelease.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"NoValidClisFoundError\":\n return visitor.noValidClisFoundError();\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.generators.cli.getMinCliForIr.Error.NoValidClisFoundError\n | FernRegistry.generators.cli.getMinCliForIr.Error._Unknown;\n\nexport namespace Error {\n export interface NoValidClisFoundError {\n error: \"NoValidClisFoundError\";\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n noValidClisFoundError: () => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n noValidClisFoundError: (): FernRegistry.generators.cli.getMinCliForIr.Error.NoValidClisFoundError => {\n return {\n error: \"NoValidClisFoundError\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.generators.cli.getMinCliForIr.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.generators.cli.getMinCliForIr.Error,\n visitor: FernRegistry.generators.cli.getMinCliForIr.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"NoValidClisFoundError\":\n return visitor.noValidClisFoundError();\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../index.js\";\n\nexport type Error = FernRegistry.generators.cli.listCliReleases.Error._Unknown;\n\nexport namespace Error {\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.generators.cli.listCliReleases.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.generators.cli.listCliReleases.Error,\n visitor: FernRegistry.generators.cli.listCliReleases.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../index.js\";\n\nexport type Error = FernRegistry.generators.cli.upsertCliRelease.Error._Unknown;\n\nexport namespace Error {\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.generators.cli.upsertCliRelease.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.generators.cli.upsertCliRelease.Error,\n visitor: FernRegistry.generators.cli.upsertCliRelease.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","export * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\n/** Following `conventional commit` types for the entries here. */\nexport const ChangelogEntryType = {\n Fix: \"fix\",\n Feat: \"feat\",\n Chore: \"chore\",\n Break: \"break\",\n Internal: \"internal\",\n} as const;\nexport type ChangelogEntryType = (typeof ChangelogEntryType)[keyof typeof ChangelogEntryType];\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const ReleaseType = {\n Ga: \"GA\",\n Rc: \"RC\",\n} as const;\nexport type ReleaseType = (typeof ReleaseType)[keyof typeof ReleaseType];\n","export * from \"./client/index.js\";\nexport * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../index.js\";\n\nexport type Error = FernRegistry.generators.versions.getChangelog.Error._Unknown;\n\nexport namespace Error {\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.generators.versions.getChangelog.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.generators.versions.getChangelog.Error,\n visitor: FernRegistry.generators.versions.getChangelog.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.generators.versions.getGeneratorRelease.Error.GeneratorVersionNotFoundError\n | FernRegistry.generators.versions.getGeneratorRelease.Error._Unknown;\n\nexport namespace Error {\n export interface GeneratorVersionNotFoundError {\n error: \"GeneratorVersionNotFoundError\";\n content: FernRegistry.generators.InvalidVersionErrorMessage;\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n generatorVersionNotFoundError: (value: FernRegistry.generators.InvalidVersionErrorMessage) => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n generatorVersionNotFoundError: (\n value: FernRegistry.generators.InvalidVersionErrorMessage,\n ): FernRegistry.generators.versions.getGeneratorRelease.Error.GeneratorVersionNotFoundError => {\n return {\n content: value,\n error: \"GeneratorVersionNotFoundError\",\n };\n },\n\n _unknown: (\n fetcherError: core.Fetcher.Error,\n ): FernRegistry.generators.versions.getGeneratorRelease.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.generators.versions.getGeneratorRelease.Error,\n visitor: FernRegistry.generators.versions.getGeneratorRelease.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"GeneratorVersionNotFoundError\":\n return visitor.generatorVersionNotFoundError(value.content);\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.generators.versions.getLatestGeneratorRelease.Error.NoValidGeneratorsFoundError\n | FernRegistry.generators.versions.getLatestGeneratorRelease.Error._Unknown;\n\nexport namespace Error {\n export interface NoValidGeneratorsFoundError {\n error: \"NoValidGeneratorsFoundError\";\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n noValidGeneratorsFoundError: () => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n noValidGeneratorsFoundError:\n (): FernRegistry.generators.versions.getLatestGeneratorRelease.Error.NoValidGeneratorsFoundError => {\n return {\n error: \"NoValidGeneratorsFoundError\",\n };\n },\n\n _unknown: (\n fetcherError: core.Fetcher.Error,\n ): FernRegistry.generators.versions.getLatestGeneratorRelease.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.generators.versions.getLatestGeneratorRelease.Error,\n visitor: FernRegistry.generators.versions.getLatestGeneratorRelease.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"NoValidGeneratorsFoundError\":\n return visitor.noValidGeneratorsFoundError();\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../index.js\";\n\nexport type Error = FernRegistry.generators.versions.listGeneratorReleases.Error._Unknown;\n\nexport namespace Error {\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n _unknown: (\n fetcherError: core.Fetcher.Error,\n ): FernRegistry.generators.versions.listGeneratorReleases.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.generators.versions.listGeneratorReleases.Error,\n visitor: FernRegistry.generators.versions.listGeneratorReleases.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.generators.versions.upsertGeneratorRelease.Error.InvalidVersionError\n | FernRegistry.generators.versions.upsertGeneratorRelease.Error._Unknown;\n\nexport namespace Error {\n export interface InvalidVersionError {\n error: \"InvalidVersionError\";\n content: FernRegistry.generators.InvalidVersionErrorMessage;\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n invalidVersionError: (value: FernRegistry.generators.InvalidVersionErrorMessage) => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n invalidVersionError: (\n value: FernRegistry.generators.InvalidVersionErrorMessage,\n ): FernRegistry.generators.versions.upsertGeneratorRelease.Error.InvalidVersionError => {\n return {\n content: value,\n error: \"InvalidVersionError\",\n };\n },\n\n _unknown: (\n fetcherError: core.Fetcher.Error,\n ): FernRegistry.generators.versions.upsertGeneratorRelease.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.generators.versions.upsertGeneratorRelease.Error,\n visitor: FernRegistry.generators.versions.upsertGeneratorRelease.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"InvalidVersionError\":\n return visitor.invalidVersionError(value.content);\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as FernRegistry from \"../../../index.js\";\n\n/**\n * The type of the generator, e.g. fern-python-sdk\n */\nexport type GeneratorId = string & {\n generators_GeneratorId: void;\n};\n\nexport function GeneratorId(value: string): FernRegistry.generators.GeneratorId {\n return value as unknown as FernRegistry.generators.GeneratorId;\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const GeneratorLanguage = {\n Python: \"python\",\n Go: \"go\",\n Java: \"java\",\n Typescript: \"typescript\",\n Ruby: \"ruby\",\n Csharp: \"csharp\",\n Php: \"php\",\n Swift: \"swift\",\n Rust: \"rust\",\n} as const;\nexport type GeneratorLanguage = (typeof GeneratorLanguage)[keyof typeof GeneratorLanguage];\n","export * from \"./client/index.js\";\nexport * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../index.js\";\n\nexport type Error = FernRegistry.git.deletePullRequest.Error._Unknown;\n\nexport namespace Error {\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.git.deletePullRequest.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.git.deletePullRequest.Error,\n visitor: FernRegistry.git.deletePullRequest.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../index.js\";\n\nexport type Error = FernRegistry.git.deleteRepository.Error._Unknown;\n\nexport namespace Error {\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.git.deleteRepository.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.git.deleteRepository.Error,\n visitor: FernRegistry.git.deleteRepository.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../index.js\";\n\nexport type Error = FernRegistry.git.getPullRequest.Error._Unknown;\n\nexport namespace Error {\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.git.getPullRequest.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.git.getPullRequest.Error,\n visitor: FernRegistry.git.getPullRequest.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../index.js\";\n\nexport type Error = FernRegistry.git.getRepository.Error._Unknown;\n\nexport namespace Error {\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.git.getRepository.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.git.getRepository.Error,\n visitor: FernRegistry.git.getRepository.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../index.js\";\n\nexport type Error = FernRegistry.git.listPullRequests.Error._Unknown;\n\nexport namespace Error {\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.git.listPullRequests.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.git.listPullRequests.Error,\n visitor: FernRegistry.git.listPullRequests.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../index.js\";\n\nexport type Error = FernRegistry.git.listRepositories.Error._Unknown;\n\nexport namespace Error {\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.git.listRepositories.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.git.listRepositories.Error,\n visitor: FernRegistry.git.listRepositories.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../index.js\";\n\nexport type Error = FernRegistry.git.upsertPullRequest.Error._Unknown;\n\nexport namespace Error {\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.git.upsertPullRequest.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.git.upsertPullRequest.Error,\n visitor: FernRegistry.git.upsertPullRequest.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../index.js\";\n\nexport type Error = FernRegistry.git.upsertRepository.Error._Unknown;\n\nexport namespace Error {\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.git.upsertRepository.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.git.upsertRepository.Error,\n visitor: FernRegistry.git.upsertRepository.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const PullRequestState = {\n Open: \"open\",\n Closed: \"closed\",\n Merged: \"merged\",\n} as const;\nexport type PullRequestState = (typeof PullRequestState)[keyof typeof PullRequestState];\n","export * from \"./client/index.js\";\nexport * from \"./resources/index.js\";\n","export * from \"./client/index.js\";\nexport * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../../../index.js\";\n\nexport type Error =\n | FernRegistry.sdks.versions.computeSemanticVersion.Error.FailedToComputeExistingVersion\n | FernRegistry.sdks.versions.computeSemanticVersion.Error.FailedToIncrementVersion\n | FernRegistry.sdks.versions.computeSemanticVersion.Error._Unknown;\n\nexport namespace Error {\n export interface FailedToComputeExistingVersion {\n error: \"FailedToComputeExistingVersion\";\n }\n\n export interface FailedToIncrementVersion {\n error: \"FailedToIncrementVersion\";\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n failedToComputeExistingVersion: () => _Result;\n failedToIncrementVersion: () => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n failedToComputeExistingVersion:\n (): FernRegistry.sdks.versions.computeSemanticVersion.Error.FailedToComputeExistingVersion => {\n return {\n error: \"FailedToComputeExistingVersion\",\n };\n },\n\n failedToIncrementVersion: (): FernRegistry.sdks.versions.computeSemanticVersion.Error.FailedToIncrementVersion => {\n return {\n error: \"FailedToIncrementVersion\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.sdks.versions.computeSemanticVersion.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.sdks.versions.computeSemanticVersion.Error,\n visitor: FernRegistry.sdks.versions.computeSemanticVersion.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"FailedToComputeExistingVersion\":\n return visitor.failedToComputeExistingVersion();\n case \"FailedToIncrementVersion\":\n return visitor.failedToIncrementVersion();\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const Language = {\n Go: \"Go\",\n TypeScript: \"TypeScript\",\n Java: \"Java\",\n Python: \"Python\",\n Csharp: \"Csharp\",\n Ruby: \"Ruby\",\n Php: \"Php\",\n Swift: \"Swift\",\n Rust: \"Rust\",\n} as const;\nexport type Language = (typeof Language)[keyof typeof Language];\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const VersionBump = {\n Major: \"MAJOR\",\n Minor: \"MINOR\",\n Patch: \"PATCH\",\n} as const;\nexport type VersionBump = (typeof VersionBump)[keyof typeof VersionBump];\n","export * from \"./client/index.js\";\nexport * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../index.js\";\n\nexport type Error =\n | FernRegistry.snippets.get.Error.UnauthorizedError\n | FernRegistry.snippets.get.Error.UserNotInOrgError\n | FernRegistry.snippets.get.Error.UnavailableError\n | FernRegistry.snippets.get.Error.ApiIdRequiredError\n | FernRegistry.snippets.get.Error.OrgIdRequiredError\n | FernRegistry.snippets.get.Error.OrgIdAndApiIdNotFound\n | FernRegistry.snippets.get.Error.OrgIdNotFound\n | FernRegistry.snippets.get.Error.EndpointNotFound\n | FernRegistry.snippets.get.Error.SdkNotFound\n | FernRegistry.snippets.get.Error._Unknown;\n\nexport namespace Error {\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface UserNotInOrgError {\n error: \"UserNotInOrgError\";\n content: string;\n }\n\n export interface UnavailableError {\n error: \"UnavailableError\";\n content: string;\n }\n\n export interface ApiIdRequiredError {\n error: \"ApiIdRequiredError\";\n content: string;\n }\n\n export interface OrgIdRequiredError {\n error: \"OrgIdRequiredError\";\n content: string;\n }\n\n export interface OrgIdAndApiIdNotFound {\n error: \"OrgIdAndApiIdNotFound\";\n content: string;\n }\n\n export interface OrgIdNotFound {\n error: \"OrgIdNotFound\";\n content: string;\n }\n\n export interface EndpointNotFound {\n error: \"EndpointNotFound\";\n content: string;\n }\n\n export interface SdkNotFound {\n error: \"SDKNotFound\";\n content: string;\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n unauthorizedError: (value: string) => _Result;\n userNotInOrgError: (value: string) => _Result;\n unavailableError: (value: string) => _Result;\n apiIdRequiredError: (value: string) => _Result;\n orgIdRequiredError: (value: string) => _Result;\n orgIdAndApiIdNotFound: (value: string) => _Result;\n orgIdNotFound: (value: string) => _Result;\n endpointNotFound: (value: string) => _Result;\n sdkNotFound: (value: string) => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n unauthorizedError: (value: string): FernRegistry.snippets.get.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n userNotInOrgError: (value: string): FernRegistry.snippets.get.Error.UserNotInOrgError => {\n return {\n content: value,\n error: \"UserNotInOrgError\",\n };\n },\n\n unavailableError: (value: string): FernRegistry.snippets.get.Error.UnavailableError => {\n return {\n content: value,\n error: \"UnavailableError\",\n };\n },\n\n apiIdRequiredError: (value: string): FernRegistry.snippets.get.Error.ApiIdRequiredError => {\n return {\n content: value,\n error: \"ApiIdRequiredError\",\n };\n },\n\n orgIdRequiredError: (value: string): FernRegistry.snippets.get.Error.OrgIdRequiredError => {\n return {\n content: value,\n error: \"OrgIdRequiredError\",\n };\n },\n\n orgIdAndApiIdNotFound: (value: string): FernRegistry.snippets.get.Error.OrgIdAndApiIdNotFound => {\n return {\n content: value,\n error: \"OrgIdAndApiIdNotFound\",\n };\n },\n\n orgIdNotFound: (value: string): FernRegistry.snippets.get.Error.OrgIdNotFound => {\n return {\n content: value,\n error: \"OrgIdNotFound\",\n };\n },\n\n endpointNotFound: (value: string): FernRegistry.snippets.get.Error.EndpointNotFound => {\n return {\n content: value,\n error: \"EndpointNotFound\",\n };\n },\n\n sdkNotFound: (value: string): FernRegistry.snippets.get.Error.SdkNotFound => {\n return {\n content: value,\n error: \"SDKNotFound\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.snippets.get.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.snippets.get.Error,\n visitor: FernRegistry.snippets.get.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n case \"UserNotInOrgError\":\n return visitor.userNotInOrgError(value.content);\n case \"UnavailableError\":\n return visitor.unavailableError(value.content);\n case \"ApiIdRequiredError\":\n return visitor.apiIdRequiredError(value.content);\n case \"OrgIdRequiredError\":\n return visitor.orgIdRequiredError(value.content);\n case \"OrgIdAndApiIdNotFound\":\n return visitor.orgIdAndApiIdNotFound(value.content);\n case \"OrgIdNotFound\":\n return visitor.orgIdNotFound(value.content);\n case \"EndpointNotFound\":\n return visitor.endpointNotFound(value.content);\n case \"SDKNotFound\":\n return visitor.sdkNotFound(value.content);\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../index.js\";\n\nexport type Error =\n | FernRegistry.snippets.load.Error.UnauthorizedError\n | FernRegistry.snippets.load.Error.UserNotInOrgError\n | FernRegistry.snippets.load.Error.UnavailableError\n | FernRegistry.snippets.load.Error.InvalidPageError\n | FernRegistry.snippets.load.Error.ApiIdRequiredError\n | FernRegistry.snippets.load.Error.OrgIdRequiredError\n | FernRegistry.snippets.load.Error.OrgIdAndApiIdNotFound\n | FernRegistry.snippets.load.Error.OrgIdNotFound\n | FernRegistry.snippets.load.Error.SdkNotFound\n | FernRegistry.snippets.load.Error._Unknown;\n\nexport namespace Error {\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface UserNotInOrgError {\n error: \"UserNotInOrgError\";\n content: string;\n }\n\n export interface UnavailableError {\n error: \"UnavailableError\";\n content: string;\n }\n\n export interface InvalidPageError {\n error: \"InvalidPageError\";\n content: string;\n }\n\n export interface ApiIdRequiredError {\n error: \"ApiIdRequiredError\";\n content: string;\n }\n\n export interface OrgIdRequiredError {\n error: \"OrgIdRequiredError\";\n content: string;\n }\n\n export interface OrgIdAndApiIdNotFound {\n error: \"OrgIdAndApiIdNotFound\";\n content: string;\n }\n\n export interface OrgIdNotFound {\n error: \"OrgIdNotFound\";\n content: string;\n }\n\n export interface SdkNotFound {\n error: \"SDKNotFound\";\n content: string;\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n unauthorizedError: (value: string) => _Result;\n userNotInOrgError: (value: string) => _Result;\n unavailableError: (value: string) => _Result;\n invalidPageError: (value: string) => _Result;\n apiIdRequiredError: (value: string) => _Result;\n orgIdRequiredError: (value: string) => _Result;\n orgIdAndApiIdNotFound: (value: string) => _Result;\n orgIdNotFound: (value: string) => _Result;\n sdkNotFound: (value: string) => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n unauthorizedError: (value: string): FernRegistry.snippets.load.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n userNotInOrgError: (value: string): FernRegistry.snippets.load.Error.UserNotInOrgError => {\n return {\n content: value,\n error: \"UserNotInOrgError\",\n };\n },\n\n unavailableError: (value: string): FernRegistry.snippets.load.Error.UnavailableError => {\n return {\n content: value,\n error: \"UnavailableError\",\n };\n },\n\n invalidPageError: (value: string): FernRegistry.snippets.load.Error.InvalidPageError => {\n return {\n content: value,\n error: \"InvalidPageError\",\n };\n },\n\n apiIdRequiredError: (value: string): FernRegistry.snippets.load.Error.ApiIdRequiredError => {\n return {\n content: value,\n error: \"ApiIdRequiredError\",\n };\n },\n\n orgIdRequiredError: (value: string): FernRegistry.snippets.load.Error.OrgIdRequiredError => {\n return {\n content: value,\n error: \"OrgIdRequiredError\",\n };\n },\n\n orgIdAndApiIdNotFound: (value: string): FernRegistry.snippets.load.Error.OrgIdAndApiIdNotFound => {\n return {\n content: value,\n error: \"OrgIdAndApiIdNotFound\",\n };\n },\n\n orgIdNotFound: (value: string): FernRegistry.snippets.load.Error.OrgIdNotFound => {\n return {\n content: value,\n error: \"OrgIdNotFound\",\n };\n },\n\n sdkNotFound: (value: string): FernRegistry.snippets.load.Error.SdkNotFound => {\n return {\n content: value,\n error: \"SDKNotFound\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.snippets.load.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.snippets.load.Error,\n visitor: FernRegistry.snippets.load.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n case \"UserNotInOrgError\":\n return visitor.userNotInOrgError(value.content);\n case \"UnavailableError\":\n return visitor.unavailableError(value.content);\n case \"InvalidPageError\":\n return visitor.invalidPageError(value.content);\n case \"ApiIdRequiredError\":\n return visitor.apiIdRequiredError(value.content);\n case \"OrgIdRequiredError\":\n return visitor.orgIdRequiredError(value.content);\n case \"OrgIdAndApiIdNotFound\":\n return visitor.orgIdAndApiIdNotFound(value.content);\n case \"OrgIdNotFound\":\n return visitor.orgIdNotFound(value.content);\n case \"SDKNotFound\":\n return visitor.sdkNotFound(value.content);\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","export * from \"./client/index.js\";\nexport * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../index.js\";\n\nexport type Error =\n | FernRegistry.snippetsFactory.createSnippetsForSdk.Error.UnauthorizedError\n | FernRegistry.snippetsFactory.createSnippetsForSdk.Error.UserNotInOrgError\n | FernRegistry.snippetsFactory.createSnippetsForSdk.Error.OrgIdNotFound\n | FernRegistry.snippetsFactory.createSnippetsForSdk.Error.SdkNotFound\n | FernRegistry.snippetsFactory.createSnippetsForSdk.Error._Unknown;\n\nexport namespace Error {\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface UserNotInOrgError {\n error: \"UserNotInOrgError\";\n content: string;\n }\n\n export interface OrgIdNotFound {\n error: \"OrgIdNotFound\";\n content: string;\n }\n\n export interface SdkNotFound {\n error: \"SDKNotFound\";\n content: string;\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n unauthorizedError: (value: string) => _Result;\n userNotInOrgError: (value: string) => _Result;\n orgIdNotFound: (value: string) => _Result;\n sdkNotFound: (value: string) => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n unauthorizedError: (value: string): FernRegistry.snippetsFactory.createSnippetsForSdk.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n userNotInOrgError: (value: string): FernRegistry.snippetsFactory.createSnippetsForSdk.Error.UserNotInOrgError => {\n return {\n content: value,\n error: \"UserNotInOrgError\",\n };\n },\n\n orgIdNotFound: (value: string): FernRegistry.snippetsFactory.createSnippetsForSdk.Error.OrgIdNotFound => {\n return {\n content: value,\n error: \"OrgIdNotFound\",\n };\n },\n\n sdkNotFound: (value: string): FernRegistry.snippetsFactory.createSnippetsForSdk.Error.SdkNotFound => {\n return {\n content: value,\n error: \"SDKNotFound\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.snippetsFactory.createSnippetsForSdk.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.snippetsFactory.createSnippetsForSdk.Error,\n visitor: FernRegistry.snippetsFactory.createSnippetsForSdk.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n case \"UserNotInOrgError\":\n return visitor.userNotInOrgError(value.content);\n case \"OrgIdNotFound\":\n return visitor.orgIdNotFound(value.content);\n case \"SDKNotFound\":\n return visitor.sdkNotFound(value.content);\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","export * from \"./client/index.js\";\nexport * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../index.js\";\n\nexport type Error =\n | FernRegistry.templates.get.Error.UnauthorizedError\n | FernRegistry.templates.get.Error.SnippetNotFound\n | FernRegistry.templates.get.Error._Unknown;\n\nexport namespace Error {\n export interface UnauthorizedError {\n error: \"UnauthorizedError\";\n content: string;\n }\n\n export interface SnippetNotFound {\n error: \"SnippetNotFound\";\n content: string;\n }\n\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n unauthorizedError: (value: string) => _Result;\n snippetNotFound: (value: string) => _Result;\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n unauthorizedError: (value: string): FernRegistry.templates.get.Error.UnauthorizedError => {\n return {\n content: value,\n error: \"UnauthorizedError\",\n };\n },\n\n snippetNotFound: (value: string): FernRegistry.templates.get.Error.SnippetNotFound => {\n return {\n content: value,\n error: \"SnippetNotFound\",\n };\n },\n\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.templates.get.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.templates.get.Error,\n visitor: FernRegistry.templates.get.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n case \"UnauthorizedError\":\n return visitor.unauthorizedError(value.content);\n case \"SnippetNotFound\":\n return visitor.snippetNotFound(value.content);\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../index.js\";\n\nexport type Error = FernRegistry.templates.register.Error._Unknown;\n\nexport namespace Error {\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.templates.register.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.templates.register.Error,\n visitor: FernRegistry.templates.register.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../index.js\";\n\nexport type Error = FernRegistry.templates.registerBatch.Error._Unknown;\n\nexport namespace Error {\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.templates.registerBatch.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.templates.registerBatch.Error,\n visitor: FernRegistry.templates.registerBatch.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\n/**\n * The location of the payload, if omitted the full payload is used.\n * Note that RELATIVE should be used for iterables primarily, so be\n * able to specify the path to the field relative to the iterated on object\n */\nexport const PayloadLocation = {\n Body: \"BODY\",\n Query: \"QUERY\",\n Path: \"PATH\",\n Headers: \"HEADERS\",\n Relative: \"RELATIVE\",\n Auth: \"AUTH\",\n} as const;\nexport type PayloadLocation = (typeof PayloadLocation)[keyof typeof PayloadLocation];\n","export * from \"./client/index.js\";\nexport * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../index.js\";\n\nexport type Error = FernRegistry.tokens.generate.Error._Unknown;\n\nexport namespace Error {\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.tokens.generate.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.tokens.generate.Error,\n visitor: FernRegistry.tokens.generate.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../../../../core/index.js\";\nimport type * as FernRegistry from \"../../../index.js\";\n\nexport type Error = FernRegistry.tokens.revoke.Error._Unknown;\n\nexport namespace Error {\n export interface _Unknown {\n error: void;\n content: core.Fetcher.Error;\n }\n\n export interface _Visitor<_Result> {\n _other: (value: core.Fetcher.Error) => _Result;\n }\n}\n\nexport const Error = {\n _unknown: (fetcherError: core.Fetcher.Error): FernRegistry.tokens.revoke.Error._Unknown => {\n return {\n error: undefined,\n content: fetcherError,\n };\n },\n\n _visit: <_Result>(\n value: FernRegistry.tokens.revoke.Error,\n visitor: FernRegistry.tokens.revoke.Error._Visitor<_Result>,\n ): _Result => {\n switch (value.error) {\n default:\n return visitor._other(value.content);\n }\n },\n} as const;\n","export function mergeHeaders<THeaderValue>(\n ...headersArray: (Record<string, THeaderValue> | null | undefined)[]\n): Record<string, string | THeaderValue> {\n const result: Record<string, THeaderValue> = {};\n\n for (const [key, value] of headersArray\n .filter((headers) => headers != null)\n .flatMap((headers) => Object.entries(headers))) {\n const insensitiveKey = key.toLowerCase();\n if (value != null) {\n result[insensitiveKey] = value;\n } else if (insensitiveKey in result) {\n delete result[insensitiveKey];\n }\n }\n\n return result;\n}\n\nexport function mergeOnlyDefinedHeaders<THeaderValue>(\n ...headersArray: (Record<string, THeaderValue> | null | undefined)[]\n): Record<string, THeaderValue> {\n const result: Record<string, THeaderValue> = {};\n\n for (const [key, value] of headersArray\n .filter((headers) => headers != null)\n .flatMap((headers) => Object.entries(headers))) {\n const insensitiveKey = key.toLowerCase();\n if (value != null) {\n result[insensitiveKey] = value;\n }\n }\n\n return result;\n}\n","import type { EndpointMetadata } from \"./EndpointMetadata.js\";\nimport type { Supplier } from \"./Supplier.js\";\n\ntype EndpointSupplierFn<T> = (arg: { endpointMetadata: EndpointMetadata }) => T | Promise<T>;\nexport type EndpointSupplier<T> = Supplier<T> | EndpointSupplierFn<T>;\nexport const EndpointSupplier = {\n get: async <T>(supplier: EndpointSupplier<T>, arg: { endpointMetadata: EndpointMetadata }): Promise<T> => {\n if (typeof supplier === \"function\") {\n return (supplier as EndpointSupplierFn<T>)(arg);\n } else {\n return supplier;\n }\n },\n};\n","/**\n * Serialize a value to JSON\n * @param value A JavaScript value, usually an object or array, to be converted.\n * @param replacer A function that transforms the results.\n * @param space Adds indentation, white space, and line break characters to the return-value JSON text to make it easier to read.\n * @returns JSON string\n */\nexport const toJson = (\n value: unknown,\n replacer?: (this: unknown, key: string, value: unknown) => unknown,\n space?: string | number,\n): string => {\n return JSON.stringify(value, replacer, space);\n};\n\n/**\n * Parse JSON string to object, array, or other type\n * @param text A valid JSON string.\n * @param reviver A function that transforms the results. This function is called for each member of the object. If a member contains nested objects, the nested objects are transformed before the parent object is.\n * @returns Parsed object, array, or other type\n */\nexport function fromJson<T = unknown>(\n text: string,\n reviver?: (this: unknown, key: string, value: unknown) => unknown,\n): T {\n return JSON.parse(text, reviver);\n}\n","export const LogLevel = {\n Debug: \"debug\",\n Info: \"info\",\n Warn: \"warn\",\n Error: \"error\",\n} as const;\nexport type LogLevel = (typeof LogLevel)[keyof typeof LogLevel];\nconst logLevelMap: Record<LogLevel, number> = {\n [LogLevel.Debug]: 1,\n [LogLevel.Info]: 2,\n [LogLevel.Warn]: 3,\n [LogLevel.Error]: 4,\n};\n\nexport interface ILogger {\n /**\n * Logs a debug message.\n * @param message - The message to log\n * @param args - Additional arguments to log\n */\n debug(message: string, ...args: unknown[]): void;\n /**\n * Logs an info message.\n * @param message - The message to log\n * @param args - Additional arguments to log\n */\n info(message: string, ...args: unknown[]): void;\n /**\n * Logs a warning message.\n * @param message - The message to log\n * @param args - Additional arguments to log\n */\n warn(message: string, ...args: unknown[]): void;\n /**\n * Logs an error message.\n * @param message - The message to log\n * @param args - Additional arguments to log\n */\n error(message: string, ...args: unknown[]): void;\n}\n\n/**\n * Configuration for logger initialization.\n */\nexport interface LogConfig {\n /**\n * Minimum log level to output.\n * @default LogLevel.Info\n */\n level?: LogLevel;\n /**\n * Logger implementation to use.\n * @default new ConsoleLogger()\n */\n logger?: ILogger;\n /**\n * Whether logging should be silenced.\n * @default true\n */\n silent?: boolean;\n}\n\n/**\n * Default console-based logger implementation.\n */\nexport class ConsoleLogger implements ILogger {\n debug(message: string, ...args: unknown[]): void {\n console.debug(message, ...args);\n }\n info(message: string, ...args: unknown[]): void {\n console.info(message, ...args);\n }\n warn(message: string, ...args: unknown[]): void {\n console.warn(message, ...args);\n }\n error(message: string, ...args: unknown[]): void {\n console.error(message, ...args);\n }\n}\n\n/**\n * Logger class that provides level-based logging functionality.\n */\nexport class Logger {\n private readonly level: number;\n private readonly logger: ILogger;\n private readonly silent: boolean;\n\n /**\n * Creates a new logger instance.\n * @param config - Logger configuration\n */\n constructor(config: Required<LogConfig>) {\n this.level = logLevelMap[config.level];\n this.logger = config.logger;\n this.silent = config.silent;\n }\n\n /**\n * Checks if a log level should be output based on configuration.\n * @param level - The log level to check\n * @returns True if the level should be logged\n */\n public shouldLog(level: LogLevel): boolean {\n return !this.silent && this.level <= logLevelMap[level];\n }\n\n /**\n * Checks if debug logging is enabled.\n * @returns True if debug logs should be output\n */\n public isDebug(): boolean {\n return this.shouldLog(LogLevel.Debug);\n }\n\n /**\n * Logs a debug message if debug logging is enabled.\n * @param message - The message to log\n * @param args - Additional arguments to log\n */\n public debug(message: string, ...args: unknown[]): void {\n if (this.isDebug()) {\n this.logger.debug(message, ...args);\n }\n }\n\n /**\n * Checks if info logging is enabled.\n * @returns True if info logs should be output\n */\n public isInfo(): boolean {\n return this.shouldLog(LogLevel.Info);\n }\n\n /**\n * Logs an info message if info logging is enabled.\n * @param message - The message to log\n * @param args - Additional arguments to log\n */\n public info(message: string, ...args: unknown[]): void {\n if (this.isInfo()) {\n this.logger.info(message, ...args);\n }\n }\n\n /**\n * Checks if warning logging is enabled.\n * @returns True if warning logs should be output\n */\n public isWarn(): boolean {\n return this.shouldLog(LogLevel.Warn);\n }\n\n /**\n * Logs a warning message if warning logging is enabled.\n * @param message - The message to log\n * @param args - Additional arguments to log\n */\n public warn(message: string, ...args: unknown[]): void {\n if (this.isWarn()) {\n this.logger.warn(message, ...args);\n }\n }\n\n /**\n * Checks if error logging is enabled.\n * @returns True if error logs should be output\n */\n public isError(): boolean {\n return this.shouldLog(LogLevel.Error);\n }\n\n /**\n * Logs an error message if error logging is enabled.\n * @param message - The message to log\n * @param args - Additional arguments to log\n */\n public error(message: string, ...args: unknown[]): void {\n if (this.isError()) {\n this.logger.error(message, ...args);\n }\n }\n}\n\nexport function createLogger(config?: LogConfig | Logger): Logger {\n if (config == null) {\n return defaultLogger;\n }\n if (config instanceof Logger) {\n return config;\n }\n config = config ?? {};\n config.level ??= LogLevel.Info;\n config.logger ??= new ConsoleLogger();\n config.silent ??= true;\n return new Logger(config as Required<LogConfig>);\n}\n\nconst defaultLogger: Logger = new Logger({\n level: LogLevel.Info,\n logger: new ConsoleLogger(),\n silent: true,\n});\n","interface QueryStringOptions {\n arrayFormat?: \"indices\" | \"repeat\";\n encode?: boolean;\n}\n\nconst defaultQsOptions: Required<QueryStringOptions> = {\n arrayFormat: \"indices\",\n encode: true,\n} as const;\n\nfunction encodeValue(value: unknown, shouldEncode: boolean): string {\n if (value === undefined) {\n return \"\";\n }\n if (value === null) {\n return \"\";\n }\n const stringValue = String(value);\n return shouldEncode ? encodeURIComponent(stringValue) : stringValue;\n}\n\nfunction stringifyObject(obj: Record<string, unknown>, prefix = \"\", options: Required<QueryStringOptions>): string[] {\n const parts: string[] = [];\n\n for (const [key, value] of Object.entries(obj)) {\n const fullKey = prefix ? `${prefix}[${key}]` : key;\n\n if (value === undefined) {\n continue;\n }\n\n if (Array.isArray(value)) {\n if (value.length === 0) {\n continue;\n }\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n if (item === undefined) {\n continue;\n }\n if (typeof item === \"object\" && !Array.isArray(item) && item !== null) {\n const arrayKey = options.arrayFormat === \"indices\" ? `${fullKey}[${i}]` : fullKey;\n parts.push(...stringifyObject(item as Record<string, unknown>, arrayKey, options));\n } else {\n const arrayKey = options.arrayFormat === \"indices\" ? `${fullKey}[${i}]` : fullKey;\n const encodedKey = options.encode ? encodeURIComponent(arrayKey) : arrayKey;\n parts.push(`${encodedKey}=${encodeValue(item, options.encode)}`);\n }\n }\n } else if (typeof value === \"object\" && value !== null) {\n if (Object.keys(value as Record<string, unknown>).length === 0) {\n continue;\n }\n parts.push(...stringifyObject(value as Record<string, unknown>, fullKey, options));\n } else {\n const encodedKey = options.encode ? encodeURIComponent(fullKey) : fullKey;\n parts.push(`${encodedKey}=${encodeValue(value, options.encode)}`);\n }\n }\n\n return parts;\n}\n\nexport function toQueryString(obj: unknown, options?: QueryStringOptions): string {\n if (obj == null || typeof obj !== \"object\") {\n return \"\";\n }\n\n const parts = stringifyObject(obj as Record<string, unknown>, \"\", {\n ...defaultQsOptions,\n ...options,\n });\n return parts.join(\"&\");\n}\n","import { toQueryString } from \"../url/qs.js\";\n\nexport function createRequestUrl(baseUrl: string, queryParameters?: Record<string, unknown>): string {\n const queryString = toQueryString(queryParameters, { arrayFormat: \"repeat\" });\n return queryString ? `${baseUrl}?${queryString}` : baseUrl;\n}\n","import type { ResponseWithBody } from \"./ResponseWithBody.js\";\n\nexport type BinaryResponse = {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/bodyUsed) */\n bodyUsed: boolean;\n /**\n * Returns a ReadableStream of the response body.\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/body)\n */\n stream: () => ReadableStream<Uint8Array>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/arrayBuffer) */\n arrayBuffer: () => Promise<ArrayBuffer>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/blob) */\n blob: () => Promise<Blob>;\n /**\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/bytes)\n * Some versions of the Fetch API may not support this method.\n */\n bytes?(): Promise<Uint8Array>;\n};\n\nexport function getBinaryResponse(response: ResponseWithBody): BinaryResponse {\n const binaryResponse: BinaryResponse = {\n get bodyUsed() {\n return response.bodyUsed;\n },\n stream: () => response.body,\n arrayBuffer: response.arrayBuffer.bind(response),\n blob: response.blob.bind(response),\n };\n if (\"bytes\" in response && typeof response.bytes === \"function\") {\n binaryResponse.bytes = response.bytes.bind(response);\n }\n\n return binaryResponse;\n}\n","export type ResponseWithBody = Response & {\n body: ReadableStream<Uint8Array>;\n};\n\nexport function isResponseWithBody(response: Response): response is ResponseWithBody {\n return (response as ResponseWithBody).body != null;\n}\n","import { fromJson } from \"../json.js\";\nimport { getBinaryResponse } from \"./BinaryResponse.js\";\nimport { isResponseWithBody } from \"./ResponseWithBody.js\";\n\nexport async function getResponseBody(response: Response, responseType?: string): Promise<unknown> {\n if (!isResponseWithBody(response)) {\n return undefined;\n }\n switch (responseType) {\n case \"binary-response\":\n return getBinaryResponse(response);\n case \"blob\":\n return await response.blob();\n case \"arrayBuffer\":\n return await response.arrayBuffer();\n case \"sse\":\n return response.body;\n case \"streaming\":\n return response.body;\n\n case \"text\":\n return await response.text();\n }\n\n // if responseType is \"json\" or not specified, try to parse as JSON\n const text = await response.text();\n if (text.length > 0) {\n try {\n const responseBody = fromJson(text);\n return responseBody;\n } catch (_err) {\n return {\n ok: false,\n error: {\n reason: \"non-json\",\n statusCode: response.status,\n rawBody: text,\n },\n };\n }\n }\n return undefined;\n}\n","import { fromJson } from \"../json.js\";\nimport { getResponseBody } from \"./getResponseBody.js\";\n\nexport async function getErrorResponseBody(response: Response): Promise<unknown> {\n let contentType = response.headers.get(\"Content-Type\")?.toLowerCase();\n if (contentType == null || contentType.length === 0) {\n return getResponseBody(response);\n }\n\n if (contentType.indexOf(\";\") !== -1) {\n contentType = contentType.split(\";\")[0]?.trim() ?? \"\";\n }\n switch (contentType) {\n case \"application/hal+json\":\n case \"application/json\":\n case \"application/ld+json\":\n case \"application/problem+json\":\n case \"application/vnd.api+json\":\n case \"text/json\": {\n const text = await response.text();\n return text.length > 0 ? fromJson(text) : undefined;\n }\n default:\n if (contentType.startsWith(\"application/vnd.\") && contentType.endsWith(\"+json\")) {\n const text = await response.text();\n return text.length > 0 ? fromJson(text) : undefined;\n }\n\n // Fallback to plain text if content type is not recognized\n // Even if no body is present, the response will be an empty string\n return await response.text();\n }\n}\n","export async function getFetchFn(): Promise<typeof fetch> {\n return fetch;\n}\n","import { toJson } from \"../json.js\";\nimport { toQueryString } from \"../url/qs.js\";\n\nexport declare namespace GetRequestBody {\n interface Args {\n body: unknown;\n type: \"json\" | \"file\" | \"bytes\" | \"form\" | \"other\";\n }\n}\n\nexport async function getRequestBody({ body, type }: GetRequestBody.Args): Promise<BodyInit | undefined> {\n if (type === \"form\") {\n return toQueryString(body, { arrayFormat: \"repeat\", encode: true });\n }\n if (type.includes(\"json\")) {\n return toJson(body);\n } else {\n return body as BodyInit;\n }\n}\n","let Headers: typeof globalThis.Headers;\n\nif (typeof globalThis.Headers !== \"undefined\") {\n Headers = globalThis.Headers;\n} else {\n Headers = class Headers implements Headers {\n private headers: Map<string, string[]>;\n\n constructor(init?: HeadersInit) {\n this.headers = new Map();\n\n if (init) {\n if (init instanceof Headers) {\n init.forEach((value, key) => this.append(key, value));\n } else if (Array.isArray(init)) {\n for (const [key, value] of init) {\n if (typeof key === \"string\" && typeof value === \"string\") {\n this.append(key, value);\n } else {\n throw new TypeError(\"Each header entry must be a [string, string] tuple\");\n }\n }\n } else {\n for (const [key, value] of Object.entries(init)) {\n if (typeof value === \"string\") {\n this.append(key, value);\n } else {\n throw new TypeError(\"Header values must be strings\");\n }\n }\n }\n }\n }\n\n append(name: string, value: string): void {\n const key = name.toLowerCase();\n const existing = this.headers.get(key) || [];\n this.headers.set(key, [...existing, value]);\n }\n\n delete(name: string): void {\n const key = name.toLowerCase();\n this.headers.delete(key);\n }\n\n get(name: string): string | null {\n const key = name.toLowerCase();\n const values = this.headers.get(key);\n return values ? values.join(\", \") : null;\n }\n\n has(name: string): boolean {\n const key = name.toLowerCase();\n return this.headers.has(key);\n }\n\n set(name: string, value: string): void {\n const key = name.toLowerCase();\n this.headers.set(key, [value]);\n }\n\n forEach(callbackfn: (value: string, key: string, parent: Headers) => void, thisArg?: unknown): void {\n const boundCallback = thisArg ? callbackfn.bind(thisArg) : callbackfn;\n this.headers.forEach((values, key) => boundCallback(values.join(\", \"), key, this));\n }\n\n getSetCookie(): string[] {\n return this.headers.get(\"set-cookie\") || [];\n }\n\n *entries(): HeadersIterator<[string, string]> {\n for (const [key, values] of this.headers.entries()) {\n yield [key, values.join(\", \")];\n }\n }\n\n *keys(): HeadersIterator<string> {\n yield* this.headers.keys();\n }\n\n *values(): HeadersIterator<string> {\n for (const values of this.headers.values()) {\n yield values.join(\", \");\n }\n }\n\n [Symbol.iterator](): HeadersIterator<[string, string]> {\n return this.entries();\n }\n };\n}\n\nexport { Headers };\n","const TIMEOUT = \"timeout\";\n\nexport function getTimeoutSignal(timeoutMs: number): { signal: AbortSignal; abortId: NodeJS.Timeout } {\n const controller = new AbortController();\n const abortId = setTimeout(() => controller.abort(TIMEOUT), timeoutMs);\n return { signal: controller.signal, abortId };\n}\n\nexport function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal {\n const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args) as AbortSignal[];\n\n const controller = new AbortController();\n\n for (const signal of signals) {\n if (signal.aborted) {\n controller.abort((signal as any)?.reason);\n break;\n }\n\n signal.addEventListener(\"abort\", () => controller.abort((signal as any)?.reason), {\n signal: controller.signal,\n });\n }\n\n return controller.signal;\n}\n","import { anySignal, getTimeoutSignal } from \"./signals.js\";\n\nexport const makeRequest = async (\n fetchFn: (url: string, init: RequestInit) => Promise<Response>,\n url: string,\n method: string,\n headers: Headers | Record<string, string>,\n requestBody: BodyInit | undefined,\n timeoutMs?: number,\n abortSignal?: AbortSignal,\n withCredentials?: boolean,\n duplex?: \"half\",\n): Promise<Response> => {\n const signals: AbortSignal[] = [];\n\n let timeoutAbortId: NodeJS.Timeout | undefined;\n if (timeoutMs != null) {\n const { signal, abortId } = getTimeoutSignal(timeoutMs);\n timeoutAbortId = abortId;\n signals.push(signal);\n }\n\n if (abortSignal != null) {\n signals.push(abortSignal);\n }\n const newSignals = anySignal(signals);\n const response = await fetchFn(url, {\n method: method,\n headers,\n body: requestBody,\n signal: newSignals,\n credentials: withCredentials ? \"include\" : undefined,\n // @ts-ignore\n duplex,\n });\n\n if (timeoutAbortId != null) {\n clearTimeout(timeoutAbortId);\n }\n\n return response;\n};\n","import { Headers } from \"./Headers.js\";\n\n/**\n * The raw response from the fetch call excluding the body.\n */\nexport type RawResponse = Omit<\n {\n [K in keyof Response as Response[K] extends Function ? never : K]: Response[K]; // strips out functions\n },\n \"ok\" | \"body\" | \"bodyUsed\"\n>; // strips out body and bodyUsed\n\n/**\n * A raw response indicating that the request was aborted.\n */\nexport const abortRawResponse: RawResponse = {\n headers: new Headers(),\n redirected: false,\n status: 499,\n statusText: \"Client Closed Request\",\n type: \"error\",\n url: \"\",\n} as const;\n\n/**\n * A raw response indicating an unknown error.\n */\nexport const unknownRawResponse: RawResponse = {\n headers: new Headers(),\n redirected: false,\n status: 0,\n statusText: \"Unknown Error\",\n type: \"error\",\n url: \"\",\n} as const;\n\n/**\n * Converts a `RawResponse` object into a `RawResponse` by extracting its properties,\n * excluding the `body` and `bodyUsed` fields.\n *\n * @param response - The `RawResponse` object to convert.\n * @returns A `RawResponse` object containing the extracted properties of the input response.\n */\nexport function toRawResponse(response: Response): RawResponse {\n return {\n headers: response.headers,\n redirected: response.redirected,\n status: response.status,\n statusText: response.statusText,\n type: response.type,\n url: response.url,\n };\n}\n\n/**\n * Creates a `RawResponse` from a standard `Response` object.\n */\nexport interface WithRawResponse<T> {\n readonly data: T;\n readonly rawResponse: RawResponse;\n}\n","const INITIAL_RETRY_DELAY = 1000; // in milliseconds\nconst MAX_RETRY_DELAY = 60000; // in milliseconds\nconst DEFAULT_MAX_RETRIES = 2;\nconst JITTER_FACTOR = 0.2; // 20% random jitter\n\nfunction addPositiveJitter(delay: number): number {\n const jitterMultiplier = 1 + Math.random() * JITTER_FACTOR;\n return delay * jitterMultiplier;\n}\n\nfunction addSymmetricJitter(delay: number): number {\n const jitterMultiplier = 1 + (Math.random() - 0.5) * JITTER_FACTOR;\n return delay * jitterMultiplier;\n}\n\nfunction getRetryDelayFromHeaders(response: Response, retryAttempt: number): number {\n const retryAfter = response.headers.get(\"Retry-After\");\n if (retryAfter) {\n const retryAfterSeconds = parseInt(retryAfter, 10);\n if (!Number.isNaN(retryAfterSeconds) && retryAfterSeconds > 0) {\n return Math.min(retryAfterSeconds * 1000, MAX_RETRY_DELAY);\n }\n\n const retryAfterDate = new Date(retryAfter);\n if (!Number.isNaN(retryAfterDate.getTime())) {\n const delay = retryAfterDate.getTime() - Date.now();\n if (delay > 0) {\n return Math.min(Math.max(delay, 0), MAX_RETRY_DELAY);\n }\n }\n }\n\n const rateLimitReset = response.headers.get(\"X-RateLimit-Reset\");\n if (rateLimitReset) {\n const resetTime = parseInt(rateLimitReset, 10);\n if (!Number.isNaN(resetTime)) {\n const delay = resetTime * 1000 - Date.now();\n if (delay > 0) {\n return addPositiveJitter(Math.min(delay, MAX_RETRY_DELAY));\n }\n }\n }\n\n return addSymmetricJitter(Math.min(INITIAL_RETRY_DELAY * 2 ** retryAttempt, MAX_RETRY_DELAY));\n}\n\nexport async function requestWithRetries(\n requestFn: () => Promise<Response>,\n maxRetries: number = DEFAULT_MAX_RETRIES,\n): Promise<Response> {\n let response: Response = await requestFn();\n\n for (let i = 0; i < maxRetries; ++i) {\n if ([408, 429].includes(response.status) || response.status >= 500) {\n const delay = getRetryDelayFromHeaders(response, i);\n\n await new Promise((resolve) => setTimeout(resolve, delay));\n response = await requestFn();\n } else {\n break;\n }\n }\n return response!;\n}\n","import { toJson } from \"../json.js\";\nimport { createLogger, type LogConfig, type Logger } from \"../logging/logger.js\";\nimport type { APIResponse } from \"./APIResponse.js\";\nimport { createRequestUrl } from \"./createRequestUrl.js\";\nimport type { EndpointMetadata } from \"./EndpointMetadata.js\";\nimport { EndpointSupplier } from \"./EndpointSupplier.js\";\nimport { getErrorResponseBody } from \"./getErrorResponseBody.js\";\nimport { getFetchFn } from \"./getFetchFn.js\";\nimport { getRequestBody } from \"./getRequestBody.js\";\nimport { getResponseBody } from \"./getResponseBody.js\";\nimport { Headers } from \"./Headers.js\";\nimport { makeRequest } from \"./makeRequest.js\";\nimport { abortRawResponse, toRawResponse, unknownRawResponse } from \"./RawResponse.js\";\nimport { requestWithRetries } from \"./requestWithRetries.js\";\n\nexport type FetchFunction = <R = unknown>(args: Fetcher.Args) => Promise<APIResponse<R, Fetcher.Error>>;\n\nexport declare namespace Fetcher {\n export interface Args {\n url: string;\n method: string;\n contentType?: string;\n headers?: Record<string, string | EndpointSupplier<string | null | undefined> | null | undefined>;\n queryParameters?: Record<string, unknown>;\n body?: unknown;\n timeoutMs?: number;\n maxRetries?: number;\n withCredentials?: boolean;\n abortSignal?: AbortSignal;\n requestType?: \"json\" | \"file\" | \"bytes\" | \"form\" | \"other\";\n responseType?: \"json\" | \"blob\" | \"sse\" | \"streaming\" | \"text\" | \"arrayBuffer\" | \"binary-response\";\n duplex?: \"half\";\n endpointMetadata?: EndpointMetadata;\n fetchFn?: typeof fetch;\n logging?: LogConfig | Logger;\n }\n\n export type Error = FailedStatusCodeError | NonJsonError | TimeoutError | UnknownError;\n\n export interface FailedStatusCodeError {\n reason: \"status-code\";\n statusCode: number;\n body: unknown;\n }\n\n export interface NonJsonError {\n reason: \"non-json\";\n statusCode: number;\n rawBody: string;\n }\n\n export interface TimeoutError {\n reason: \"timeout\";\n }\n\n export interface UnknownError {\n reason: \"unknown\";\n errorMessage: string;\n }\n}\n\nconst SENSITIVE_HEADERS = new Set([\n \"authorization\",\n \"www-authenticate\",\n \"x-api-key\",\n \"api-key\",\n \"apikey\",\n \"x-api-token\",\n \"x-auth-token\",\n \"auth-token\",\n \"cookie\",\n \"set-cookie\",\n \"proxy-authorization\",\n \"proxy-authenticate\",\n \"x-csrf-token\",\n \"x-xsrf-token\",\n \"x-session-token\",\n \"x-access-token\",\n]);\n\nfunction redactHeaders(headers: Headers | Record<string, string>): Record<string, string> {\n const filtered: Record<string, string> = {};\n for (const [key, value] of headers instanceof Headers ? headers.entries() : Object.entries(headers)) {\n if (SENSITIVE_HEADERS.has(key.toLowerCase())) {\n filtered[key] = \"[REDACTED]\";\n } else {\n filtered[key] = value;\n }\n }\n return filtered;\n}\n\nconst SENSITIVE_QUERY_PARAMS = new Set([\n \"api_key\",\n \"api-key\",\n \"apikey\",\n \"token\",\n \"access_token\",\n \"access-token\",\n \"auth_token\",\n \"auth-token\",\n \"password\",\n \"passwd\",\n \"secret\",\n \"api_secret\",\n \"api-secret\",\n \"apisecret\",\n \"key\",\n \"session\",\n \"session_id\",\n \"session-id\",\n]);\n\nfunction redactQueryParameters(queryParameters?: Record<string, unknown>): Record<string, unknown> | undefined {\n if (queryParameters == null) {\n return queryParameters;\n }\n const redacted: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(queryParameters)) {\n if (SENSITIVE_QUERY_PARAMS.has(key.toLowerCase())) {\n redacted[key] = \"[REDACTED]\";\n } else {\n redacted[key] = value;\n }\n }\n return redacted;\n}\n\nfunction redactUrl(url: string): string {\n const protocolIndex = url.indexOf(\"://\");\n if (protocolIndex === -1) return url;\n\n const afterProtocol = protocolIndex + 3;\n\n // Find the first delimiter that marks the end of the authority section\n const pathStart = url.indexOf(\"/\", afterProtocol);\n let queryStart = url.indexOf(\"?\", afterProtocol);\n let fragmentStart = url.indexOf(\"#\", afterProtocol);\n\n const firstDelimiter = Math.min(\n pathStart === -1 ? url.length : pathStart,\n queryStart === -1 ? url.length : queryStart,\n fragmentStart === -1 ? url.length : fragmentStart,\n );\n\n // Find the LAST @ before the delimiter (handles multiple @ in credentials)\n let atIndex = -1;\n for (let i = afterProtocol; i < firstDelimiter; i++) {\n if (url[i] === \"@\") {\n atIndex = i;\n }\n }\n\n if (atIndex !== -1) {\n url = `${url.slice(0, afterProtocol)}[REDACTED]@${url.slice(atIndex + 1)}`;\n }\n\n // Recalculate queryStart since url might have changed\n queryStart = url.indexOf(\"?\");\n if (queryStart === -1) return url;\n\n fragmentStart = url.indexOf(\"#\", queryStart);\n const queryEnd = fragmentStart !== -1 ? fragmentStart : url.length;\n const queryString = url.slice(queryStart + 1, queryEnd);\n\n if (queryString.length === 0) return url;\n\n // FAST PATH: Quick check if any sensitive keywords present\n // Using indexOf is faster than regex for simple substring matching\n const lower = queryString.toLowerCase();\n const hasSensitive =\n lower.includes(\"token\") ||\n lower.includes(\"key\") ||\n lower.includes(\"password\") ||\n lower.includes(\"passwd\") ||\n lower.includes(\"secret\") ||\n lower.includes(\"session\") ||\n lower.includes(\"auth\");\n\n if (!hasSensitive) {\n return url;\n }\n\n // SLOW PATH: Parse and redact\n const redactedParams: string[] = [];\n const params = queryString.split(\"&\");\n\n for (const param of params) {\n const equalIndex = param.indexOf(\"=\");\n if (equalIndex === -1) {\n redactedParams.push(param);\n continue;\n }\n\n const key = param.slice(0, equalIndex);\n let shouldRedact = SENSITIVE_QUERY_PARAMS.has(key.toLowerCase());\n\n if (!shouldRedact && key.includes(\"%\")) {\n try {\n const decodedKey = decodeURIComponent(key);\n shouldRedact = SENSITIVE_QUERY_PARAMS.has(decodedKey.toLowerCase());\n } catch {}\n }\n\n redactedParams.push(shouldRedact ? `${key}=[REDACTED]` : param);\n }\n\n return url.slice(0, queryStart + 1) + redactedParams.join(\"&\") + url.slice(queryEnd);\n}\n\nasync function getHeaders(args: Fetcher.Args): Promise<Headers> {\n const newHeaders: Headers = new Headers();\n\n newHeaders.set(\n \"Accept\",\n args.responseType === \"json\" ? \"application/json\" : args.responseType === \"text\" ? \"text/plain\" : \"*/*\",\n );\n if (args.body !== undefined && args.contentType != null) {\n newHeaders.set(\"Content-Type\", args.contentType);\n }\n\n if (args.headers == null) {\n return newHeaders;\n }\n\n for (const [key, value] of Object.entries(args.headers)) {\n const result = await EndpointSupplier.get(value, { endpointMetadata: args.endpointMetadata ?? {} });\n if (typeof result === \"string\") {\n newHeaders.set(key, result);\n continue;\n }\n if (result == null) {\n continue;\n }\n newHeaders.set(key, `${result}`);\n }\n return newHeaders;\n}\n\nexport async function fetcherImpl<R = unknown>(args: Fetcher.Args): Promise<APIResponse<R, Fetcher.Error>> {\n const url = createRequestUrl(args.url, args.queryParameters);\n const requestBody: BodyInit | undefined = await getRequestBody({\n body: args.body,\n type: args.requestType ?? \"other\",\n });\n const fetchFn = args.fetchFn ?? (await getFetchFn());\n const headers = await getHeaders(args);\n const logger = createLogger(args.logging);\n\n if (logger.isDebug()) {\n const metadata = {\n method: args.method,\n url: redactUrl(url),\n headers: redactHeaders(headers),\n queryParameters: redactQueryParameters(args.queryParameters),\n hasBody: requestBody != null,\n };\n logger.debug(\"Making HTTP request\", metadata);\n }\n\n try {\n const response = await requestWithRetries(\n async () =>\n makeRequest(\n fetchFn,\n url,\n args.method,\n headers,\n requestBody,\n args.timeoutMs,\n args.abortSignal,\n args.withCredentials,\n args.duplex,\n ),\n args.maxRetries,\n );\n\n if (response.status >= 200 && response.status < 400) {\n if (logger.isDebug()) {\n const metadata = {\n method: args.method,\n url: redactUrl(url),\n statusCode: response.status,\n responseHeaders: redactHeaders(response.headers),\n };\n logger.debug(\"HTTP request succeeded\", metadata);\n }\n return {\n ok: true,\n body: (await getResponseBody(response, args.responseType)) as R,\n headers: response.headers,\n rawResponse: toRawResponse(response),\n };\n } else {\n if (logger.isError()) {\n const metadata = {\n method: args.method,\n url: redactUrl(url),\n statusCode: response.status,\n responseHeaders: redactHeaders(Object.fromEntries(response.headers.entries())),\n };\n logger.error(\"HTTP request failed with error status\", metadata);\n }\n return {\n ok: false,\n error: {\n reason: \"status-code\",\n statusCode: response.status,\n body: await getErrorResponseBody(response),\n },\n rawResponse: toRawResponse(response),\n };\n }\n } catch (error) {\n if (args.abortSignal?.aborted) {\n if (logger.isError()) {\n const metadata = {\n method: args.method,\n url: redactUrl(url),\n };\n logger.error(\"HTTP request was aborted\", metadata);\n }\n return {\n ok: false,\n error: {\n reason: \"unknown\",\n errorMessage: \"The user aborted a request\",\n },\n rawResponse: abortRawResponse,\n };\n } else if (error instanceof Error && error.name === \"AbortError\") {\n if (logger.isError()) {\n const metadata = {\n method: args.method,\n url: redactUrl(url),\n timeoutMs: args.timeoutMs,\n };\n logger.error(\"HTTP request timed out\", metadata);\n }\n return {\n ok: false,\n error: {\n reason: \"timeout\",\n },\n rawResponse: abortRawResponse,\n };\n } else if (error instanceof Error) {\n if (logger.isError()) {\n const metadata = {\n method: args.method,\n url: redactUrl(url),\n errorMessage: error.message,\n };\n logger.error(\"HTTP request failed with error\", metadata);\n }\n return {\n ok: false,\n error: {\n reason: \"unknown\",\n errorMessage: error.message,\n },\n rawResponse: unknownRawResponse,\n };\n }\n\n if (logger.isError()) {\n const metadata = {\n method: args.method,\n url: redactUrl(url),\n error: toJson(error),\n };\n logger.error(\"HTTP request failed with unknown error\", metadata);\n }\n return {\n ok: false,\n error: {\n reason: \"unknown\",\n errorMessage: toJson(error),\n },\n rawResponse: unknownRawResponse,\n };\n }\n}\n\nexport const fetcher: FetchFunction = fetcherImpl;\n","import type { WithRawResponse } from \"./RawResponse.js\";\n\n/**\n * A promise that returns the parsed response and lets you retrieve the raw response too.\n */\nexport class HttpResponsePromise<T> extends Promise<T> {\n private innerPromise: Promise<WithRawResponse<T>>;\n private unwrappedPromise: Promise<T> | undefined;\n\n private constructor(promise: Promise<WithRawResponse<T>>) {\n // Initialize with a no-op to avoid premature parsing\n super((resolve) => {\n resolve(undefined as unknown as T);\n });\n this.innerPromise = promise;\n }\n\n /**\n * Creates an `HttpResponsePromise` from a function that returns a promise.\n *\n * @param fn - A function that returns a promise resolving to a `WithRawResponse` object.\n * @param args - Arguments to pass to the function.\n * @returns An `HttpResponsePromise` instance.\n */\n public static fromFunction<F extends (...args: never[]) => Promise<WithRawResponse<T>>, T>(\n fn: F,\n ...args: Parameters<F>\n ): HttpResponsePromise<T> {\n return new HttpResponsePromise<T>(fn(...args));\n }\n\n /**\n * Creates a function that returns an `HttpResponsePromise` from a function that returns a promise.\n *\n * @param fn - A function that returns a promise resolving to a `WithRawResponse` object.\n * @returns A function that returns an `HttpResponsePromise` instance.\n */\n public static interceptFunction<\n F extends (...args: never[]) => Promise<WithRawResponse<T>>,\n T = Awaited<ReturnType<F>>[\"data\"],\n >(fn: F): (...args: Parameters<F>) => HttpResponsePromise<T> {\n return (...args: Parameters<F>): HttpResponsePromise<T> => {\n return HttpResponsePromise.fromPromise<T>(fn(...args));\n };\n }\n\n /**\n * Creates an `HttpResponsePromise` from an existing promise.\n *\n * @param promise - A promise resolving to a `WithRawResponse` object.\n * @returns An `HttpResponsePromise` instance.\n */\n public static fromPromise<T>(promise: Promise<WithRawResponse<T>>): HttpResponsePromise<T> {\n return new HttpResponsePromise<T>(promise);\n }\n\n /**\n * Creates an `HttpResponsePromise` from an executor function.\n *\n * @param executor - A function that takes resolve and reject callbacks to create a promise.\n * @returns An `HttpResponsePromise` instance.\n */\n public static fromExecutor<T>(\n executor: (resolve: (value: WithRawResponse<T>) => void, reject: (reason?: unknown) => void) => void,\n ): HttpResponsePromise<T> {\n const promise = new Promise<WithRawResponse<T>>(executor);\n return new HttpResponsePromise<T>(promise);\n }\n\n /**\n * Creates an `HttpResponsePromise` from a resolved result.\n *\n * @param result - A `WithRawResponse` object to resolve immediately.\n * @returns An `HttpResponsePromise` instance.\n */\n public static fromResult<T>(result: WithRawResponse<T>): HttpResponsePromise<T> {\n const promise = Promise.resolve(result);\n return new HttpResponsePromise<T>(promise);\n }\n\n private unwrap(): Promise<T> {\n if (!this.unwrappedPromise) {\n this.unwrappedPromise = this.innerPromise.then(({ data }) => data);\n }\n return this.unwrappedPromise;\n }\n\n /** @inheritdoc */\n public override then<TResult1 = T, TResult2 = never>(\n onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | null,\n onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null,\n ): Promise<TResult1 | TResult2> {\n return this.unwrap().then(onfulfilled, onrejected);\n }\n\n /** @inheritdoc */\n public override catch<TResult = never>(\n onrejected?: ((reason: unknown) => TResult | PromiseLike<TResult>) | null,\n ): Promise<T | TResult> {\n return this.unwrap().catch(onrejected);\n }\n\n /** @inheritdoc */\n public override finally(onfinally?: (() => void) | null): Promise<T> {\n return this.unwrap().finally(onfinally);\n }\n\n /**\n * Retrieves the data and raw response.\n *\n * @returns A promise resolving to a `WithRawResponse` object.\n */\n public async withRawResponse(): Promise<WithRawResponse<T>> {\n return await this.innerPromise;\n }\n}\n","export type Supplier<T> = T | Promise<T> | (() => T | Promise<T>);\n\nexport const Supplier = {\n get: async <T>(supplier: Supplier<T>): Promise<T> => {\n if (typeof supplier === \"function\") {\n return (supplier as () => T)();\n } else {\n return supplier;\n }\n },\n};\n","export * from \"./logger.js\";\n","interface DenoGlobal {\n version: {\n deno: string;\n };\n}\n\ninterface BunGlobal {\n version: string;\n}\n\ndeclare const Deno: DenoGlobal | undefined;\ndeclare const Bun: BunGlobal | undefined;\ndeclare const EdgeRuntime: string | undefined;\ndeclare const self: typeof globalThis.self & {\n importScripts?: unknown;\n};\n\n/**\n * A constant that indicates which environment and version the SDK is running in.\n */\nexport const RUNTIME: Runtime = evaluateRuntime();\n\nexport interface Runtime {\n type: \"browser\" | \"web-worker\" | \"deno\" | \"bun\" | \"node\" | \"react-native\" | \"unknown\" | \"workerd\" | \"edge-runtime\";\n version?: string;\n parsedVersion?: number;\n}\n\nfunction evaluateRuntime(): Runtime {\n /**\n * A constant that indicates whether the environment the code is running is a Web Browser.\n */\n const isBrowser = typeof window !== \"undefined\" && typeof window.document !== \"undefined\";\n if (isBrowser) {\n return {\n type: \"browser\",\n version: window.navigator.userAgent,\n };\n }\n\n /**\n * A constant that indicates whether the environment the code is running is Cloudflare.\n * https://developers.cloudflare.com/workers/runtime-apis/web-standards/#navigatoruseragent\n */\n const isCloudflare = typeof globalThis !== \"undefined\" && globalThis?.navigator?.userAgent === \"Cloudflare-Workers\";\n if (isCloudflare) {\n return {\n type: \"workerd\",\n };\n }\n\n /**\n * A constant that indicates whether the environment the code is running is Edge Runtime.\n * https://vercel.com/docs/functions/runtimes/edge-runtime#check-if-you're-running-on-the-edge-runtime\n */\n const isEdgeRuntime = typeof EdgeRuntime === \"string\";\n if (isEdgeRuntime) {\n return {\n type: \"edge-runtime\",\n };\n }\n\n /**\n * A constant that indicates whether the environment the code is running is a Web Worker.\n */\n const isWebWorker =\n typeof self === \"object\" &&\n typeof self?.importScripts === \"function\" &&\n (self.constructor?.name === \"DedicatedWorkerGlobalScope\" ||\n self.constructor?.name === \"ServiceWorkerGlobalScope\" ||\n self.constructor?.name === \"SharedWorkerGlobalScope\");\n if (isWebWorker) {\n return {\n type: \"web-worker\",\n };\n }\n\n /**\n * A constant that indicates whether the environment the code is running is Deno.\n * FYI Deno spoofs process.versions.node, see https://deno.land/std@0.177.0/node/process.ts?s=versions\n */\n const isDeno =\n typeof Deno !== \"undefined\" && typeof Deno.version !== \"undefined\" && typeof Deno.version.deno !== \"undefined\";\n if (isDeno) {\n return {\n type: \"deno\",\n version: Deno.version.deno,\n };\n }\n\n /**\n * A constant that indicates whether the environment the code is running is Bun.sh.\n */\n const isBun = typeof Bun !== \"undefined\" && typeof Bun.version !== \"undefined\";\n if (isBun) {\n return {\n type: \"bun\",\n version: Bun.version,\n };\n }\n\n /**\n * A constant that indicates whether the environment the code is running is Node.JS.\n */\n const isNode =\n typeof process !== \"undefined\" &&\n \"version\" in process &&\n !!process.version &&\n \"versions\" in process &&\n !!process.versions?.node;\n if (isNode) {\n return {\n type: \"node\",\n version: process.versions.node,\n parsedVersion: Number(process.versions.node.split(\".\")[0]),\n };\n }\n\n /**\n * A constant that indicates whether the environment the code is running is in React-Native.\n * https://github.com/facebook/react-native/blob/main/packages/react-native/Libraries/Core/setUpNavigator.js\n */\n const isReactNative = typeof navigator !== \"undefined\" && navigator?.product === \"ReactNative\";\n if (isReactNative) {\n return {\n type: \"react-native\",\n };\n }\n\n return {\n type: \"unknown\",\n };\n}\n","export { encodePathParam } from \"./encodePathParam.js\";\nexport { join } from \"./join.js\";\nexport { toQueryString } from \"./qs.js\";\n","export function encodePathParam(param: unknown): string {\n if (param === null) {\n return \"null\";\n }\n const typeofParam = typeof param;\n switch (typeofParam) {\n case \"undefined\":\n return \"undefined\";\n case \"string\":\n case \"number\":\n case \"boolean\":\n break;\n default:\n param = String(param);\n break;\n }\n return encodeURIComponent(param as string | number | boolean);\n}\n","export function join(base: string, ...segments: string[]): string {\n if (!base) {\n return \"\";\n }\n\n if (segments.length === 0) {\n return base;\n }\n\n if (base.includes(\"://\")) {\n let url: URL;\n try {\n url = new URL(base);\n } catch {\n return joinPath(base, ...segments);\n }\n\n const lastSegment = segments[segments.length - 1];\n const shouldPreserveTrailingSlash = lastSegment?.endsWith(\"/\");\n\n for (const segment of segments) {\n const cleanSegment = trimSlashes(segment);\n if (cleanSegment) {\n url.pathname = joinPathSegments(url.pathname, cleanSegment);\n }\n }\n\n if (shouldPreserveTrailingSlash && !url.pathname.endsWith(\"/\")) {\n url.pathname += \"/\";\n }\n\n return url.toString();\n }\n\n return joinPath(base, ...segments);\n}\n\nfunction joinPath(base: string, ...segments: string[]): string {\n if (segments.length === 0) {\n return base;\n }\n\n let result = base;\n\n const lastSegment = segments[segments.length - 1];\n const shouldPreserveTrailingSlash = lastSegment?.endsWith(\"/\");\n\n for (const segment of segments) {\n const cleanSegment = trimSlashes(segment);\n if (cleanSegment) {\n result = joinPathSegments(result, cleanSegment);\n }\n }\n\n if (shouldPreserveTrailingSlash && !result.endsWith(\"/\")) {\n result += \"/\";\n }\n\n return result;\n}\n\nfunction joinPathSegments(left: string, right: string): string {\n if (left.endsWith(\"/\")) {\n return left + right;\n }\n return `${left}/${right}`;\n}\n\nfunction trimSlashes(str: string): string {\n if (!str) return str;\n\n let start = 0;\n let end = str.length;\n\n if (str.startsWith(\"/\")) start = 1;\n if (str.endsWith(\"/\")) end = str.length - 1;\n\n return start === 0 && end === str.length ? str : str.slice(start, end);\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport { mergeHeaders } from \"./core/headers.js\";\nimport * as core from \"./core/index.js\";\nimport type * as environments from \"./environments.js\";\n\nexport interface BaseClientOptions {\n environment?: core.Supplier<environments.FernRegistryEnvironment | string>;\n /** Specify a custom URL to connect the client to. */\n baseUrl?: core.Supplier<string>;\n token?: core.Supplier<core.BearerToken | undefined>;\n /** Additional headers to include in requests. */\n headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;\n /** The default maximum time to wait for a response in seconds. */\n timeoutInSeconds?: number;\n /** The default number of times to retry the request. Defaults to 2. */\n maxRetries?: number;\n /** Provide a custom fetch implementation. Useful for platforms that don't have a built-in fetch or need a custom implementation. */\n fetch?: typeof fetch;\n /** Configure logging for the client. */\n logging?: core.logging.LogConfig | core.logging.Logger;\n}\n\nexport interface BaseRequestOptions {\n /** The maximum time to wait for a response in seconds. */\n timeoutInSeconds?: number;\n /** The number of times to retry the request. Defaults to 2. */\n maxRetries?: number;\n /** A hook to abort the request. */\n abortSignal?: AbortSignal;\n /** Additional query string parameters to include in the request. */\n queryParams?: Record<string, unknown>;\n /** Additional headers to include in the request. */\n headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;\n}\n\nexport function normalizeClientOptions<T extends BaseClientOptions>(options: T): T {\n const headers = mergeHeaders(\n {\n \"X-Fern-Language\": \"JavaScript\",\n \"X-Fern-Runtime\": core.RUNTIME.type,\n \"X-Fern-Runtime-Version\": core.RUNTIME.version,\n },\n options?.headers,\n );\n\n return {\n ...options,\n logging: core.logging.createLogger(options?.logging),\n headers,\n } as T;\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const FernRegistryEnvironment = {\n Prod: \"https://registry.buildwithfern.com\",\n Lambda: \"https://registry-v2.buildwithfern.com\",\n} as const;\n\nexport type FernRegistryEnvironment = typeof FernRegistryEnvironment.Prod | typeof FernRegistryEnvironment.Lambda;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../../../BaseClient.js\";\nimport { normalizeClientOptions } from \"../../../../../../BaseClient.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../../../core/headers.js\";\nimport * as core from \"../../../../../../core/index.js\";\nimport * as environments from \"../../../../../../environments.js\";\nimport * as FernRegistry from \"../../../../../index.js\";\n\nexport declare namespace LatestClient {\n export interface Options extends BaseClientOptions {}\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\nexport class LatestClient {\n protected readonly _options: LatestClient.Options;\n\n constructor(options: LatestClient.Options = {}) {\n this._options = normalizeClientOptions(options);\n }\n\n /**\n * @param {FernRegistry.ApiDefinitionId} apiDefinitionId\n * @param {LatestClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.api.latest.getApiLatest(FernRegistry.ApiDefinitionId(\"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\"))\n */\n public getApiLatest(\n apiDefinitionId: FernRegistry.ApiDefinitionId,\n requestOptions?: LatestClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<FernRegistry.api.latest.ApiDefinition, FernRegistry.api.latest.getApiLatest.Error>\n > {\n return core.HttpResponsePromise.fromPromise(this.__getApiLatest(apiDefinitionId, requestOptions));\n }\n\n private async __getApiLatest(\n apiDefinitionId: FernRegistry.ApiDefinitionId,\n requestOptions?: LatestClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<FernRegistry.api.latest.ApiDefinition, FernRegistry.api.latest.getApiLatest.Error>\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n `/registry/api/latest/load/${core.url.encodePathParam(apiDefinitionId)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.api.latest.ApiDefinition,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.api.latest.getApiLatest.Error)?.error) {\n case \"UnauthorizedError\":\n case \"ApiDoesNotExistError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.api.latest.getApiLatest.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.api.latest.getApiLatest.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../../../../../BaseClient.js\";\nimport { normalizeClientOptions } from \"../../../../../../../../BaseClient.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../../../../../core/headers.js\";\nimport * as core from \"../../../../../../../../core/index.js\";\nimport * as environments from \"../../../../../../../../environments.js\";\nimport * as FernRegistry from \"../../../../../../../index.js\";\n\nexport declare namespace ReadClient {\n export interface Options extends BaseClientOptions {}\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\nexport class ReadClient {\n protected readonly _options: ReadClient.Options;\n\n constructor(options: ReadClient.Options = {}) {\n this._options = normalizeClientOptions(options);\n }\n\n /**\n * @param {FernRegistry.ApiDefinitionId} apiDefinitionId\n * @param {ReadClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.api.v1.read.getApi(FernRegistry.ApiDefinitionId(\"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\"))\n */\n public getApi(\n apiDefinitionId: FernRegistry.ApiDefinitionId,\n requestOptions?: ReadClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<FernRegistry.api.v1.read.ApiDefinition, FernRegistry.api.v1.read.getApi.Error>\n > {\n return core.HttpResponsePromise.fromPromise(this.__getApi(apiDefinitionId, requestOptions));\n }\n\n private async __getApi(\n apiDefinitionId: FernRegistry.ApiDefinitionId,\n requestOptions?: ReadClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<FernRegistry.api.v1.read.ApiDefinition, FernRegistry.api.v1.read.getApi.Error>\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n `/registry/api/load/${core.url.encodePathParam(apiDefinitionId)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.api.v1.read.ApiDefinition,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.api.v1.read.getApi.Error)?.error) {\n case \"UnauthorizedError\":\n case \"ApiDoesNotExistError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.api.v1.read.getApi.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.api.v1.read.getApi.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * @param {FernRegistry.ApiDefinitionId} apiDefinitionId\n * @param {FernRegistry.EndpointId} endpointId\n * @param {ReadClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.api.v1.read.getEndpointById(FernRegistry.ApiDefinitionId(\"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\"), FernRegistry.EndpointId(\"endpointId\"))\n */\n public getEndpointById(\n apiDefinitionId: FernRegistry.ApiDefinitionId,\n endpointId: FernRegistry.EndpointId,\n requestOptions?: ReadClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<FernRegistry.api.v1.read.EndpointWithContext, FernRegistry.api.v1.read.getEndpointById.Error>\n > {\n return core.HttpResponsePromise.fromPromise(\n this.__getEndpointById(apiDefinitionId, endpointId, requestOptions),\n );\n }\n\n private async __getEndpointById(\n apiDefinitionId: FernRegistry.ApiDefinitionId,\n endpointId: FernRegistry.EndpointId,\n requestOptions?: ReadClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.api.v1.read.EndpointWithContext,\n FernRegistry.api.v1.read.getEndpointById.Error\n >\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n `/registry/api/load/${core.url.encodePathParam(apiDefinitionId)}/endpoint/${core.url.encodePathParam(endpointId)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.api.v1.read.EndpointWithContext,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.api.v1.read.getEndpointById.Error)?.error) {\n case \"UnauthorizedError\":\n case \"ApiDoesNotExistError\":\n case \"EndpointDoesNotExistError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.api.v1.read.getEndpointById.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.api.v1.read.getEndpointById.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * @param {FernRegistry.ApiDefinitionId} apiDefinitionId\n * @param {FernRegistry.api.v1.read.GetEndpointByLocatorRequest} request\n * @param {ReadClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.api.v1.read.getEndpointByLocator(FernRegistry.ApiDefinitionId(\"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\"), {\n * method: \"method\",\n * path: \"path\"\n * })\n */\n public getEndpointByLocator(\n apiDefinitionId: FernRegistry.ApiDefinitionId,\n request: FernRegistry.api.v1.read.GetEndpointByLocatorRequest,\n requestOptions?: ReadClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<\n FernRegistry.api.v1.read.EndpointWithContext,\n FernRegistry.api.v1.read.getEndpointByLocator.Error\n >\n > {\n return core.HttpResponsePromise.fromPromise(\n this.__getEndpointByLocator(apiDefinitionId, request, requestOptions),\n );\n }\n\n private async __getEndpointByLocator(\n apiDefinitionId: FernRegistry.ApiDefinitionId,\n request: FernRegistry.api.v1.read.GetEndpointByLocatorRequest,\n requestOptions?: ReadClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.api.v1.read.EndpointWithContext,\n FernRegistry.api.v1.read.getEndpointByLocator.Error\n >\n >\n > {\n const { method, path } = request;\n const _queryParams: Record<string, string | string[] | object | object[] | null> = {};\n _queryParams.method = method;\n _queryParams.path = path;\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n `/registry/api/load/${core.url.encodePathParam(apiDefinitionId)}/endpoint`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: { ..._queryParams, ...requestOptions?.queryParams },\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.api.v1.read.EndpointWithContext,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.api.v1.read.getEndpointByLocator.Error)?.error) {\n case \"UnauthorizedError\":\n case \"ApiDoesNotExistError\":\n case \"EndpointDoesNotExistError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.api.v1.read.getEndpointByLocator.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.api.v1.read.getEndpointByLocator.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../../../../../BaseClient.js\";\nimport { normalizeClientOptions } from \"../../../../../../../../BaseClient.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../../../../../core/headers.js\";\nimport * as core from \"../../../../../../../../core/index.js\";\nimport * as environments from \"../../../../../../../../environments.js\";\nimport * as FernRegistry from \"../../../../../../../index.js\";\n\nexport declare namespace RegisterClient {\n export interface Options extends BaseClientOptions {}\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\nexport class RegisterClient {\n protected readonly _options: RegisterClient.Options;\n\n constructor(options: RegisterClient.Options = {}) {\n this._options = normalizeClientOptions(options);\n }\n\n /**\n * @param {FernRegistry.api.v1.register.RegisterApiDefinitionRequest} request\n * @param {RegisterClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.api.v1.register.registerApiDefinition({\n * orgId: FernRegistry.OrgId(\"orgId\"),\n * apiId: FernRegistry.ApiId(\"apiId\")\n * })\n */\n public registerApiDefinition(\n request: FernRegistry.api.v1.register.RegisterApiDefinitionRequest,\n requestOptions?: RegisterClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<\n FernRegistry.api.v1.register.RegisterApiDefinitionResponse,\n FernRegistry.api.v1.register.registerApiDefinition.Error\n >\n > {\n return core.HttpResponsePromise.fromPromise(this.__registerApiDefinition(request, requestOptions));\n }\n\n private async __registerApiDefinition(\n request: FernRegistry.api.v1.register.RegisterApiDefinitionRequest,\n requestOptions?: RegisterClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.api.v1.register.RegisterApiDefinitionResponse,\n FernRegistry.api.v1.register.registerApiDefinition.Error\n >\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/registry/api/register\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.api.v1.register.RegisterApiDefinitionResponse,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.api.v1.register.registerApiDefinition.Error)?.error) {\n case \"UnauthorizedError\":\n case \"UserNotInOrgError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.api.v1.register.registerApiDefinition.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.api.v1.register.registerApiDefinition.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Get presigned S3 upload URLs for SDK dynamic IR without requiring full API registration. Used for SDK generation.\n *\n * @param {FernRegistry.api.v1.register.GetSdkDynamicIrUploadUrlsRequest} request\n * @param {RegisterClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.api.v1.register.getSdkDynamicIrUploadUrls({\n * orgId: FernRegistry.OrgId(\"orgId\"),\n * version: \"version\",\n * snippetConfiguration: {\n * \"snippetConfiguration\": \"snippetConfiguration\"\n * }\n * })\n */\n public getSdkDynamicIrUploadUrls(\n request: FernRegistry.api.v1.register.GetSdkDynamicIrUploadUrlsRequest,\n requestOptions?: RegisterClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<\n FernRegistry.api.v1.register.GetSdkDynamicIrUploadUrlsResponse,\n FernRegistry.api.v1.register.getSdkDynamicIrUploadUrls.Error\n >\n > {\n return core.HttpResponsePromise.fromPromise(this.__getSdkDynamicIrUploadUrls(request, requestOptions));\n }\n\n private async __getSdkDynamicIrUploadUrls(\n request: FernRegistry.api.v1.register.GetSdkDynamicIrUploadUrlsRequest,\n requestOptions?: RegisterClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.api.v1.register.GetSdkDynamicIrUploadUrlsResponse,\n FernRegistry.api.v1.register.getSdkDynamicIrUploadUrls.Error\n >\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/registry/api/sdk-dynamic-ir-upload-urls\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.api.v1.register.GetSdkDynamicIrUploadUrlsResponse,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.api.v1.register.getSdkDynamicIrUploadUrls.Error)?.error) {\n case \"UnauthorizedError\":\n case \"UserNotInOrgError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.api.v1.register.getSdkDynamicIrUploadUrls.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.api.v1.register.getSdkDynamicIrUploadUrls.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Check if SDK dynamic IR exists in S3 for the given languages/snippets. Returns download URLs for existing dynamic IRs.\n *\n * @param {FernRegistry.api.v1.register.CheckSdkDynamicIrExistsRequest} request\n * @param {RegisterClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.api.v1.register.checkSdkDynamicIrExists({\n * orgId: FernRegistry.OrgId(\"orgId\"),\n * snippetConfiguration: {\n * \"snippetConfiguration\": {\n * packageName: \"packageName\",\n * version: undefined\n * }\n * }\n * })\n */\n public checkSdkDynamicIrExists(\n request: FernRegistry.api.v1.register.CheckSdkDynamicIrExistsRequest,\n requestOptions?: RegisterClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<\n FernRegistry.api.v1.register.CheckSdkDynamicIrExistsResponse,\n FernRegistry.api.v1.register.checkSdkDynamicIrExists.Error\n >\n > {\n return core.HttpResponsePromise.fromPromise(this.__checkSdkDynamicIrExists(request, requestOptions));\n }\n\n private async __checkSdkDynamicIrExists(\n request: FernRegistry.api.v1.register.CheckSdkDynamicIrExistsRequest,\n requestOptions?: RegisterClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.api.v1.register.CheckSdkDynamicIrExistsResponse,\n FernRegistry.api.v1.register.checkSdkDynamicIrExists.Error\n >\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/registry/api/check-sdk-dynamic-ir\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.api.v1.register.CheckSdkDynamicIrExistsResponse,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.api.v1.register.checkSdkDynamicIrExists.Error)?.error) {\n case \"UnauthorizedError\":\n case \"UserNotInOrgError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.api.v1.register.checkSdkDynamicIrExists.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.api.v1.register.checkSdkDynamicIrExists.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions } from \"../../../../../../BaseClient.js\";\nimport { normalizeClientOptions } from \"../../../../../../BaseClient.js\";\nimport { ReadClient } from \"../resources/read/client/Client.js\";\nimport { RegisterClient } from \"../resources/register/client/Client.js\";\n\nexport declare namespace V1Client {\n export interface Options extends BaseClientOptions {}\n}\n\nexport class V1Client {\n protected readonly _options: V1Client.Options;\n protected _read: ReadClient | undefined;\n protected _register: RegisterClient | undefined;\n\n constructor(options: V1Client.Options = {}) {\n this._options = normalizeClientOptions(options);\n }\n\n public get read(): ReadClient {\n return (this._read ??= new ReadClient(this._options));\n }\n\n public get register(): RegisterClient {\n return (this._register ??= new RegisterClient(this._options));\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions } from \"../../../../BaseClient.js\";\nimport { normalizeClientOptions } from \"../../../../BaseClient.js\";\nimport { LatestClient } from \"../resources/latest/client/Client.js\";\nimport { V1Client } from \"../resources/v1/client/Client.js\";\n\nexport declare namespace ApiClient {\n export interface Options extends BaseClientOptions {}\n}\n\nexport class ApiClient {\n protected readonly _options: ApiClient.Options;\n protected _latest: LatestClient | undefined;\n protected _v1: V1Client | undefined;\n\n constructor(options: ApiClient.Options = {}) {\n this._options = normalizeClientOptions(options);\n }\n\n public get latest(): LatestClient {\n return (this._latest ??= new LatestClient(this._options));\n }\n\n public get v1(): V1Client {\n return (this._v1 ??= new V1Client(this._options));\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../BaseClient.js\";\nimport { normalizeClientOptions } from \"../../../../BaseClient.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../core/headers.js\";\nimport * as core from \"../../../../core/index.js\";\nimport * as environments from \"../../../../environments.js\";\nimport * as FernRegistry from \"../../../index.js\";\n\nexport declare namespace DashboardClient {\n export interface Options extends BaseClientOptions {}\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\n/**\n * APIs for the Fern Dashboard\n */\nexport class DashboardClient {\n protected readonly _options: DashboardClient.Options;\n\n constructor(options: DashboardClient.Options = {}) {\n this._options = normalizeClientOptions(options);\n }\n\n /**\n * Get all docs sites that belong to a given organization\n *\n * @param {FernRegistry.dashboard.GetDocsSitesForOrgRequest} request\n * @param {DashboardClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.dashboard.getDocsSitesForOrg({\n * orgId: FernRegistry.OrgId(\"orgId\")\n * })\n */\n public getDocsSitesForOrg(\n request: FernRegistry.dashboard.GetDocsSitesForOrgRequest,\n requestOptions?: DashboardClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<\n FernRegistry.dashboard.GetDocsSitesForOrgResponse,\n FernRegistry.dashboard.getDocsSitesForOrg.Error\n >\n > {\n return core.HttpResponsePromise.fromPromise(this.__getDocsSitesForOrg(request, requestOptions));\n }\n\n private async __getDocsSitesForOrg(\n request: FernRegistry.dashboard.GetDocsSitesForOrgRequest,\n requestOptions?: DashboardClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.dashboard.GetDocsSitesForOrgResponse,\n FernRegistry.dashboard.getDocsSitesForOrg.Error\n >\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/dashboard/get-docs-sites-for-org\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.dashboard.GetDocsSitesForOrgResponse,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.dashboard.getDocsSitesForOrg.Error)?.error) {\n case \"UnauthorizedError\":\n case \"UserNotInOrgError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.dashboard.getDocsSitesForOrg.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.dashboard.getDocsSitesForOrg.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../BaseClient.js\";\nimport { normalizeClientOptions } from \"../../../../BaseClient.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../core/headers.js\";\nimport * as core from \"../../../../core/index.js\";\nimport * as environments from \"../../../../environments.js\";\nimport * as FernRegistry from \"../../../index.js\";\n\nexport declare namespace DiffClient {\n export interface Options extends BaseClientOptions {}\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\nexport class DiffClient {\n protected readonly _options: DiffClient.Options;\n\n constructor(options: DiffClient.Options = {}) {\n this._options = normalizeClientOptions(options);\n }\n\n /**\n * @param {FernRegistry.ApiDiffRequest} request\n * @param {DiffClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.diff.diff({\n * previousApiDefinitionId: FernRegistry.ApiDefinitionId(\"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\"),\n * currentApiDefinitionId: FernRegistry.ApiDefinitionId(\"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\")\n * })\n */\n public diff(\n request: FernRegistry.ApiDiffRequest,\n requestOptions?: DiffClient.RequestOptions,\n ): core.HttpResponsePromise<core.APIResponse<FernRegistry.ApiDiff, FernRegistry.diff.diff.Error>> {\n return core.HttpResponsePromise.fromPromise(this.__diff(request, requestOptions));\n }\n\n private async __diff(\n request: FernRegistry.ApiDiffRequest,\n requestOptions?: DiffClient.RequestOptions,\n ): Promise<core.WithRawResponse<core.APIResponse<FernRegistry.ApiDiff, FernRegistry.diff.diff.Error>>> {\n const { previousApiDefinitionId, currentApiDefinitionId } = request;\n const _queryParams: Record<string, string | string[] | object | object[] | null> = {};\n _queryParams.previousApiDefinitionId = previousApiDefinitionId;\n _queryParams.currentApiDefinitionId = currentApiDefinitionId;\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/registry/diff\",\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: { ..._queryParams, ...requestOptions?.queryParams },\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.ApiDiff,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.diff.diff.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../../../../../BaseClient.js\";\nimport { normalizeClientOptions } from \"../../../../../../../../BaseClient.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../../../../../core/headers.js\";\nimport * as core from \"../../../../../../../../core/index.js\";\nimport * as environments from \"../../../../../../../../environments.js\";\nimport * as FernRegistry from \"../../../../../../../index.js\";\n\nexport declare namespace ReadClient {\n export interface Options extends BaseClientOptions {}\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\nexport class ReadClient {\n protected readonly _options: ReadClient.Options;\n\n constructor(options: ReadClient.Options = {}) {\n this._options = normalizeClientOptions(options);\n }\n\n /**\n * @param {string} domain\n * @param {ReadClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.docs.v1.read.getDocsForDomainLegacy(\"domain\")\n */\n public getDocsForDomainLegacy(\n domain: string,\n requestOptions?: ReadClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<\n FernRegistry.docs.v1.read.DocsDefinition,\n FernRegistry.docs.v1.read.getDocsForDomainLegacy.Error\n >\n > {\n return core.HttpResponsePromise.fromPromise(this.__getDocsForDomainLegacy(domain, requestOptions));\n }\n\n private async __getDocsForDomainLegacy(\n domain: string,\n requestOptions?: ReadClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.docs.v1.read.DocsDefinition,\n FernRegistry.docs.v1.read.getDocsForDomainLegacy.Error\n >\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n `/registry/docs/load/${core.url.encodePathParam(domain)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.docs.v1.read.DocsDefinition,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.docs.v1.read.getDocsForDomainLegacy.Error)?.error) {\n case \"UnauthorizedError\":\n case \"DomainNotRegisteredError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.docs.v1.read.getDocsForDomainLegacy.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.docs.v1.read.getDocsForDomainLegacy.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * @param {FernRegistry.docs.v1.read.LoadDocsForDomainRequest} request\n * @param {ReadClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.docs.v1.read.getDocsForDomain({\n * domain: \"domain\"\n * })\n */\n public getDocsForDomain(\n request: FernRegistry.docs.v1.read.LoadDocsForDomainRequest,\n requestOptions?: ReadClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<FernRegistry.docs.v1.read.DocsDefinition, FernRegistry.docs.v1.read.getDocsForDomain.Error>\n > {\n return core.HttpResponsePromise.fromPromise(this.__getDocsForDomain(request, requestOptions));\n }\n\n private async __getDocsForDomain(\n request: FernRegistry.docs.v1.read.LoadDocsForDomainRequest,\n requestOptions?: ReadClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<FernRegistry.docs.v1.read.DocsDefinition, FernRegistry.docs.v1.read.getDocsForDomain.Error>\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/registry/docs/load\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.docs.v1.read.DocsDefinition,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.docs.v1.read.getDocsForDomain.Error)?.error) {\n case \"UnauthorizedError\":\n case \"DomainNotRegisteredError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.docs.v1.read.getDocsForDomain.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.docs.v1.read.getDocsForDomain.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../../../../../BaseClient.js\";\nimport { normalizeClientOptions } from \"../../../../../../../../BaseClient.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../../../../../core/headers.js\";\nimport * as core from \"../../../../../../../../core/index.js\";\nimport * as environments from \"../../../../../../../../environments.js\";\nimport * as FernRegistry from \"../../../../../../../index.js\";\n\nexport declare namespace WriteClient {\n export interface Options extends BaseClientOptions {}\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\nexport class WriteClient {\n protected readonly _options: WriteClient.Options;\n\n constructor(options: WriteClient.Options = {}) {\n this._options = normalizeClientOptions(options);\n }\n\n /**\n * @param {FernRegistry.docs.v1.write.StartDocsRegisterRequest} request\n * @param {WriteClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.docs.v1.write.startDocsRegister({\n * domain: \"domain\",\n * orgId: FernRegistry.OrgId(\"orgId\"),\n * filepaths: [FernRegistry.docs.v1.write.FilePath(\"filepaths\"), FernRegistry.docs.v1.write.FilePath(\"filepaths\")]\n * })\n */\n public startDocsRegister(\n request: FernRegistry.docs.v1.write.StartDocsRegisterRequest,\n requestOptions?: WriteClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<\n FernRegistry.docs.v1.write.StartDocsRegisterResponse,\n FernRegistry.docs.v1.write.startDocsRegister.Error\n >\n > {\n return core.HttpResponsePromise.fromPromise(this.__startDocsRegister(request, requestOptions));\n }\n\n private async __startDocsRegister(\n request: FernRegistry.docs.v1.write.StartDocsRegisterRequest,\n requestOptions?: WriteClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.docs.v1.write.StartDocsRegisterResponse,\n FernRegistry.docs.v1.write.startDocsRegister.Error\n >\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/registry/docs/init\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.docs.v1.write.StartDocsRegisterResponse,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.docs.v1.write.startDocsRegister.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * @param {FernRegistry.docs.v1.write.DocsRegistrationId} docsRegistrationId\n * @param {FernRegistry.docs.v1.write.RegisterDocsRequest} request\n * @param {WriteClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.docs.v1.write.finishDocsRegister(FernRegistry.docs.v1.write.DocsRegistrationId(\"docsRegistrationId\"), {\n * docsDefinition: {\n * pages: {\n * \"pages\": {\n * markdown: \"markdown\",\n * editThisPageUrl: undefined,\n * rawMarkdown: undefined\n * }\n * },\n * config: {\n * title: undefined,\n * defaultLanguage: undefined,\n * languages: undefined,\n * announcement: undefined,\n * navigation: undefined,\n * root: undefined,\n * navbarLinks: undefined,\n * footerLinks: undefined,\n * hideNavLinks: undefined,\n * logoHeight: undefined,\n * logoHref: undefined,\n * logoRightText: undefined,\n * favicon: undefined,\n * metadata: undefined,\n * redirects: undefined,\n * colorsV3: undefined,\n * layout: undefined,\n * theme: undefined,\n * settings: undefined,\n * typographyV2: undefined,\n * analyticsConfig: undefined,\n * integrations: undefined,\n * css: undefined,\n * js: undefined,\n * aiChatConfig: undefined,\n * pageActions: undefined,\n * backgroundImage: undefined,\n * logoV2: undefined,\n * logo: undefined,\n * colors: undefined,\n * colorsV2: undefined,\n * typography: undefined\n * },\n * jsFiles: undefined\n * }\n * })\n */\n public finishDocsRegister(\n docsRegistrationId: FernRegistry.docs.v1.write.DocsRegistrationId,\n request: FernRegistry.docs.v1.write.RegisterDocsRequest,\n requestOptions?: WriteClient.RequestOptions,\n ): core.HttpResponsePromise<core.APIResponse<void, FernRegistry.docs.v1.write.finishDocsRegister.Error>> {\n return core.HttpResponsePromise.fromPromise(\n this.__finishDocsRegister(docsRegistrationId, request, requestOptions),\n );\n }\n\n private async __finishDocsRegister(\n docsRegistrationId: FernRegistry.docs.v1.write.DocsRegistrationId,\n request: FernRegistry.docs.v1.write.RegisterDocsRequest,\n requestOptions?: WriteClient.RequestOptions,\n ): Promise<core.WithRawResponse<core.APIResponse<void, FernRegistry.docs.v1.write.finishDocsRegister.Error>>> {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n `/registry/docs/register/${core.url.encodePathParam(docsRegistrationId)}`,\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: undefined,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.docs.v1.write.finishDocsRegister.Error)?.error) {\n case \"UnauthorizedError\":\n case \"UserNotInOrgError\":\n case \"DocsRegistrationIdNotFound\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.docs.v1.write.finishDocsRegister.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.docs.v1.write.finishDocsRegister.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions } from \"../../../../../../BaseClient.js\";\nimport { normalizeClientOptions } from \"../../../../../../BaseClient.js\";\nimport { ReadClient } from \"../resources/read/client/Client.js\";\nimport { WriteClient } from \"../resources/write/client/Client.js\";\n\nexport declare namespace V1Client {\n export interface Options extends BaseClientOptions {}\n}\n\nexport class V1Client {\n protected readonly _options: V1Client.Options;\n protected _read: ReadClient | undefined;\n protected _write: WriteClient | undefined;\n\n constructor(options: V1Client.Options = {}) {\n this._options = normalizeClientOptions(options);\n }\n\n public get read(): ReadClient {\n return (this._read ??= new ReadClient(this._options));\n }\n\n public get write(): WriteClient {\n return (this._write ??= new WriteClient(this._options));\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../../../../../BaseClient.js\";\nimport { normalizeClientOptions } from \"../../../../../../../../BaseClient.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../../../../../core/headers.js\";\nimport * as core from \"../../../../../../../../core/index.js\";\nimport * as environments from \"../../../../../../../../environments.js\";\nimport * as FernRegistry from \"../../../../../../../index.js\";\n\nexport declare namespace ReadClient {\n export interface Options extends BaseClientOptions {}\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\nexport class ReadClient {\n protected readonly _options: ReadClient.Options;\n\n constructor(options: ReadClient.Options = {}) {\n this._options = normalizeClientOptions(options);\n }\n\n /**\n * @param {FernRegistry.docs.v2.read.GetOrganizationForUrlRequest} request\n * @param {ReadClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.docs.v2.read.getOrganizationForUrl({\n * url: FernRegistry.Url(\"url\")\n * })\n */\n public getOrganizationForUrl(\n request: FernRegistry.docs.v2.read.GetOrganizationForUrlRequest,\n requestOptions?: ReadClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<FernRegistry.OrgId, FernRegistry.docs.v2.read.getOrganizationForUrl.Error>\n > {\n return core.HttpResponsePromise.fromPromise(this.__getOrganizationForUrl(request, requestOptions));\n }\n\n private async __getOrganizationForUrl(\n request: FernRegistry.docs.v2.read.GetOrganizationForUrlRequest,\n requestOptions?: ReadClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<FernRegistry.OrgId, FernRegistry.docs.v2.read.getOrganizationForUrl.Error>\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/v2/registry/docs/organization-for-url\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.OrgId,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.docs.v2.read.getOrganizationForUrl.Error)?.error) {\n case \"DomainNotRegisteredError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.docs.v2.read.getOrganizationForUrl.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.docs.v2.read.getOrganizationForUrl.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * @param {FernRegistry.docs.v2.read.GetMetadataForUrlRequest} request\n * @param {ReadClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.docs.v2.read.getDocsUrlMetadata({\n * url: FernRegistry.Url(\"url\")\n * })\n */\n public getDocsUrlMetadata(\n request: FernRegistry.docs.v2.read.GetMetadataForUrlRequest,\n requestOptions?: ReadClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<FernRegistry.docs.v2.read.DocsUrlMetadata, FernRegistry.docs.v2.read.getDocsUrlMetadata.Error>\n > {\n return core.HttpResponsePromise.fromPromise(this.__getDocsUrlMetadata(request, requestOptions));\n }\n\n private async __getDocsUrlMetadata(\n request: FernRegistry.docs.v2.read.GetMetadataForUrlRequest,\n requestOptions?: ReadClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.docs.v2.read.DocsUrlMetadata,\n FernRegistry.docs.v2.read.getDocsUrlMetadata.Error\n >\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/v2/registry/docs/metadata-for-url\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.docs.v2.read.DocsUrlMetadata,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.docs.v2.read.getDocsUrlMetadata.Error)?.error) {\n case \"DomainNotRegisteredError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.docs.v2.read.getDocsUrlMetadata.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.docs.v2.read.getDocsUrlMetadata.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * @param {FernRegistry.docs.v2.read.LoadDocsForUrlRequest} request\n * @param {ReadClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.docs.v2.read.getDocsForUrl({\n * url: FernRegistry.Url(\"url\")\n * })\n */\n public getDocsForUrl(\n request: FernRegistry.docs.v2.read.LoadDocsForUrlRequest,\n requestOptions?: ReadClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<\n FernRegistry.docs.v2.read.LoadDocsForUrlResponse,\n FernRegistry.docs.v2.read.getDocsForUrl.Error\n >\n > {\n return core.HttpResponsePromise.fromPromise(this.__getDocsForUrl(request, requestOptions));\n }\n\n private async __getDocsForUrl(\n request: FernRegistry.docs.v2.read.LoadDocsForUrlRequest,\n requestOptions?: ReadClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.docs.v2.read.LoadDocsForUrlResponse,\n FernRegistry.docs.v2.read.getDocsForUrl.Error\n >\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/v2/registry/docs/load-with-url\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.docs.v2.read.LoadDocsForUrlResponse,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.docs.v2.read.getDocsForUrl.Error)?.error) {\n case \"DomainNotRegisteredError\":\n case \"UnauthorizedError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.docs.v2.read.getDocsForUrl.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.docs.v2.read.getDocsForUrl.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Loads docs from the database and stores them in S3.\n * Returns the S3 URL where the docs definition can be accessed.\n * This endpoint always writes to S3 idempotently, regardless of whether the docs already exist in S3.\n *\n * @param {FernRegistry.docs.v2.read.EnsureDocsInS3Request} request\n * @param {ReadClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.docs.v2.read.ensureDocsInS3({\n * url: FernRegistry.Url(\"url\")\n * })\n */\n public ensureDocsInS3(\n request: FernRegistry.docs.v2.read.EnsureDocsInS3Request,\n requestOptions?: ReadClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<\n FernRegistry.docs.v2.read.EnsureDocsInS3Response,\n FernRegistry.docs.v2.read.ensureDocsInS3.Error\n >\n > {\n return core.HttpResponsePromise.fromPromise(this.__ensureDocsInS3(request, requestOptions));\n }\n\n private async __ensureDocsInS3(\n request: FernRegistry.docs.v2.read.EnsureDocsInS3Request,\n requestOptions?: ReadClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.docs.v2.read.EnsureDocsInS3Response,\n FernRegistry.docs.v2.read.ensureDocsInS3.Error\n >\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/v2/registry/docs/ensure-docs-in-s3\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.docs.v2.read.EnsureDocsInS3Response,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.docs.v2.read.ensureDocsInS3.Error)?.error) {\n case \"DomainNotRegisteredError\":\n case \"UnauthorizedError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.docs.v2.read.ensureDocsInS3.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.docs.v2.read.ensureDocsInS3.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * @param {FernRegistry.docs.v2.read.LoadPrivateDocsForUrlRequest} request\n * @param {ReadClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.docs.v2.read.getPrivateDocsForUrl({\n * url: FernRegistry.Url(\"url\")\n * })\n */\n public getPrivateDocsForUrl(\n request: FernRegistry.docs.v2.read.LoadPrivateDocsForUrlRequest,\n requestOptions?: ReadClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<\n FernRegistry.docs.v2.read.LoadDocsForUrlResponse,\n FernRegistry.docs.v2.read.getPrivateDocsForUrl.Error\n >\n > {\n return core.HttpResponsePromise.fromPromise(this.__getPrivateDocsForUrl(request, requestOptions));\n }\n\n private async __getPrivateDocsForUrl(\n request: FernRegistry.docs.v2.read.LoadPrivateDocsForUrlRequest,\n requestOptions?: ReadClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.docs.v2.read.LoadDocsForUrlResponse,\n FernRegistry.docs.v2.read.getPrivateDocsForUrl.Error\n >\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/v2/registry/docs/private/load-with-url\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.docs.v2.read.LoadDocsForUrlResponse,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.docs.v2.read.getPrivateDocsForUrl.Error)?.error) {\n case \"DomainNotRegisteredError\":\n case \"UnauthorizedError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.docs.v2.read.getPrivateDocsForUrl.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.docs.v2.read.getPrivateDocsForUrl.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Returns a list of all public docs.\n *\n * @param {FernRegistry.docs.v2.read.ListAllDocsUrlsRequest} request\n * @param {ReadClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.docs.v2.read.listAllDocsUrls()\n */\n public listAllDocsUrls(\n request: FernRegistry.docs.v2.read.ListAllDocsUrlsRequest = {},\n requestOptions?: ReadClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<\n FernRegistry.docs.v2.read.ListAllDocsUrlsResponse,\n FernRegistry.docs.v2.read.listAllDocsUrls.Error\n >\n > {\n return core.HttpResponsePromise.fromPromise(this.__listAllDocsUrls(request, requestOptions));\n }\n\n private async __listAllDocsUrls(\n request: FernRegistry.docs.v2.read.ListAllDocsUrlsRequest = {},\n requestOptions?: ReadClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.docs.v2.read.ListAllDocsUrlsResponse,\n FernRegistry.docs.v2.read.listAllDocsUrls.Error\n >\n >\n > {\n const { page, limit, custom } = request;\n const _queryParams: Record<string, string | string[] | object | object[] | null> = {};\n if (page != null) {\n _queryParams.page = page.toString();\n }\n\n if (limit != null) {\n _queryParams.limit = limit.toString();\n }\n\n if (custom != null) {\n _queryParams.custom = custom.toString();\n }\n\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/v2/registry/docs/urls/list\",\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: { ..._queryParams, ...requestOptions?.queryParams },\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.docs.v2.read.ListAllDocsUrlsResponse,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.docs.v2.read.listAllDocsUrls.Error)?.error) {\n case \"UnauthorizedError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.docs.v2.read.listAllDocsUrls.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.docs.v2.read.listAllDocsUrls.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Loads the Docs Config and any referenced APIs by ID.\n *\n * @param {FernRegistry.DocsConfigId} docsConfigId\n * @param {ReadClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.docs.v2.read.getDocsConfigById(FernRegistry.DocsConfigId(\"docsConfigId\"))\n */\n public getDocsConfigById(\n docsConfigId: FernRegistry.DocsConfigId,\n requestOptions?: ReadClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<\n FernRegistry.docs.v2.read.GetDocsConfigByIdResponse,\n FernRegistry.docs.v2.read.getDocsConfigById.Error\n >\n > {\n return core.HttpResponsePromise.fromPromise(this.__getDocsConfigById(docsConfigId, requestOptions));\n }\n\n private async __getDocsConfigById(\n docsConfigId: FernRegistry.DocsConfigId,\n requestOptions?: ReadClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.docs.v2.read.GetDocsConfigByIdResponse,\n FernRegistry.docs.v2.read.getDocsConfigById.Error\n >\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n `/v2/registry/docs/${core.url.encodePathParam(docsConfigId)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.docs.v2.read.GetDocsConfigByIdResponse,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.docs.v2.read.getDocsConfigById.Error)?.error) {\n case \"DocsDefinitionNotFoundError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.docs.v2.read.getDocsConfigById.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.docs.v2.read.getDocsConfigById.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Prepopulates the FDR read S3 bucket with docs definitions\n *\n * @param {ReadClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.docs.v2.read.prepopulateFdrReadS3Bucket()\n */\n public prepopulateFdrReadS3Bucket(\n requestOptions?: ReadClient.RequestOptions,\n ): core.HttpResponsePromise<core.APIResponse<void, FernRegistry.docs.v2.read.prepopulateFdrReadS3Bucket.Error>> {\n return core.HttpResponsePromise.fromPromise(this.__prepopulateFdrReadS3Bucket(requestOptions));\n }\n\n private async __prepopulateFdrReadS3Bucket(\n requestOptions?: ReadClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<core.APIResponse<void, FernRegistry.docs.v2.read.prepopulateFdrReadS3Bucket.Error>>\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/v2/registry/docs/prepopulate-s3-bucket\",\n ),\n method: \"POST\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: undefined,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.docs.v2.read.prepopulateFdrReadS3Bucket.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Loads specific fields from the docs definition with proper conversion (e.g., S3 URLs resolved).\n * This is more efficient than loading the entire docs definition when you only need specific parts.\n *\n * @param {FernRegistry.docs.v2.read.GetDocsFieldsRequest} request\n * @param {ReadClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.docs.v2.read.getDocsFields({\n * domain: \"domain\",\n * fields: [\"BASE_URL\", \"BASE_URL\"]\n * })\n */\n public getDocsFields(\n request: FernRegistry.docs.v2.read.GetDocsFieldsRequest,\n requestOptions?: ReadClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<FernRegistry.docs.v2.read.GetDocsFieldsResponse, FernRegistry.docs.v2.read.getDocsFields.Error>\n > {\n return core.HttpResponsePromise.fromPromise(this.__getDocsFields(request, requestOptions));\n }\n\n private async __getDocsFields(\n request: FernRegistry.docs.v2.read.GetDocsFieldsRequest,\n requestOptions?: ReadClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.docs.v2.read.GetDocsFieldsResponse,\n FernRegistry.docs.v2.read.getDocsFields.Error\n >\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/v2/registry/docs/load-fields\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.docs.v2.read.GetDocsFieldsResponse,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.docs.v2.read.getDocsFields.Error)?.error) {\n case \"DomainNotRegisteredError\":\n case \"UnauthorizedError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.docs.v2.read.getDocsFields.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.docs.v2.read.getDocsFields.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../../../../../BaseClient.js\";\nimport { normalizeClientOptions } from \"../../../../../../../../BaseClient.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../../../../../core/headers.js\";\nimport * as core from \"../../../../../../../../core/index.js\";\nimport * as environments from \"../../../../../../../../environments.js\";\nimport * as FernRegistry from \"../../../../../../../index.js\";\n\nexport declare namespace WriteClient {\n export interface Options extends BaseClientOptions {}\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\nexport class WriteClient {\n protected readonly _options: WriteClient.Options;\n\n constructor(options: WriteClient.Options = {}) {\n this._options = normalizeClientOptions(options);\n }\n\n /**\n * @param {FernRegistry.docs.v2.write.StartDocsRegisterRequestV2} request\n * @param {WriteClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.docs.v2.write.startDocsRegister({\n * domain: \"domain\",\n * customDomains: [\"customDomains\", \"customDomains\"],\n * orgId: FernRegistry.OrgId(\"orgId\"),\n * apiId: FernRegistry.ApiId(\"apiId\"),\n * filepaths: [FernRegistry.docs.v1.write.FilePath(\"filepaths\"), FernRegistry.docs.v1.write.FilePath(\"filepaths\")]\n * })\n */\n public startDocsRegister(\n request: FernRegistry.docs.v2.write.StartDocsRegisterRequestV2,\n requestOptions?: WriteClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<\n FernRegistry.docs.v1.write.StartDocsRegisterResponse,\n FernRegistry.docs.v2.write.startDocsRegister.Error\n >\n > {\n return core.HttpResponsePromise.fromPromise(this.__startDocsRegister(request, requestOptions));\n }\n\n private async __startDocsRegister(\n request: FernRegistry.docs.v2.write.StartDocsRegisterRequestV2,\n requestOptions?: WriteClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.docs.v1.write.StartDocsRegisterResponse,\n FernRegistry.docs.v2.write.startDocsRegister.Error\n >\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/v2/registry/docs/v2/init\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.docs.v1.write.StartDocsRegisterResponse,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.docs.v2.write.startDocsRegister.Error)?.error) {\n case \"UnauthorizedError\":\n case \"UnavailableError\":\n case \"UserNotInOrgError\":\n case \"InvalidDomainError\":\n case \"InvalidCustomDomainError\":\n case \"DomainBelongsToAnotherOrgError\":\n case \"InvalidURLError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.docs.v2.write.startDocsRegister.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.docs.v2.write.startDocsRegister.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * @param {FernRegistry.docs.v2.write.StartDocsPreviewRegisterRequestV2} request\n * @param {WriteClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.docs.v2.write.startDocsPreviewRegister({\n * orgId: FernRegistry.OrgId(\"orgId\"),\n * filepaths: [FernRegistry.docs.v1.write.FilePath(\"filepaths\"), FernRegistry.docs.v1.write.FilePath(\"filepaths\")]\n * })\n */\n public startDocsPreviewRegister(\n request: FernRegistry.docs.v2.write.StartDocsPreviewRegisterRequestV2,\n requestOptions?: WriteClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<\n FernRegistry.docs.v2.write.StartDocsPreviewRegisterResponse,\n FernRegistry.docs.v2.write.startDocsPreviewRegister.Error\n >\n > {\n return core.HttpResponsePromise.fromPromise(this.__startDocsPreviewRegister(request, requestOptions));\n }\n\n private async __startDocsPreviewRegister(\n request: FernRegistry.docs.v2.write.StartDocsPreviewRegisterRequestV2,\n requestOptions?: WriteClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.docs.v2.write.StartDocsPreviewRegisterResponse,\n FernRegistry.docs.v2.write.startDocsPreviewRegister.Error\n >\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/v2/registry/docs/preview/init\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.docs.v2.write.StartDocsPreviewRegisterResponse,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.docs.v2.write.startDocsPreviewRegister.Error)?.error) {\n case \"UnauthorizedError\":\n case \"UnavailableError\":\n case \"UserNotInOrgError\":\n case \"InvalidDomainError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.docs.v2.write.startDocsPreviewRegister.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.docs.v2.write.startDocsPreviewRegister.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * @param {FernRegistry.docs.v1.write.DocsRegistrationId} docsRegistrationId\n * @param {FernRegistry.docs.v2.write.RegisterDocsRequest} request\n * @param {WriteClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.docs.v2.write.finishDocsRegister(FernRegistry.docs.v1.write.DocsRegistrationId(\"docsRegistrationId\"), {\n * docsDefinition: {\n * pages: {\n * \"pages\": {\n * markdown: \"markdown\",\n * editThisPageUrl: undefined,\n * rawMarkdown: undefined\n * }\n * },\n * config: {\n * title: undefined,\n * defaultLanguage: undefined,\n * languages: undefined,\n * announcement: undefined,\n * navigation: undefined,\n * root: undefined,\n * navbarLinks: undefined,\n * footerLinks: undefined,\n * hideNavLinks: undefined,\n * logoHeight: undefined,\n * logoHref: undefined,\n * logoRightText: undefined,\n * favicon: undefined,\n * metadata: undefined,\n * redirects: undefined,\n * colorsV3: undefined,\n * layout: undefined,\n * theme: undefined,\n * settings: undefined,\n * typographyV2: undefined,\n * analyticsConfig: undefined,\n * integrations: undefined,\n * css: undefined,\n * js: undefined,\n * aiChatConfig: undefined,\n * pageActions: undefined,\n * backgroundImage: undefined,\n * logoV2: undefined,\n * logo: undefined,\n * colors: undefined,\n * colorsV2: undefined,\n * typography: undefined\n * },\n * jsFiles: undefined\n * }\n * })\n */\n public finishDocsRegister(\n docsRegistrationId: FernRegistry.docs.v1.write.DocsRegistrationId,\n request: FernRegistry.docs.v2.write.RegisterDocsRequest,\n requestOptions?: WriteClient.RequestOptions,\n ): core.HttpResponsePromise<core.APIResponse<void, FernRegistry.docs.v2.write.finishDocsRegister.Error>> {\n return core.HttpResponsePromise.fromPromise(\n this.__finishDocsRegister(docsRegistrationId, request, requestOptions),\n );\n }\n\n private async __finishDocsRegister(\n docsRegistrationId: FernRegistry.docs.v1.write.DocsRegistrationId,\n request: FernRegistry.docs.v2.write.RegisterDocsRequest,\n requestOptions?: WriteClient.RequestOptions,\n ): Promise<core.WithRawResponse<core.APIResponse<void, FernRegistry.docs.v2.write.finishDocsRegister.Error>>> {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n `/v2/registry/docs/register/${core.url.encodePathParam(docsRegistrationId)}`,\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: undefined,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.docs.v2.write.finishDocsRegister.Error)?.error) {\n case \"UnauthorizedError\":\n case \"UserNotInOrgError\":\n case \"DocsRegistrationIdNotFound\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.docs.v2.write.finishDocsRegister.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.docs.v2.write.finishDocsRegister.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * @param {FernRegistry.docs.v2.write.TransferDomainOwnershipRequest} request\n * @param {WriteClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.docs.v2.write.transferOwnershipOfDomain({\n * domain: \"domain\",\n * toOrgId: \"toOrgId\"\n * })\n */\n public transferOwnershipOfDomain(\n request: FernRegistry.docs.v2.write.TransferDomainOwnershipRequest,\n requestOptions?: WriteClient.RequestOptions,\n ): core.HttpResponsePromise<core.APIResponse<void, FernRegistry.docs.v2.write.transferOwnershipOfDomain.Error>> {\n return core.HttpResponsePromise.fromPromise(this.__transferOwnershipOfDomain(request, requestOptions));\n }\n\n private async __transferOwnershipOfDomain(\n request: FernRegistry.docs.v2.write.TransferDomainOwnershipRequest,\n requestOptions?: WriteClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<core.APIResponse<void, FernRegistry.docs.v2.write.transferOwnershipOfDomain.Error>>\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/v2/registry/docs/transfer-ownership\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: undefined,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.docs.v2.write.transferOwnershipOfDomain.Error)?.error) {\n case \"DocsNotFoundError\":\n case \"UnauthorizedError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.docs.v2.write.transferOwnershipOfDomain.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.docs.v2.write.transferOwnershipOfDomain.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * @param {FernRegistry.docs.v2.write.SetIsArchivedRequest} request\n * @param {WriteClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.docs.v2.write.setIsArchived({\n * url: FernRegistry.Url(\"url\"),\n * isArchived: true\n * })\n */\n public setIsArchived(\n request: FernRegistry.docs.v2.write.SetIsArchivedRequest,\n requestOptions?: WriteClient.RequestOptions,\n ): core.HttpResponsePromise<core.APIResponse<void, FernRegistry.docs.v2.write.setIsArchived.Error>> {\n return core.HttpResponsePromise.fromPromise(this.__setIsArchived(request, requestOptions));\n }\n\n private async __setIsArchived(\n request: FernRegistry.docs.v2.write.SetIsArchivedRequest,\n requestOptions?: WriteClient.RequestOptions,\n ): Promise<core.WithRawResponse<core.APIResponse<void, FernRegistry.docs.v2.write.setIsArchived.Error>>> {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/v2/registry/docs/set-is-archived\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: undefined,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.docs.v2.write.setIsArchived.Error)?.error) {\n case \"DocsNotFoundError\":\n case \"UnauthorizedError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.docs.v2.write.setIsArchived.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.docs.v2.write.setIsArchived.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * @param {FernRegistry.docs.v2.write.SetDocsUrlMetadataRequest} request\n * @param {WriteClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.docs.v2.write.setDocsUrlMetadata({\n * url: FernRegistry.Url(\"url\")\n * })\n */\n public setDocsUrlMetadata(\n request: FernRegistry.docs.v2.write.SetDocsUrlMetadataRequest,\n requestOptions?: WriteClient.RequestOptions,\n ): core.HttpResponsePromise<core.APIResponse<void, FernRegistry.docs.v2.write.setDocsUrlMetadata.Error>> {\n return core.HttpResponsePromise.fromPromise(this.__setDocsUrlMetadata(request, requestOptions));\n }\n\n private async __setDocsUrlMetadata(\n request: FernRegistry.docs.v2.write.SetDocsUrlMetadataRequest,\n requestOptions?: WriteClient.RequestOptions,\n ): Promise<core.WithRawResponse<core.APIResponse<void, FernRegistry.docs.v2.write.setDocsUrlMetadata.Error>>> {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/v2/registry/docs/set-metadata-for-url\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: undefined,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.docs.v2.write.setDocsUrlMetadata.Error)?.error) {\n case \"DocsNotFoundError\":\n case \"UnauthorizedError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.docs.v2.write.setDocsUrlMetadata.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.docs.v2.write.setDocsUrlMetadata.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Add a domain to the Algolia preview whitelist to enable search on preview URLs\n *\n * @param {FernRegistry.docs.v2.write.AddAlgoliaPreviewWhitelistRequest} request\n * @param {WriteClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.docs.v2.write.addAlgoliaPreviewWhitelistEntry({\n * domain: \"domain\"\n * })\n */\n public addAlgoliaPreviewWhitelistEntry(\n request: FernRegistry.docs.v2.write.AddAlgoliaPreviewWhitelistRequest,\n requestOptions?: WriteClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<void, FernRegistry.docs.v2.write.addAlgoliaPreviewWhitelistEntry.Error>\n > {\n return core.HttpResponsePromise.fromPromise(this.__addAlgoliaPreviewWhitelistEntry(request, requestOptions));\n }\n\n private async __addAlgoliaPreviewWhitelistEntry(\n request: FernRegistry.docs.v2.write.AddAlgoliaPreviewWhitelistRequest,\n requestOptions?: WriteClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<core.APIResponse<void, FernRegistry.docs.v2.write.addAlgoliaPreviewWhitelistEntry.Error>>\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/v2/registry/docs/algolia-preview-whitelist/add\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: undefined,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.docs.v2.write.addAlgoliaPreviewWhitelistEntry.Error)?.error) {\n case \"UnauthorizedError\":\n return {\n data: {\n ok: false,\n error: _response.error\n .body as FernRegistry.docs.v2.write.addAlgoliaPreviewWhitelistEntry.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.docs.v2.write.addAlgoliaPreviewWhitelistEntry.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Remove a domain from the Algolia preview whitelist\n *\n * @param {FernRegistry.docs.v2.write.RemoveAlgoliaPreviewWhitelistRequest} request\n * @param {WriteClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.docs.v2.write.removeAlgoliaPreviewWhitelistEntry({\n * domain: \"domain\"\n * })\n */\n public removeAlgoliaPreviewWhitelistEntry(\n request: FernRegistry.docs.v2.write.RemoveAlgoliaPreviewWhitelistRequest,\n requestOptions?: WriteClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<void, FernRegistry.docs.v2.write.removeAlgoliaPreviewWhitelistEntry.Error>\n > {\n return core.HttpResponsePromise.fromPromise(this.__removeAlgoliaPreviewWhitelistEntry(request, requestOptions));\n }\n\n private async __removeAlgoliaPreviewWhitelistEntry(\n request: FernRegistry.docs.v2.write.RemoveAlgoliaPreviewWhitelistRequest,\n requestOptions?: WriteClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<void, FernRegistry.docs.v2.write.removeAlgoliaPreviewWhitelistEntry.Error>\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/v2/registry/docs/algolia-preview-whitelist/remove\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: undefined,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch (\n (_response.error.body as FernRegistry.docs.v2.write.removeAlgoliaPreviewWhitelistEntry.Error)?.error\n ) {\n case \"UnauthorizedError\":\n return {\n data: {\n ok: false,\n error: _response.error\n .body as FernRegistry.docs.v2.write.removeAlgoliaPreviewWhitelistEntry.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.docs.v2.write.removeAlgoliaPreviewWhitelistEntry.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * List all domains in the Algolia preview whitelist\n *\n * @param {WriteClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.docs.v2.write.listAlgoliaPreviewWhitelist()\n */\n public listAlgoliaPreviewWhitelist(\n requestOptions?: WriteClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<\n FernRegistry.docs.v2.write.ListAlgoliaPreviewWhitelistResponse,\n FernRegistry.docs.v2.write.listAlgoliaPreviewWhitelist.Error\n >\n > {\n return core.HttpResponsePromise.fromPromise(this.__listAlgoliaPreviewWhitelist(requestOptions));\n }\n\n private async __listAlgoliaPreviewWhitelist(\n requestOptions?: WriteClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.docs.v2.write.ListAlgoliaPreviewWhitelistResponse,\n FernRegistry.docs.v2.write.listAlgoliaPreviewWhitelist.Error\n >\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/v2/registry/docs/algolia-preview-whitelist/list\",\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.docs.v2.write.ListAlgoliaPreviewWhitelistResponse,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.docs.v2.write.listAlgoliaPreviewWhitelist.Error)?.error) {\n case \"UnauthorizedError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.docs.v2.write.listAlgoliaPreviewWhitelist.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.docs.v2.write.listAlgoliaPreviewWhitelist.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Delete a docs site and all associated data including S3 assets\n *\n * @param {FernRegistry.docs.v2.write.DeleteDocsSiteRequest} request\n * @param {WriteClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.docs.v2.write.deleteDocsSite({\n * url: FernRegistry.Url(\"url\")\n * })\n */\n public deleteDocsSite(\n request: FernRegistry.docs.v2.write.DeleteDocsSiteRequest,\n requestOptions?: WriteClient.RequestOptions,\n ): core.HttpResponsePromise<core.APIResponse<void, FernRegistry.docs.v2.write.deleteDocsSite.Error>> {\n return core.HttpResponsePromise.fromPromise(this.__deleteDocsSite(request, requestOptions));\n }\n\n private async __deleteDocsSite(\n request: FernRegistry.docs.v2.write.DeleteDocsSiteRequest,\n requestOptions?: WriteClient.RequestOptions,\n ): Promise<core.WithRawResponse<core.APIResponse<void, FernRegistry.docs.v2.write.deleteDocsSite.Error>>> {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/v2/registry/docs/delete\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: undefined,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.docs.v2.write.deleteDocsSite.Error)?.error) {\n case \"DocsNotFoundError\":\n case \"UnauthorizedError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.docs.v2.write.deleteDocsSite.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.docs.v2.write.deleteDocsSite.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Start async documentation generation for a library from source code.\n *\n * @param {FernRegistry.docs.v2.write.StartLibraryDocsGenerationRequest} request\n * @param {WriteClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.docs.v2.write.startLibraryDocsGeneration({\n * orgId: FernRegistry.OrgId(\"orgId\"),\n * githubUrl: FernRegistry.Url(\"githubUrl\"),\n * language: \"PYTHON\"\n * })\n */\n public startLibraryDocsGeneration(\n request: FernRegistry.docs.v2.write.StartLibraryDocsGenerationRequest,\n requestOptions?: WriteClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<\n FernRegistry.docs.v2.write.StartLibraryDocsGenerationResponse,\n FernRegistry.docs.v2.write.startLibraryDocsGeneration.Error\n >\n > {\n return core.HttpResponsePromise.fromPromise(this.__startLibraryDocsGeneration(request, requestOptions));\n }\n\n private async __startLibraryDocsGeneration(\n request: FernRegistry.docs.v2.write.StartLibraryDocsGenerationRequest,\n requestOptions?: WriteClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.docs.v2.write.StartLibraryDocsGenerationResponse,\n FernRegistry.docs.v2.write.startLibraryDocsGeneration.Error\n >\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/v2/registry/docs/library-docs/generate\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.docs.v2.write.StartLibraryDocsGenerationResponse,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.docs.v2.write.startLibraryDocsGeneration.Error)?.error) {\n case \"UnauthorizedError\":\n case \"UserNotInOrgError\":\n case \"InvalidGithubUrlError\":\n case \"UnsupportedLanguageError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.docs.v2.write.startLibraryDocsGeneration.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.docs.v2.write.startLibraryDocsGeneration.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Get the status of a documentation generation job.\n *\n * @param {FernRegistry.docs.v2.write.LibraryDocsJobId} jobId\n * @param {WriteClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.docs.v2.write.getLibraryDocsGenerationStatus(FernRegistry.docs.v2.write.LibraryDocsJobId(\"jobId\"))\n */\n public getLibraryDocsGenerationStatus(\n jobId: FernRegistry.docs.v2.write.LibraryDocsJobId,\n requestOptions?: WriteClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<\n FernRegistry.docs.v2.write.LibraryDocsGenerationStatus,\n FernRegistry.docs.v2.write.getLibraryDocsGenerationStatus.Error\n >\n > {\n return core.HttpResponsePromise.fromPromise(this.__getLibraryDocsGenerationStatus(jobId, requestOptions));\n }\n\n private async __getLibraryDocsGenerationStatus(\n jobId: FernRegistry.docs.v2.write.LibraryDocsJobId,\n requestOptions?: WriteClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.docs.v2.write.LibraryDocsGenerationStatus,\n FernRegistry.docs.v2.write.getLibraryDocsGenerationStatus.Error\n >\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n `/v2/registry/docs/library-docs/status/${core.url.encodePathParam(jobId)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.docs.v2.write.LibraryDocsGenerationStatus,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.docs.v2.write.getLibraryDocsGenerationStatus.Error)?.error) {\n case \"LibraryDocsJobNotFoundError\":\n return {\n data: {\n ok: false,\n error: _response.error\n .body as FernRegistry.docs.v2.write.getLibraryDocsGenerationStatus.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.docs.v2.write.getLibraryDocsGenerationStatus.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Get the result of a completed documentation generation job.\n *\n * @param {FernRegistry.docs.v2.write.LibraryDocsJobId} jobId\n * @param {WriteClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.docs.v2.write.getLibraryDocsResult(FernRegistry.docs.v2.write.LibraryDocsJobId(\"jobId\"))\n */\n public getLibraryDocsResult(\n jobId: FernRegistry.docs.v2.write.LibraryDocsJobId,\n requestOptions?: WriteClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<\n FernRegistry.docs.v2.write.LibraryDocsResult,\n FernRegistry.docs.v2.write.getLibraryDocsResult.Error\n >\n > {\n return core.HttpResponsePromise.fromPromise(this.__getLibraryDocsResult(jobId, requestOptions));\n }\n\n private async __getLibraryDocsResult(\n jobId: FernRegistry.docs.v2.write.LibraryDocsJobId,\n requestOptions?: WriteClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.docs.v2.write.LibraryDocsResult,\n FernRegistry.docs.v2.write.getLibraryDocsResult.Error\n >\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n `/v2/registry/docs/library-docs/result/${core.url.encodePathParam(jobId)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.docs.v2.write.LibraryDocsResult,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.docs.v2.write.getLibraryDocsResult.Error)?.error) {\n case \"LibraryDocsJobNotFoundError\":\n case \"LibraryDocsGenerationNotCompleteError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.docs.v2.write.getLibraryDocsResult.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.docs.v2.write.getLibraryDocsResult.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions } from \"../../../../../../BaseClient.js\";\nimport { normalizeClientOptions } from \"../../../../../../BaseClient.js\";\nimport { ReadClient } from \"../resources/read/client/Client.js\";\nimport { WriteClient } from \"../resources/write/client/Client.js\";\n\nexport declare namespace V2Client {\n export interface Options extends BaseClientOptions {}\n}\n\nexport class V2Client {\n protected readonly _options: V2Client.Options;\n protected _read: ReadClient | undefined;\n protected _write: WriteClient | undefined;\n\n constructor(options: V2Client.Options = {}) {\n this._options = normalizeClientOptions(options);\n }\n\n public get read(): ReadClient {\n return (this._read ??= new ReadClient(this._options));\n }\n\n public get write(): WriteClient {\n return (this._write ??= new WriteClient(this._options));\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions } from \"../../../../BaseClient.js\";\nimport { normalizeClientOptions } from \"../../../../BaseClient.js\";\nimport { V1Client } from \"../resources/v1/client/Client.js\";\nimport { V2Client } from \"../resources/v2/client/Client.js\";\n\nexport declare namespace DocsClient {\n export interface Options extends BaseClientOptions {}\n}\n\nexport class DocsClient {\n protected readonly _options: DocsClient.Options;\n protected _v1: V1Client | undefined;\n protected _v2: V2Client | undefined;\n\n constructor(options: DocsClient.Options = {}) {\n this._options = normalizeClientOptions(options);\n }\n\n public get v1(): V1Client {\n return (this._v1 ??= new V1Client(this._options));\n }\n\n public get v2(): V2Client {\n return (this._v2 ??= new V2Client(this._options));\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../BaseClient.js\";\nimport { normalizeClientOptions } from \"../../../../BaseClient.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../core/headers.js\";\nimport * as core from \"../../../../core/index.js\";\nimport * as environments from \"../../../../environments.js\";\nimport * as FernRegistry from \"../../../index.js\";\n\nexport declare namespace DocsCacheClient {\n export interface Options extends BaseClientOptions {}\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\nexport class DocsCacheClient {\n protected readonly _options: DocsCacheClient.Options;\n\n constructor(options: DocsCacheClient.Options = {}) {\n this._options = normalizeClientOptions(options);\n }\n\n /**\n * @param {FernRegistry.InvalidateCachedDocsRequest} request\n * @param {DocsCacheClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.docsCache.invalidate({\n * url: FernRegistry.Url(\"url\")\n * })\n */\n public invalidate(\n request: FernRegistry.InvalidateCachedDocsRequest,\n requestOptions?: DocsCacheClient.RequestOptions,\n ): core.HttpResponsePromise<core.APIResponse<void, FernRegistry.docsCache.invalidate.Error>> {\n return core.HttpResponsePromise.fromPromise(this.__invalidate(request, requestOptions));\n }\n\n private async __invalidate(\n request: FernRegistry.InvalidateCachedDocsRequest,\n requestOptions?: DocsCacheClient.RequestOptions,\n ): Promise<core.WithRawResponse<core.APIResponse<void, FernRegistry.docsCache.invalidate.Error>>> {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/docs-cache/invalidate\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: undefined,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.docsCache.invalidate.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../../../BaseClient.js\";\nimport { normalizeClientOptions } from \"../../../../../../BaseClient.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../../../core/headers.js\";\nimport * as core from \"../../../../../../core/index.js\";\nimport * as environments from \"../../../../../../environments.js\";\nimport * as FernRegistry from \"../../../../../index.js\";\n\nexport declare namespace CliClient {\n export interface Options extends BaseClientOptions {}\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\n/**\n * CRUD API for managing CLI versions, as well as the corresponding IR metadata.\n */\nexport class CliClient {\n protected readonly _options: CliClient.Options;\n\n constructor(options: CliClient.Options = {}) {\n this._options = normalizeClientOptions(options);\n }\n\n /**\n * Get the latest CLI version that has not been yanked.\n *\n * @param {FernRegistry.generators.GetLatestCliReleaseRequest} request\n * @param {CliClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.generators.cli.getLatestCliRelease()\n */\n public getLatestCliRelease(\n request: FernRegistry.generators.GetLatestCliReleaseRequest = {},\n requestOptions?: CliClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<FernRegistry.generators.CliRelease, FernRegistry.generators.cli.getLatestCliRelease.Error>\n > {\n return core.HttpResponsePromise.fromPromise(this.__getLatestCliRelease(request, requestOptions));\n }\n\n private async __getLatestCliRelease(\n request: FernRegistry.generators.GetLatestCliReleaseRequest = {},\n requestOptions?: CliClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<FernRegistry.generators.CliRelease, FernRegistry.generators.cli.getLatestCliRelease.Error>\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/generators/cli/latest\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.generators.CliRelease,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.generators.cli.getLatestCliRelease.Error)?.error) {\n case \"NoValidClisFoundError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.generators.cli.getLatestCliRelease.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.generators.cli.getLatestCliRelease.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Get the changelog for the specified CLI upgrade. The response will be a map of the generator version to it's corresponding changelog.\n *\n * @param {FernRegistry.generators.GetChangelogRequest} request\n * @param {CliClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.generators.cli.getChangelog({\n * fromVersion: {\n * type: \"inclusive\",\n * value: \"fromVersion\"\n * },\n * toVersion: {\n * type: \"inclusive\",\n * value: \"toVersion\"\n * }\n * })\n */\n public getChangelog(\n request: FernRegistry.generators.GetChangelogRequest,\n requestOptions?: CliClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<FernRegistry.generators.GetChangelogResponse, FernRegistry.generators.cli.getChangelog.Error>\n > {\n return core.HttpResponsePromise.fromPromise(this.__getChangelog(request, requestOptions));\n }\n\n private async __getChangelog(\n request: FernRegistry.generators.GetChangelogRequest,\n requestOptions?: CliClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.generators.GetChangelogResponse,\n FernRegistry.generators.cli.getChangelog.Error\n >\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/generators/cli/changelog\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.generators.GetChangelogResponse,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.generators.cli.getChangelog.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Get the minimum CLI version that supports the given IR version. This does not include RCs.\n *\n * @param {number} irVersion\n * @param {CliClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.generators.cli.getMinCliForIr(1)\n */\n public getMinCliForIr(\n irVersion: number,\n requestOptions?: CliClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<FernRegistry.generators.CliRelease, FernRegistry.generators.cli.getMinCliForIr.Error>\n > {\n return core.HttpResponsePromise.fromPromise(this.__getMinCliForIr(irVersion, requestOptions));\n }\n\n private async __getMinCliForIr(\n irVersion: number,\n requestOptions?: CliClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<FernRegistry.generators.CliRelease, FernRegistry.generators.cli.getMinCliForIr.Error>\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n `/generators/cli/for-ir/${core.url.encodePathParam(irVersion)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.generators.CliRelease,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.generators.cli.getMinCliForIr.Error)?.error) {\n case \"NoValidClisFoundError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.generators.cli.getMinCliForIr.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.generators.cli.getMinCliForIr.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Update or create the specified CLI version.\n *\n * @param {FernRegistry.generators.CliReleaseRequest} request\n * @param {CliClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.generators.cli.upsertCliRelease({\n * version: \"version\",\n * createdAt: undefined,\n * isYanked: undefined,\n * changelogEntry: undefined,\n * irVersion: 1,\n * tags: undefined\n * })\n */\n public upsertCliRelease(\n request: FernRegistry.generators.CliReleaseRequest,\n requestOptions?: CliClient.RequestOptions,\n ): core.HttpResponsePromise<core.APIResponse<void, FernRegistry.generators.cli.upsertCliRelease.Error>> {\n return core.HttpResponsePromise.fromPromise(this.__upsertCliRelease(request, requestOptions));\n }\n\n private async __upsertCliRelease(\n request: FernRegistry.generators.CliReleaseRequest,\n requestOptions?: CliClient.RequestOptions,\n ): Promise<core.WithRawResponse<core.APIResponse<void, FernRegistry.generators.cli.upsertCliRelease.Error>>> {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/generators/cli\",\n ),\n method: \"PUT\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: undefined,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.generators.cli.upsertCliRelease.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Get the specified CLI version.\n *\n * @param {string} cliVersion\n * @param {CliClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.generators.cli.getCliRelease(\"cliVersion\")\n */\n public getCliRelease(\n cliVersion: string,\n requestOptions?: CliClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<FernRegistry.generators.CliRelease, FernRegistry.generators.cli.getCliRelease.Error>\n > {\n return core.HttpResponsePromise.fromPromise(this.__getCliRelease(cliVersion, requestOptions));\n }\n\n private async __getCliRelease(\n cliVersion: string,\n requestOptions?: CliClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<FernRegistry.generators.CliRelease, FernRegistry.generators.cli.getCliRelease.Error>\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n `/generators/cli/${core.url.encodePathParam(cliVersion)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.generators.CliRelease,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.generators.cli.getCliRelease.Error)?.error) {\n case \"CliVersionNotFoundError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.generators.cli.getCliRelease.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.generators.cli.getCliRelease.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Get all CLI versions.\n *\n * @param {FernRegistry.generators.ListCliReleasesRequest} request\n * @param {CliClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.generators.cli.listCliReleases()\n */\n public listCliReleases(\n request: FernRegistry.generators.ListCliReleasesRequest = {},\n requestOptions?: CliClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<\n FernRegistry.generators.ListCliReleasesResponse,\n FernRegistry.generators.cli.listCliReleases.Error\n >\n > {\n return core.HttpResponsePromise.fromPromise(this.__listCliReleases(request, requestOptions));\n }\n\n private async __listCliReleases(\n request: FernRegistry.generators.ListCliReleasesRequest = {},\n requestOptions?: CliClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.generators.ListCliReleasesResponse,\n FernRegistry.generators.cli.listCliReleases.Error\n >\n >\n > {\n const { page, pageSize } = request;\n const _queryParams: Record<string, string | string[] | object | object[] | null> = {};\n if (page != null) {\n _queryParams.page = page.toString();\n }\n\n if (pageSize != null) {\n _queryParams.pageSize = pageSize.toString();\n }\n\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/generators/cli\",\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: { ..._queryParams, ...requestOptions?.queryParams },\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.generators.ListCliReleasesResponse,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.generators.cli.listCliReleases.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../../../BaseClient.js\";\nimport { normalizeClientOptions } from \"../../../../../../BaseClient.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../../../core/headers.js\";\nimport * as core from \"../../../../../../core/index.js\";\nimport * as environments from \"../../../../../../environments.js\";\nimport * as FernRegistry from \"../../../../../index.js\";\n\nexport declare namespace VersionsClient {\n export interface Options extends BaseClientOptions {}\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\n/**\n * CRUD API for managing generator versions.\n */\nexport class VersionsClient {\n protected readonly _options: VersionsClient.Options;\n\n constructor(options: VersionsClient.Options = {}) {\n this._options = normalizeClientOptions(options);\n }\n\n /**\n * Get the latest generator version that has not been yanked.\n *\n * @param {FernRegistry.generators.GetLatestGeneratorReleaseRequest} request\n * @param {VersionsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.generators.versions.getLatestGeneratorRelease({\n * generator: FernRegistry.generators.GeneratorId(\"generator\")\n * })\n */\n public getLatestGeneratorRelease(\n request: FernRegistry.generators.GetLatestGeneratorReleaseRequest,\n requestOptions?: VersionsClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<\n FernRegistry.generators.GeneratorRelease,\n FernRegistry.generators.versions.getLatestGeneratorRelease.Error\n >\n > {\n return core.HttpResponsePromise.fromPromise(this.__getLatestGeneratorRelease(request, requestOptions));\n }\n\n private async __getLatestGeneratorRelease(\n request: FernRegistry.generators.GetLatestGeneratorReleaseRequest,\n requestOptions?: VersionsClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.generators.GeneratorRelease,\n FernRegistry.generators.versions.getLatestGeneratorRelease.Error\n >\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/generators/versions/latest\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.generators.GeneratorRelease,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.generators.versions.getLatestGeneratorRelease.Error)?.error) {\n case \"NoValidGeneratorsFoundError\":\n return {\n data: {\n ok: false,\n error: _response.error\n .body as FernRegistry.generators.versions.getLatestGeneratorRelease.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.generators.versions.getLatestGeneratorRelease.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Get the changelog for the specified generator upgrade. The response will be a map of the generator version to it's corresponding changelog.\n *\n * @param {FernRegistry.generators.GeneratorId} generator\n * @param {FernRegistry.generators.GetChangelogRequest} request\n * @param {VersionsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.generators.versions.getChangelog(FernRegistry.generators.GeneratorId(\"generator\"), {\n * fromVersion: {\n * type: \"inclusive\",\n * value: \"fromVersion\"\n * },\n * toVersion: {\n * type: \"inclusive\",\n * value: \"toVersion\"\n * }\n * })\n */\n public getChangelog(\n generator: FernRegistry.generators.GeneratorId,\n request: FernRegistry.generators.GetChangelogRequest,\n requestOptions?: VersionsClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<\n FernRegistry.generators.GetChangelogResponse,\n FernRegistry.generators.versions.getChangelog.Error\n >\n > {\n return core.HttpResponsePromise.fromPromise(this.__getChangelog(generator, request, requestOptions));\n }\n\n private async __getChangelog(\n generator: FernRegistry.generators.GeneratorId,\n request: FernRegistry.generators.GetChangelogRequest,\n requestOptions?: VersionsClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.generators.GetChangelogResponse,\n FernRegistry.generators.versions.getChangelog.Error\n >\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n `/generators/versions/${core.url.encodePathParam(generator)}/changelog`,\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.generators.GetChangelogResponse,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.generators.versions.getChangelog.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Update or create the specified generator version.\n *\n * @param {FernRegistry.generators.GeneratorReleaseRequest} request\n * @param {VersionsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.generators.versions.upsertGeneratorRelease({\n * version: \"version\",\n * createdAt: undefined,\n * isYanked: undefined,\n * changelogEntry: undefined,\n * generatorId: FernRegistry.generators.GeneratorId(\"generatorId\"),\n * irVersion: 1,\n * migration: undefined,\n * customConfigSchema: undefined,\n * tags: undefined\n * })\n */\n public upsertGeneratorRelease(\n request: FernRegistry.generators.GeneratorReleaseRequest,\n requestOptions?: VersionsClient.RequestOptions,\n ): core.HttpResponsePromise<core.APIResponse<void, FernRegistry.generators.versions.upsertGeneratorRelease.Error>> {\n return core.HttpResponsePromise.fromPromise(this.__upsertGeneratorRelease(request, requestOptions));\n }\n\n private async __upsertGeneratorRelease(\n request: FernRegistry.generators.GeneratorReleaseRequest,\n requestOptions?: VersionsClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<core.APIResponse<void, FernRegistry.generators.versions.upsertGeneratorRelease.Error>>\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/generators/versions\",\n ),\n method: \"PUT\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: undefined,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.generators.versions.upsertGeneratorRelease.Error)?.error) {\n case \"InvalidVersionError\":\n return {\n data: {\n ok: false,\n error: _response.error\n .body as FernRegistry.generators.versions.upsertGeneratorRelease.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.generators.versions.upsertGeneratorRelease.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Get the specified generator version.\n *\n * @param {FernRegistry.generators.GeneratorId} generator\n * @param {string} version\n * @param {VersionsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.generators.versions.getGeneratorRelease(FernRegistry.generators.GeneratorId(\"generator\"), \"version\")\n */\n public getGeneratorRelease(\n generator: FernRegistry.generators.GeneratorId,\n version: string,\n requestOptions?: VersionsClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<\n FernRegistry.generators.GeneratorRelease,\n FernRegistry.generators.versions.getGeneratorRelease.Error\n >\n > {\n return core.HttpResponsePromise.fromPromise(this.__getGeneratorRelease(generator, version, requestOptions));\n }\n\n private async __getGeneratorRelease(\n generator: FernRegistry.generators.GeneratorId,\n version: string,\n requestOptions?: VersionsClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.generators.GeneratorRelease,\n FernRegistry.generators.versions.getGeneratorRelease.Error\n >\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n `/generators/versions/${core.url.encodePathParam(generator)}/${core.url.encodePathParam(version)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.generators.GeneratorRelease,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.generators.versions.getGeneratorRelease.Error)?.error) {\n case \"GeneratorVersionNotFoundError\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.generators.versions.getGeneratorRelease.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.generators.versions.getGeneratorRelease.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Get all generator versions for the specified generator.\n *\n * @param {FernRegistry.generators.GeneratorId} generator\n * @param {FernRegistry.generators.ListGeneratorReleasesRequest} request\n * @param {VersionsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.generators.versions.listGeneratorReleases(FernRegistry.generators.GeneratorId(\"generator\"))\n */\n public listGeneratorReleases(\n generator: FernRegistry.generators.GeneratorId,\n request: FernRegistry.generators.ListGeneratorReleasesRequest = {},\n requestOptions?: VersionsClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<\n FernRegistry.generators.ListGeneratorReleasesResponse,\n FernRegistry.generators.versions.listGeneratorReleases.Error\n >\n > {\n return core.HttpResponsePromise.fromPromise(this.__listGeneratorReleases(generator, request, requestOptions));\n }\n\n private async __listGeneratorReleases(\n generator: FernRegistry.generators.GeneratorId,\n request: FernRegistry.generators.ListGeneratorReleasesRequest = {},\n requestOptions?: VersionsClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.generators.ListGeneratorReleasesResponse,\n FernRegistry.generators.versions.listGeneratorReleases.Error\n >\n >\n > {\n const { page, pageSize } = request;\n const _queryParams: Record<string, string | string[] | object | object[] | null> = {};\n if (page != null) {\n _queryParams.page = page.toString();\n }\n\n if (pageSize != null) {\n _queryParams.pageSize = pageSize.toString();\n }\n\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n `/generators/versions/${core.url.encodePathParam(generator)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: { ..._queryParams, ...requestOptions?.queryParams },\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.generators.ListGeneratorReleasesResponse,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.generators.versions.listGeneratorReleases.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../BaseClient.js\";\nimport { normalizeClientOptions } from \"../../../../BaseClient.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../core/headers.js\";\nimport * as core from \"../../../../core/index.js\";\nimport * as environments from \"../../../../environments.js\";\nimport * as FernRegistry from \"../../../index.js\";\nimport { CliClient } from \"../resources/cli/client/Client.js\";\nimport { VersionsClient } from \"../resources/versions/client/Client.js\";\n\nexport declare namespace GeneratorsClient {\n export interface Options extends BaseClientOptions {}\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\n/**\n * CRUD API for managing the generator entity itself.\n */\nexport class GeneratorsClient {\n protected readonly _options: GeneratorsClient.Options;\n protected _cli: CliClient | undefined;\n protected _versions: VersionsClient | undefined;\n\n constructor(options: GeneratorsClient.Options = {}) {\n this._options = normalizeClientOptions(options);\n }\n\n public get cli(): CliClient {\n return (this._cli ??= new CliClient(this._options));\n }\n\n public get versions(): VersionsClient {\n return (this._versions ??= new VersionsClient(this._options));\n }\n\n /**\n * Update or create the specified generator.\n *\n * @param {FernRegistry.generators.Generator} request\n * @param {GeneratorsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.generators.upsertGenerator({\n * id: FernRegistry.generators.GeneratorId(\"id\"),\n * displayName: \"displayName\",\n * generatorType: {\n * type: \"sdk\"\n * },\n * generatorLanguage: undefined,\n * dockerImage: \"dockerImage\",\n * scripts: undefined\n * })\n */\n public upsertGenerator(\n request: FernRegistry.generators.Generator,\n requestOptions?: GeneratorsClient.RequestOptions,\n ): core.HttpResponsePromise<core.APIResponse<void, FernRegistry.generators.upsertGenerator.Error>> {\n return core.HttpResponsePromise.fromPromise(this.__upsertGenerator(request, requestOptions));\n }\n\n private async __upsertGenerator(\n request: FernRegistry.generators.Generator,\n requestOptions?: GeneratorsClient.RequestOptions,\n ): Promise<core.WithRawResponse<core.APIResponse<void, FernRegistry.generators.upsertGenerator.Error>>> {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/generators\",\n ),\n method: \"PUT\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: undefined,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.generators.upsertGenerator.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Get the generator corresponding to the given docker image.\n *\n * @param {FernRegistry.generators.GetGeneratorByImageRequest} request\n * @param {GeneratorsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.generators.getGeneratorByImage({\n * dockerImage: \"dockerImage\"\n * })\n */\n public getGeneratorByImage(\n request: FernRegistry.generators.GetGeneratorByImageRequest,\n requestOptions?: GeneratorsClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<\n FernRegistry.generators.Generator | undefined,\n FernRegistry.generators.getGeneratorByImage.Error\n >\n > {\n return core.HttpResponsePromise.fromPromise(this.__getGeneratorByImage(request, requestOptions));\n }\n\n private async __getGeneratorByImage(\n request: FernRegistry.generators.GetGeneratorByImageRequest,\n requestOptions?: GeneratorsClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.generators.Generator | undefined,\n FernRegistry.generators.getGeneratorByImage.Error\n >\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(this._options?.headers, requestOptions?.headers);\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/generators/by-image\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.generators.Generator | undefined,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.generators.getGeneratorByImage.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Get the specified generator.\n *\n * @param {FernRegistry.generators.GeneratorId} generatorId\n * @param {GeneratorsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.generators.getGenerator(FernRegistry.generators.GeneratorId(\"generatorId\"))\n */\n public getGenerator(\n generatorId: FernRegistry.generators.GeneratorId,\n requestOptions?: GeneratorsClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<FernRegistry.generators.Generator | undefined, FernRegistry.generators.getGenerator.Error>\n > {\n return core.HttpResponsePromise.fromPromise(this.__getGenerator(generatorId, requestOptions));\n }\n\n private async __getGenerator(\n generatorId: FernRegistry.generators.GeneratorId,\n requestOptions?: GeneratorsClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<FernRegistry.generators.Generator | undefined, FernRegistry.generators.getGenerator.Error>\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(this._options?.headers, requestOptions?.headers);\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n `/generators/${core.url.encodePathParam(generatorId)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.generators.Generator | undefined,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.generators.getGenerator.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Get the all generators. This is currently not paginated since the list will be short, but there may in the future be need for pagination.\n *\n * @param {GeneratorsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.generators.listGenerators()\n */\n public listGenerators(\n requestOptions?: GeneratorsClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<FernRegistry.generators.Generator[], FernRegistry.generators.listGenerators.Error>\n > {\n return core.HttpResponsePromise.fromPromise(this.__listGenerators(requestOptions));\n }\n\n private async __listGenerators(\n requestOptions?: GeneratorsClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<FernRegistry.generators.Generator[], FernRegistry.generators.listGenerators.Error>\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(this._options?.headers, requestOptions?.headers);\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/generators\",\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.generators.Generator[],\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.generators.listGenerators.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../BaseClient.js\";\nimport { normalizeClientOptions } from \"../../../../BaseClient.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../core/headers.js\";\nimport * as core from \"../../../../core/index.js\";\nimport * as environments from \"../../../../environments.js\";\nimport * as FernRegistry from \"../../../index.js\";\n\nexport declare namespace GitClient {\n export interface Options extends BaseClientOptions {}\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\n/**\n * Produces an internal schema to easily track and view pull requests across Fern-managed repositories. This API is named `git` to allow for flexibility in adding other git providers down the line (e.g. gitlab).\n */\nexport class GitClient {\n protected readonly _options: GitClient.Options;\n\n constructor(options: GitClient.Options = {}) {\n this._options = normalizeClientOptions(options);\n }\n\n /**\n * Get a repository by its name (mirroring the Github API, this is the main get request).\n *\n * @param {string} repositoryOwner\n * @param {string} repositoryName\n * @param {GitClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.git.getRepository(\"repositoryOwner\", \"repositoryName\")\n */\n public getRepository(\n repositoryOwner: string,\n repositoryName: string,\n requestOptions?: GitClient.RequestOptions,\n ): core.HttpResponsePromise<core.APIResponse<FernRegistry.FernRepository, FernRegistry.git.getRepository.Error>> {\n return core.HttpResponsePromise.fromPromise(\n this.__getRepository(repositoryOwner, repositoryName, requestOptions),\n );\n }\n\n private async __getRepository(\n repositoryOwner: string,\n repositoryName: string,\n requestOptions?: GitClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<core.APIResponse<FernRegistry.FernRepository, FernRegistry.git.getRepository.Error>>\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n `/generators/github/repository/${core.url.encodePathParam(repositoryOwner)}/${core.url.encodePathParam(repositoryName)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.FernRepository,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.git.getRepository.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Get all repositories.\n *\n * @param {FernRegistry.ListRepositoriesRequest} request\n * @param {GitClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.git.listRepositories()\n */\n public listRepositories(\n request: FernRegistry.ListRepositoriesRequest = {},\n requestOptions?: GitClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<FernRegistry.ListRepositoriesResponse, FernRegistry.git.listRepositories.Error>\n > {\n return core.HttpResponsePromise.fromPromise(this.__listRepositories(request, requestOptions));\n }\n\n private async __listRepositories(\n request: FernRegistry.ListRepositoriesRequest = {},\n requestOptions?: GitClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<FernRegistry.ListRepositoriesResponse, FernRegistry.git.listRepositories.Error>\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/generators/github/repository/list\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.ListRepositoriesResponse,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.git.listRepositories.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Update or create the specified repository.\n *\n * @param {FernRegistry.FernRepository} request\n * @param {GitClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.git.upsertRepository({\n * type: \"sdk\",\n * sdkLanguage: \"sdkLanguage\",\n * id: {\n * type: \"github\",\n * id: \"id\"\n * },\n * name: \"name\",\n * owner: \"owner\",\n * fullName: \"fullName\",\n * url: FernRegistry.Url(\"url\"),\n * repositoryOwnerOrganizationId: FernRegistry.OrgId(\"repositoryOwnerOrganizationId\"),\n * defaultBranchChecks: [{\n * checkId: \"checkId\",\n * repositoryOwner: \"repositoryOwner\",\n * repositoryName: \"repositoryName\",\n * ref: \"ref\",\n * name: \"name\",\n * status: \"status\",\n * conclusion: \"conclusion\",\n * checkRunUrl: \"checkRunUrl\",\n * createdAt: \"2024-01-15T09:30:00Z\",\n * completedAt: undefined,\n * rawCheckRun: {\n * \"key\": \"value\"\n * }\n * }, {\n * checkId: \"checkId\",\n * repositoryOwner: \"repositoryOwner\",\n * repositoryName: \"repositoryName\",\n * ref: \"ref\",\n * name: \"name\",\n * status: \"status\",\n * conclusion: \"conclusion\",\n * checkRunUrl: \"checkRunUrl\",\n * createdAt: \"2024-01-15T09:30:00Z\",\n * completedAt: undefined,\n * rawCheckRun: {\n * \"key\": \"value\"\n * }\n * }]\n * })\n */\n public upsertRepository(\n request: FernRegistry.FernRepository,\n requestOptions?: GitClient.RequestOptions,\n ): core.HttpResponsePromise<core.APIResponse<void, FernRegistry.git.upsertRepository.Error>> {\n return core.HttpResponsePromise.fromPromise(this.__upsertRepository(request, requestOptions));\n }\n\n private async __upsertRepository(\n request: FernRegistry.FernRepository,\n requestOptions?: GitClient.RequestOptions,\n ): Promise<core.WithRawResponse<core.APIResponse<void, FernRegistry.git.upsertRepository.Error>>> {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/generators/github/repository/upsert\",\n ),\n method: \"PUT\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: undefined,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.git.upsertRepository.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Delete specified repository.\n *\n * @param {string} repositoryOwner\n * @param {string} repositoryName\n * @param {GitClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.git.deleteRepository(\"repositoryOwner\", \"repositoryName\")\n */\n public deleteRepository(\n repositoryOwner: string,\n repositoryName: string,\n requestOptions?: GitClient.RequestOptions,\n ): core.HttpResponsePromise<core.APIResponse<void, FernRegistry.git.deleteRepository.Error>> {\n return core.HttpResponsePromise.fromPromise(\n this.__deleteRepository(repositoryOwner, repositoryName, requestOptions),\n );\n }\n\n private async __deleteRepository(\n repositoryOwner: string,\n repositoryName: string,\n requestOptions?: GitClient.RequestOptions,\n ): Promise<core.WithRawResponse<core.APIResponse<void, FernRegistry.git.deleteRepository.Error>>> {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n `/generators/github/repository/${core.url.encodePathParam(repositoryOwner)}/${core.url.encodePathParam(repositoryName)}/delete`,\n ),\n method: \"DELETE\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: undefined,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.git.deleteRepository.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Get a pull request by its ID.\n *\n * @param {string} repositoryOwner\n * @param {string} repositoryName\n * @param {number} pullRequestNumber\n * @param {GitClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.git.getPullRequest(\"repositoryOwner\", \"repositoryName\", 1)\n */\n public getPullRequest(\n repositoryOwner: string,\n repositoryName: string,\n pullRequestNumber: number,\n requestOptions?: GitClient.RequestOptions,\n ): core.HttpResponsePromise<core.APIResponse<FernRegistry.PullRequest, FernRegistry.git.getPullRequest.Error>> {\n return core.HttpResponsePromise.fromPromise(\n this.__getPullRequest(repositoryOwner, repositoryName, pullRequestNumber, requestOptions),\n );\n }\n\n private async __getPullRequest(\n repositoryOwner: string,\n repositoryName: string,\n pullRequestNumber: number,\n requestOptions?: GitClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<core.APIResponse<FernRegistry.PullRequest, FernRegistry.git.getPullRequest.Error>>\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n `/generators/github/pull-request/${core.url.encodePathParam(repositoryOwner)}/${core.url.encodePathParam(repositoryName)}/${core.url.encodePathParam(pullRequestNumber)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.PullRequest,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.git.getPullRequest.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Get all pull requests.\n *\n * @param {FernRegistry.ListPullRequestsRequest} request\n * @param {GitClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.git.listPullRequests()\n */\n public listPullRequests(\n request: FernRegistry.ListPullRequestsRequest = {},\n requestOptions?: GitClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<FernRegistry.ListPullRequestsResponse, FernRegistry.git.listPullRequests.Error>\n > {\n return core.HttpResponsePromise.fromPromise(this.__listPullRequests(request, requestOptions));\n }\n\n private async __listPullRequests(\n request: FernRegistry.ListPullRequestsRequest = {},\n requestOptions?: GitClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<FernRegistry.ListPullRequestsResponse, FernRegistry.git.listPullRequests.Error>\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/generators/github/pull-request/list\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.ListPullRequestsResponse,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.git.listPullRequests.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Update or create the specified pull request.\n *\n * @param {FernRegistry.PullRequest} request\n * @param {GitClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.git.upsertPullRequest({\n * pullRequestNumber: 1,\n * repositoryName: \"repositoryName\",\n * repositoryOwner: \"repositoryOwner\",\n * author: undefined,\n * reviewers: [{\n * type: \"user\",\n * name: undefined,\n * email: undefined,\n * username: \"username\"\n * }, {\n * type: \"user\",\n * name: undefined,\n * email: undefined,\n * username: \"username\"\n * }],\n * title: \"title\",\n * url: FernRegistry.Url(\"url\"),\n * checks: [{\n * checkId: \"checkId\",\n * repositoryOwner: \"repositoryOwner\",\n * repositoryName: \"repositoryName\",\n * ref: \"ref\",\n * name: \"name\",\n * status: \"status\",\n * conclusion: \"conclusion\",\n * checkRunUrl: \"checkRunUrl\",\n * createdAt: \"2024-01-15T09:30:00Z\",\n * completedAt: undefined,\n * rawCheckRun: {\n * \"key\": \"value\"\n * }\n * }, {\n * checkId: \"checkId\",\n * repositoryOwner: \"repositoryOwner\",\n * repositoryName: \"repositoryName\",\n * ref: \"ref\",\n * name: \"name\",\n * status: \"status\",\n * conclusion: \"conclusion\",\n * checkRunUrl: \"checkRunUrl\",\n * createdAt: \"2024-01-15T09:30:00Z\",\n * completedAt: undefined,\n * rawCheckRun: {\n * \"key\": \"value\"\n * }\n * }],\n * state: \"open\",\n * createdAt: \"2024-01-15T09:30:00Z\",\n * updatedAt: undefined,\n * mergedAt: undefined,\n * closedAt: undefined\n * })\n */\n public upsertPullRequest(\n request: FernRegistry.PullRequest,\n requestOptions?: GitClient.RequestOptions,\n ): core.HttpResponsePromise<core.APIResponse<void, FernRegistry.git.upsertPullRequest.Error>> {\n return core.HttpResponsePromise.fromPromise(this.__upsertPullRequest(request, requestOptions));\n }\n\n private async __upsertPullRequest(\n request: FernRegistry.PullRequest,\n requestOptions?: GitClient.RequestOptions,\n ): Promise<core.WithRawResponse<core.APIResponse<void, FernRegistry.git.upsertPullRequest.Error>>> {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/generators/github/pull-request/upsert\",\n ),\n method: \"PUT\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: undefined,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.git.upsertPullRequest.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Delete specified pull request.\n *\n * @param {string} repositoryOwner\n * @param {string} repositoryName\n * @param {number} pullRequestNumber\n * @param {GitClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.git.deletePullRequest(\"repositoryOwner\", \"repositoryName\", 1)\n */\n public deletePullRequest(\n repositoryOwner: string,\n repositoryName: string,\n pullRequestNumber: number,\n requestOptions?: GitClient.RequestOptions,\n ): core.HttpResponsePromise<core.APIResponse<void, FernRegistry.git.deletePullRequest.Error>> {\n return core.HttpResponsePromise.fromPromise(\n this.__deletePullRequest(repositoryOwner, repositoryName, pullRequestNumber, requestOptions),\n );\n }\n\n private async __deletePullRequest(\n repositoryOwner: string,\n repositoryName: string,\n pullRequestNumber: number,\n requestOptions?: GitClient.RequestOptions,\n ): Promise<core.WithRawResponse<core.APIResponse<void, FernRegistry.git.deletePullRequest.Error>>> {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n `/generators/github/pull-request/${core.url.encodePathParam(repositoryOwner)}/${core.url.encodePathParam(repositoryName)}/${core.url.encodePathParam(pullRequestNumber)}/delete`,\n ),\n method: \"DELETE\",\n headers: _headers,\n queryParameters: requestOptions?.queryParams,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: undefined,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.git.deletePullRequest.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../../../BaseClient.js\";\nimport { normalizeClientOptions } from \"../../../../../../BaseClient.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../../../core/headers.js\";\nimport * as core from \"../../../../../../core/index.js\";\nimport * as environments from \"../../../../../../environments.js\";\nimport * as FernRegistry from \"../../../../../index.js\";\n\nexport declare namespace VersionsClient {\n export interface Options extends BaseClientOptions {}\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\nexport class VersionsClient {\n protected readonly _options: VersionsClient.Options;\n\n constructor(options: VersionsClient.Options = {}) {\n this._options = normalizeClientOptions(options);\n }\n\n /**\n * Computes a semantic version for the SDK to be relesed on.\n * The endpoint tries to find existing versions by looking up against\n * registries and github repositories. If none are found an error is thrown.\n * If a version is found, a new semantic version is returned.\n *\n * @param {FernRegistry.sdks.ComputeSemanticVersionRequest} request\n * @param {VersionsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.sdks.versions.computeSemanticVersion({\n * \"package\": \"package\",\n * language: \"Go\"\n * })\n */\n public computeSemanticVersion(\n request: FernRegistry.sdks.ComputeSemanticVersionRequest,\n requestOptions?: VersionsClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<\n FernRegistry.sdks.ComputedSemanticVersionResponse,\n FernRegistry.sdks.versions.computeSemanticVersion.Error\n >\n > {\n return core.HttpResponsePromise.fromPromise(this.__computeSemanticVersion(request, requestOptions));\n }\n\n private async __computeSemanticVersion(\n request: FernRegistry.sdks.ComputeSemanticVersionRequest,\n requestOptions?: VersionsClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<\n core.APIResponse<\n FernRegistry.sdks.ComputedSemanticVersionResponse,\n FernRegistry.sdks.versions.computeSemanticVersion.Error\n >\n >\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/sdks/semantic-version/compute\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.sdks.ComputedSemanticVersionResponse,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.sdks.versions.computeSemanticVersion.Error)?.error) {\n case \"FailedToComputeExistingVersion\":\n case \"FailedToIncrementVersion\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.sdks.versions.computeSemanticVersion.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.sdks.versions.computeSemanticVersion.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions } from \"../../../../BaseClient.js\";\nimport { normalizeClientOptions } from \"../../../../BaseClient.js\";\nimport { VersionsClient } from \"../resources/versions/client/Client.js\";\n\nexport declare namespace SdksClient {\n export interface Options extends BaseClientOptions {}\n}\n\nexport class SdksClient {\n protected readonly _options: SdksClient.Options;\n protected _versions: VersionsClient | undefined;\n\n constructor(options: SdksClient.Options = {}) {\n this._options = normalizeClientOptions(options);\n }\n\n public get versions(): VersionsClient {\n return (this._versions ??= new VersionsClient(this._options));\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../BaseClient.js\";\nimport { normalizeClientOptions } from \"../../../../BaseClient.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../core/headers.js\";\nimport * as core from \"../../../../core/index.js\";\nimport * as environments from \"../../../../environments.js\";\nimport * as FernRegistry from \"../../../index.js\";\n\nexport declare namespace SnippetsClient {\n export interface Options extends BaseClientOptions {}\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\nexport class SnippetsClient {\n protected readonly _options: SnippetsClient.Options;\n\n constructor(options: SnippetsClient.Options = {}) {\n this._options = normalizeClientOptions(options);\n }\n\n /**\n * Get snippet by endpoint method and path\n *\n * @param {FernRegistry.GetSnippetRequest} request\n * @param {SnippetsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.snippets.get({\n * endpoint: {\n * method: \"GET\",\n * path: FernRegistry.EndpointPathLiteral(\"/v1/search\")\n * }\n * })\n */\n public get(\n request: FernRegistry.GetSnippetRequest,\n requestOptions?: SnippetsClient.RequestOptions,\n ): core.HttpResponsePromise<core.APIResponse<FernRegistry.Snippet[], FernRegistry.snippets.get.Error>> {\n return core.HttpResponsePromise.fromPromise(this.__get(request, requestOptions));\n }\n\n private async __get(\n request: FernRegistry.GetSnippetRequest,\n requestOptions?: SnippetsClient.RequestOptions,\n ): Promise<core.WithRawResponse<core.APIResponse<FernRegistry.Snippet[], FernRegistry.snippets.get.Error>>> {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/snippets\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.Snippet[],\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.snippets.get.Error)?.error) {\n case \"UnauthorizedError\":\n case \"UserNotInOrgError\":\n case \"UnavailableError\":\n case \"ApiIdRequiredError\":\n case \"OrgIdRequiredError\":\n case \"OrgIdAndApiIdNotFound\":\n case \"OrgIdNotFound\":\n case \"EndpointNotFound\":\n case \"SDKNotFound\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.snippets.get.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.snippets.get.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * @param {FernRegistry.ListSnippetsRequest} request\n * @param {SnippetsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.snippets.load({\n * page: 1,\n * orgId: FernRegistry.OrgId(\"vellum\"),\n * apiId: FernRegistry.ApiId(\"vellum-ai\"),\n * sdks: [{\n * type: \"python\",\n * \"package\": \"vellum-ai\"\n * }]\n * })\n */\n public load(\n request: FernRegistry.ListSnippetsRequest = {},\n requestOptions?: SnippetsClient.RequestOptions,\n ): core.HttpResponsePromise<core.APIResponse<FernRegistry.SnippetsPage, FernRegistry.snippets.load.Error>> {\n return core.HttpResponsePromise.fromPromise(this.__load(request, requestOptions));\n }\n\n private async __load(\n request: FernRegistry.ListSnippetsRequest = {},\n requestOptions?: SnippetsClient.RequestOptions,\n ): Promise<core.WithRawResponse<core.APIResponse<FernRegistry.SnippetsPage, FernRegistry.snippets.load.Error>>> {\n const { page, ..._body } = request;\n const _queryParams: Record<string, string | string[] | object | object[] | null> = {};\n if (page != null) {\n _queryParams.page = page.toString();\n }\n\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/snippets/load\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: { ..._queryParams, ...requestOptions?.queryParams },\n requestType: \"json\",\n body: _body,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.SnippetsPage,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.snippets.load.Error)?.error) {\n case \"UnauthorizedError\":\n case \"UserNotInOrgError\":\n case \"UnavailableError\":\n case \"InvalidPageError\":\n case \"ApiIdRequiredError\":\n case \"OrgIdRequiredError\":\n case \"OrgIdAndApiIdNotFound\":\n case \"OrgIdNotFound\":\n case \"SDKNotFound\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.snippets.load.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.snippets.load.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../BaseClient.js\";\nimport { normalizeClientOptions } from \"../../../../BaseClient.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../core/headers.js\";\nimport * as core from \"../../../../core/index.js\";\nimport * as environments from \"../../../../environments.js\";\nimport * as FernRegistry from \"../../../index.js\";\n\nexport declare namespace SnippetsFactoryClient {\n export interface Options extends BaseClientOptions {}\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\nexport class SnippetsFactoryClient {\n protected readonly _options: SnippetsFactoryClient.Options;\n\n constructor(options: SnippetsFactoryClient.Options = {}) {\n this._options = normalizeClientOptions(options);\n }\n\n /**\n * Store endpoint snippets for a particular SDK.\n *\n * @param {FernRegistry.CreateSnippetRequest} request\n * @param {SnippetsFactoryClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.snippetsFactory.createSnippetsForSdk({\n * orgId: FernRegistry.OrgId(\"orgId\"),\n * apiId: FernRegistry.ApiId(\"apiId\"),\n * snippets: {\n * type: \"typescript\",\n * sdk: {\n * \"package\": \"package\",\n * version: \"version\"\n * },\n * snippets: [{\n * snippet: {\n * client: \"client\"\n * },\n * endpoint: {\n * path: FernRegistry.EndpointPathLiteral(\"path\"),\n * method: \"GET\",\n * identifierOverride: undefined\n * },\n * exampleIdentifier: undefined\n * }, {\n * snippet: {\n * client: \"client\"\n * },\n * endpoint: {\n * path: FernRegistry.EndpointPathLiteral(\"path\"),\n * method: \"GET\",\n * identifierOverride: undefined\n * },\n * exampleIdentifier: undefined\n * }]\n * }\n * })\n */\n public createSnippetsForSdk(\n request: FernRegistry.CreateSnippetRequest,\n requestOptions?: SnippetsFactoryClient.RequestOptions,\n ): core.HttpResponsePromise<core.APIResponse<void, FernRegistry.snippetsFactory.createSnippetsForSdk.Error>> {\n return core.HttpResponsePromise.fromPromise(this.__createSnippetsForSdk(request, requestOptions));\n }\n\n private async __createSnippetsForSdk(\n request: FernRegistry.CreateSnippetRequest,\n requestOptions?: SnippetsFactoryClient.RequestOptions,\n ): Promise<core.WithRawResponse<core.APIResponse<void, FernRegistry.snippetsFactory.createSnippetsForSdk.Error>>> {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/snippets/create\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: undefined,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.snippetsFactory.createSnippetsForSdk.Error)?.error) {\n case \"UnauthorizedError\":\n case \"UserNotInOrgError\":\n case \"OrgIdNotFound\":\n case \"SDKNotFound\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.snippetsFactory.createSnippetsForSdk.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.snippetsFactory.createSnippetsForSdk.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../BaseClient.js\";\nimport { normalizeClientOptions } from \"../../../../BaseClient.js\";\nimport { mergeHeaders, mergeOnlyDefinedHeaders } from \"../../../../core/headers.js\";\nimport * as core from \"../../../../core/index.js\";\nimport * as environments from \"../../../../environments.js\";\nimport * as FernRegistry from \"../../../index.js\";\n\nexport declare namespace TemplatesClient {\n export interface Options extends BaseClientOptions {}\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\nexport class TemplatesClient {\n protected readonly _options: TemplatesClient.Options;\n\n constructor(options: TemplatesClient.Options = {}) {\n this._options = normalizeClientOptions(options);\n }\n\n /**\n * Store endpoint snippet for a particular SDK.\n *\n * @param {FernRegistry.RegisterSnippetTemplateRequest} request\n * @param {TemplatesClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.templates.register({\n * orgId: FernRegistry.OrgId(\"orgId\"),\n * apiId: FernRegistry.ApiId(\"apiId\"),\n * apiDefinitionId: FernRegistry.ApiDefinitionId(\"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\"),\n * snippet: {\n * sdk: {\n * type: \"typescript\",\n * \"package\": \"package\",\n * version: \"version\"\n * },\n * endpointId: {\n * path: FernRegistry.EndpointPathLiteral(\"path\"),\n * method: \"GET\",\n * identifierOverride: undefined\n * },\n * snippetTemplate: {\n * type: \"v1\",\n * clientInstantiation: \"clientInstantiation\",\n * functionInvocation: {\n * type: \"generic\",\n * imports: undefined,\n * isOptional: true,\n * templateString: \"templateString\",\n * templateInputs: undefined,\n * inputDelimiter: undefined\n * }\n * },\n * additionalTemplates: undefined\n * }\n * })\n */\n public register(\n request: FernRegistry.RegisterSnippetTemplateRequest,\n requestOptions?: TemplatesClient.RequestOptions,\n ): core.HttpResponsePromise<core.APIResponse<void, FernRegistry.templates.register.Error>> {\n return core.HttpResponsePromise.fromPromise(this.__register(request, requestOptions));\n }\n\n private async __register(\n request: FernRegistry.RegisterSnippetTemplateRequest,\n requestOptions?: TemplatesClient.RequestOptions,\n ): Promise<core.WithRawResponse<core.APIResponse<void, FernRegistry.templates.register.Error>>> {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(this._options?.headers, requestOptions?.headers);\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/snippet-template/register\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: undefined,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.templates.register.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Store endpoint snippets for a particular SDK.\n *\n * @param {FernRegistry.RegisterSnippetTemplateBatchRequest} request\n * @param {TemplatesClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.templates.registerBatch({\n * orgId: FernRegistry.OrgId(\"orgId\"),\n * apiId: FernRegistry.ApiId(\"apiId\"),\n * apiDefinitionId: FernRegistry.ApiDefinitionId(\"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\"),\n * snippets: [{\n * sdk: {\n * type: \"typescript\",\n * \"package\": \"package\",\n * version: \"version\"\n * },\n * endpointId: {\n * path: FernRegistry.EndpointPathLiteral(\"path\"),\n * method: \"GET\",\n * identifierOverride: undefined\n * },\n * snippetTemplate: {\n * type: \"v1\",\n * clientInstantiation: \"clientInstantiation\",\n * functionInvocation: {\n * type: \"generic\",\n * imports: undefined,\n * isOptional: true,\n * templateString: \"templateString\",\n * templateInputs: undefined,\n * inputDelimiter: undefined\n * }\n * },\n * additionalTemplates: undefined\n * }, {\n * sdk: {\n * type: \"typescript\",\n * \"package\": \"package\",\n * version: \"version\"\n * },\n * endpointId: {\n * path: FernRegistry.EndpointPathLiteral(\"path\"),\n * method: \"GET\",\n * identifierOverride: undefined\n * },\n * snippetTemplate: {\n * type: \"v1\",\n * clientInstantiation: \"clientInstantiation\",\n * functionInvocation: {\n * type: \"generic\",\n * imports: undefined,\n * isOptional: true,\n * templateString: \"templateString\",\n * templateInputs: undefined,\n * inputDelimiter: undefined\n * }\n * },\n * additionalTemplates: undefined\n * }]\n * })\n */\n public registerBatch(\n request: FernRegistry.RegisterSnippetTemplateBatchRequest,\n requestOptions?: TemplatesClient.RequestOptions,\n ): core.HttpResponsePromise<core.APIResponse<void, FernRegistry.templates.registerBatch.Error>> {\n return core.HttpResponsePromise.fromPromise(this.__registerBatch(request, requestOptions));\n }\n\n private async __registerBatch(\n request: FernRegistry.RegisterSnippetTemplateBatchRequest,\n requestOptions?: TemplatesClient.RequestOptions,\n ): Promise<core.WithRawResponse<core.APIResponse<void, FernRegistry.templates.registerBatch.Error>>> {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(this._options?.headers, requestOptions?.headers);\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/snippet-template/register/batch\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: undefined,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.templates.registerBatch.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Get the endpoint's snippet template for a particular SDK.\n *\n * @param {FernRegistry.GetSnippetTemplate} request\n * @param {TemplatesClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.templates.get({\n * orgId: FernRegistry.OrgId(\"orgId\"),\n * apiId: FernRegistry.ApiId(\"apiId\"),\n * sdk: {\n * type: \"typescript\",\n * \"package\": \"package\",\n * version: undefined\n * },\n * endpointId: {\n * path: FernRegistry.EndpointPathLiteral(\"path\"),\n * method: \"GET\",\n * identifierOverride: undefined\n * }\n * })\n */\n public get(\n request: FernRegistry.GetSnippetTemplate,\n requestOptions?: TemplatesClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<FernRegistry.EndpointSnippetTemplate, FernRegistry.templates.get.Error>\n > {\n return core.HttpResponsePromise.fromPromise(this.__get(request, requestOptions));\n }\n\n private async __get(\n request: FernRegistry.GetSnippetTemplate,\n requestOptions?: TemplatesClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<core.APIResponse<FernRegistry.EndpointSnippetTemplate, FernRegistry.templates.get.Error>>\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n this._options?.headers,\n mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),\n requestOptions?.headers,\n );\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/snippet-template/get\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.EndpointSnippetTemplate,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n switch ((_response.error.body as FernRegistry.templates.get.Error)?.error) {\n case \"UnauthorizedError\":\n case \"SnippetNotFound\":\n return {\n data: {\n ok: false,\n error: _response.error.body as FernRegistry.templates.get.Error,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.templates.get.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n protected async _getAuthorizationHeader(): Promise<string | undefined> {\n const bearer = await core.Supplier.get(this._options.token);\n if (bearer != null) {\n return `Bearer ${bearer}`;\n }\n\n return undefined;\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../BaseClient.js\";\nimport { normalizeClientOptions } from \"../../../../BaseClient.js\";\nimport { mergeHeaders } from \"../../../../core/headers.js\";\nimport * as core from \"../../../../core/index.js\";\nimport * as environments from \"../../../../environments.js\";\nimport * as FernRegistry from \"../../../index.js\";\n\nexport declare namespace TokensClient {\n export interface Options extends BaseClientOptions {}\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\nexport class TokensClient {\n protected readonly _options: TokensClient.Options;\n\n constructor(options: TokensClient.Options = {}) {\n this._options = normalizeClientOptions(options);\n }\n\n /**\n * Generate a token\n *\n * @param {FernRegistry.GenerateTokenRequest} request\n * @param {TokensClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.tokens.generate({\n * orgId: FernRegistry.OrgId(\"orgId\"),\n * scope: \"scope\"\n * })\n */\n public generate(\n request: FernRegistry.GenerateTokenRequest,\n requestOptions?: TokensClient.RequestOptions,\n ): core.HttpResponsePromise<\n core.APIResponse<FernRegistry.GenerateTokenResponse, FernRegistry.tokens.generate.Error>\n > {\n return core.HttpResponsePromise.fromPromise(this.__generate(request, requestOptions));\n }\n\n private async __generate(\n request: FernRegistry.GenerateTokenRequest,\n requestOptions?: TokensClient.RequestOptions,\n ): Promise<\n core.WithRawResponse<core.APIResponse<FernRegistry.GenerateTokenResponse, FernRegistry.tokens.generate.Error>>\n > {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(this._options?.headers, requestOptions?.headers);\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/tokens/generate\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: _response.body as FernRegistry.GenerateTokenResponse,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.tokens.generate.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n /**\n * Revoke a token\n *\n * @param {FernRegistry.RevokeTokenRequest} request\n * @param {TokensClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @example\n * await client.tokens.revoke({\n * orgId: FernRegistry.OrgId(\"orgId\"),\n * tokenId: FernRegistry.TokenId(\"tokenId\")\n * })\n */\n public revoke(\n request: FernRegistry.RevokeTokenRequest,\n requestOptions?: TokensClient.RequestOptions,\n ): core.HttpResponsePromise<core.APIResponse<void, FernRegistry.tokens.revoke.Error>> {\n return core.HttpResponsePromise.fromPromise(this.__revoke(request, requestOptions));\n }\n\n private async __revoke(\n request: FernRegistry.RevokeTokenRequest,\n requestOptions?: TokensClient.RequestOptions,\n ): Promise<core.WithRawResponse<core.APIResponse<void, FernRegistry.tokens.revoke.Error>>> {\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(this._options?.headers, requestOptions?.headers);\n const _response = await core.fetcher({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.FernRegistryEnvironment.Prod,\n \"/tokens/revoke\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryParameters: requestOptions?.queryParams,\n requestType: \"json\",\n body: request,\n timeoutMs:\n requestOptions?.timeoutInSeconds != null\n ? requestOptions.timeoutInSeconds * 1000\n : this._options?.timeoutInSeconds != null\n ? this._options?.timeoutInSeconds * 1000\n : undefined,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: {\n ok: true,\n body: undefined,\n headers: _response.headers,\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n\n return {\n data: {\n ok: false,\n error: FernRegistry.tokens.revoke.Error._unknown(_response.error),\n rawResponse: _response.rawResponse,\n },\n rawResponse: _response.rawResponse,\n };\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport { ApiClient } from \"./api/resources/api/client/Client.js\";\nimport { DashboardClient } from \"./api/resources/dashboard/client/Client.js\";\nimport { DiffClient } from \"./api/resources/diff/client/Client.js\";\nimport { DocsClient } from \"./api/resources/docs/client/Client.js\";\nimport { DocsCacheClient } from \"./api/resources/docsCache/client/Client.js\";\nimport { GeneratorsClient } from \"./api/resources/generators/client/Client.js\";\nimport { GitClient } from \"./api/resources/git/client/Client.js\";\nimport { SdksClient } from \"./api/resources/sdks/client/Client.js\";\nimport { SnippetsClient } from \"./api/resources/snippets/client/Client.js\";\nimport { SnippetsFactoryClient } from \"./api/resources/snippetsFactory/client/Client.js\";\nimport { TemplatesClient } from \"./api/resources/templates/client/Client.js\";\nimport { TokensClient } from \"./api/resources/tokens/client/Client.js\";\nimport type { BaseClientOptions, BaseRequestOptions } from \"./BaseClient.js\";\nimport { normalizeClientOptions } from \"./BaseClient.js\";\n\nexport declare namespace FernRegistryClient {\n export interface Options extends BaseClientOptions {}\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\nexport class FernRegistryClient {\n protected readonly _options: FernRegistryClient.Options;\n protected _api: ApiClient | undefined;\n protected _dashboard: DashboardClient | undefined;\n protected _docs: DocsClient | undefined;\n protected _generators: GeneratorsClient | undefined;\n protected _diff: DiffClient | undefined;\n protected _docsCache: DocsCacheClient | undefined;\n protected _git: GitClient | undefined;\n protected _sdks: SdksClient | undefined;\n protected _snippetsFactory: SnippetsFactoryClient | undefined;\n protected _snippets: SnippetsClient | undefined;\n protected _templates: TemplatesClient | undefined;\n protected _tokens: TokensClient | undefined;\n\n constructor(options: FernRegistryClient.Options = {}) {\n this._options = normalizeClientOptions(options);\n }\n\n public get api(): ApiClient {\n return (this._api ??= new ApiClient(this._options));\n }\n\n public get dashboard(): DashboardClient {\n return (this._dashboard ??= new DashboardClient(this._options));\n }\n\n public get docs(): DocsClient {\n return (this._docs ??= new DocsClient(this._options));\n }\n\n public get generators(): GeneratorsClient {\n return (this._generators ??= new GeneratorsClient(this._options));\n }\n\n public get diff(): DiffClient {\n return (this._diff ??= new DiffClient(this._options));\n }\n\n public get docsCache(): DocsCacheClient {\n return (this._docsCache ??= new DocsCacheClient(this._options));\n }\n\n public get git(): GitClient {\n return (this._git ??= new GitClient(this._options));\n }\n\n public get sdks(): SdksClient {\n return (this._sdks ??= new SdksClient(this._options));\n }\n\n public get snippetsFactory(): SnippetsFactoryClient {\n return (this._snippetsFactory ??= new SnippetsFactoryClient(this._options));\n }\n\n public get snippets(): SnippetsClient {\n return (this._snippets ??= new SnippetsClient(this._options));\n }\n\n public get templates(): TemplatesClient {\n return (this._templates ??= new TemplatesClient(this._options));\n }\n\n public get tokens(): TokensClient {\n return (this._tokens ??= new TokensClient(this._options));\n }\n}\n"],"mappings":"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","names":["Error","WebhookHttpMethod","commons_exports","commons_exports","WebhookHttpMethod","WebhookHttpMethod","endpoint_exports","endpoint_exports","ObjectPropertyAccess","endpoint_exports","type_exports","webhook_exports","websocket_exports","Error","Error","Error","endpoint_exports","type_exports","ObjectPropertyAccess","ObjectPropertyAccess","webhook_exports","websocket_exports","ObjectPropertyAccess","endpoint_exports","type_exports","webhook_exports","websocket_exports","Error","Error","Error","endpoint_exports","type_exports","ObjectPropertyAccess","ObjectPropertyAccess","webhook_exports","websocket_exports","Error","diff_exports","Error","latest_exports","v1_exports","latest_exports","commons_exports","commons_exports","v1_exports","commons_exports","db_exports","read_exports","commons_exports","TwitterCardSetting","commons_exports","TwitterCardSetting","TwitterCardSetting","db_exports","read_exports","Error","Error","Error","Error","read_exports","write_exports","read_exports","Error","Error","Error","Error","Error","Error","Error","Error","Error","write_exports","finishDocsRegister_exports","startDocsRegister_exports","Error","Error","finishDocsRegister_exports","Error","Error","Error","Error","Error","Error","Error","Error","startDocsRegister_exports","Error","Error","Error","Error","commons_exports","Error","Error","Error","Error","Error","Error","Error","Error","Error","Error","commons_exports","getChangelog_exports","getChangelog_exports","Error","Error","Error","Error","Error","Error","Error","Error","Error","Error","Error","Error","Error","Language","versions_exports","versions_exports","Language","Error","Language","Error","Error","Error","get_exports","register_exports","get_exports","Error","register_exports","Error","Error","Error","Error","Headers","diff_exports","ReadClient","V1Client","ReadClient","ReadClient","WriteClient","ReadClient","WriteClient","V1Client","VersionsClient","VersionsClient"]}