@postman/sdk-config 0.3.1 → 0.3.3

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.
Files changed (36) hide show
  1. package/README.md +8 -4
  2. package/dist/index.cjs +199 -45
  3. package/dist/index.cjs.map +1 -1
  4. package/dist/index.d.cts +1 -1
  5. package/dist/index.d.ts +1 -1
  6. package/dist/index.js +199 -45
  7. package/dist/index.js.map +1 -1
  8. package/dist/sdk-config/index.cjs +167 -28
  9. package/dist/sdk-config/index.cjs.map +1 -1
  10. package/dist/sdk-config/index.d.cts +1 -1
  11. package/dist/sdk-config/index.d.ts +1 -1
  12. package/dist/sdk-config/index.js +167 -28
  13. package/dist/sdk-config/index.js.map +1 -1
  14. package/dist/sdk-config/v1/index.cjs +167 -28
  15. package/dist/sdk-config/v1/index.cjs.map +1 -1
  16. package/dist/sdk-config/v1/index.d.cts +4803 -1
  17. package/dist/sdk-config/v1/index.d.ts +4803 -1
  18. package/dist/sdk-config/v1/index.js +167 -28
  19. package/dist/sdk-config/v1/index.js.map +1 -1
  20. package/dist/sdk-config-ir/index.cjs +40 -19
  21. package/dist/sdk-config-ir/index.cjs.map +1 -1
  22. package/dist/sdk-config-ir/index.d.cts +1 -1
  23. package/dist/sdk-config-ir/index.d.ts +1 -1
  24. package/dist/sdk-config-ir/index.js +40 -19
  25. package/dist/sdk-config-ir/index.js.map +1 -1
  26. package/dist/sdk-config-ir/v1/index.cjs +40 -19
  27. package/dist/sdk-config-ir/v1/index.cjs.map +1 -1
  28. package/dist/sdk-config-ir/v1/index.d.cts +490 -162
  29. package/dist/sdk-config-ir/v1/index.d.ts +490 -162
  30. package/dist/sdk-config-ir/v1/index.js +40 -19
  31. package/dist/sdk-config-ir/v1/index.js.map +1 -1
  32. package/dist/{typescript-DNqK3T3v.d.cts → typescript-CKRe_6MB.d.cts} +5 -0
  33. package/dist/{typescript-DNqK3T3v.d.ts → typescript-CKRe_6MB.d.ts} +5 -0
  34. package/package.json +1 -1
  35. package/src/sdk-config/v1/README.md +33 -23
  36. package/src/sdk-config-ir/v1/README.md +102 -96
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/sdk-config-domain/v1/common.ts","../../../src/sdk-config-domain/v1/api.ts","../../../src/sdk-config/v1/api.ts","../../../src/sdk-config-domain/v1/client.ts","../../../src/sdk-config/v1/client.ts","../../../src/sdk-config-domain/v1/package.ts","../../../src/sdk-config-domain/v1/docs.ts","../../../src/sdk-config/v1/docs.ts","../../../src/sdk-config/v1/fern-config-mapper-types.ts","../../../src/sdk-config/v1/fern-config-mapper-helpers.ts","../../../src/sdk-config/v1/fern-config-mapper-output.ts","../../../src/sdk-config-domain/v1/generation.ts","../../../src/sdk-config/v1/generation.ts","../../../src/sdk-config/v1/output.ts","../../../src/sdk-config/v1/package.ts","../../../src/sdk-config-domain/v1/source.ts","../../../src/sdk-config/v1/source.ts","../../../src/sdk-config-domain/v1/language/cli.ts","../../../src/sdk-config-domain/v1/language/csharp.ts","../../../src/sdk-config-domain/v1/language/go.ts","../../../src/sdk-config-domain/v1/language/jvm.ts","../../../src/sdk-config-domain/v1/language/java.ts","../../../src/sdk-config-domain/v1/language/kotlin.ts","../../../src/sdk-config-domain/v1/language/typescript.ts","../../../src/sdk-config-domain/v1/language/mcp.ts","../../../src/sdk-config-domain/v1/language/php.ts","../../../src/sdk-config-domain/v1/language/python.ts","../../../src/sdk-config-domain/v1/language/ruby.ts","../../../src/sdk-config-domain/v1/language/rust.ts","../../../src/sdk-config-domain/v1/language/swift.ts","../../../src/sdk-config-domain/v1/language/terraform.ts","../../../src/sdk-config/v1/target.ts","../../../src/sdk-config/v1/sdk-config-v1.ts","../../../src/sdk-config/v1/fern-config-mapper.ts"],"names":["z","semver","teams","users"],"mappings":"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","file":"index.cjs","sourcesContent":["import { z } from 'zod';\nimport semver from 'semver';\n\nexport const nonEmptyStringSchema = z.string().min(1);\n\nexport const relativePathSchema = nonEmptyStringSchema.refine(\n (value) =>\n !/^(?:[\\\\/]|[A-Za-z]:)/.test(value) &&\n !value.split(/[\\\\/]/).some((segment) => segment === '..'),\n { message: 'must be a relative path without parent directory segments' },\n);\n\nexport const exactSemverSchema = z.string().refine(\n (value) => {\n if (value.trim() !== value || !/^\\d/.test(value)) {\n return false;\n }\n\n const parsed = semver.parse(value, { loose: false });\n return parsed?.raw === value;\n },\n { message: 'must be an exact semantic version' },\n);\n\nexport type JsonValue = null | boolean | number | string | JsonValue[] | JsonObject;\n\nexport type JsonObject = {\n [key: string]: JsonValue;\n};\n\nexport const jsonValueSchema: z.ZodType<JsonValue> = z.lazy(() =>\n z.union([\n z.null(),\n z.boolean(),\n z.number(),\n z.string(),\n z.array(jsonValueSchema),\n z.record(z.string(), jsonValueSchema),\n ]),\n);\n\nexport const jsonObjectSchema: z.ZodType<JsonObject> = z.record(z.string(), jsonValueSchema);\n","import { z } from 'zod';\nimport { nonEmptyStringSchema } from './common';\n\nconst authVariableSchema = z.strictObject({\n name: nonEmptyStringSchema.optional(),\n environmentVariable: nonEmptyStringSchema.optional(),\n description: z.string().optional(),\n omit: z.boolean().optional(),\n});\n\nconst apiKeyAuthSchema = z.strictObject({\n id: nonEmptyStringSchema,\n type: z.literal('api-key'),\n location: z.enum(['header', 'query', 'cookie']),\n name: nonEmptyStringSchema,\n prefix: nonEmptyStringSchema.optional(),\n environmentVariable: nonEmptyStringSchema.optional(),\n description: z.string().optional(),\n});\n\nconst bearerAuthSchema = z.strictObject({\n id: nonEmptyStringSchema,\n type: z.literal('bearer'),\n header: nonEmptyStringSchema.optional(),\n prefix: nonEmptyStringSchema.optional(),\n environmentVariable: nonEmptyStringSchema.optional(),\n description: z.string().optional(),\n});\n\nconst basicAuthSchema = z.strictObject({\n id: nonEmptyStringSchema,\n type: z.literal('basic'),\n username: authVariableSchema.optional(),\n password: authVariableSchema.optional(),\n description: z.string().optional(),\n});\n\nconst oauthScopeSchema = z.strictObject({\n name: nonEmptyStringSchema,\n description: z.string().optional(),\n});\n\nconst oauthFlowSchema = z.discriminatedUnion('type', [\n z.strictObject({\n type: z.literal('authorization-code'),\n authorizationUrl: nonEmptyStringSchema,\n tokenUrl: nonEmptyStringSchema,\n refreshUrl: nonEmptyStringSchema.optional(),\n scopes: z.array(oauthScopeSchema).optional(),\n }),\n z.strictObject({\n type: z.literal('client-credentials'),\n tokenUrl: nonEmptyStringSchema,\n refreshUrl: nonEmptyStringSchema.optional(),\n scopes: z.array(oauthScopeSchema).optional(),\n }),\n z.strictObject({\n type: z.literal('implicit'),\n authorizationUrl: nonEmptyStringSchema,\n refreshUrl: nonEmptyStringSchema.optional(),\n scopes: z.array(oauthScopeSchema).optional(),\n }),\n z.strictObject({\n type: z.literal('password'),\n tokenUrl: nonEmptyStringSchema,\n refreshUrl: nonEmptyStringSchema.optional(),\n scopes: z.array(oauthScopeSchema).optional(),\n }),\n]);\n\nconst oauth2AuthSchema = z.strictObject({\n id: nonEmptyStringSchema,\n type: z.literal('oauth2'),\n flows: z.array(oauthFlowSchema).min(1),\n clientId: authVariableSchema.optional(),\n clientSecret: authVariableSchema.optional(),\n tokenHeader: nonEmptyStringSchema.optional(),\n tokenPrefix: nonEmptyStringSchema.optional(),\n refreshBufferSeconds: z.number().nonnegative().optional(),\n description: z.string().optional(),\n});\n\nconst customAuthParameterSchema = z.strictObject({\n location: z.enum(['header', 'query', 'cookie']),\n name: nonEmptyStringSchema,\n prefix: nonEmptyStringSchema.optional(),\n environmentVariable: nonEmptyStringSchema.optional(),\n});\n\nconst customAuthSchema = z.strictObject({\n id: nonEmptyStringSchema,\n type: z.literal('custom'),\n parameters: z.array(customAuthParameterSchema).min(1),\n description: z.string().optional(),\n});\n\nexport const authSchemeSchema = z.discriminatedUnion('type', [\n apiKeyAuthSchema,\n bearerAuthSchema,\n basicAuthSchema,\n oauth2AuthSchema,\n customAuthSchema,\n]);\n\nconst authRequirementSchema = z.strictObject({\n schemes: z.array(nonEmptyStringSchema).min(1),\n});\n\nexport const authConfigSchema = z\n .strictObject({\n schemes: z.array(authSchemeSchema).min(1),\n requirements: z.array(authRequirementSchema).optional(),\n endpointSecurity: z.boolean().optional(),\n })\n .superRefine(({ requirements, schemes }, context) => {\n const schemeIds = new Set<string>();\n schemes.forEach(({ id }, index) => {\n if (schemeIds.has(id)) {\n context.addIssue({\n code: 'custom',\n message: `auth scheme id \"${id}\" must be unique`,\n path: ['schemes', index, 'id'],\n });\n }\n schemeIds.add(id);\n });\n\n requirements?.forEach((requirement, requirementIndex) => {\n requirement.schemes.forEach((schemeId, schemeIndex) => {\n if (!schemeIds.has(schemeId)) {\n context.addIssue({\n code: 'custom',\n message: `auth requirement references unknown scheme \"${schemeId}\"`,\n path: ['requirements', requirementIndex, 'schemes', schemeIndex],\n });\n }\n });\n });\n });\n\nconst environmentUrlSchema = z.strictObject({\n name: nonEmptyStringSchema,\n url: nonEmptyStringSchema,\n serverName: nonEmptyStringSchema.optional(),\n});\n\nconst environmentSchema = z.strictObject({\n name: nonEmptyStringSchema,\n urls: z.array(environmentUrlSchema).min(1),\n description: z.string().optional(),\n});\n\nconst headerSchema = z.strictObject({\n name: nonEmptyStringSchema,\n value: z.string().optional(),\n description: z.string().optional(),\n environmentVariable: nonEmptyStringSchema.optional(),\n});\n\nconst environmentVariableSchema = z.strictObject({\n name: nonEmptyStringSchema,\n description: z.string().optional(),\n defaultValue: z.string().optional(),\n});\n\nexport const apiConfigSchema = z.strictObject({\n baseUrl: z.string().default(''),\n environments: z.array(environmentSchema).default([]),\n environmentVariables: z.array(environmentVariableSchema).default([]),\n defaultEnvironment: nonEmptyStringSchema.optional(),\n auth: authConfigSchema.optional(),\n headers: z.array(headerSchema).optional(),\n /**\n * Selects the named `x-fern-audiences`.\n *\n * Absent means all audiences. A present empty array selects no tagged audience: untagged nodes\n * remain included, while every audience-tagged node is excluded.\n */\n audiences: z.array(nonEmptyStringSchema).optional(),\n});\n\nexport type AuthScheme = z.infer<typeof authSchemeSchema>;\nexport type AuthConfig = z.infer<typeof authConfigSchema>;\nexport type ApiConfigInput = z.input<typeof apiConfigSchema>;\nexport type ApiConfig = z.output<typeof apiConfigSchema>;\n","import type { z } from 'zod';\nimport {\n apiConfigSchema,\n authConfigSchema,\n authSchemeSchema,\n} from '../../sdk-config-domain/v1/api';\n\nexport const sdkConfigV1AuthSchemeSchema = authSchemeSchema;\nexport const sdkConfigV1AuthConfigSchema = authConfigSchema;\nexport const sdkConfigV1ApiConfigSchema = apiConfigSchema;\n\nexport type SdkConfigV1ApiConfigInput = z.input<typeof sdkConfigV1ApiConfigSchema>;\nexport type SdkConfigV1ApiConfig = z.output<typeof sdkConfigV1ApiConfigSchema>;\n","import { z } from 'zod';\nimport { nonEmptyStringSchema } from './common';\n\nconst retryOverrideShape = {\n enabled: z.boolean().optional(),\n maxAttempts: z.number().int().min(1).optional(),\n retryDelayMs: z.number().nonnegative().optional(),\n maxDelayMs: z.number().nonnegative().optional(),\n jitterMs: z.number().nonnegative().optional(),\n backoffFactor: z.number().positive().optional(),\n statusCodes: z.array(z.number().int().min(100).max(599)).optional(),\n methods: z.array(nonEmptyStringSchema).optional(),\n statusCodeProfile: z.enum(['legacy', 'recommended']).optional(),\n maxRetryAfterDelayMs: z.number().nonnegative().optional(),\n};\n\nfunction validateRetryDelays(\n {\n maxDelayMs,\n retryDelayMs,\n }: { maxDelayMs?: number | undefined; retryDelayMs?: number | undefined },\n context: z.RefinementCtx,\n): void {\n if (maxDelayMs !== undefined && retryDelayMs !== undefined && maxDelayMs < retryDelayMs) {\n context.addIssue({\n code: 'custom',\n message: 'maxDelayMs must be greater than or equal to retryDelayMs',\n path: ['maxDelayMs'],\n });\n }\n}\n\nexport const clientRetryOverrideSchema = z\n .strictObject(retryOverrideShape)\n .superRefine(validateRetryDelays);\n\nconst retryConfigSchema = z\n .strictObject({\n ...retryOverrideShape,\n enabled: z.boolean().default(true),\n maxAttempts: z.number().int().min(1).default(3),\n retryDelayMs: z.number().nonnegative().default(150),\n maxDelayMs: z.number().nonnegative().default(5_000),\n jitterMs: z.number().nonnegative().default(50),\n backoffFactor: z.number().positive().default(2),\n methods: z\n .array(nonEmptyStringSchema)\n .default(['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'HEAD', 'OPTIONS']),\n maxRetryAfterDelayMs: z.number().nonnegative().default(60_000),\n })\n .superRefine(validateRetryDelays);\n\nconst constructorParameterSchema = z.strictObject({\n name: nonEmptyStringSchema,\n example: z.string().optional(),\n description: z.string().optional(),\n required: z.boolean().optional(),\n});\n\nconst parameterStyleSchema = z.enum(['wrapped', 'inline', 'language-default']);\n\nconst tokenRefreshConfigSchema = z\n .strictObject({\n enabled: z.boolean(),\n endpoint: nonEmptyStringSchema.optional(),\n accessTokenField: nonEmptyStringSchema.optional(),\n refreshTokenField: nonEmptyStringSchema.optional(),\n })\n .superRefine(({ enabled, endpoint }, context) => {\n if (enabled && endpoint === undefined) {\n context.addIssue({\n code: 'custom',\n message: 'endpoint is required when tokenRefresh is enabled',\n path: ['endpoint'],\n });\n }\n });\n\nconst clientOverrideShape = {\n retry: clientRetryOverrideSchema.optional(),\n responseHeaders: z.boolean().optional(),\n responseValidation: z.boolean().optional(),\n multiTenant: z.boolean().optional(),\n additionalConstructorParameters: z.array(constructorParameterSchema).optional(),\n timeoutMs: z.union([z.number().nonnegative(), z.literal('infinity')]).optional(),\n requestParameterStyle: parameterStyleSchema.optional(),\n pathParameterStyle: parameterStyleSchema.optional(),\n filePropertyStyle: parameterStyleSchema.optional(),\n useDefaultRequestParameterValues: z.boolean().optional(),\n respectOptionalRequestBody: z.boolean().optional(),\n tokenRefresh: tokenRefreshConfigSchema.optional(),\n};\n\n/** Sparse client properties that can override an inherited client configuration. */\nexport const clientConfigOverrideSchema = z.strictObject(clientOverrideShape);\n\nexport const clientConfigSchema = z.strictObject({\n ...clientOverrideShape,\n retry: retryConfigSchema.prefault({}),\n responseHeaders: z.boolean().default(false),\n multiTenant: z.boolean().default(false),\n additionalConstructorParameters: z.array(constructorParameterSchema).default([]),\n});\n\nexport type ClientConfigOverride = z.infer<typeof clientConfigOverrideSchema>;\nexport type ClientConfigInput = z.input<typeof clientConfigSchema>;\nexport type ClientConfig = z.output<typeof clientConfigSchema>;\n","import type { z } from 'zod';\nimport { clientConfigOverrideSchema, clientConfigSchema } from '../../sdk-config-domain/v1/client';\n\nexport const sdkConfigV1ClientConfigSchema = clientConfigSchema;\nexport const sdkConfigV1ClientConfigOverrideSchema = clientConfigOverrideSchema;\n\nexport type SdkConfigV1ClientConfigOverride = z.infer<typeof sdkConfigV1ClientConfigOverrideSchema>;\nexport type SdkConfigV1ClientConfigInput = z.input<typeof sdkConfigV1ClientConfigSchema>;\nexport type SdkConfigV1ClientConfig = z.output<typeof sdkConfigV1ClientConfigSchema>;\n","import { z } from 'zod';\nimport { nonEmptyStringSchema, relativePathSchema } from './common';\n\n// A single-element path (`sdk`) is what `go mod init sdk` accepts and what Fern's Go oracles use.\n// It is not publishable, but rejecting it fails IR parse and yields zero generated files, which is\n// a worse outcome than emitting a module the author cannot `go get`.\nexport const goModulePathSchema = relativePathSchema.regex(\n /^(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))[A-Za-z0-9._~-]+(?:\\/[A-Za-z0-9._~-]+)*$/,\n 'Go module path must use letters, numbers, dots, dashes, underscores or tildes, in slash-delimited segments',\n);\n\nexport const composerPackageNameSchema = nonEmptyStringSchema.regex(\n /^[a-z0-9]([_.-]?[a-z0-9]+)*\\/[a-z0-9](([_.]?|-{0,2})[a-z0-9]+)*$/,\n 'Composer package name must be a lowercase \"vendor/package\" name',\n);\n\nconst authorSchema = z.strictObject({\n name: nonEmptyStringSchema,\n email: z.email().optional(),\n});\n\nconst developerSchema = z.strictObject({\n name: nonEmptyStringSchema,\n email: z.email().optional(),\n organization: nonEmptyStringSchema.optional(),\n organizationUrl: nonEmptyStringSchema.optional(),\n});\n\nconst licenseSchema = z.strictObject({\n type: nonEmptyStringSchema,\n name: nonEmptyStringSchema.optional(),\n url: nonEmptyStringSchema.optional(),\n path: nonEmptyStringSchema.optional(),\n});\n\nconst dependencySourceSchema = z.discriminatedUnion('type', [\n z.strictObject({\n type: z.literal('registry'),\n registry: nonEmptyStringSchema.optional(),\n }),\n z.strictObject({\n type: z.literal('git'),\n url: nonEmptyStringSchema,\n ref: nonEmptyStringSchema.optional(),\n subdirectory: nonEmptyStringSchema.optional(),\n }),\n z.strictObject({\n type: z.literal('path'),\n path: nonEmptyStringSchema,\n }),\n]);\n\nexport const dependencySchema = z\n .strictObject({\n name: nonEmptyStringSchema,\n version: nonEmptyStringSchema.optional(),\n source: dependencySourceSchema.optional(),\n packageName: nonEmptyStringSchema.optional(),\n features: z.array(nonEmptyStringSchema).optional(),\n extras: z.array(nonEmptyStringSchema).optional(),\n optional: z.boolean().optional(),\n defaultFeatures: z.boolean().optional(),\n environmentMarker: nonEmptyStringSchema.optional(),\n })\n .refine(({ source, version }) => source !== undefined || version !== undefined, {\n message: 'dependency must define a version or a source',\n });\n\nconst projectUrlSchema = z.strictObject({\n label: nonEmptyStringSchema,\n url: nonEmptyStringSchema,\n});\n\nexport const packageConfigSchema = z.strictObject({\n packageName: nonEmptyStringSchema.optional(),\n moduleName: nonEmptyStringSchema.optional(),\n modulePath: goModulePathSchema.optional(),\n namespace: nonEmptyStringSchema.optional(),\n groupId: nonEmptyStringSchema.optional(),\n artifactId: nonEmptyStringSchema.optional(),\n description: z.string().optional(),\n repository: nonEmptyStringSchema.optional(),\n homepage: nonEmptyStringSchema.optional(),\n documentationUrl: nonEmptyStringSchema.optional(),\n authors: z.array(authorSchema).optional(),\n developers: z.array(developerSchema).optional(),\n license: licenseSchema.optional(),\n keywords: z.array(nonEmptyStringSchema).optional(),\n classifiers: z.array(nonEmptyStringSchema).optional(),\n projectUrls: z.array(projectUrlSchema).optional(),\n extraDependencies: z.array(dependencySchema).optional(),\n extraDevDependencies: z.array(dependencySchema).optional(),\n extraPeerDependencies: z.array(dependencySchema).optional(),\n});\n\nexport type Dependency = z.infer<typeof dependencySchema>;\nexport type PackageConfig = z.infer<typeof packageConfigSchema>;\n","import { z } from 'zod';\nimport { nonEmptyStringSchema } from './common';\n\nconst httpMethodSchema = z.enum([\n 'GET',\n 'POST',\n 'PUT',\n 'PATCH',\n 'DELETE',\n 'HEAD',\n 'OPTIONS',\n 'TRACE',\n 'CONNECT',\n]);\n\nexport const readmeEndpointSchema = z.strictObject({\n method: httpMethodSchema,\n path: nonEmptyStringSchema,\n stream: z.boolean().optional(),\n});\n\nexport const readmeCustomSectionSchema = z.strictObject({\n title: nonEmptyStringSchema,\n content: z.string(),\n});\n\nconst readmeConfigSchema = z.strictObject({\n apiName: nonEmptyStringSchema.optional(),\n introduction: z.string().optional(),\n apiReferenceLink: nonEmptyStringSchema.optional(),\n bannerLink: nonEmptyStringSchema.optional(),\n disabledSections: z.array(nonEmptyStringSchema).optional(),\n customSections: z.array(readmeCustomSectionSchema).optional(),\n defaultEndpoint: readmeEndpointSchema.optional(),\n features: z.record(z.string(), z.array(readmeEndpointSchema)).optional(),\n});\n\nconst snippetsConfigSchema = z.strictObject({\n enabled: z.boolean(),\n format: z.enum(['md', 'json']).optional(),\n outputPath: nonEmptyStringSchema.optional(),\n});\n\nexport const docsConfigSchema = z.strictObject({\n readme: readmeConfigSchema.optional(),\n snippets: snippetsConfigSchema.optional(),\n referenceBaseUrl: nonEmptyStringSchema.optional(),\n includeApiReference: z.boolean().optional(),\n});\n\nexport type ReadmeEndpoint = z.infer<typeof readmeEndpointSchema>;\nexport type ReadmeCustomSection = z.infer<typeof readmeCustomSectionSchema>;\nexport type DocsConfig = z.infer<typeof docsConfigSchema>;\n","import type { z } from 'zod';\nimport {\n docsConfigSchema,\n readmeCustomSectionSchema,\n readmeEndpointSchema,\n} from '../../sdk-config-domain/v1/docs';\n\nexport const sdkConfigV1ReadmeEndpointSchema = readmeEndpointSchema;\nexport const sdkConfigV1ReadmeCustomSectionSchema = readmeCustomSectionSchema;\nexport const sdkConfigV1DocsConfigSchema = docsConfigSchema;\n\nexport type SdkConfigV1DocsConfig = z.infer<typeof sdkConfigV1DocsConfigSchema>;\n","import type { SdkConfigV1ApiConfigInput } from './api';\nimport type { SdkConfigV1OutputConfig } from './output';\nimport type { SdkConfigV1PackageConfig } from './package';\nimport type { SdkConfigV1Document } from './sdk-config-v1';\nimport type { SdkConfigV1SourceConfig } from './source';\nimport type { SdkConfigV1Target } from './target';\n\nexport type JsonObject = Record<string, unknown>;\nexport type FernSdkConfigLanguage = SdkConfigV1Target['language'];\nexport type FernLanguage = FernSdkConfigLanguage;\n\ntype FernAudiences = { type: 'all' } | { type: 'select'; audiences: readonly string[] };\n\nexport interface FernResolvedGeneratorGroupInput {\n apiName: string;\n source: SdkConfigV1SourceConfig;\n apiVersion?: string | undefined;\n sdkVersion?: string | undefined;\n /** Optional API facts already lowered from Fern's definition or IR into SDK Config fields. */\n api?: SdkConfigV1ApiConfigInput | undefined;\n group: {\n name?: string | undefined;\n audiences: FernAudiences;\n generators: readonly FernResolvedGeneratorInput[];\n };\n}\n\n/**\n * Dependency-free projection of Fern CLI's resolved GeneratorInvocation. The actual Fern type is\n * structurally compatible; sdk-config intentionally does not depend on Fern packages.\n */\nexport interface FernResolvedGeneratorInput {\n name: string;\n version?: string | undefined;\n /** Explicit adapter override for a custom SDK generator. */\n sdkLanguage?: FernLanguage | undefined;\n /** Fern's inferred language does not by itself prove that this is an SDK generator. */\n language?: string | undefined;\n config?: unknown | undefined;\n outputMode?: unknown | undefined;\n raw?: unknown | undefined;\n keywords?: readonly string[] | undefined;\n smartCasing?: boolean | undefined;\n readme?: unknown | undefined;\n settings?: unknown | undefined;\n publishMetadata?: unknown | undefined;\n automation?: unknown | undefined;\n containerImage?: string | undefined;\n irVersionOverride?: string | undefined;\n idempotencyKeyGenerationConfig?: unknown | undefined;\n absolutePathToLocalSnippets?: string | undefined;\n smartCasingDigitWordBoundary?: boolean | undefined;\n disableExamples?: boolean | undefined;\n apiOverride?: unknown | undefined;\n sdkName?: string | undefined;\n sdkVersion?: string | undefined;\n /** Allows a Fern-side adapter to supply an already normalized output without Fern SDK types. */\n output?: SdkConfigV1OutputConfig | undefined;\n package?: SdkConfigV1PackageConfig | undefined;\n}\n\nexport interface FernConfigMappingDiagnostic {\n code: string;\n severity: 'error' | 'warning';\n path: (string | number)[];\n reason: string;\n sdkConfigPath?: (string | number)[];\n suggestedAction: string;\n}\n\nexport interface FernConfigMappingResult {\n sdkConfig: SdkConfigV1Document;\n unsupportedFields: FernConfigMappingDiagnostic[];\n}\n\nexport class FernConfigMappingError extends Error {\n constructor(public readonly issues: readonly FernConfigMappingDiagnostic[]) {\n super(issues.map(({ path, reason }) => `${path.join('.')}: ${reason}`).join('\\n'));\n this.name = 'FernConfigMappingError';\n }\n}\n\nexport interface MappingState {\n consumedPaths: Set<string>;\n}\n\nexport interface OutputMapping {\n output: SdkConfigV1OutputConfig;\n package?: SdkConfigV1PackageConfig;\n unsupportedFields: FernConfigMappingDiagnostic[];\n}\n","import { sdkConfigV1GoModulePathSchema } from './common';\nimport {\n FernConfigMappingError,\n type FernConfigMappingDiagnostic,\n type JsonObject,\n type MappingState,\n} from './fern-config-mapper-types';\n\nexport function fail(\n code: string,\n path: (string | number)[],\n reason: string,\n suggestedAction: string,\n sdkConfigPath?: (string | number)[],\n): never {\n throw new FernConfigMappingError([\n {\n code,\n severity: 'error',\n path,\n reason,\n suggestedAction,\n ...optional('sdkConfigPath', sdkConfigPath),\n },\n ]);\n}\n\nexport function takeTimeoutMs(\n value: JsonObject,\n state: MappingState,\n basePath: (string | number)[],\n) {\n const milliseconds = locate(value, ['defaultTimeout', 'defaultTimeoutInMilliseconds'], basePath);\n if (\n milliseconds &&\n (milliseconds.value === 'infinity' || isNonNegativeNumber(milliseconds.value))\n ) {\n consume(state, milliseconds.path);\n return milliseconds.value;\n }\n const seconds = locate(\n value,\n ['defaultTimeoutInSeconds', 'timeoutInSeconds', 'timeout'],\n basePath,\n );\n if (seconds && (seconds.value === 'infinity' || isNonNegativeNumber(seconds.value))) {\n consume(state, seconds.path);\n return seconds.value === 'infinity' ? 'infinity' : seconds.value * 1_000;\n }\n return undefined;\n}\n\nexport function locate(value: JsonObject, aliases: string[], basePath: (string | number)[]) {\n for (const [key, child] of Object.entries(value)) {\n if (aliases.some((alias) => normalizeKey(alias) === normalizeKey(key))) {\n return { value: child, path: [...basePath, key] };\n }\n }\n return undefined;\n}\n\nexport function takeObject(\n value: JsonObject,\n aliases: string[],\n _state: MappingState,\n basePath: (string | number)[],\n) {\n const located = locate(value, aliases, basePath);\n return located && isObject(located.value)\n ? { value: located.value, path: located.path }\n : undefined;\n}\n\nexport function takeString(\n value: JsonObject,\n aliases: string[],\n state: MappingState,\n basePath: (string | number)[],\n) {\n const located = locate(value, aliases, basePath);\n if (!located || typeof located.value !== 'string' || located.value.length === 0) return undefined;\n consume(state, located.path);\n return located.value;\n}\n\nexport function takeGoModulePath(\n value: JsonObject,\n aliases: string[],\n state: MappingState,\n basePath: (string | number)[],\n): string | undefined {\n const located = locate(value, aliases, basePath);\n if (!located || !sdkConfigV1GoModulePathSchema.safeParse(located.value).success) return undefined;\n consume(state, located.path);\n return located.value as string;\n}\n\nexport function takeBoolean(\n value: JsonObject,\n aliases: string[],\n state: MappingState,\n basePath: (string | number)[],\n) {\n const located = locate(value, aliases, basePath);\n if (!located || typeof located.value !== 'boolean') return undefined;\n consume(state, located.path);\n return located.value;\n}\n\nexport function takeNumber(\n value: JsonObject,\n aliases: string[],\n state: MappingState,\n basePath: (string | number)[],\n) {\n const located = locate(value, aliases, basePath);\n if (!located || !isNonNegativeNumber(located.value) || !Number.isInteger(located.value))\n return undefined;\n consume(state, located.path);\n return located.value;\n}\n\nexport function takeEnum<const Values extends readonly string[]>(\n value: JsonObject,\n aliases: string[],\n values: Values,\n state: MappingState,\n basePath: (string | number)[],\n): Values[number] | undefined {\n const located = locate(value, aliases, basePath);\n if (!located || typeof located.value !== 'string' || !values.includes(located.value))\n return undefined;\n consume(state, located.path);\n return located.value;\n}\n\nexport function takeEnumArray<const Values extends readonly string[]>(\n value: JsonObject,\n aliases: string[],\n values: Values,\n state: MappingState,\n basePath: (string | number)[],\n): Values[number][] | undefined {\n const located = locate(value, aliases, basePath);\n if (\n !located ||\n !Array.isArray(located.value) ||\n located.value.some((item) => typeof item !== 'string' || !values.includes(item))\n )\n return undefined;\n consume(state, located.path);\n return located.value as Values[number][];\n}\n\nexport function takeStringArray(\n value: JsonObject,\n aliases: string[],\n state: MappingState,\n basePath: (string | number)[],\n) {\n const located = locate(value, aliases, basePath);\n const strings = located ? stringArrayValue(located.value) : undefined;\n if (!located || !strings) return undefined;\n consume(state, located.path);\n return strings;\n}\n\nexport function takeStringArrayRecord(\n value: JsonObject,\n aliases: string[],\n state: MappingState,\n basePath: (string | number)[],\n) {\n const located = locate(value, aliases, basePath);\n if (!located || !isObject(located.value)) return undefined;\n const entries = Object.entries(located.value);\n if (entries.some(([, item]) => !stringArrayValue(item))) return undefined;\n consume(state, located.path);\n return Object.fromEntries(entries) as Record<string, string[]>;\n}\n\nexport function collectUnsupported(\n value: unknown,\n basePath: (string | number)[],\n state: MappingState,\n): FernConfigMappingDiagnostic[] {\n return collectLeafPaths(value, basePath)\n .filter((path) => {\n const key = pathKey(path);\n return ![...state.consumedPaths].some(\n (consumed) => key === consumed || key.startsWith(`${consumed}.`),\n );\n })\n .map((path) => ({\n code: 'FERN_CONFIG_FIELD_UNSUPPORTED',\n severity: 'warning' as const,\n path,\n reason: 'Fern configuration field is not represented by SDK Config v1',\n suggestedAction:\n 'Review this value and set the closest SDK Config field manually, or preserve the setting outside SDK Config if no equivalent exists.',\n }));\n}\n\nexport function collectLeafPaths(value: unknown, path: (string | number)[]): (string | number)[][] {\n if (Array.isArray(value))\n return value.flatMap((item, index) => collectLeafPaths(item, [...path, index]));\n if (isObject(value))\n return Object.entries(value).flatMap(([key, child]) => collectLeafPaths(child, [...path, key]));\n return value === undefined ? [] : [path];\n}\n\nexport function consume(state: MappingState, path: (string | number)[]): void {\n state.consumedPaths.add(pathKey(path));\n}\n\nfunction pathKey(path: (string | number)[]): string {\n return path.join('.');\n}\n\nfunction normalizeKey(value: string): string {\n return value.replace(/[-_]/g, '').toLowerCase();\n}\n\nexport function compact<T extends JsonObject>(value: T): T {\n return Object.fromEntries(Object.entries(value).filter(([, child]) => child !== undefined)) as T;\n}\n\nexport function optional<Key extends string, Value>(\n key: Key,\n value: Value | undefined,\n): Record<Key, Value> | object {\n return value === undefined ? {} : ({ [key]: value } as Record<Key, Value>);\n}\n\nexport function optionalObject<Key extends string, Value extends JsonObject>(\n key: Key,\n value: Value,\n): Record<Key, Value> | object {\n return Object.keys(value).length === 0 ? {} : ({ [key]: value } as Record<Key, Value>);\n}\n\nexport function isObject(value: unknown): value is JsonObject {\n return value !== null && typeof value === 'object' && !Array.isArray(value);\n}\n\nfunction isNonNegativeNumber(value: unknown): value is number {\n return typeof value === 'number' && Number.isFinite(value) && value >= 0;\n}\n\nexport function stringValue(value: unknown): string | undefined {\n return typeof value === 'string' && value.length > 0 ? value : undefined;\n}\n\nexport function stringArrayValue(value: unknown): string[] | undefined {\n return Array.isArray(value) && value.every((item) => typeof item === 'string' && item.length > 0)\n ? value\n : undefined;\n}\n\nexport function stableJson(value: unknown): string {\n return JSON.stringify(sortKeys(value));\n}\n\nfunction sortKeys(value: unknown): unknown {\n if (Array.isArray(value)) return value.map(sortKeys);\n if (!isObject(value)) return value;\n return Object.fromEntries(\n Object.entries(value)\n .sort(([left], [right]) => left.localeCompare(right))\n .map(([key, child]) => [key, sortKeys(child)]),\n );\n}\n","import type { SdkConfigV1PublishConfig, SdkConfigV1PublishRegistry } from './output';\nimport type { SdkConfigV1PackageConfig } from './package';\nimport {\n collectLeafPaths,\n collectUnsupported,\n compact,\n consume,\n fail,\n isObject,\n optional,\n stringArrayValue,\n stringValue,\n} from './fern-config-mapper-helpers';\nimport type {\n FernConfigMappingDiagnostic,\n FernLanguage,\n FernResolvedGeneratorInput,\n JsonObject,\n MappingState,\n OutputMapping,\n} from './fern-config-mapper-types';\n\ntype OutputValueMapping = Omit<OutputMapping, 'unsupportedFields'>;\ntype PublicationMapping = {\n publish: SdkConfigV1PublishConfig;\n package?: SdkConfigV1PackageConfig;\n};\n\nexport function mapOutput(\n generator: FernResolvedGeneratorInput,\n language: FernLanguage,\n index: number,\n): OutputMapping {\n const raw = isObject(generator.raw) ? generator.raw : undefined;\n const rawOutput = raw && isObject(raw.output) ? raw.output : undefined;\n const outputPath = ['group', 'generators', index, 'outputMode'] as (string | number)[];\n const state: MappingState = { consumedPaths: new Set<string>() };\n if (rawOutput?.location === 'local-file-system') {\n if (isObject(generator.outputMode)) consume(state, [...outputPath, 'type']);\n return finishOutputMapping(\n {\n output: {\n delivery: 'files',\n ...(typeof rawOutput.path === 'string' && rawOutput.path ? { path: rawOutput.path } : {}),\n },\n },\n generator.outputMode,\n outputPath,\n state,\n index,\n );\n }\n if (!isObject(generator.outputMode) || typeof generator.outputMode.type !== 'string') {\n fail(\n 'FERN_OUTPUT_REQUIRED',\n ['group', 'generators', index, 'outputMode'],\n `Cannot map output for Fern generator ${generator.name}`,\n 'Set generator.output to a public SDK Config output, or provide the resolved Fern outputMode.',\n ['targets', index, 'output'],\n );\n }\n const output = generator.outputMode;\n consume(state, [...outputPath, 'type']);\n switch (output.type) {\n case 'downloadFiles':\n return finishOutputMapping({ output: { delivery: 'zip' } }, output, outputPath, state, index);\n case 'github':\n return finishOutputMapping(\n githubOutput(output, output.publishInfo, language, outputPath, state, index),\n output,\n outputPath,\n state,\n index,\n );\n case 'githubV2': {\n if (!isObject(output.githubV2))\n fail(\n 'FERN_GITHUB_OUTPUT_INVALID',\n ['group', 'generators', index, 'outputMode', 'githubV2'],\n 'Fern githubV2 output is missing its configuration',\n 'Set target.output manually with delivery \"github\" and the intended repository.',\n ['targets', index, 'output'],\n );\n const githubPath = [...outputPath, 'githubV2'];\n return finishOutputMapping(\n githubOutput(\n output.githubV2,\n output.githubV2.publishInfo,\n language,\n githubPath,\n state,\n index,\n ),\n output,\n outputPath,\n state,\n index,\n );\n }\n case 'publishV2': {\n const publication = mapPublication(\n output.publishV2,\n language,\n [...outputPath, 'publishV2'],\n state,\n index,\n );\n return finishOutputMapping(\n {\n output: { delivery: 'zip', publish: publication.publish },\n ...optional('package', publication.package),\n },\n output,\n outputPath,\n state,\n index,\n );\n }\n case 'publish': {\n const publication = mapLegacyPublication(\n output.registryOverrides,\n language,\n [...outputPath, 'registryOverrides'],\n state,\n index,\n );\n return finishOutputMapping(\n {\n output: { delivery: 'zip', publish: publication.publish },\n ...optional('package', publication.package),\n },\n output,\n outputPath,\n state,\n index,\n );\n }\n default:\n fail(\n 'FERN_OUTPUT_UNSUPPORTED',\n ['group', 'generators', index, 'outputMode', 'type'],\n `Unsupported Fern output mode \"${output.type}\"`,\n 'Choose the equivalent files, zip, or github SDK Config output manually.',\n ['targets', index, 'output'],\n );\n }\n}\n\nfunction githubOutput(\n value: JsonObject,\n publishInfo: unknown,\n language: FernLanguage,\n sourcePath: (string | number)[],\n state: MappingState,\n index: number,\n): OutputValueMapping {\n const owner = stringValue(value.owner);\n const repo = stringValue(value.repo);\n if (!owner || !repo)\n fail(\n 'FERN_GITHUB_REPOSITORY_REQUIRED',\n sourcePath,\n 'Fern GitHub output requires owner and repo',\n 'Set target.output.github.repository manually as \"owner/repository\".',\n ['targets', index, 'output', 'github', 'repository'],\n );\n consume(state, [...sourcePath, 'owner']);\n consume(state, [...sourcePath, 'repo']);\n const publication = publishInfo\n ? mapPublication(publishInfo, language, [...sourcePath, 'publishInfo'], state, index)\n : undefined;\n const type = stringValue(value.type);\n const reviewers = mapReviewers(value.reviewers, [...sourcePath, 'reviewers'], state);\n if (type) consume(state, [...sourcePath, 'type']);\n if (typeof value.makePr === 'boolean') consume(state, [...sourcePath, 'makePr']);\n if (stringValue(value.host)) consume(state, [...sourcePath, 'host']);\n if (stringValue(value.branch)) consume(state, [...sourcePath, 'branch']);\n return {\n output: {\n delivery: 'github',\n github: {\n repository: `${owner}/${repo}`,\n ...optional('host', stringValue(value.host)),\n ...optional('branch', stringValue(value.branch)),\n mode:\n value.makePr === true || type === 'pullRequest'\n ? 'pull-request'\n : type === 'push'\n ? 'push'\n : 'release',\n ...optional('reviewers', reviewers),\n },\n ...(publication ? { publish: publication.publish } : {}),\n },\n ...optional('package', publication?.package),\n };\n}\n\nfunction mapReviewers(\n value: unknown,\n sourcePath: (string | number)[],\n state: MappingState,\n): { teams?: string[]; users?: string[] } | undefined {\n if (Array.isArray(value)) {\n const teams = reviewerNames(value, 'team', sourcePath, state);\n const users = reviewerNames(value, 'user', sourcePath, state);\n return teams || users\n ? { ...optional('teams', teams), ...optional('users', users) }\n : undefined;\n }\n if (!isObject(value)) return undefined;\n const teams = reviewerNames(value.teams, 'team', [...sourcePath, 'teams'], state);\n const users = reviewerNames(value.users, 'user', [...sourcePath, 'users'], state);\n return teams || users ? { ...optional('teams', teams), ...optional('users', users) } : undefined;\n}\n\nfunction reviewerNames(\n value: unknown,\n expectedType: string,\n sourcePath: (string | number)[],\n state: MappingState,\n): string[] | undefined {\n if (!Array.isArray(value)) return undefined;\n const names = value.flatMap((reviewer, index) => {\n if (typeof reviewer === 'string') {\n consume(state, [...sourcePath, index]);\n return [reviewer];\n }\n if (\n !isObject(reviewer) ||\n reviewer.type !== expectedType ||\n typeof reviewer.name !== 'string'\n ) {\n return [];\n }\n consume(state, [...sourcePath, index, 'type']);\n consume(state, [...sourcePath, index, 'name']);\n return [reviewer.name];\n });\n return names.length ? names : undefined;\n}\n\nfunction mapPublication(\n value: unknown,\n language: FernLanguage,\n sourcePath: (string | number)[],\n state: MappingState,\n index: number,\n): PublicationMapping {\n if (!isObject(value))\n fail(\n 'FERN_PUBLICATION_INVALID',\n sourcePath,\n 'Fern publication output is invalid',\n 'Set target.output.publish and target.package manually.',\n ['targets', index, 'output', 'publish'],\n );\n const type = stringValue(value.type);\n if (type) consume(state, [...sourcePath, 'type']);\n const nested = type && isObject(value[type]) ? value[type] : value;\n const nestedPath = nested === value ? sourcePath : [...sourcePath, type as string];\n const registry = publicationRegistry(type, language, [...sourcePath, 'type'], index);\n const registryUrl = stringValue(nested.registryUrl);\n if (registryUrl) consume(state, [...nestedPath, 'registryUrl']);\n if (registry === 'maven') {\n const coordinate = stringValue(nested.coordinate);\n if (coordinate) consume(state, [...nestedPath, 'coordinate']);\n return {\n publish: compact({ registry, url: registryUrl }),\n ...(coordinate\n ? { package: mavenPackage(coordinate, [...nestedPath, 'coordinate'], index) }\n : {}),\n };\n }\n const packageNameField = stringValue(nested.packageName) ? 'packageName' : 'coordinate';\n const packageName = stringValue(nested[packageNameField]);\n if (packageName) consume(state, [...nestedPath, packageNameField]);\n const metadata =\n registry === 'pypi' ? mapPypiMetadata(nested.pypiMetadata, nestedPath, state) : {};\n return {\n publish: compact({ registry, url: registryUrl }),\n ...(packageName || Object.keys(metadata).length\n ? { package: { ...optional('packageName', packageName), ...metadata } }\n : {}),\n };\n}\n\nfunction mapLegacyPublication(\n value: unknown,\n language: FernLanguage,\n sourcePath: (string | number)[],\n state: MappingState,\n index: number,\n): PublicationMapping {\n const registry = defaultRegistry(language, sourcePath, index);\n const overrides = isObject(value) ? value : {};\n const override = isObject(overrides[registry]) ? overrides[registry] : {};\n return mapPublication(override, language, [...sourcePath, registry], state, index);\n}\n\nfunction publicationRegistry(\n type: string | undefined,\n language: FernLanguage,\n sourcePath: (string | number)[],\n index: number,\n): SdkConfigV1PublishRegistry {\n if (type === 'postman') {\n fail(\n 'FERN_POSTMAN_PUBLICATION_UNSUPPORTED',\n sourcePath,\n 'Postman collection publication is not an SDK output',\n 'Remove this non-SDK target or convert it separately from the SDK Config document.',\n );\n }\n const normalized = type?.replace(/Override$/, '').toLowerCase();\n if (normalized === 'rubygems') return 'rubygems' as const;\n if (normalized && ['npm', 'pypi', 'maven', 'nuget', 'crates'].includes(normalized)) {\n return normalized as 'npm' | 'pypi' | 'maven' | 'nuget' | 'crates';\n }\n if (normalized !== undefined) {\n fail(\n 'FERN_PUBLICATION_UNSUPPORTED',\n sourcePath,\n `Unsupported Fern publication type \"${type}\"`,\n 'Set target.output.publish and target.package manually if SDK Config supports the registry.',\n ['targets', index, 'output', 'publish'],\n );\n }\n return defaultRegistry(language, sourcePath, index);\n}\n\nfunction defaultRegistry(\n language: FernLanguage,\n sourcePath: (string | number)[],\n index: number,\n): SdkConfigV1PublishRegistry {\n const registries: Partial<Record<FernLanguage, SdkConfigV1PublishRegistry>> = {\n typescript: 'npm',\n mcp: 'npm',\n python: 'pypi',\n java: 'maven',\n kotlin: 'maven',\n csharp: 'nuget',\n ruby: 'rubygems',\n rust: 'crates',\n go: 'go',\n php: 'composer',\n };\n const registry = registries[language];\n if (!registry)\n fail(\n 'FERN_PUBLICATION_REGISTRY_REQUIRED',\n sourcePath,\n `No publication registry can be inferred for ${language}`,\n 'Set target.output.publish.registry manually.',\n ['targets', index, 'output', 'publish', 'registry'],\n );\n return registry;\n}\n\nfunction mavenPackage(\n coordinate: string,\n sourcePath: (string | number)[],\n index: number,\n): SdkConfigV1PackageConfig {\n const parts = coordinate.split(':');\n const [groupId, artifactId] = parts;\n if (parts.length !== 2 || !groupId || !artifactId)\n fail(\n 'FERN_MAVEN_COORDINATE_INVALID',\n sourcePath,\n `Invalid Maven coordinate ${coordinate}`,\n 'Set target.package.groupId and target.package.artifactId manually.',\n ['targets', index, 'package'],\n );\n return { groupId, artifactId };\n}\n\nfunction mapPypiMetadata(\n value: unknown,\n sourcePath: (string | number)[],\n state: MappingState,\n): SdkConfigV1PackageConfig {\n if (!isObject(value)) return {};\n const metadataPath = [...sourcePath, 'pypiMetadata'];\n const description = stringValue(value.description);\n const keywords = stringArrayValue(value.keywords);\n const documentationUrl = stringValue(value.documentationLink);\n const homepage = stringValue(value.homepageLink);\n const authors = mapAuthors(value.authors, [...metadataPath, 'authors'], state);\n if (description) consume(state, [...metadataPath, 'description']);\n if (keywords) consume(state, [...metadataPath, 'keywords']);\n if (documentationUrl) consume(state, [...metadataPath, 'documentationLink']);\n if (homepage) consume(state, [...metadataPath, 'homepageLink']);\n return compact({ description, authors, keywords, documentationUrl, homepage });\n}\n\nfunction mapAuthors(\n value: unknown,\n sourcePath: (string | number)[],\n state: MappingState,\n): { name: string; email?: string }[] | undefined {\n if (!Array.isArray(value)) return undefined;\n const authors = value.flatMap((author) => {\n if (!isObject(author)) return [];\n const name = stringValue(author.name);\n const email = stringValue(author.email);\n return name ? [{ name, ...optional('email', email) }] : [];\n });\n if (authors.length !== value.length) return undefined;\n value.forEach((author, index) => {\n consume(state, [...sourcePath, index, 'name']);\n if (isObject(author) && stringValue(author.email)) {\n consume(state, [...sourcePath, index, 'email']);\n }\n });\n return authors;\n}\n\nfunction finishOutputMapping(\n mapping: OutputValueMapping,\n outputMode: unknown,\n sourcePath: (string | number)[],\n state: MappingState,\n index: number,\n): OutputMapping {\n for (const path of collectLeafPaths(outputMode, sourcePath)) {\n if (path[path.length - 1] === '_visit') consume(state, path);\n }\n const unsupported = collectUnsupported(outputMode, sourcePath, state);\n const hasCredentials = unsupported.some((diagnostic) => isCredentialPath(diagnostic.path));\n return {\n ...mapping,\n unsupportedFields: [\n ...(hasCredentials\n ? [\n {\n code: 'FERN_OUTPUT_CREDENTIAL_UNSUPPORTED',\n severity: 'warning' as const,\n path: sourcePath,\n reason:\n 'Fern output credentials and signatures are intentionally excluded from SDK Config v1',\n suggestedAction:\n 'Provide publishing credentials through the build request or external secret resolution.',\n },\n ]\n : []),\n ...unsupported\n .filter((diagnostic) => !isCredentialPath(diagnostic.path))\n .map((diagnostic) => outputDiagnostic(diagnostic.path, index)),\n ],\n };\n}\n\nfunction isCredentialPath(path: (string | number)[]): boolean {\n const fields = path.filter((part): part is string => typeof part === 'string');\n const field = fields[fields.length - 1];\n return (\n fields.some((part) => part === 'credentials' || part === 'signature') ||\n ['apiKey', 'keyId', 'password', 'secretKey', 'token', 'username'].includes(field ?? '')\n );\n}\n\nfunction outputDiagnostic(path: (string | number)[], index: number): FernConfigMappingDiagnostic {\n const fields = path.filter((part): part is string => typeof part === 'string');\n const field = fields[fields.length - 1];\n const guidance: Record<string, { sdkConfigPath?: (string | number)[]; suggestedAction: string }> =\n {\n directory: {\n suggestedAction:\n 'Preserve the GitHub output subdirectory outside SDK Config; public v1 has no repository subdirectory field.',\n },\n license: {\n sdkConfigPath: ['targets', index, 'package', 'license'],\n suggestedAction: 'Set target.package.license manually using portable license metadata.',\n },\n id: {\n sdkConfigPath: ['targets', index, 'package', 'license'],\n suggestedAction: 'Set target.package.license manually using portable license metadata.',\n },\n contents: {\n sdkConfigPath: ['targets', index, 'package', 'license'],\n suggestedAction: 'Set target.package.license manually without embedding license contents.',\n },\n downloadSnippets: {\n sdkConfigPath: ['docs', 'snippets', 'enabled'],\n suggestedAction:\n 'Set docs.snippets.enabled manually and choose a portable output path if needed.',\n },\n version: {\n sdkConfigPath: ['targets', index, 'sdkVersion'],\n suggestedAction:\n 'Set target.sdkVersion manually if this output version identifies the SDK artifact.',\n },\n description: {\n sdkConfigPath: ['targets', index, 'package', 'description'],\n suggestedAction: 'Set target.package.description manually to a valid value.',\n },\n authors: {\n sdkConfigPath: ['targets', index, 'package', 'authors'],\n suggestedAction: 'Set target.package.authors manually using valid author metadata.',\n },\n keywords: {\n sdkConfigPath: ['targets', index, 'package', 'keywords'],\n suggestedAction: 'Set target.package.keywords manually using non-empty strings.',\n },\n documentationLink: {\n sdkConfigPath: ['targets', index, 'package', 'documentationUrl'],\n suggestedAction: 'Set target.package.documentationUrl manually to a valid URL.',\n },\n homepageLink: {\n sdkConfigPath: ['targets', index, 'package', 'homepage'],\n suggestedAction: 'Set target.package.homepage manually to a valid URL.',\n },\n };\n const fieldGuidance = field ? guidance[field] : undefined;\n const resolvedGuidance = fields.includes('license') ? guidance.license : fieldGuidance;\n return {\n code: 'FERN_OUTPUT_FIELD_UNSUPPORTED',\n severity: 'warning',\n path,\n reason: 'Fern output field is not represented by SDK Config v1',\n ...optional('sdkConfigPath', resolvedGuidance?.sdkConfigPath),\n suggestedAction:\n resolvedGuidance?.suggestedAction ??\n 'Review this output setting and preserve it outside SDK Config when no equivalent exists.',\n };\n}\n","import { z } from 'zod';\nimport { nonEmptyStringSchema } from './common';\n\n/** Naming behavior shared by the public SDK Config and the single-target SDK Config IR. */\nexport const namingConfigSchema = z.strictObject({\n clientName: nonEmptyStringSchema.optional(),\n exportedClientName: nonEmptyStringSchema.optional(),\n environmentTypeName: nonEmptyStringSchema.optional(),\n apiErrorName: nonEmptyStringSchema.optional(),\n baseErrorName: nonEmptyStringSchema.optional(),\n pagerName: nonEmptyStringSchema.optional(),\n /** Apply Fern's initialism-aware casing rules when deriving generated identifiers. */\n smartCasing: z.boolean().optional(),\n /** Preserve a word boundary after digits when Fern smart casing is enabled. */\n smartCasingDigitWordBoundary: z.boolean().optional(),\n});\n\nexport type NamingConfig = z.infer<typeof namingConfigSchema>;\n","import { z } from 'zod';\nimport { namingConfigSchema } from '../../sdk-config-domain/v1/generation';\nimport { sdkConfigV1NonEmptyStringSchema, sdkConfigV1RelativePathSchema } from './common';\n\nconst customerGenerationAssetSchema = z.discriminatedUnion('type', [\n z.strictObject({ type: z.literal('path'), location: sdkConfigV1RelativePathSchema }),\n z.strictObject({ type: z.literal('url'), location: sdkConfigV1NonEmptyStringSchema }),\n]);\n\nconst hookDependencySchema = z.strictObject({\n name: sdkConfigV1NonEmptyStringSchema,\n version: sdkConfigV1NonEmptyStringSchema,\n groupId: sdkConfigV1NonEmptyStringSchema.optional(),\n});\n\nconst hooksConfigSchema = z.strictObject({\n enabled: z.boolean(),\n source: customerGenerationAssetSchema.optional(),\n dependencies: z.array(hookDependencySchema).optional(),\n});\n\nconst customCodeConfigSchema = z.strictObject({\n enabled: z.boolean(),\n source: customerGenerationAssetSchema.optional(),\n conflictStrategy: z.enum(['mark', 'ours', 'theirs']).optional(),\n trackChanges: z.boolean().optional(),\n protectedFiles: z.array(sdkConfigV1NonEmptyStringSchema).optional(),\n});\n\nconst workflowConfigSchema = z.strictObject({\n path: sdkConfigV1RelativePathSchema,\n outputName: sdkConfigV1NonEmptyStringSchema.optional(),\n});\n\nconst analyticsHeaderSchema = z.union([\n z.strictObject({ name: sdkConfigV1NonEmptyStringSchema, value: z.string() }),\n z.strictObject({\n name: sdkConfigV1NonEmptyStringSchema,\n valueRef: sdkConfigV1NonEmptyStringSchema,\n }),\n]);\n\nconst analyticsConfigSchema = z\n .strictObject({\n enabled: z.boolean(),\n endpoint: sdkConfigV1NonEmptyStringSchema.optional(),\n exporter: z.enum(['otlp-http', 'console']).optional(),\n headers: z.array(analyticsHeaderSchema).optional(),\n batchSize: z.number().int().positive().optional(),\n scheduledDelayMs: z.number().nonnegative().optional(),\n exportTimeoutMs: z.number().nonnegative().optional(),\n })\n .superRefine(({ enabled, endpoint }, context) => {\n if (enabled && endpoint === undefined) {\n context.addIssue({\n code: 'custom',\n message: 'endpoint is required when analytics is enabled',\n path: ['endpoint'],\n });\n }\n });\n\nconst wireTestsSchema = z.strictObject({\n enabled: z.boolean(),\n exclusions: z.array(sdkConfigV1NonEmptyStringSchema).optional(),\n fallbackToGeneratedErrorExamples: z.boolean().optional(),\n fixtureSource: z.enum(['synthetic', 'recorded', 'auto']).optional(),\n});\n\nconst unitTestsSchema = z.strictObject({\n enabled: z.boolean(),\n mode: z.enum(['core-runtime', 'schema-driven', 'both']).optional(),\n exclusions: z.array(sdkConfigV1NonEmptyStringSchema).optional(),\n});\n\nconst streamsSchema = z.strictObject({\n enabled: z.boolean(),\n responseType: z.enum(['wrapper', 'native', 'web']).optional(),\n fileResponseType: z.enum(['stream', 'binary-response']).optional(),\n defaultChunkSizeBytes: z.number().int().positive().optional(),\n});\n\nconst layoutConfigSchema = z.strictObject({\n outputDirectory: z.enum(['project-root', 'source-root']).optional(),\n packagePath: sdkConfigV1NonEmptyStringSchema.optional(),\n});\n\nconst serializationConfigSchema = z.strictObject({\n enumRepresentation: z\n .enum(['enum', 'union', 'literal', 'forward-compatible-enum', 'language-default'])\n .optional(),\n additionalProperties: z.enum(['allow', 'forbid', 'ignore', 'language-default']).optional(),\n inlineTypes: z.boolean().optional(),\n omitUndefined: z.boolean().optional(),\n});\n\nconst generationConfigOverrideShape = {\n includeWatermark: z.boolean().optional(),\n ai: z.boolean().optional(),\n includeOptionalSnippetParameters: z.boolean().optional(),\n buildAllModels: z.boolean().optional(),\n inferServiceNames: z.boolean().optional(),\n includeDeprecatedOperations: z.boolean().optional(),\n multipleResponses: z.boolean().optional(),\n devContainer: z.boolean().optional(),\n allowMockClient: z.boolean().optional(),\n ignoreFiles: z.array(sdkConfigV1NonEmptyStringSchema).optional(),\n reservedKeywords: z.array(sdkConfigV1NonEmptyStringSchema).optional(),\n hooks: hooksConfigSchema.optional(),\n customCode: customCodeConfigSchema.optional(),\n workflows: z.array(workflowConfigSchema).optional(),\n customQueryPaths: z.array(sdkConfigV1RelativePathSchema).optional(),\n analytics: analyticsConfigSchema.optional(),\n wireTests: wireTestsSchema.optional(),\n unitTests: unitTestsSchema.optional(),\n webSockets: z.boolean().optional(),\n streams: streamsSchema.optional(),\n naming: namingConfigSchema.optional(),\n layout: layoutConfigSchema.optional(),\n serialization: serializationConfigSchema.optional(),\n};\n\n/** Sparse common generation properties that can override root generation for one target. */\nexport const sdkConfigV1GenerationConfigOverrideSchema = z.strictObject(\n generationConfigOverrideShape,\n);\n\nexport const sdkConfigV1GenerationConfigSchema = z.strictObject({\n ...generationConfigOverrideShape,\n includeWatermark: z.boolean().default(false),\n ai: z.boolean().default(false),\n buildAllModels: z.boolean().default(false),\n inferServiceNames: z.boolean().default(false),\n includeDeprecatedOperations: z.boolean().default(true),\n multipleResponses: z.boolean().default(false),\n devContainer: z.boolean().default(false),\n allowMockClient: z.boolean().default(false),\n});\n\nexport type SdkConfigV1GenerationConfigOverride = z.infer<\n typeof sdkConfigV1GenerationConfigOverrideSchema\n>;\nexport type SdkConfigV1GenerationConfigInput = z.input<typeof sdkConfigV1GenerationConfigSchema>;\nexport type SdkConfigV1GenerationConfig = z.output<typeof sdkConfigV1GenerationConfigSchema>;\n\nconst commonGenerationKeys = new Set(Object.keys(generationConfigOverrideShape));\n\n/** Separates flat target generation overrides into common and language-specific properties. */\nexport function splitSdkConfigV1TargetGeneration(generation: Record<string, unknown> | undefined): {\n common: SdkConfigV1GenerationConfigOverride;\n language: Record<string, unknown>;\n} {\n const common: Record<string, unknown> = {};\n const language: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(generation ?? {})) {\n (commonGenerationKeys.has(key) ? common : language)[key] = value;\n }\n return { common: common as SdkConfigV1GenerationConfigOverride, language };\n}\n","import { z } from 'zod';\nimport { sdkConfigV1NonEmptyStringSchema } from './common';\n\nexport const sdkConfigV1PublishRegistrySchema = z.enum([\n 'npm',\n 'pypi',\n 'maven',\n 'nuget',\n 'rubygems',\n 'crates',\n 'go',\n 'composer',\n]);\n\nconst commonPublishShape = {\n url: sdkConfigV1NonEmptyStringSchema.optional(),\n releaseBranch: sdkConfigV1NonEmptyStringSchema.optional(),\n tolerateRepublish: z.boolean().optional(),\n};\n\nexport const sdkConfigV1PublishConfigSchema = z.discriminatedUnion('registry', [\n z.strictObject({ registry: z.literal('npm'), ...commonPublishShape }),\n z.strictObject({ registry: z.literal('pypi'), ...commonPublishShape }),\n z.strictObject({ registry: z.literal('maven'), ...commonPublishShape }),\n z.strictObject({ registry: z.literal('nuget'), ...commonPublishShape }),\n z.strictObject({ registry: z.literal('rubygems'), ...commonPublishShape }),\n z.strictObject({ registry: z.literal('crates'), ...commonPublishShape }),\n z.strictObject({ registry: z.literal('go'), ...commonPublishShape }),\n z.strictObject({ registry: z.literal('composer'), ...commonPublishShape }),\n]);\n\nconst reviewersSchema = z.strictObject({\n teams: z.array(sdkConfigV1NonEmptyStringSchema).optional(),\n users: z.array(sdkConfigV1NonEmptyStringSchema).optional(),\n});\n\nconst githubOutputSchema = z.strictObject({\n repository: sdkConfigV1NonEmptyStringSchema,\n host: sdkConfigV1NonEmptyStringSchema.optional(),\n branch: sdkConfigV1NonEmptyStringSchema.optional(),\n mode: z.enum(['release', 'pull-request', 'push']).optional(),\n reviewers: reviewersSchema.optional(),\n privateRepository: z.boolean().optional(),\n});\n\nconst filesOutputSchema = z.strictObject({\n delivery: z.literal('files'),\n path: sdkConfigV1NonEmptyStringSchema.optional(),\n publish: sdkConfigV1PublishConfigSchema.optional(),\n});\n\nconst zipOutputSchema = z.strictObject({\n delivery: z.literal('zip'),\n fileName: sdkConfigV1NonEmptyStringSchema.optional(),\n publish: sdkConfigV1PublishConfigSchema.optional(),\n});\n\nconst githubDeliverySchema = z.strictObject({\n delivery: z.literal('github'),\n github: githubOutputSchema,\n publish: sdkConfigV1PublishConfigSchema.optional(),\n});\n\nexport const sdkConfigV1OutputConfigSchema = z.discriminatedUnion(\n 'delivery',\n [filesOutputSchema, zipOutputSchema, githubDeliverySchema],\n { error: 'output.delivery must be one of \"files\", \"zip\", or \"github\"' },\n);\n\nexport type SdkConfigV1PublishRegistry = z.infer<typeof sdkConfigV1PublishRegistrySchema>;\nexport type SdkConfigV1PublishConfig = z.infer<typeof sdkConfigV1PublishConfigSchema>;\nexport type SdkConfigV1OutputConfig = z.infer<typeof sdkConfigV1OutputConfigSchema>;\n","import type { z } from 'zod';\nimport { dependencySchema, packageConfigSchema } from '../../sdk-config-domain/v1/package';\n\nexport const sdkConfigV1DependencySchema = dependencySchema;\nexport const sdkConfigV1PackageConfigSchema = packageConfigSchema;\n\nexport type SdkConfigV1Dependency = z.infer<typeof sdkConfigV1DependencySchema>;\nexport type SdkConfigV1PackageConfig = z.infer<typeof sdkConfigV1PackageConfigSchema>;\n","import { z } from 'zod';\n\nexport const apiImportSettingsSchema = z.strictObject({\n respectNullableSchemas: z.boolean().optional(),\n titleAsSchemaName: z.boolean().optional(),\n coerceEnumsToLiterals: z.boolean().optional(),\n idiomaticRequestNames: z.boolean().optional(),\n wrapReferencesToNullableInOptional: z.boolean().optional(),\n coerceOptionalSchemasToNullable: z.boolean().optional(),\n pathParameterOrder: z.enum(['url-order', 'spec-order']).optional(),\n onlyIncludeReferencedSchemas: z.boolean().optional(),\n objectQueryParameters: z.boolean().optional(),\n typeDatesAsStrings: z.boolean().optional(),\n groupMultiApiEnvironments: z.boolean().optional(),\n defaultIntegerFormat: z.enum(['int32', 'int64', 'uint32', 'uint64']).optional(),\n});\n\nexport const sourceSpecTypeSchema = z.enum([\n 'openapi',\n 'swagger',\n 'postman',\n 'asyncapi',\n 'graphql',\n]);\n\nexport type ApiImportSettings = z.infer<typeof apiImportSettingsSchema>;\nexport type SourceSpecType = z.infer<typeof sourceSpecTypeSchema>;\n","import { z } from 'zod';\nimport { apiImportSettingsSchema, sourceSpecTypeSchema } from '../../sdk-config-domain/v1/source';\nimport { sdkConfigV1NonEmptyStringSchema, sdkConfigV1RelativePathSchema } from './common';\n\nconst sourceSpecShape = {\n id: sdkConfigV1NonEmptyStringSchema,\n type: sourceSpecTypeSchema,\n name: sdkConfigV1NonEmptyStringSchema.optional(),\n namespace: sdkConfigV1NonEmptyStringSchema.optional(),\n apiImportSettings: apiImportSettingsSchema.optional(),\n overlays: z.array(sdkConfigV1RelativePathSchema).optional(),\n overrides: z.array(sdkConfigV1RelativePathSchema).optional(),\n};\n\n/** A source is either a local path or an HTTP(S) URL; the two locators are mutually exclusive. */\nexport const sdkConfigV1SourceSpecSchema = z.union(\n [\n z.strictObject({ ...sourceSpecShape, path: sdkConfigV1RelativePathSchema }),\n z.strictObject({\n ...sourceSpecShape,\n url: z.url({ protocol: /^https?$/ }),\n }),\n ],\n { error: 'source spec must contain exactly one locator: path or HTTP(S) url' },\n);\n\nexport const sdkConfigV1SourceConfigSchema = z\n .strictObject({\n specs: z\n .array(sdkConfigV1SourceSpecSchema)\n .min(1, 'source.specs must contain at least one source spec'),\n apiImportSettings: apiImportSettingsSchema.optional(),\n })\n .superRefine(({ specs }, context) => {\n const seenIds = new Set<string>();\n specs.forEach(({ id }, index) => {\n if (seenIds.has(id)) {\n context.addIssue({\n code: 'custom',\n message: `source spec id \"${id}\" must be unique`,\n path: ['specs', index, 'id'],\n });\n }\n seenIds.add(id);\n });\n });\n\nexport type SdkConfigV1SourceSpec = z.infer<typeof sdkConfigV1SourceSpecSchema>;\nexport type SdkConfigV1SourceConfig = z.infer<typeof sdkConfigV1SourceConfigSchema>;\n","import { z } from 'zod';\nimport { nonEmptyStringSchema } from '../common';\n\nexport const cliGenerationConfigSchema = z.strictObject({\n paginationParameters: z.array(nonEmptyStringSchema).optional(),\n skills: z.boolean().optional(),\n});\n\nexport type CliGenerationConfig = z.infer<typeof cliGenerationConfigSchema>;\n","import { z } from 'zod';\n\nexport const csharpGenerationConfigSchema = z.strictObject({\n useOptionalWrapper: z.boolean().optional(),\n simplifyObjectDictionaries: z.boolean().optional(),\n explicitNamespaces: z.boolean().optional(),\n rootNamespaceForCoreClasses: z.boolean().optional(),\n includeExceptionHandler: z.boolean().optional(),\n experimentalExplicitNullableOptional: z.boolean().optional(),\n});\n\nexport type CsharpGenerationConfig = z.infer<typeof csharpGenerationConfigSchema>;\n","import { z } from 'zod';\nimport { nonEmptyStringSchema } from '../common';\nexport const goGenerationConfigSchema = z.strictObject({\n legacyComplexModels: z.boolean().optional(),\n /** Uppercase common initialisms in generated names (`UserID` rather than `UserId`). */\n smartCasing: z.boolean().optional(),\n /** Overrides the fern root-client constructor independently from the client type name. */\n clientConstructorName: nonEmptyStringSchema.optional(),\n unionVersion: z.enum(['v0', 'v1']).optional(),\n includeLegacyClientOptions: z.boolean().optional(),\n});\n\nexport type GoGenerationConfig = z.infer<typeof goGenerationConfigSchema>;\n","import { z } from 'zod';\n\n/** Code-generation behavior shared by Java and Kotlin-targeted JVM SDKs. */\nexport const jvmGenerationConfigSchema = z.strictObject({\n packageLayout: z.enum(['flat', 'nested']).optional(),\n useLocalDateForDates: z.boolean().optional(),\n collapseOptionalNullable: z.boolean().optional(),\n gradleDistributionUrl: z.string().min(1).optional(),\n gradlePluginManagement: z.string().optional(),\n gradleCentralDependencyManagement: z.boolean().optional(),\n /** Selects co-located async methods or a separate async client surface. */\n asyncStyle: z.enum(['dedicated-client', 'twin-methods']).optional(),\n});\n\nexport type JvmGenerationConfig = z.infer<typeof jvmGenerationConfigSchema>;\n","import { z } from 'zod';\nimport { jvmGenerationConfigSchema } from './jvm';\n\nexport const javaGenerationConfigSchema = jvmGenerationConfigSchema.extend({\n includeKotlinSnippets: z.boolean().optional(),\n});\n\nexport type JavaGenerationConfig = z.infer<typeof javaGenerationConfigSchema>;\n","import type { z } from 'zod';\nimport { jvmGenerationConfigSchema } from './jvm';\n\n/**\n * Kotlin targets use the shared Java/JVM generator and always include Kotlin-facing\n * examples, snippets, and documentation.\n */\nexport const kotlinGenerationConfigSchema = jvmGenerationConfigSchema;\n\nexport type KotlinGenerationConfig = z.infer<typeof kotlinGenerationConfigSchema>;\n","import { z } from 'zod';\nimport { nonEmptyStringSchema } from '../common';\n\nconst compilerOptionsSchema = z.strictObject({\n target: nonEmptyStringSchema.optional(),\n module: nonEmptyStringSchema.optional(),\n lib: z.array(nonEmptyStringSchema).optional(),\n});\n\nconst packageScriptSchema = z.strictObject({\n name: nonEmptyStringSchema,\n command: nonEmptyStringSchema,\n});\n\nconst httpClientSchema = z.strictObject({\n name: z.enum(['axios', 'fetch']),\n});\n\nexport const typescriptGenerationConfigSchema = z.strictObject({\n typescriptVersion: nonEmptyStringSchema.optional(),\n zodVersion: nonEmptyStringSchema.optional(),\n compilerOptions: compilerOptionsSchema.optional(),\n httpClient: httpClientSchema.optional(),\n packageManager: z.enum(['pnpm', 'yarn']).optional(),\n testFramework: z.enum(['jest', 'vitest']).optional(),\n namingStrategy: z.enum(['base', 'originalPropertyNames']).optional(),\n bundle: z.boolean().optional(),\n exportClassDefault: z.boolean().optional(),\n /** Name of the top-level namespace export emitted by Fern-compatible TypeScript SDKs. */\n namespaceExportName: nonEmptyStringSchema.optional(),\n allowCustomFetcher: z.boolean().optional(),\n useBrandedStringAliases: z.boolean().optional(),\n useLegacyExports: z.boolean().optional(),\n useBigInt: z.boolean().optional(),\n serdeLayer: z.boolean().optional(),\n scripts: z.array(packageScriptSchema).optional(),\n});\n\nexport type TypescriptGenerationConfig = z.infer<typeof typescriptGenerationConfigSchema>;\n","import { z } from 'zod';\nimport { nonEmptyStringSchema } from '../common';\nimport { typescriptGenerationConfigSchema } from './typescript';\n\nexport const mcpAvailabilityStatuses = [\n 'IN_DEVELOPMENT',\n 'PRE_RELEASE',\n 'GENERAL_AVAILABILITY',\n 'DEPRECATED',\n 'ALPHA',\n 'BETA',\n 'PREVIEW',\n 'LEGACY',\n] as const;\n\nconst mcpToolFilterSchema = z.strictObject({\n include: z.array(nonEmptyStringSchema).optional(),\n exclude: z.array(nonEmptyStringSchema).optional(),\n});\n\nconst mcpToolsetNameSchema = nonEmptyStringSchema.refine(\n (name) => name !== 'default' && /^[a-z0-9-]+$/.test(name),\n 'toolset names must match [a-z0-9-]+ and cannot be \"default\"',\n);\n\nexport const mcpGenerationConfigSchema = typescriptGenerationConfigSchema.extend({\n serverName: nonEmptyStringSchema.optional(),\n serverDescription: nonEmptyStringSchema.optional(),\n excludeAvailability: z.array(z.enum(mcpAvailabilityStatuses)).optional(),\n tools: mcpToolFilterSchema.optional(),\n toolsets: z.record(mcpToolsetNameSchema, mcpToolFilterSchema).optional(),\n});\n\nexport type McpAvailabilityStatus = (typeof mcpAvailabilityStatuses)[number];\nexport type McpToolFilter = z.infer<typeof mcpToolFilterSchema>;\nexport type McpGenerationConfig = z.infer<typeof mcpGenerationConfigSchema>;\n","import { z } from 'zod';\n\nexport const phpGenerationConfigSchema = z.strictObject({\n propertyAccess: z.enum(['public', 'private']).optional(),\n generateClientInterfaces: z.boolean().optional(),\n});\n\nexport type PhpGenerationConfig = z.infer<typeof phpGenerationConfigSchema>;\n","import { z } from 'zod';\nimport { nonEmptyStringSchema } from '../common';\n\nconst pythonClientSchema = z.strictObject({\n fileName: nonEmptyStringSchema.optional(),\n exportedFileName: nonEmptyStringSchema.optional(),\n});\n\nconst pydanticConfigSchema = z.strictObject({\n versionCompatibility: z.enum(['v1', 'v2', 'both', 'v1-on-v2']).optional(),\n frozen: z.boolean().optional(),\n requireOptionalFields: z.boolean().optional(),\n unionNaming: z.enum(['v0', 'v1']).optional(),\n useFieldAliases: z.boolean().optional(),\n});\n\nexport const pythonGenerationConfigSchema = z.strictObject({\n pythonVersion: nonEmptyStringSchema.optional(),\n pydanticVersion: nonEmptyStringSchema.optional(),\n pydantic: pydanticConfigSchema.optional(),\n client: pythonClientSchema.optional(),\n alwaysInitializeOptionals: z.boolean().optional(),\n useTypedDictRequests: z.boolean().optional(),\n});\n\nexport type PythonGenerationConfig = z.infer<typeof pythonGenerationConfigSchema>;\n","import { z } from 'zod';\nimport { nonEmptyStringSchema } from '../common';\n\nexport const rubyGenerationConfigSchema = z.strictObject({\n requirePaths: z.array(nonEmptyStringSchema).optional(),\n});\n\nexport type RubyGenerationConfig = z.infer<typeof rubyGenerationConfigSchema>;\n","import { z } from 'zod';\nimport { nonEmptyStringSchema } from '../common';\n\n/**\n * Rust keeps crate identity, client naming, and package metadata in the shared fields; only\n * behavior with no cross-language equivalent lives here.\n */\nexport const rustGenerationConfigSchema = z.strictObject({\n /**\n * Rust type for datetime primitives. `offset` maps to `DateTime<FixedOffset>` and preserves the\n * timezone the payload carried; `utc` maps to `DateTime<Utc>` and normalizes to UTC.\n */\n dateTimeType: z.enum(['offset', 'utc']).optional(),\n /** Uppercase common initialisms in generated names (`UserID` rather than `UserId`). */\n capitalizeInitialisms: z.boolean().optional(),\n /** Cargo features, mapping a feature name to the dependencies or features it enables. */\n features: z.record(z.string(), z.array(nonEmptyStringSchema)).optional(),\n /** Overrides which features make up Cargo's `default` feature set. */\n defaultFeatures: z.array(nonEmptyStringSchema).optional(),\n});\n\nexport type RustGenerationConfig = z.infer<typeof rustGenerationConfigSchema>;\n","import { z } from 'zod';\nimport { nonEmptyStringSchema } from '../common';\n\nexport const swiftGenerationConfigSchema = z.strictObject({\n moduleName: nonEmptyStringSchema.optional(),\n nullableAsOptional: z.boolean().optional(),\n});\n\nexport type SwiftGenerationConfig = z.infer<typeof swiftGenerationConfigSchema>;\n","import { z } from 'zod';\nimport { nonEmptyStringSchema } from '../common';\nimport { goModulePathSchema } from '../package';\n\nconst planModifierSourceSchema = z.discriminatedUnion('enabled', [\n z.strictObject({ enabled: z.literal(true), sourceDir: nonEmptyStringSchema }),\n z.strictObject({ enabled: z.literal(false) }),\n]);\n\nconst planModifiersSchema = z.strictObject({\n resources: planModifierSourceSchema,\n attributes: planModifierSourceSchema,\n});\n\n/** Names of the provider-level attributes the generated provider exposes for host and credentials. */\nconst providerSchemaSchema = z.strictObject({\n addressKey: nonEmptyStringSchema,\n authTokenKey: nonEmptyStringSchema,\n});\n\nexport const terraformGenerationConfigSchema = z.strictObject({\n providerName: nonEmptyStringSchema.optional(),\n providerVersion: nonEmptyStringSchema.optional(),\n providerModulePath: goModulePathSchema.optional(),\n mockAcceptance: z.boolean().optional(),\n hideComputedDiff: z.boolean().optional(),\n providerSchema: providerSchemaSchema.optional(),\n planModifiers: planModifiersSchema.optional(),\n});\n\nexport type PlanModifiers = z.infer<typeof planModifiersSchema>;\nexport type TerraformGenerationConfig = z.infer<typeof terraformGenerationConfigSchema>;\n","import { z } from 'zod';\nimport { sdkConfigV1ClientConfigOverrideSchema } from './client';\nimport { sdkConfigV1ExactSemverSchema, sdkConfigV1NonEmptyStringSchema } from './common';\nimport { sdkConfigV1DocsConfigSchema } from './docs';\nimport { sdkConfigV1GenerationConfigOverrideSchema } from './generation';\nimport {\n sdkConfigV1CliGenerationConfigSchema,\n sdkConfigV1CsharpGenerationConfigSchema,\n sdkConfigV1GoGenerationConfigSchema,\n sdkConfigV1JavaGenerationConfigSchema,\n sdkConfigV1KotlinGenerationConfigSchema,\n sdkConfigV1McpGenerationConfigSchema,\n sdkConfigV1PhpGenerationConfigSchema,\n sdkConfigV1PythonGenerationConfigSchema,\n sdkConfigV1RubyGenerationConfigSchema,\n sdkConfigV1RustGenerationConfigSchema,\n sdkConfigV1SwiftGenerationConfigSchema,\n sdkConfigV1TerraformGenerationConfigSchema,\n sdkConfigV1TypescriptGenerationConfigSchema,\n} from './language';\nimport { sdkConfigV1OutputConfigSchema } from './output';\nimport { sdkConfigV1PackageConfigSchema } from './package';\n\nconst targetOverrideShape = {\n generatorVersion: sdkConfigV1ExactSemverSchema.optional(),\n sdkName: sdkConfigV1NonEmptyStringSchema.optional(),\n sdkVersion: sdkConfigV1NonEmptyStringSchema.optional(),\n client: sdkConfigV1ClientConfigOverrideSchema.optional(),\n docs: sdkConfigV1DocsConfigSchema.optional(),\n package: sdkConfigV1PackageConfigSchema.optional(),\n output: sdkConfigV1OutputConfigSchema.optional(),\n};\n\nexport const sdkConfigV1TargetSchema = z.discriminatedUnion('language', [\n z.strictObject({\n language: z.literal('typescript'),\n generation: sdkConfigV1GenerationConfigOverrideSchema\n .extend(sdkConfigV1TypescriptGenerationConfigSchema.shape)\n .optional(),\n ...targetOverrideShape,\n }),\n z.strictObject({\n language: z.literal('python'),\n generation: sdkConfigV1GenerationConfigOverrideSchema\n .extend(sdkConfigV1PythonGenerationConfigSchema.shape)\n .optional(),\n ...targetOverrideShape,\n }),\n z.strictObject({\n language: z.literal('java'),\n generation: sdkConfigV1GenerationConfigOverrideSchema\n .extend(sdkConfigV1JavaGenerationConfigSchema.shape)\n .optional(),\n ...targetOverrideShape,\n }),\n z.strictObject({\n language: z.literal('kotlin'),\n generation: sdkConfigV1GenerationConfigOverrideSchema\n .extend(sdkConfigV1KotlinGenerationConfigSchema.shape)\n .optional(),\n ...targetOverrideShape,\n }),\n z.strictObject({\n language: z.literal('go'),\n generation: sdkConfigV1GenerationConfigOverrideSchema\n .extend(sdkConfigV1GoGenerationConfigSchema.shape)\n .optional(),\n ...targetOverrideShape,\n }),\n z.strictObject({\n language: z.literal('csharp'),\n generation: sdkConfigV1GenerationConfigOverrideSchema\n .extend(sdkConfigV1CsharpGenerationConfigSchema.shape)\n .optional(),\n ...targetOverrideShape,\n }),\n z.strictObject({\n language: z.literal('php'),\n generation: sdkConfigV1GenerationConfigOverrideSchema\n .extend(sdkConfigV1PhpGenerationConfigSchema.shape)\n .optional(),\n ...targetOverrideShape,\n }),\n z.strictObject({\n language: z.literal('ruby'),\n generation: sdkConfigV1GenerationConfigOverrideSchema\n .extend(sdkConfigV1RubyGenerationConfigSchema.shape)\n .optional(),\n ...targetOverrideShape,\n }),\n z.strictObject({\n language: z.literal('rust'),\n generation: sdkConfigV1GenerationConfigOverrideSchema\n .extend(sdkConfigV1RustGenerationConfigSchema.shape)\n .optional(),\n ...targetOverrideShape,\n }),\n z.strictObject({\n language: z.literal('swift'),\n generation: sdkConfigV1GenerationConfigOverrideSchema\n .extend(sdkConfigV1SwiftGenerationConfigSchema.shape)\n .optional(),\n ...targetOverrideShape,\n }),\n z.strictObject({\n language: z.literal('cli'),\n generation: sdkConfigV1GenerationConfigOverrideSchema\n .extend(sdkConfigV1CliGenerationConfigSchema.shape)\n .optional(),\n ...targetOverrideShape,\n }),\n z.strictObject({\n language: z.literal('mcp'),\n generation: sdkConfigV1GenerationConfigOverrideSchema\n .extend(sdkConfigV1McpGenerationConfigSchema.shape)\n .optional(),\n ...targetOverrideShape,\n }),\n z.strictObject({\n language: z.literal('terraform'),\n generation: sdkConfigV1GenerationConfigOverrideSchema\n .extend(sdkConfigV1TerraformGenerationConfigSchema.shape)\n .optional(),\n ...targetOverrideShape,\n }),\n]);\n\nexport type SdkConfigV1Target = z.infer<typeof sdkConfigV1TargetSchema>;\n","import { z, type RefinementCtx } from 'zod';\nimport { sdkConfigV1ApiConfigSchema } from './api';\nimport { sdkConfigV1ClientConfigSchema } from './client';\nimport { sdkConfigV1ComposerPackageNameSchema, sdkConfigV1NonEmptyStringSchema } from './common';\nimport { sdkConfigV1DocsConfigSchema } from './docs';\nimport { sdkConfigV1GenerationConfigSchema } from './generation';\nimport {\n sdkConfigV1OutputConfigSchema,\n type SdkConfigV1OutputConfig,\n type SdkConfigV1PublishRegistry,\n} from './output';\nimport { sdkConfigV1PackageConfigSchema, type SdkConfigV1PackageConfig } from './package';\nimport { sdkConfigV1SourceConfigSchema } from './source';\nimport { sdkConfigV1TargetSchema, type SdkConfigV1Target } from './target';\n\nexport const SDK_CONFIG_V1_SCHEMA_VERSION = 'sdk-config/v1' as const;\n\nconst publishRegistryLanguages = {\n npm: ['typescript', 'mcp'],\n pypi: ['python'],\n maven: ['java', 'kotlin'],\n nuget: ['csharp'],\n rubygems: ['ruby'],\n crates: ['rust'],\n go: ['go'],\n composer: ['php'],\n} as const;\n\nconst packageNameRegistries = new Set<SdkConfigV1PublishRegistry>([\n 'npm',\n 'pypi',\n 'nuget',\n 'rubygems',\n 'crates',\n 'composer',\n]);\n\nfunction validatePublishingIdentity(\n packageConfig: SdkConfigV1PackageConfig,\n registry: SdkConfigV1PublishRegistry,\n targetIndex: number,\n context: RefinementCtx,\n): void {\n const pathPrefix = ['targets', targetIndex, 'package'] as const;\n\n if (packageNameRegistries.has(registry) && !packageConfig.packageName) {\n context.addIssue({\n code: 'custom',\n message: `packageName is required when publishing to \"${registry}\"`,\n path: [...pathPrefix, 'packageName'],\n });\n }\n\n if (registry === 'composer' && packageConfig.packageName) {\n const result = sdkConfigV1ComposerPackageNameSchema.safeParse(packageConfig.packageName);\n if (!result.success) {\n context.addIssue({\n code: 'custom',\n message: result.error.issues[0]?.message ?? 'Invalid Composer package name',\n path: [...pathPrefix, 'packageName'],\n });\n }\n }\n\n if (registry === 'go' && !packageConfig.modulePath) {\n context.addIssue({\n code: 'custom',\n message: 'modulePath is required when publishing a Go module',\n path: [...pathPrefix, 'modulePath'],\n });\n }\n\n if (registry === 'maven') {\n (['groupId', 'artifactId'] as const).forEach((field) => {\n if (!packageConfig[field]) {\n context.addIssue({\n code: 'custom',\n message: `${field} is required when publishing to Maven`,\n path: [...pathPrefix, field],\n });\n }\n });\n }\n}\n\nfunction validateTargetPublishing(\n target: SdkConfigV1Target,\n targetIndex: number,\n globalPackage: SdkConfigV1PackageConfig,\n globalOutput: SdkConfigV1OutputConfig | undefined,\n context: RefinementCtx,\n): void {\n const output = target.output ?? globalOutput;\n if (!output) {\n context.addIssue({\n code: 'custom',\n message: 'output is required on the target when no global output is configured',\n path: ['targets', targetIndex, 'output'],\n });\n return;\n }\n if (!output.publish) {\n return;\n }\n\n const registry = output.publish.registry;\n if (!publishRegistryLanguages[registry].some((language) => language === target.language)) {\n context.addIssue({\n code: 'custom',\n message: `registry \"${registry}\" is not supported for target language \"${target.language}\"`,\n path: ['targets', targetIndex, target.output ? 'output' : 'language'],\n });\n return;\n }\n\n validatePublishingIdentity(\n { ...globalPackage, ...target.package },\n registry,\n targetIndex,\n context,\n );\n}\n\nexport const sdkConfigV1Schema = z\n .strictObject({\n schemaVersion: z.literal(SDK_CONFIG_V1_SCHEMA_VERSION),\n sdkName: sdkConfigV1NonEmptyStringSchema,\n sdkVersion: sdkConfigV1NonEmptyStringSchema.default('1.0.0'),\n apiVersion: sdkConfigV1NonEmptyStringSchema.optional(),\n source: sdkConfigV1SourceConfigSchema,\n api: sdkConfigV1ApiConfigSchema.prefault({}),\n client: sdkConfigV1ClientConfigSchema.prefault({}),\n package: sdkConfigV1PackageConfigSchema.prefault({}),\n output: sdkConfigV1OutputConfigSchema.optional(),\n docs: sdkConfigV1DocsConfigSchema.prefault({}),\n generation: sdkConfigV1GenerationConfigSchema.prefault({}),\n targets: z.array(sdkConfigV1TargetSchema).min(1),\n })\n .superRefine(({ output, package: globalPackage, targets }, context) => {\n const configuredLanguages = new Set<string>();\n\n targets.forEach((target, targetIndex) => {\n if (configuredLanguages.has(target.language)) {\n context.addIssue({\n code: 'custom',\n message: `target language \"${target.language}\" must be unique`,\n path: ['targets', targetIndex, 'language'],\n });\n }\n configuredLanguages.add(target.language);\n validateTargetPublishing(target, targetIndex, globalPackage, output, context);\n });\n });\n\nexport type SdkConfigV1Input = z.input<typeof sdkConfigV1Schema>;\nexport type SdkConfigV1 = z.output<typeof sdkConfigV1Schema>;\n/** The sparse, customer-authored SDK Config document before defaults are resolved. */\nexport type SdkConfigV1Document = SdkConfigV1Input;\n\n/** Validates a customer-authored document without materializing schema defaults into it. */\nexport function validateSdkConfigV1(value: unknown): SdkConfigV1Document {\n sdkConfigV1Schema.parse(value);\n return value as SdkConfigV1Document;\n}\n\n/** Parses SDK Config and materializes its versioned defaults for runtime resolution. */\nexport function parseSdkConfigV1(value: unknown): SdkConfigV1 {\n return sdkConfigV1Schema.parse(value);\n}\n","import { sdkConfigV1ExactSemverSchema } from './common';\nimport type { ReadmeEndpoint } from '../../sdk-config-domain/v1/docs';\nimport type { SdkConfigV1ApiConfigInput } from './api';\nimport type { SdkConfigV1ClientConfigInput } from './client';\nimport type { SdkConfigV1DocsConfig } from './docs';\nimport {\n collectUnsupported,\n compact,\n consume,\n fail,\n isObject,\n locate,\n optional,\n optionalObject,\n stableJson,\n stringArrayValue,\n stringValue,\n takeBoolean,\n takeEnum,\n takeEnumArray,\n takeGoModulePath,\n takeNumber,\n takeObject,\n takeString,\n takeStringArray,\n takeStringArrayRecord,\n takeTimeoutMs,\n} from './fern-config-mapper-helpers';\nimport { mapOutput } from './fern-config-mapper-output';\nimport {\n FernConfigMappingError,\n type FernConfigMappingDiagnostic,\n type FernConfigMappingResult,\n type FernLanguage,\n type FernResolvedGeneratorGroupInput,\n type FernResolvedGeneratorInput,\n type JsonObject,\n type MappingState,\n} from './fern-config-mapper-types';\nimport type { SdkConfigV1GenerationConfigInput } from './generation';\nimport type { SdkConfigV1Dependency, SdkConfigV1PackageConfig } from './package';\nimport { sdkConfigV1Schema } from './sdk-config-v1';\n\nexport {\n FernConfigMappingError,\n type FernConfigMappingDiagnostic,\n type FernConfigMappingResult,\n type FernResolvedGeneratorGroupInput,\n type FernResolvedGeneratorInput,\n type FernSdkConfigLanguage,\n} from './fern-config-mapper-types';\n\ninterface InvocationMapping {\n client: SdkConfigV1ClientConfigInput;\n docs: SdkConfigV1DocsConfig;\n generation: SdkConfigV1GenerationConfigInput;\n package: SdkConfigV1PackageConfig;\n targetGeneration: JsonObject;\n unsupportedFields: FernConfigMappingDiagnostic[];\n}\n\nconst generatorLanguages: Record<string, FernLanguage> = {\n 'fernapi/fern-typescript': 'typescript',\n 'fernapi/fern-typescript-sdk': 'typescript',\n 'fernapi/fern-typescript-node-sdk': 'typescript',\n 'fernapi/fern-typescript-browser-sdk': 'typescript',\n 'fernapi/fern-python-sdk': 'python',\n 'fernapi/fern-java-sdk': 'java',\n 'fernapi/fern-kotlin-sdk': 'kotlin',\n 'fernapi/fern-go-sdk': 'go',\n 'fernapi/fern-csharp-sdk': 'csharp',\n 'fernapi/fern-php-sdk': 'php',\n 'fernapi/fern-ruby-sdk': 'ruby',\n 'fernapi/fern-ruby-sdk-v2': 'ruby',\n 'fernapi/fern-rust-sdk': 'rust',\n 'fernapi/fern-swift-sdk': 'swift',\n 'fernapi/fern-cli': 'cli',\n 'fernapi/fern-cli-generator': 'cli',\n 'fernapi/fern-mcp-server': 'mcp',\n};\n\n/** Converts one resolved Fern generator group into a validated customer-facing SDK Config. */\nexport function mapFernConfigToSdkConfigV1(\n input: FernResolvedGeneratorGroupInput,\n): FernConfigMappingResult {\n if (input.group.generators.length === 0) {\n fail(\n 'FERN_GENERATORS_REQUIRED',\n ['group', 'generators'],\n 'Fern generator group must contain at least one generator',\n 'Select a Fern generator group containing at least one SDK generator.',\n );\n }\n\n const mapped = input.group.generators.map((generator, index) => {\n const language = resolveLanguage(generator, index);\n const invocation = mapInvocation(generator, language, index);\n const outputMapping = generator.output\n ? { output: generator.output, unsupportedFields: [] }\n : mapOutput(generator, language, index);\n return {\n generator,\n language,\n invocation,\n ...outputMapping,\n };\n });\n\n requireUniqueLanguages(mapped.map(({ language }) => language));\n const clients = partitionSharedBlock(mapped.map(({ invocation }) => invocation.client));\n const docs = partitionSharedBlock(mapped.map(({ invocation }) => invocation.docs));\n const generations = partitionSharedBlock(mapped.map(({ invocation }) => invocation.generation));\n const api: SdkConfigV1ApiConfigInput = { ...(input.api ?? {}) };\n delete api.audiences;\n if (input.group.audiences.type === 'select') {\n api.audiences = [...input.group.audiences.audiences];\n }\n\n const targets = mapped.map(\n ({ generator, invocation, language, output, package: outputPackage }, index) => {\n const target: JsonObject = {\n language,\n output,\n ...optional('sdkName', generator.sdkName),\n ...optional('sdkVersion', generator.sdkVersion),\n ...optional('client', clients.targetOverrides[index]),\n ...optional('docs', docs.targetOverrides[index]),\n };\n if (Object.keys(invocation.package).length > 0 || outputPackage || generator.package) {\n target.package = { ...invocation.package, ...outputPackage, ...generator.package };\n }\n const targetGeneration = {\n ...generations.targetOverrides[index],\n ...invocation.targetGeneration,\n };\n if (Object.keys(targetGeneration).length > 0) {\n target.generation = targetGeneration;\n }\n if (generator.version) {\n if (sdkConfigV1ExactSemverSchema.safeParse(generator.version).success) {\n target.generatorVersion = generator.version;\n } else {\n invocation.unsupportedFields.push({\n code: 'FERN_GENERATOR_VERSION_NOT_EXACT',\n severity: 'warning',\n path: ['group', 'generators', index, 'version'],\n reason: 'SDK Config requires an exact generator semantic version',\n sdkConfigPath: ['targets', index, 'generatorVersion'],\n suggestedAction:\n 'Resolve the Fern generator tag to an exact semantic version and set target.generatorVersion manually, or leave it omitted.',\n });\n }\n }\n return target;\n },\n );\n\n const sdkConfig = {\n schemaVersion: 'sdk-config/v1',\n sdkName: input.apiName,\n source: input.source,\n ...optional('sdkVersion', input.sdkVersion),\n ...optional('apiVersion', input.apiVersion),\n ...optionalObject('api', api),\n ...optionalObject('client', clients.shared),\n ...optionalObject('docs', docs.shared),\n ...optionalObject('generation', generations.shared),\n targets,\n } as const;\n const parsed = sdkConfigV1Schema.safeParse(sdkConfig);\n if (!parsed.success) {\n throw new FernConfigMappingError(\n parsed.error.issues.map((issue) => {\n const path = issue.path.map((part) =>\n typeof part === 'symbol' ? (part.description ?? part.toString()) : part,\n );\n return {\n code: 'SDK_CONFIG_VALIDATION_FAILED',\n severity: 'error',\n path: ['mappedSdkConfig', ...path],\n reason: issue.message,\n sdkConfigPath: path,\n suggestedAction: `Set ${path.join('.')} manually to a valid SDK Config v1 value.`,\n };\n }),\n );\n }\n const validatedSdkConfig = sdkConfig as unknown as FernConfigMappingResult['sdkConfig'];\n\n return {\n sdkConfig: validatedSdkConfig,\n unsupportedFields: mapped.flatMap(({ invocation, unsupportedFields }) => [\n ...invocation.unsupportedFields,\n ...unsupportedFields,\n ]),\n };\n}\n\nfunction resolveLanguage(generator: FernResolvedGeneratorInput, index: number): FernLanguage {\n const language = generator.sdkLanguage ?? generatorLanguages[generator.name];\n if (!language || !isFernLanguage(language)) {\n fail(\n 'FERN_SDK_LANGUAGE_REQUIRED',\n ['group', 'generators', index, 'name'],\n `Cannot determine an SDK language for Fern generator ${generator.name}`,\n 'Set sdkLanguage explicitly if this custom generator produces one of the SDK Config v1 target languages.',\n ['targets', index, 'language'],\n );\n }\n return language;\n}\n\nfunction isFernLanguage(value: string): value is FernLanguage {\n return [\n 'typescript',\n 'python',\n 'java',\n 'kotlin',\n 'go',\n 'csharp',\n 'php',\n 'ruby',\n 'rust',\n 'swift',\n 'cli',\n 'mcp',\n 'terraform',\n ].includes(value);\n}\n\nfunction requireUniqueLanguages(languages: FernLanguage[]): void {\n const seen = new Set<FernLanguage>();\n for (const language of languages) {\n if (seen.has(language)) {\n fail(\n 'FERN_DUPLICATE_TARGET_LANGUAGE',\n ['group', 'generators'],\n `SDK Config v1 cannot represent multiple Fern generators for language \"${language}\"`,\n 'Create a separate SDK Config document for each generator that targets the same language.',\n ['targets'],\n );\n }\n seen.add(language);\n }\n}\n\nfunction partitionSharedBlock<T extends object>(\n values: T[],\n): {\n shared: T;\n targetOverrides: Array<T | undefined>;\n} {\n const partition = partitionObjectValues(values as JsonObject[]);\n return {\n shared: partition.shared as T,\n targetOverrides: partition.overrides.map((override) =>\n Object.keys(override).length > 0 ? (override as T) : undefined,\n ),\n };\n}\n\nfunction partitionObjectValues(values: JsonObject[]): {\n shared: JsonObject;\n overrides: JsonObject[];\n} {\n const shared: JsonObject = {};\n const overrides = values.map((): JsonObject => ({}));\n const keys = new Set(values.flatMap((value) => Object.keys(value)));\n\n for (const key of keys) {\n const fieldValues = values.map((value) => value[key]);\n const presentOnEveryTarget = fieldValues.every((value) => value !== undefined);\n if (!presentOnEveryTarget) {\n fieldValues.forEach((value, index) => {\n if (value !== undefined) overrides[index]![key] = value;\n });\n continue;\n }\n\n if (fieldValues.every(isObject)) {\n const nested = partitionObjectValues(fieldValues);\n if (Object.keys(nested.shared).length > 0) shared[key] = nested.shared;\n nested.overrides.forEach((override, index) => {\n if (Object.keys(override).length > 0) overrides[index]![key] = override;\n });\n continue;\n }\n\n const first = fieldValues[0];\n if (fieldValues.every((value) => stableJson(value) === stableJson(first))) {\n shared[key] = first;\n } else {\n fieldValues.forEach((value, index) => {\n overrides[index]![key] = value;\n });\n }\n }\n\n return { shared, overrides };\n}\n\nfunction mapInvocation(\n generator: FernResolvedGeneratorInput,\n language: FernLanguage,\n index: number,\n): InvocationMapping {\n const prefix = ['group', 'generators', index] as const;\n const state: MappingState = { consumedPaths: new Set<string>() };\n const config = isObject(generator.config) ? generator.config : {};\n const client: SdkConfigV1ClientConfigInput = {};\n const generation: SdkConfigV1GenerationConfigInput = {};\n const packageConfig: SdkConfigV1PackageConfig = {};\n\n mapCommonConfig(config, state, client, generation, packageConfig, [...prefix, 'config']);\n const rawGenerator = isObject(generator.raw) ? generator.raw : undefined;\n const smartCasing =\n typeof rawGenerator?.['smart-casing'] === 'boolean'\n ? rawGenerator['smart-casing']\n : generator.smartCasing === false\n ? false\n : undefined;\n const smartCasingDigitWordBoundary =\n typeof rawGenerator?.['smart-casing-digit-word-boundary'] === 'boolean'\n ? rawGenerator['smart-casing-digit-word-boundary']\n : generator.smartCasingDigitWordBoundary === true\n ? true\n : undefined;\n if (smartCasing !== undefined || smartCasingDigitWordBoundary !== undefined) {\n generation.naming = {\n ...generation.naming,\n ...optional('smartCasing', smartCasing),\n ...optional('smartCasingDigitWordBoundary', smartCasingDigitWordBoundary),\n };\n }\n const targetGeneration = mapLanguageConfig(language, config, state, packageConfig, [\n ...prefix,\n 'config',\n ]);\n mapPublishMetadata(generator.publishMetadata, packageConfig);\n if (generator.keywords?.length) {\n generation.reservedKeywords = [...generator.keywords];\n }\n\n const settings = isObject(generator.settings) ? generator.settings : undefined;\n if (settings) {\n const inlinePathParameters = takeBoolean(settings, ['inlinePathParameters'], state, [\n ...prefix,\n 'settings',\n ]);\n if (inlinePathParameters !== undefined && client.pathParameterStyle === undefined) {\n client.pathParameterStyle = inlinePathParameters ? 'inline' : 'wrapped';\n }\n }\n\n const docs = mapReadme(generator.readme, state, [...prefix, 'readme']);\n const unsupportedFields = [\n ...collectUnsupported(config, [...prefix, 'config'], state),\n ...(settings ? collectUnsupported(settings, [...prefix, 'settings'], state) : []),\n ...(isObject(generator.readme)\n ? collectUnsupported(generator.readme, [...prefix, 'readme'], state)\n : []),\n ...unsupportedResolvedFields(generator, index),\n ];\n return { client, docs, generation, package: packageConfig, targetGeneration, unsupportedFields };\n}\n\nfunction unsupportedResolvedFields(\n generator: FernResolvedGeneratorInput,\n index: number,\n): FernConfigMappingDiagnostic[] {\n const values: [string, unknown][] = [\n ['automation', isDefaultAutomation(generator.automation) ? undefined : generator.automation],\n ['containerImage', generator.containerImage],\n ['irVersionOverride', generator.irVersionOverride],\n ['idempotencyKeyGenerationConfig', generator.idempotencyKeyGenerationConfig],\n ['absolutePathToLocalSnippets', generator.absolutePathToLocalSnippets],\n [\n 'disableExamples',\n generator.disableExamples === false ? undefined : generator.disableExamples,\n ],\n ['apiOverride', generator.apiOverride],\n ];\n return values.flatMap(([field, value]) => {\n if (value === undefined) return [];\n const guidance = resolvedFieldGuidance(field);\n return [\n {\n code: 'FERN_RESOLVED_FIELD_UNSUPPORTED',\n severity: 'warning' as const,\n path: ['group', 'generators', index, field],\n reason: 'Resolved Fern field is not represented by SDK Config v1',\n ...optional('sdkConfigPath', guidance.sdkConfigPath),\n suggestedAction: guidance.suggestedAction,\n },\n ];\n });\n}\n\nfunction resolvedFieldGuidance(field: string): {\n sdkConfigPath?: (string | number)[];\n suggestedAction: string;\n} {\n if (field === 'absolutePathToLocalSnippets') {\n return {\n sdkConfigPath: ['docs', 'snippets', 'outputPath'],\n suggestedAction:\n 'Choose a portable relative snippet path and set docs.snippets.outputPath manually.',\n };\n }\n if (field === 'idempotencyKeyGenerationConfig') {\n return {\n suggestedAction:\n 'Preserve this orchestration setting outside SDK Config; public v1 has no idempotency-generation field.',\n };\n }\n return {\n suggestedAction:\n 'Review this Fern setting and preserve it outside SDK Config, or set an equivalent SDK Config field manually if one is introduced.',\n };\n}\n\nfunction isDefaultAutomation(value: unknown): boolean {\n return (\n isObject(value) &&\n value.generate === true &&\n value.upgrade === true &&\n value.preview === true &&\n value.verify === true\n );\n}\n\nfunction mapCommonConfig(\n config: JsonObject,\n state: MappingState,\n client: SdkConfigV1ClientConfigInput,\n generation: SdkConfigV1GenerationConfigInput,\n packageConfig: SdkConfigV1PackageConfig,\n basePath: (string | number)[],\n): void {\n const inlinePath = takeBoolean(config, ['inlinePathParameters'], state, basePath);\n const inlineFile = takeBoolean(config, ['inlineFileProperties'], state, basePath);\n const inlineRequest = takeBoolean(config, ['inlineRequestParams'], state, basePath);\n if (inlinePath !== undefined) client.pathParameterStyle = inlinePath ? 'inline' : 'wrapped';\n if (inlineFile !== undefined) client.filePropertyStyle = inlineFile ? 'inline' : 'wrapped';\n if (inlineRequest !== undefined)\n client.requestParameterStyle = inlineRequest ? 'inline' : 'wrapped';\n\n const timeoutMs = takeTimeoutMs(config, state, basePath);\n if (timeoutMs !== undefined) client.timeoutMs = timeoutMs;\n const skipValidation = takeBoolean(\n config,\n ['skipResponseValidation', 'skipValidation'],\n state,\n basePath,\n );\n if (skipValidation !== undefined) client.responseValidation = !skipValidation;\n const useDefaults = takeBoolean(config, ['useDefaultRequestParameterValues'], state, basePath);\n if (useDefaults !== undefined) client.useDefaultRequestParameterValues = useDefaults;\n const respectOptionalBody = takeBoolean(config, ['respectOptionalRequestBody'], state, basePath);\n if (respectOptionalBody !== undefined) client.respectOptionalRequestBody = respectOptionalBody;\n\n const maxRetries = takeNumber(config, ['maxRetries'], state, basePath);\n const statusCodeProfile = takeEnum(\n config,\n ['retryStatusCodes'],\n ['legacy', 'recommended'],\n state,\n basePath,\n );\n if (maxRetries !== undefined || statusCodeProfile !== undefined) {\n client.retry = {\n ...(maxRetries === undefined ? {} : { maxAttempts: maxRetries + 1 }),\n ...optional('statusCodeProfile', statusCodeProfile),\n };\n }\n\n const naming = compact({\n pagerName: takeString(\n config,\n ['customPagerName', 'customPagerClassname', 'customPagerClassName'],\n state,\n basePath,\n ),\n clientName: takeString(config, ['clientName', 'clientClassName'], state, basePath),\n exportedClientName: takeString(\n config,\n ['exportedClientName', 'exportedClientClassName'],\n state,\n basePath,\n ),\n environmentTypeName: takeString(\n config,\n ['environmentClassName', 'environmentEnumName'],\n state,\n basePath,\n ),\n apiErrorName: takeString(config, ['baseApiExceptionClassName'], state, basePath),\n baseErrorName: takeString(config, ['baseExceptionClassName'], state, basePath),\n });\n if (Object.keys(naming).length) generation.naming = naming;\n\n const wireTests = takeBoolean(config, ['enableWireTests', 'generateWireTests'], state, basePath);\n if (wireTests !== undefined) generation.wireTests = { enabled: wireTests };\n const webSockets = takeBoolean(\n config,\n ['generateWebSocketClients', 'shouldGenerateWebsocketClients', 'enableWebsockets'],\n state,\n basePath,\n );\n if (webSockets !== undefined) generation.webSockets = webSockets;\n\n const inlineTypes = takeBoolean(config, ['enableInlineTypes'], state, basePath);\n const omitUndefined = takeBoolean(config, ['omitUndefined'], state, basePath);\n const forwardEnums = takeBoolean(config, ['enableForwardCompatibleEnums'], state, basePath);\n const serialization = compact({\n inlineTypes,\n omitUndefined,\n enumRepresentation:\n forwardEnums === undefined\n ? undefined\n : forwardEnums\n ? ('forward-compatible-enum' as const)\n : ('language-default' as const),\n });\n if (Object.keys(serialization).length) generation.serialization = serialization;\n\n const namespace = takeString(config, ['namespace', 'packagePrefix'], state, basePath);\n if (namespace !== undefined) packageConfig.namespace = namespace;\n const packagePath = takeString(config, ['packagePath'], state, basePath);\n if (packagePath !== undefined) generation.layout = { packagePath };\n mapDependencies(config, state, packageConfig, basePath);\n}\n\nfunction mapLanguageConfig(\n language: FernLanguage,\n config: JsonObject,\n state: MappingState,\n packageConfig: SdkConfigV1PackageConfig,\n basePath: (string | number)[],\n): JsonObject {\n switch (language) {\n case 'typescript':\n return mapTypescript(config, state, packageConfig, basePath);\n case 'mcp':\n return {\n ...mapTypescript(config, state, packageConfig, basePath),\n ...mapMcp(config, state, basePath),\n };\n case 'python':\n return mapPython(config, state, packageConfig, basePath);\n case 'java':\n case 'kotlin':\n return mapJvm(language, config, state, packageConfig, basePath);\n case 'go':\n return mapGo(config, state, packageConfig, basePath);\n case 'csharp':\n return mapCsharp(config, state, packageConfig, basePath);\n case 'php':\n return mapPhp(config, state, packageConfig, basePath);\n case 'ruby':\n return mapRuby(config, state, packageConfig, basePath);\n case 'rust':\n return mapRust(config, state, packageConfig, basePath);\n case 'swift':\n return compact({ moduleName: takeString(config, ['moduleName'], state, basePath) });\n case 'cli':\n return mapCli(config, state, packageConfig, basePath);\n case 'terraform':\n return mapTerraform(config, state, packageConfig, basePath);\n }\n}\n\nfunction mapTypescript(\n config: JsonObject,\n state: MappingState,\n packageConfig: SdkConfigV1PackageConfig,\n basePath: (string | number)[],\n): JsonObject {\n const packageJson = takeObject(config, ['packageJson'], state, basePath);\n const packageName = packageJson\n ? takeString(packageJson.value, ['name'], state, packageJson.path)\n : undefined;\n if (packageName !== undefined) packageConfig.packageName = packageName;\n const serdeLayer = takeBoolean(config, ['serdeLayer'], state, basePath);\n const noSerdeLayer = takeBoolean(config, ['noSerdeLayer'], state, basePath);\n return compact({\n typescriptVersion: takeString(config, ['typescriptVersion'], state, basePath),\n zodVersion: takeString(config, ['zodVersion'], state, basePath),\n packageManager: takeEnum(config, ['packageManager'], ['pnpm', 'yarn'], state, basePath),\n testFramework: takeEnum(config, ['testFramework'], ['jest', 'vitest'], state, basePath),\n bundle: takeBoolean(config, ['bundle'], state, basePath),\n exportClassDefault: takeBoolean(config, ['exportClassDefault'], state, basePath),\n namespaceExportName: takeString(\n config,\n ['namespaceExportName', 'namespaceExport'],\n state,\n basePath,\n ),\n allowCustomFetcher: takeBoolean(config, ['allowCustomFetcher'], state, basePath),\n useBrandedStringAliases: takeBoolean(config, ['useBrandedStringAliases'], state, basePath),\n useLegacyExports: takeBoolean(config, ['useLegacyExports'], state, basePath),\n useBigInt: takeBoolean(config, ['useBigInt'], state, basePath),\n serdeLayer: serdeLayer ?? (noSerdeLayer === undefined ? undefined : !noSerdeLayer),\n });\n}\n\nfunction mapPython(\n config: JsonObject,\n state: MappingState,\n packageConfig: SdkConfigV1PackageConfig,\n basePath: (string | number)[],\n): JsonObject {\n const moduleName = takeString(config, ['packageName'], state, basePath);\n const packageName = takeString(config, ['pypiPackageName'], state, basePath);\n if (moduleName !== undefined) packageConfig.moduleName = moduleName;\n if (packageName !== undefined) packageConfig.packageName = packageName;\n return compact({\n pythonVersion: takeString(config, ['pythonVersion', 'pyprojectPythonVersion'], state, basePath),\n pydanticVersion: takeString(config, ['pydanticVersion'], state, basePath),\n alwaysInitializeOptionals: takeBoolean(config, ['alwaysInitializeOptionals'], state, basePath),\n useTypedDictRequests: takeBoolean(config, ['useTypedDictRequests'], state, basePath),\n });\n}\n\nfunction mapJvm(\n language: 'java' | 'kotlin',\n config: JsonObject,\n state: MappingState,\n packageConfig: SdkConfigV1PackageConfig,\n basePath: (string | number)[],\n): JsonObject {\n const namespace = takeString(config, ['packageName', 'packagePrefix'], state, basePath);\n const groupId = takeString(config, ['group', 'groupId'], state, basePath);\n const artifactId = takeString(config, ['artifact', 'artifactId'], state, basePath);\n if (namespace !== undefined) packageConfig.namespace = namespace;\n if (groupId !== undefined) packageConfig.groupId = groupId;\n if (artifactId !== undefined) packageConfig.artifactId = artifactId;\n return compact({\n packageLayout: takeEnum(config, ['packageLayout'], ['flat', 'nested'], state, basePath),\n useLocalDateForDates: takeBoolean(config, ['useLocalDateForDates'], state, basePath),\n collapseOptionalNullable: takeBoolean(config, ['collapseOptionalNullable'], state, basePath),\n gradleDistributionUrl: takeString(config, ['gradleDistributionUrl'], state, basePath),\n gradlePluginManagement: takeString(config, ['gradlePluginManagement'], state, basePath),\n gradleCentralDependencyManagement: takeBoolean(\n config,\n ['gradleCentralDependencyManagement'],\n state,\n basePath,\n ),\n asyncStyle: takeEnum(\n config,\n ['asyncStyle'],\n ['dedicated-client', 'twin-methods'],\n state,\n basePath,\n ),\n ...(language === 'java'\n ? {\n includeKotlinSnippets: takeBoolean(config, ['includeKotlinSnippets'], state, basePath),\n }\n : {}),\n });\n}\n\nfunction mapGo(\n config: JsonObject,\n state: MappingState,\n packageConfig: SdkConfigV1PackageConfig,\n basePath: (string | number)[],\n): JsonObject {\n const module = takeObject(config, ['module'], state, basePath);\n const modulePath = module\n ? takeGoModulePath(module.value, ['path'], state, module.path)\n : undefined;\n const packageName = takeString(config, ['packageName'], state, basePath);\n if (modulePath !== undefined) packageConfig.modulePath = modulePath;\n if (packageName !== undefined) packageConfig.packageName = packageName;\n return compact({\n legacyComplexModels: takeBoolean(config, ['legacyComplexModels'], state, basePath),\n unionVersion: takeEnum(config, ['union'], ['v0', 'v1'], state, basePath),\n includeLegacyClientOptions: takeBoolean(\n config,\n ['includeLegacyClientOptions'],\n state,\n basePath,\n ),\n clientConstructorName: takeString(config, ['clientConstructorName'], state, basePath),\n });\n}\n\nfunction mapCsharp(\n config: JsonObject,\n state: MappingState,\n packageConfig: SdkConfigV1PackageConfig,\n basePath: (string | number)[],\n): JsonObject {\n const packageName = takeString(config, ['packageId'], state, basePath);\n if (packageName !== undefined) packageConfig.packageName = packageName;\n return compact({\n useOptionalWrapper: takeBoolean(config, ['useOptionalWrapper'], state, basePath),\n simplifyObjectDictionaries: takeBoolean(\n config,\n ['simplifyObjectDictionaries'],\n state,\n basePath,\n ),\n explicitNamespaces: takeBoolean(config, ['explicitNamespaces'], state, basePath),\n rootNamespaceForCoreClasses: takeBoolean(\n config,\n ['rootNamespaceForCoreClasses'],\n state,\n basePath,\n ),\n includeExceptionHandler: takeBoolean(config, ['includeExceptionHandler'], state, basePath),\n experimentalExplicitNullableOptional: takeBoolean(\n config,\n ['experimentalExplicitNullableOptional'],\n state,\n basePath,\n ),\n });\n}\n\nfunction mapPhp(\n config: JsonObject,\n state: MappingState,\n packageConfig: SdkConfigV1PackageConfig,\n basePath: (string | number)[],\n): JsonObject {\n const packageName = takeString(config, ['packageName'], state, basePath);\n if (packageName !== undefined) packageConfig.packageName = packageName;\n return compact({\n propertyAccess: takeEnum(config, ['propertyAccess'], ['public', 'private'], state, basePath),\n generateClientInterfaces: takeBoolean(config, ['generateClientInterfaces'], state, basePath),\n });\n}\n\nfunction mapRuby(\n config: JsonObject,\n state: MappingState,\n packageConfig: SdkConfigV1PackageConfig,\n basePath: (string | number)[],\n): JsonObject {\n const moduleName = takeString(config, ['moduleName'], state, basePath);\n if (moduleName !== undefined) packageConfig.moduleName = moduleName;\n return compact({ requirePaths: takeStringArray(config, ['requirePaths'], state, basePath) });\n}\n\nfunction mapRust(\n config: JsonObject,\n state: MappingState,\n packageConfig: SdkConfigV1PackageConfig,\n basePath: (string | number)[],\n): JsonObject {\n const packageName = takeString(config, ['crateName'], state, basePath);\n const repository = takeString(config, ['packageRepository'], state, basePath);\n const description = takeString(config, ['packageDescription'], state, basePath);\n const documentationUrl = takeString(config, ['packageDocumentation'], state, basePath);\n Object.assign(packageConfig, compact({ packageName, repository, description, documentationUrl }));\n return compact({\n dateTimeType: takeEnum(config, ['dateTimeType'], ['offset', 'utc'], state, basePath),\n capitalizeInitialisms: takeBoolean(config, ['capitalizeInitialisms'], state, basePath),\n features: takeStringArrayRecord(config, ['features'], state, basePath),\n defaultFeatures: takeStringArray(config, ['defaultFeatures'], state, basePath),\n });\n}\n\nfunction mapCli(\n config: JsonObject,\n state: MappingState,\n packageConfig: SdkConfigV1PackageConfig,\n basePath: (string | number)[],\n): JsonObject {\n const identity = takeObject(config, ['packageIdentity'], state, basePath);\n if (identity) {\n Object.assign(\n packageConfig,\n compact({\n packageName: takeString(identity.value, ['name'], state, identity.path),\n repository: takeString(identity.value, ['repository'], state, identity.path),\n description: takeString(identity.value, ['description'], state, identity.path),\n }),\n );\n }\n return compact({\n paginationParameters: takeStringArray(config, ['paginationParameters'], state, basePath),\n skills: takeBoolean(config, ['skills'], state, basePath),\n });\n}\n\nfunction mapTerraform(\n config: JsonObject,\n state: MappingState,\n packageConfig: SdkConfigV1PackageConfig,\n basePath: (string | number)[],\n): JsonObject {\n const providerModulePath = takeString(\n config,\n ['providerModulePath', 'providerGoModuleName'],\n state,\n basePath,\n );\n if (providerModulePath !== undefined) packageConfig.modulePath = providerModulePath;\n return compact({\n providerName: takeString(config, ['providerName'], state, basePath),\n providerVersion: takeString(config, ['providerVersion'], state, basePath),\n providerModulePath,\n mockAcceptance: takeBoolean(config, ['mockAcceptance'], state, basePath),\n hideComputedDiff: takeBoolean(config, ['hideComputedDiff'], state, basePath),\n });\n}\n\nfunction mapMcp(\n config: JsonObject,\n state: MappingState,\n basePath: (string | number)[],\n): JsonObject {\n return compact({\n serverName: takeString(config, ['serverName'], state, basePath),\n serverDescription: takeString(config, ['serverDescription'], state, basePath),\n excludeAvailability: takeEnumArray(\n config,\n ['excludeAvailability'],\n [\n 'IN_DEVELOPMENT',\n 'PRE_RELEASE',\n 'GENERAL_AVAILABILITY',\n 'DEPRECATED',\n 'ALPHA',\n 'BETA',\n 'PREVIEW',\n 'LEGACY',\n ],\n state,\n basePath,\n ),\n tools: takeToolFilter(config, ['tools'], state, basePath),\n toolsets: takeToolsets(config, ['toolsets'], state, basePath),\n });\n}\n\nfunction mapReadme(\n value: unknown,\n state: MappingState,\n basePath: (string | number)[],\n): SdkConfigV1DocsConfig {\n if (!isObject(value)) return {};\n const readme = compact({\n apiName: takeString(value, ['apiName'], state, basePath),\n introduction: takeString(value, ['introduction'], state, basePath),\n apiReferenceLink: takeString(value, ['apiReferenceLink'], state, basePath),\n bannerLink: takeString(value, ['bannerLink'], state, basePath),\n disabledSections: takeStringArray(value, ['disabledSections'], state, basePath),\n customSections: takeCustomSections(value, state, basePath),\n defaultEndpoint: takeReadmeEndpoint(value, ['defaultEndpoint'], state, basePath),\n features: takeReadmeFeatures(value, state, basePath),\n });\n return Object.keys(readme).length ? { readme } : {};\n}\n\nfunction mapPublishMetadata(value: unknown, packageConfig: SdkConfigV1PackageConfig): void {\n if (!isObject(value)) return;\n const publisherName = stringValue(value.publisherName);\n const publisherEmail = stringValue(value.publisherEmail);\n Object.assign(\n packageConfig,\n compact({\n description: stringValue(value.packageDescription),\n documentationUrl: stringValue(value.referenceUrl),\n authors: publisherName\n ? [{ name: publisherName, ...optional('email', publisherEmail) }]\n : undefined,\n }),\n );\n}\n\nfunction mapDependencies(\n config: JsonObject,\n state: MappingState,\n packageConfig: SdkConfigV1PackageConfig,\n basePath: (string | number)[],\n): void {\n for (const field of [\n 'extraDependencies',\n 'extraDevDependencies',\n 'extraPeerDependencies',\n ] as const) {\n const located = takeObject(config, [field], state, basePath);\n if (!located) continue;\n const dependencies = Object.entries(located.value).flatMap(([name, dependency]) =>\n mapDependency(name, dependency, state, [...located.path, name]),\n );\n if (dependencies.length) packageConfig[field] = dependencies;\n }\n}\n\nfunction mapDependency(\n name: string,\n value: unknown,\n state: MappingState,\n path: (string | number)[],\n): SdkConfigV1Dependency[] {\n if (typeof value === 'string' && value) {\n consume(state, path);\n return [{ name, version: value }];\n }\n if (!isObject(value)) return [];\n const version = takeString(value, ['version'], state, path);\n const gitUrl = takeString(value, ['git'], state, path);\n const localPath = takeString(value, ['path'], state, path);\n const source = gitUrl\n ? {\n type: 'git' as const,\n url: gitUrl,\n ...optional('ref', takeString(value, ['ref'], state, path)),\n }\n : localPath\n ? { type: 'path' as const, path: localPath }\n : undefined;\n if (!version && !source) return [];\n return [\n {\n name,\n ...optional('version', version),\n ...optional('source', source),\n ...optional('packageName', takeString(value, ['package'], state, path)),\n ...optional('features', takeStringArray(value, ['features'], state, path)),\n ...optional('extras', takeStringArray(value, ['extras'], state, path)),\n ...optional('optional', takeBoolean(value, ['optional'], state, path)),\n ...optional('defaultFeatures', takeBoolean(value, ['defaultFeatures'], state, path)),\n ...optional('environmentMarker', takeString(value, ['python'], state, path)),\n },\n ];\n}\n\nfunction takeCustomSections(value: JsonObject, state: MappingState, basePath: (string | number)[]) {\n const located = locate(value, ['customSections'], basePath);\n if (!located || !Array.isArray(located.value)) return undefined;\n const sections = located.value.flatMap((section) =>\n isObject(section) &&\n section.language === undefined &&\n typeof section.title === 'string' &&\n typeof section.content === 'string'\n ? [{ title: section.title, content: section.content }]\n : [],\n );\n if (sections.length !== located.value.length) return undefined;\n consume(state, located.path);\n return sections;\n}\n\nfunction takeReadmeEndpoint(\n value: JsonObject,\n aliases: string[],\n state: MappingState,\n basePath: (string | number)[],\n) {\n const located = locate(value, aliases, basePath);\n if (!located) return undefined;\n const endpoint = parseReadmeEndpoint(located.value);\n if (endpoint) consume(state, located.path);\n return endpoint;\n}\n\nfunction takeReadmeFeatures(value: JsonObject, state: MappingState, basePath: (string | number)[]) {\n const located = locate(value, ['features'], basePath);\n if (!located || !isObject(located.value)) return undefined;\n const features: Record<string, ReadmeEndpoint[]> = {};\n for (const [name, endpoints] of Object.entries(located.value)) {\n if (!Array.isArray(endpoints)) return undefined;\n const parsed = endpoints.map(parseReadmeEndpoint);\n if (parsed.some((endpoint) => !endpoint)) return undefined;\n features[name] = parsed as ReadmeEndpoint[];\n }\n consume(state, located.path);\n return features;\n}\n\nfunction parseReadmeEndpoint(value: unknown): ReadmeEndpoint | undefined {\n if (typeof value === 'string') {\n const match = /^(GET|POST|PUT|PATCH|DELETE|HEAD|OPTIONS|TRACE|CONNECT)\\s+(\\/\\S*)$/.exec(\n value.trim(),\n );\n return match\n ? { method: match[1] as ReadmeEndpoint['method'], path: match[2] as string }\n : undefined;\n }\n if (!isObject(value) || typeof value.method !== 'string' || typeof value.path !== 'string') {\n return undefined;\n }\n const method = value.method.toUpperCase();\n if (\n !['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS', 'TRACE', 'CONNECT'].includes(\n method,\n )\n ) {\n return undefined;\n }\n return {\n method: method as ReadmeEndpoint['method'],\n path: value.path,\n ...optional('stream', typeof value.stream === 'boolean' ? value.stream : undefined),\n };\n}\n\nfunction takeToolFilter(\n value: JsonObject,\n aliases: string[],\n state: MappingState,\n basePath: (string | number)[],\n) {\n const located = takeObject(value, aliases, state, basePath);\n if (!located) return undefined;\n const filter = compact({\n include: stringArrayValue(located.value.include),\n exclude: stringArrayValue(located.value.exclude),\n });\n if (Object.keys(filter).length === 0 && Object.keys(located.value).length > 0) return undefined;\n consume(state, located.path);\n return filter;\n}\n\nfunction takeToolsets(\n value: JsonObject,\n aliases: string[],\n state: MappingState,\n basePath: (string | number)[],\n) {\n const located = takeObject(value, aliases, state, basePath);\n if (!located) return undefined;\n const entries = Object.entries(located.value).map(([name, filter]) => {\n if (name === 'default' || !/^[a-z0-9-]+$/.test(name)) {\n fail(\n 'FERN_MCP_TOOLSET_NAME_INVALID',\n [...located.path, name],\n `MCP toolset name \"${name}\" is not valid in SDK Config v1`,\n 'Rename the toolset to lowercase letters, numbers, or hyphens; \"default\" is reserved.',\n ['targets', basePath[2]!, 'generation', 'toolsets', name],\n );\n }\n if (!isObject(filter)) return undefined;\n return [\n name,\n compact({\n include: stringArrayValue(filter.include),\n exclude: stringArrayValue(filter.exclude),\n }),\n ] as const;\n });\n if (entries.some((entry) => !entry)) return undefined;\n consume(state, located.path);\n return Object.fromEntries(entries.filter((entry) => entry !== undefined));\n}\n"]}
1
+ {"version":3,"sources":["../../../src/sdk-config-domain/v1/common.ts","../../../src/sdk-config-domain/v1/api.ts","../../../src/sdk-config/v1/api.ts","../../../src/sdk-config-domain/v1/client.ts","../../../src/sdk-config/v1/client.ts","../../../src/sdk-config-domain/v1/package.ts","../../../src/sdk-config-domain/v1/docs.ts","../../../src/sdk-config/v1/docs.ts","../../../src/sdk-config/v1/fern-config-mapper-types.ts","../../../src/sdk-config/v1/fern-config-mapper-helpers.ts","../../../src/sdk-config/v1/fern-config-mapper-output.ts","../../../src/sdk-config-domain/v1/generation.ts","../../../src/sdk-config/v1/generation.ts","../../../src/sdk-config/v1/output.ts","../../../src/sdk-config/v1/package.ts","../../../src/sdk-config-domain/v1/source.ts","../../../src/sdk-config/v1/source.ts","../../../src/sdk-config-domain/v1/language/cli.ts","../../../src/sdk-config-domain/v1/language/csharp.ts","../../../src/sdk-config-domain/v1/language/go.ts","../../../src/sdk-config-domain/v1/language/jvm.ts","../../../src/sdk-config-domain/v1/language/java.ts","../../../src/sdk-config-domain/v1/language/kotlin.ts","../../../src/sdk-config-domain/v1/language/typescript.ts","../../../src/sdk-config-domain/v1/language/mcp.ts","../../../src/sdk-config-domain/v1/language/php.ts","../../../src/sdk-config-domain/v1/language/python.ts","../../../src/sdk-config-domain/v1/language/ruby.ts","../../../src/sdk-config-domain/v1/language/rust.ts","../../../src/sdk-config-domain/v1/language/swift.ts","../../../src/sdk-config-domain/v1/language/terraform.ts","../../../src/sdk-config/v1/target.ts","../../../src/sdk-config/v1/sdk-config-v1.ts","../../../src/sdk-config/v1/fern-config-mapper.ts"],"names":["z","semver","teams","users"],"mappings":"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","file":"index.cjs","sourcesContent":["import { z } from 'zod';\nimport semver from 'semver';\n\nexport const nonEmptyStringSchema = z.string().min(1);\n\nexport const relativePathSchema = nonEmptyStringSchema.refine(\n (value) =>\n !/^(?:[\\\\/]|[A-Za-z]:)/.test(value) &&\n !value.split(/[\\\\/]/).some((segment) => segment === '..'),\n { message: 'must be a relative path without parent directory segments' },\n);\n\nexport const exactSemverSchema = z.string().refine(\n (value) => {\n if (value.trim() !== value || !/^\\d/.test(value)) {\n return false;\n }\n\n const parsed = semver.parse(value, { loose: false });\n return parsed?.raw === value;\n },\n { message: 'must be an exact semantic version' },\n);\n\nexport type JsonValue = null | boolean | number | string | JsonValue[] | JsonObject;\n\nexport type JsonObject = {\n [key: string]: JsonValue;\n};\n\nexport const jsonValueSchema: z.ZodType<JsonValue> = z.lazy(() =>\n z.union([\n z.null(),\n z.boolean(),\n z.number(),\n z.string(),\n z.array(jsonValueSchema),\n z.record(z.string(), jsonValueSchema),\n ]),\n);\n\nexport const jsonObjectSchema: z.ZodType<JsonObject> = z.record(z.string(), jsonValueSchema);\n","import { z } from 'zod';\nimport { nonEmptyStringSchema } from './common';\n\nconst authVariableSchema = z.strictObject({\n name: nonEmptyStringSchema.optional(),\n environmentVariable: nonEmptyStringSchema.optional(),\n description: z.string().optional(),\n omit: z.boolean().optional(),\n});\n\nconst apiKeyAuthSchema = z.strictObject({\n id: nonEmptyStringSchema,\n type: z.literal('api-key'),\n location: z.enum(['header', 'query', 'cookie']),\n name: nonEmptyStringSchema,\n prefix: nonEmptyStringSchema.optional(),\n environmentVariable: nonEmptyStringSchema.optional(),\n description: z.string().optional(),\n});\n\nconst bearerAuthSchema = z.strictObject({\n id: nonEmptyStringSchema,\n type: z.literal('bearer'),\n header: nonEmptyStringSchema.optional(),\n prefix: nonEmptyStringSchema.optional(),\n environmentVariable: nonEmptyStringSchema.optional(),\n description: z.string().optional(),\n});\n\nconst basicAuthSchema = z.strictObject({\n id: nonEmptyStringSchema,\n type: z.literal('basic'),\n username: authVariableSchema.optional(),\n password: authVariableSchema.optional(),\n description: z.string().optional(),\n});\n\nconst oauthScopeSchema = z.strictObject({\n name: nonEmptyStringSchema,\n description: z.string().optional(),\n});\n\nconst oauthFlowSchema = z.discriminatedUnion('type', [\n z.strictObject({\n type: z.literal('authorization-code'),\n authorizationUrl: nonEmptyStringSchema,\n tokenUrl: nonEmptyStringSchema,\n refreshUrl: nonEmptyStringSchema.optional(),\n scopes: z.array(oauthScopeSchema).optional(),\n }),\n z.strictObject({\n type: z.literal('client-credentials'),\n tokenUrl: nonEmptyStringSchema,\n refreshUrl: nonEmptyStringSchema.optional(),\n scopes: z.array(oauthScopeSchema).optional(),\n }),\n z.strictObject({\n type: z.literal('implicit'),\n authorizationUrl: nonEmptyStringSchema,\n refreshUrl: nonEmptyStringSchema.optional(),\n scopes: z.array(oauthScopeSchema).optional(),\n }),\n z.strictObject({\n type: z.literal('password'),\n tokenUrl: nonEmptyStringSchema,\n refreshUrl: nonEmptyStringSchema.optional(),\n scopes: z.array(oauthScopeSchema).optional(),\n }),\n]);\n\nconst oauth2AuthSchema = z.strictObject({\n id: nonEmptyStringSchema,\n type: z.literal('oauth2'),\n flows: z.array(oauthFlowSchema).min(1),\n clientId: authVariableSchema.optional(),\n clientSecret: authVariableSchema.optional(),\n tokenHeader: nonEmptyStringSchema.optional(),\n tokenPrefix: nonEmptyStringSchema.optional(),\n refreshBufferSeconds: z.number().nonnegative().optional(),\n description: z.string().optional(),\n});\n\nconst customAuthParameterSchema = z.strictObject({\n location: z.enum(['header', 'query', 'cookie']),\n name: nonEmptyStringSchema,\n prefix: nonEmptyStringSchema.optional(),\n environmentVariable: nonEmptyStringSchema.optional(),\n});\n\nconst customAuthSchema = z.strictObject({\n id: nonEmptyStringSchema,\n type: z.literal('custom'),\n parameters: z.array(customAuthParameterSchema).min(1),\n description: z.string().optional(),\n});\n\nexport const authSchemeSchema = z.discriminatedUnion('type', [\n apiKeyAuthSchema,\n bearerAuthSchema,\n basicAuthSchema,\n oauth2AuthSchema,\n customAuthSchema,\n]);\n\nconst authRequirementSchema = z.strictObject({\n schemes: z.array(nonEmptyStringSchema).min(1),\n});\n\nexport const authConfigSchema = z\n .strictObject({\n schemes: z.array(authSchemeSchema).min(1),\n requirements: z.array(authRequirementSchema).optional(),\n endpointSecurity: z.boolean().optional(),\n })\n .superRefine(({ requirements, schemes }, context) => {\n const schemeIds = new Set<string>();\n schemes.forEach(({ id }, index) => {\n if (schemeIds.has(id)) {\n context.addIssue({\n code: 'custom',\n message: `auth scheme id \"${id}\" must be unique`,\n path: ['schemes', index, 'id'],\n });\n }\n schemeIds.add(id);\n });\n\n requirements?.forEach((requirement, requirementIndex) => {\n requirement.schemes.forEach((schemeId, schemeIndex) => {\n if (!schemeIds.has(schemeId)) {\n context.addIssue({\n code: 'custom',\n message: `auth requirement references unknown scheme \"${schemeId}\"`,\n path: ['requirements', requirementIndex, 'schemes', schemeIndex],\n });\n }\n });\n });\n });\n\nconst environmentUrlSchema = z.strictObject({\n name: nonEmptyStringSchema,\n url: nonEmptyStringSchema,\n serverName: nonEmptyStringSchema.optional(),\n});\n\nconst environmentSchema = z.strictObject({\n name: nonEmptyStringSchema,\n urls: z.array(environmentUrlSchema).min(1),\n description: z.string().optional(),\n});\n\nconst headerSchema = z.strictObject({\n name: nonEmptyStringSchema,\n value: z.string().optional(),\n description: z.string().optional(),\n environmentVariable: nonEmptyStringSchema.optional(),\n});\n\nconst environmentVariableSchema = z.strictObject({\n name: nonEmptyStringSchema,\n description: z.string().optional(),\n defaultValue: z.string().optional(),\n});\n\nexport const apiConfigSchema = z.strictObject({\n baseUrl: z.string().default(''),\n environments: z.array(environmentSchema).default([]),\n environmentVariables: z.array(environmentVariableSchema).default([]),\n defaultEnvironment: nonEmptyStringSchema.optional(),\n auth: authConfigSchema.optional(),\n headers: z.array(headerSchema).optional(),\n /**\n * Selects the named `x-fern-audiences`.\n *\n * Absent means all audiences. A present empty array selects no tagged audience: untagged nodes\n * remain included, while every audience-tagged node is excluded.\n */\n audiences: z.array(nonEmptyStringSchema).optional(),\n});\n\nexport type AuthScheme = z.infer<typeof authSchemeSchema>;\nexport type AuthConfig = z.infer<typeof authConfigSchema>;\nexport type ApiConfigInput = z.input<typeof apiConfigSchema>;\nexport type ApiConfig = z.output<typeof apiConfigSchema>;\n","import type { z } from 'zod';\nimport {\n apiConfigSchema,\n authConfigSchema,\n authSchemeSchema,\n} from '../../sdk-config-domain/v1/api';\n\nexport const sdkConfigV1AuthSchemeSchema = authSchemeSchema;\nexport const sdkConfigV1AuthConfigSchema = authConfigSchema;\nexport const sdkConfigV1ApiConfigSchema = apiConfigSchema;\n\nexport type SdkConfigV1ApiConfigInput = z.input<typeof sdkConfigV1ApiConfigSchema>;\nexport type SdkConfigV1ApiConfig = z.output<typeof sdkConfigV1ApiConfigSchema>;\n","import { z } from 'zod';\nimport { nonEmptyStringSchema } from './common';\n\nconst retryOverrideShape = {\n enabled: z.boolean().optional(),\n maxAttempts: z.number().int().min(1).optional(),\n retryDelayMs: z.number().nonnegative().optional(),\n maxDelayMs: z.number().nonnegative().optional(),\n jitterMs: z.number().nonnegative().optional(),\n backoffFactor: z.number().positive().optional(),\n statusCodes: z.array(z.number().int().min(100).max(599)).optional(),\n methods: z.array(nonEmptyStringSchema).optional(),\n statusCodeProfile: z.enum(['legacy', 'recommended']).optional(),\n maxRetryAfterDelayMs: z.number().nonnegative().optional(),\n};\n\nfunction validateRetryDelays(\n {\n maxDelayMs,\n retryDelayMs,\n }: { maxDelayMs?: number | undefined; retryDelayMs?: number | undefined },\n context: z.RefinementCtx,\n): void {\n if (maxDelayMs !== undefined && retryDelayMs !== undefined && maxDelayMs < retryDelayMs) {\n context.addIssue({\n code: 'custom',\n message: 'maxDelayMs must be greater than or equal to retryDelayMs',\n path: ['maxDelayMs'],\n });\n }\n}\n\nexport const clientRetryOverrideSchema = z\n .strictObject(retryOverrideShape)\n .superRefine(validateRetryDelays);\n\nconst retryConfigSchema = z\n .strictObject({\n ...retryOverrideShape,\n enabled: z.boolean().default(true),\n maxAttempts: z.number().int().min(1).default(3),\n retryDelayMs: z.number().nonnegative().default(150),\n maxDelayMs: z.number().nonnegative().default(5_000),\n jitterMs: z.number().nonnegative().default(50),\n backoffFactor: z.number().positive().default(2),\n methods: z\n .array(nonEmptyStringSchema)\n .default(['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'HEAD', 'OPTIONS']),\n maxRetryAfterDelayMs: z.number().nonnegative().default(60_000),\n })\n .superRefine(validateRetryDelays);\n\nconst constructorParameterSchema = z.strictObject({\n name: nonEmptyStringSchema,\n example: z.string().optional(),\n description: z.string().optional(),\n required: z.boolean().optional(),\n});\n\nconst parameterStyleSchema = z.enum(['wrapped', 'inline', 'language-default']);\n\nconst tokenRefreshConfigSchema = z\n .strictObject({\n enabled: z.boolean(),\n endpoint: nonEmptyStringSchema.optional(),\n accessTokenField: nonEmptyStringSchema.optional(),\n refreshTokenField: nonEmptyStringSchema.optional(),\n })\n .superRefine(({ enabled, endpoint }, context) => {\n if (enabled && endpoint === undefined) {\n context.addIssue({\n code: 'custom',\n message: 'endpoint is required when tokenRefresh is enabled',\n path: ['endpoint'],\n });\n }\n });\n\nconst clientOverrideShape = {\n retry: clientRetryOverrideSchema.optional(),\n responseHeaders: z.boolean().optional(),\n responseValidation: z.boolean().optional(),\n multiTenant: z.boolean().optional(),\n additionalConstructorParameters: z.array(constructorParameterSchema).optional(),\n timeoutMs: z.union([z.number().nonnegative(), z.literal('infinity')]).optional(),\n requestParameterStyle: parameterStyleSchema.optional(),\n pathParameterStyle: parameterStyleSchema.optional(),\n filePropertyStyle: parameterStyleSchema.optional(),\n useDefaultRequestParameterValues: z.boolean().optional(),\n respectOptionalRequestBody: z.boolean().optional(),\n tokenRefresh: tokenRefreshConfigSchema.optional(),\n};\n\n/** Sparse client properties that can override an inherited client configuration. */\nexport const clientConfigOverrideSchema = z.strictObject(clientOverrideShape);\n\nexport const clientConfigSchema = z.strictObject({\n ...clientOverrideShape,\n retry: retryConfigSchema.prefault({}),\n responseHeaders: z.boolean().default(false),\n multiTenant: z.boolean().default(false),\n additionalConstructorParameters: z.array(constructorParameterSchema).default([]),\n});\n\nexport type ClientConfigOverride = z.infer<typeof clientConfigOverrideSchema>;\nexport type ClientConfigInput = z.input<typeof clientConfigSchema>;\nexport type ClientConfig = z.output<typeof clientConfigSchema>;\n","import type { z } from 'zod';\nimport { clientConfigOverrideSchema, clientConfigSchema } from '../../sdk-config-domain/v1/client';\n\nexport const sdkConfigV1ClientConfigSchema = clientConfigSchema;\nexport const sdkConfigV1ClientConfigOverrideSchema = clientConfigOverrideSchema;\n\nexport type SdkConfigV1ClientConfigOverride = z.infer<typeof sdkConfigV1ClientConfigOverrideSchema>;\nexport type SdkConfigV1ClientConfigInput = z.input<typeof sdkConfigV1ClientConfigSchema>;\nexport type SdkConfigV1ClientConfig = z.output<typeof sdkConfigV1ClientConfigSchema>;\n","import { z } from 'zod';\nimport { nonEmptyStringSchema, relativePathSchema } from './common';\n\n// A single-element path (`sdk`) is what `go mod init sdk` accepts and what Fern's Go oracles use.\n// It is not publishable, but rejecting it fails IR parse and yields zero generated files, which is\n// a worse outcome than emitting a module the author cannot `go get`.\nexport const goModulePathSchema = relativePathSchema.regex(\n /^(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))[A-Za-z0-9._~-]+(?:\\/[A-Za-z0-9._~-]+)*$/,\n 'Go module path must use letters, numbers, dots, dashes, underscores or tildes, in slash-delimited segments',\n);\n\nexport const composerPackageNameSchema = nonEmptyStringSchema.regex(\n /^[a-z0-9]([_.-]?[a-z0-9]+)*\\/[a-z0-9](([_.]?|-{0,2})[a-z0-9]+)*$/,\n 'Composer package name must be a lowercase \"vendor/package\" name',\n);\n\nconst authorSchema = z.strictObject({\n name: nonEmptyStringSchema,\n email: z.email().optional(),\n url: nonEmptyStringSchema.optional(),\n});\n\nconst developerSchema = z.strictObject({\n name: nonEmptyStringSchema,\n email: z.email().optional(),\n organization: nonEmptyStringSchema.optional(),\n organizationUrl: nonEmptyStringSchema.optional(),\n});\n\nconst licenseSchema = z.strictObject({\n type: nonEmptyStringSchema,\n name: nonEmptyStringSchema.optional(),\n url: nonEmptyStringSchema.optional(),\n path: nonEmptyStringSchema.optional(),\n});\n\nconst dependencySourceSchema = z.discriminatedUnion('type', [\n z.strictObject({\n type: z.literal('registry'),\n registry: nonEmptyStringSchema.optional(),\n }),\n z.strictObject({\n type: z.literal('git'),\n url: nonEmptyStringSchema,\n ref: nonEmptyStringSchema.optional(),\n subdirectory: nonEmptyStringSchema.optional(),\n }),\n z.strictObject({\n type: z.literal('path'),\n path: nonEmptyStringSchema,\n }),\n]);\n\nexport const dependencySchema = z\n .strictObject({\n name: nonEmptyStringSchema,\n version: nonEmptyStringSchema.optional(),\n source: dependencySourceSchema.optional(),\n packageName: nonEmptyStringSchema.optional(),\n features: z.array(nonEmptyStringSchema).optional(),\n extras: z.array(nonEmptyStringSchema).optional(),\n optional: z.boolean().optional(),\n defaultFeatures: z.boolean().optional(),\n environmentMarker: nonEmptyStringSchema.optional(),\n })\n .refine(({ source, version }) => source !== undefined || version !== undefined, {\n message: 'dependency must define a version or a source',\n });\n\nconst projectUrlSchema = z.strictObject({\n label: nonEmptyStringSchema,\n url: nonEmptyStringSchema,\n});\n\nexport const packageConfigSchema = z.strictObject({\n packageName: nonEmptyStringSchema.optional(),\n moduleName: nonEmptyStringSchema.optional(),\n modulePath: goModulePathSchema.optional(),\n namespace: nonEmptyStringSchema.optional(),\n groupId: nonEmptyStringSchema.optional(),\n artifactId: nonEmptyStringSchema.optional(),\n description: z.string().optional(),\n repository: nonEmptyStringSchema.optional(),\n homepage: nonEmptyStringSchema.optional(),\n documentationUrl: nonEmptyStringSchema.optional(),\n authors: z.array(authorSchema).optional(),\n developers: z.array(developerSchema).optional(),\n license: licenseSchema.optional(),\n keywords: z.array(nonEmptyStringSchema).optional(),\n classifiers: z.array(nonEmptyStringSchema).optional(),\n projectUrls: z.array(projectUrlSchema).optional(),\n extraDependencies: z.array(dependencySchema).optional(),\n extraDevDependencies: z.array(dependencySchema).optional(),\n extraPeerDependencies: z.array(dependencySchema).optional(),\n});\n\nexport type Dependency = z.infer<typeof dependencySchema>;\nexport type PackageConfig = z.infer<typeof packageConfigSchema>;\n","import { z } from 'zod';\nimport { nonEmptyStringSchema } from './common';\n\nconst httpMethodSchema = z.enum([\n 'GET',\n 'POST',\n 'PUT',\n 'PATCH',\n 'DELETE',\n 'HEAD',\n 'OPTIONS',\n 'TRACE',\n 'CONNECT',\n]);\n\nexport const readmeEndpointSchema = z.strictObject({\n method: httpMethodSchema,\n path: nonEmptyStringSchema,\n stream: z.boolean().optional(),\n});\n\nexport const readmeCustomSectionSchema = z.strictObject({\n title: nonEmptyStringSchema,\n content: z.string(),\n});\n\nconst readmeConfigSchema = z.strictObject({\n apiName: nonEmptyStringSchema.optional(),\n introduction: z.string().optional(),\n apiReferenceLink: nonEmptyStringSchema.optional(),\n bannerLink: nonEmptyStringSchema.optional(),\n disabledSections: z.array(nonEmptyStringSchema).optional(),\n customSections: z.array(readmeCustomSectionSchema).optional(),\n defaultEndpoint: readmeEndpointSchema.optional(),\n features: z.record(z.string(), z.array(readmeEndpointSchema)).optional(),\n});\n\nconst snippetsConfigSchema = z.strictObject({\n enabled: z.boolean(),\n format: z.enum(['md', 'json']).optional(),\n outputPath: nonEmptyStringSchema.optional(),\n});\n\nexport const docsConfigSchema = z.strictObject({\n readme: readmeConfigSchema.optional(),\n snippets: snippetsConfigSchema.optional(),\n referenceBaseUrl: nonEmptyStringSchema.optional(),\n includeApiReference: z.boolean().optional(),\n});\n\nexport type ReadmeEndpoint = z.infer<typeof readmeEndpointSchema>;\nexport type ReadmeCustomSection = z.infer<typeof readmeCustomSectionSchema>;\nexport type DocsConfig = z.infer<typeof docsConfigSchema>;\n","import type { z } from 'zod';\nimport {\n docsConfigSchema,\n readmeCustomSectionSchema,\n readmeEndpointSchema,\n} from '../../sdk-config-domain/v1/docs';\n\nexport const sdkConfigV1ReadmeEndpointSchema = readmeEndpointSchema;\nexport const sdkConfigV1ReadmeCustomSectionSchema = readmeCustomSectionSchema;\nexport const sdkConfigV1DocsConfigSchema = docsConfigSchema;\n\nexport type SdkConfigV1DocsConfig = z.infer<typeof sdkConfigV1DocsConfigSchema>;\n","import type { SdkConfigV1ApiConfigInput } from './api';\nimport type { SdkConfigV1OutputConfig } from './output';\nimport type { SdkConfigV1PackageConfig } from './package';\nimport type { SdkConfigV1Document } from './sdk-config-v1';\nimport type { SdkConfigV1SourceConfig } from './source';\nimport type { SdkConfigV1Target } from './target';\n\nexport type JsonObject = Record<string, unknown>;\nexport type FernSdkConfigLanguage = SdkConfigV1Target['language'];\nexport type FernLanguage = FernSdkConfigLanguage;\n\ntype FernAudiences = { type: 'all' } | { type: 'select'; audiences: readonly string[] };\n\nexport interface FernResolvedGeneratorGroupInput {\n apiName: string;\n source: SdkConfigV1SourceConfig;\n apiVersion?: string | undefined;\n sdkVersion?: string | undefined;\n /** Optional API facts already lowered from Fern's definition or IR into SDK Config fields. */\n api?: SdkConfigV1ApiConfigInput | undefined;\n group: {\n name?: string | undefined;\n audiences: FernAudiences;\n generators: readonly FernResolvedGeneratorInput[];\n };\n}\n\n/**\n * Dependency-free projection of Fern CLI's resolved GeneratorInvocation. The actual Fern type is\n * structurally compatible; sdk-config intentionally does not depend on Fern packages.\n */\nexport interface FernResolvedGeneratorInput {\n name: string;\n version?: string | undefined;\n /** Explicit adapter override for a custom SDK generator. */\n sdkLanguage?: FernLanguage | undefined;\n /** Fern's inferred language does not by itself prove that this is an SDK generator. */\n language?: string | undefined;\n config?: unknown | undefined;\n outputMode?: unknown | undefined;\n raw?: unknown | undefined;\n keywords?: readonly string[] | undefined;\n smartCasing?: boolean | undefined;\n readme?: unknown | undefined;\n settings?: unknown | undefined;\n publishMetadata?: unknown | undefined;\n automation?: unknown | undefined;\n containerImage?: string | undefined;\n irVersionOverride?: string | undefined;\n idempotencyKeyGenerationConfig?: unknown | undefined;\n absolutePathToLocalSnippets?: string | undefined;\n smartCasingDigitWordBoundary?: boolean | undefined;\n disableExamples?: boolean | undefined;\n apiOverride?: unknown | undefined;\n sdkName?: string | undefined;\n sdkVersion?: string | undefined;\n /** Allows a Fern-side adapter to supply an already normalized output without Fern SDK types. */\n output?: SdkConfigV1OutputConfig | undefined;\n package?: SdkConfigV1PackageConfig | undefined;\n}\n\nexport interface FernConfigMappingDiagnostic {\n code: string;\n severity: 'error' | 'warning';\n path: (string | number)[];\n reason: string;\n sdkConfigPath?: (string | number)[];\n suggestedAction: string;\n}\n\nexport interface FernConfigMappingResult {\n sdkConfig: SdkConfigV1Document;\n unsupportedFields: FernConfigMappingDiagnostic[];\n}\n\nexport class FernConfigMappingError extends Error {\n constructor(public readonly issues: readonly FernConfigMappingDiagnostic[]) {\n super(issues.map(({ path, reason }) => `${path.join('.')}: ${reason}`).join('\\n'));\n this.name = 'FernConfigMappingError';\n }\n}\n\nexport interface MappingState {\n consumedPaths: Set<string>;\n}\n\nexport interface OutputMapping {\n output: SdkConfigV1OutputConfig;\n package?: SdkConfigV1PackageConfig;\n unsupportedFields: FernConfigMappingDiagnostic[];\n}\n","import { sdkConfigV1GoModulePathSchema } from './common';\nimport {\n FernConfigMappingError,\n type FernConfigMappingDiagnostic,\n type JsonObject,\n type MappingState,\n} from './fern-config-mapper-types';\n\nexport function fail(\n code: string,\n path: (string | number)[],\n reason: string,\n suggestedAction: string,\n sdkConfigPath?: (string | number)[],\n): never {\n throw new FernConfigMappingError([\n {\n code,\n severity: 'error',\n path,\n reason,\n suggestedAction,\n ...optional('sdkConfigPath', sdkConfigPath),\n },\n ]);\n}\n\nexport function takeTimeoutMs(\n value: JsonObject,\n state: MappingState,\n basePath: (string | number)[],\n) {\n const milliseconds = locate(value, ['defaultTimeout', 'defaultTimeoutInMilliseconds'], basePath);\n if (\n milliseconds &&\n (milliseconds.value === 'infinity' || isNonNegativeNumber(milliseconds.value))\n ) {\n consume(state, milliseconds.path);\n return milliseconds.value;\n }\n const seconds = locate(\n value,\n ['defaultTimeoutInSeconds', 'timeoutInSeconds', 'timeout'],\n basePath,\n );\n if (seconds && (seconds.value === 'infinity' || isNonNegativeNumber(seconds.value))) {\n consume(state, seconds.path);\n return seconds.value === 'infinity' ? 'infinity' : seconds.value * 1_000;\n }\n return undefined;\n}\n\nexport function locate(value: JsonObject, aliases: string[], basePath: (string | number)[]) {\n for (const [key, child] of Object.entries(value)) {\n if (aliases.some((alias) => normalizeKey(alias) === normalizeKey(key))) {\n return { value: child, path: [...basePath, key] };\n }\n }\n return undefined;\n}\n\nexport function takeObject(\n value: JsonObject,\n aliases: string[],\n _state: MappingState,\n basePath: (string | number)[],\n) {\n const located = locate(value, aliases, basePath);\n return located && isObject(located.value)\n ? { value: located.value, path: located.path }\n : undefined;\n}\n\nexport function takeString(\n value: JsonObject,\n aliases: string[],\n state: MappingState,\n basePath: (string | number)[],\n) {\n const located = locate(value, aliases, basePath);\n if (!located || typeof located.value !== 'string' || located.value.length === 0) return undefined;\n consume(state, located.path);\n return located.value;\n}\n\nexport function takeGoModulePath(\n value: JsonObject,\n aliases: string[],\n state: MappingState,\n basePath: (string | number)[],\n): string | undefined {\n const located = locate(value, aliases, basePath);\n if (!located || !sdkConfigV1GoModulePathSchema.safeParse(located.value).success) return undefined;\n consume(state, located.path);\n return located.value as string;\n}\n\nexport function takeBoolean(\n value: JsonObject,\n aliases: string[],\n state: MappingState,\n basePath: (string | number)[],\n) {\n const located = locate(value, aliases, basePath);\n if (!located || typeof located.value !== 'boolean') return undefined;\n consume(state, located.path);\n return located.value;\n}\n\nexport function takeNumber(\n value: JsonObject,\n aliases: string[],\n state: MappingState,\n basePath: (string | number)[],\n) {\n const located = locate(value, aliases, basePath);\n if (!located || !isNonNegativeNumber(located.value) || !Number.isInteger(located.value))\n return undefined;\n consume(state, located.path);\n return located.value;\n}\n\nexport function takeEnum<const Values extends readonly string[]>(\n value: JsonObject,\n aliases: string[],\n values: Values,\n state: MappingState,\n basePath: (string | number)[],\n): Values[number] | undefined {\n const located = locate(value, aliases, basePath);\n if (!located || typeof located.value !== 'string' || !values.includes(located.value))\n return undefined;\n consume(state, located.path);\n return located.value;\n}\n\nexport function takeEnumArray<const Values extends readonly string[]>(\n value: JsonObject,\n aliases: string[],\n values: Values,\n state: MappingState,\n basePath: (string | number)[],\n): Values[number][] | undefined {\n const located = locate(value, aliases, basePath);\n if (\n !located ||\n !Array.isArray(located.value) ||\n located.value.some((item) => typeof item !== 'string' || !values.includes(item))\n )\n return undefined;\n consume(state, located.path);\n return located.value as Values[number][];\n}\n\nexport function takeStringArray(\n value: JsonObject,\n aliases: string[],\n state: MappingState,\n basePath: (string | number)[],\n) {\n const located = locate(value, aliases, basePath);\n const strings = located ? stringArrayValue(located.value) : undefined;\n if (!located || !strings) return undefined;\n consume(state, located.path);\n return strings;\n}\n\nexport function takeStringArrayRecord(\n value: JsonObject,\n aliases: string[],\n state: MappingState,\n basePath: (string | number)[],\n) {\n const located = locate(value, aliases, basePath);\n if (!located || !isObject(located.value)) return undefined;\n const entries = Object.entries(located.value);\n if (entries.some(([, item]) => !stringArrayValue(item))) return undefined;\n consume(state, located.path);\n return Object.fromEntries(entries) as Record<string, string[]>;\n}\n\nexport function collectUnsupported(\n value: unknown,\n basePath: (string | number)[],\n state: MappingState,\n): FernConfigMappingDiagnostic[] {\n return collectLeafPaths(value, basePath)\n .filter((path) => {\n const key = pathKey(path);\n return ![...state.consumedPaths].some(\n (consumed) => key === consumed || key.startsWith(`${consumed}.`),\n );\n })\n .map((path) => ({\n code: 'FERN_CONFIG_FIELD_UNSUPPORTED',\n severity: 'warning' as const,\n path,\n reason: 'Fern configuration field is not represented by SDK Config v1',\n suggestedAction:\n 'Review this value and set the closest SDK Config field manually, or preserve the setting outside SDK Config if no equivalent exists.',\n }));\n}\n\nexport function collectLeafPaths(value: unknown, path: (string | number)[]): (string | number)[][] {\n if (Array.isArray(value))\n return value.flatMap((item, index) => collectLeafPaths(item, [...path, index]));\n if (isObject(value))\n return Object.entries(value).flatMap(([key, child]) => collectLeafPaths(child, [...path, key]));\n return value === undefined ? [] : [path];\n}\n\nexport function consume(state: MappingState, path: (string | number)[]): void {\n state.consumedPaths.add(pathKey(path));\n}\n\nfunction pathKey(path: (string | number)[]): string {\n return path.join('.');\n}\n\nfunction normalizeKey(value: string): string {\n return value.replace(/[-_]/g, '').toLowerCase();\n}\n\nexport function compact<T extends JsonObject>(value: T): T {\n return Object.fromEntries(Object.entries(value).filter(([, child]) => child !== undefined)) as T;\n}\n\nexport function optional<Key extends string, Value>(\n key: Key,\n value: Value | undefined,\n): Record<Key, Value> | object {\n return value === undefined ? {} : ({ [key]: value } as Record<Key, Value>);\n}\n\nexport function optionalObject<Key extends string, Value extends JsonObject>(\n key: Key,\n value: Value,\n): Record<Key, Value> | object {\n return Object.keys(value).length === 0 ? {} : ({ [key]: value } as Record<Key, Value>);\n}\n\nexport function isObject(value: unknown): value is JsonObject {\n return value !== null && typeof value === 'object' && !Array.isArray(value);\n}\n\nfunction isNonNegativeNumber(value: unknown): value is number {\n return typeof value === 'number' && Number.isFinite(value) && value >= 0;\n}\n\nexport function stringValue(value: unknown): string | undefined {\n return typeof value === 'string' && value.length > 0 ? value : undefined;\n}\n\nexport function stringArrayValue(value: unknown): string[] | undefined {\n return Array.isArray(value) && value.every((item) => typeof item === 'string' && item.length > 0)\n ? value\n : undefined;\n}\n\nexport function stableJson(value: unknown): string {\n return JSON.stringify(sortKeys(value));\n}\n\nfunction sortKeys(value: unknown): unknown {\n if (Array.isArray(value)) return value.map(sortKeys);\n if (!isObject(value)) return value;\n return Object.fromEntries(\n Object.entries(value)\n .sort(([left], [right]) => left.localeCompare(right))\n .map(([key, child]) => [key, sortKeys(child)]),\n );\n}\n","import type { SdkConfigV1PublishConfig, SdkConfigV1PublishRegistry } from './output';\nimport type { SdkConfigV1PackageConfig } from './package';\nimport {\n collectLeafPaths,\n collectUnsupported,\n compact,\n consume,\n fail,\n isObject,\n optional,\n stringArrayValue,\n stringValue,\n} from './fern-config-mapper-helpers';\nimport type {\n FernConfigMappingDiagnostic,\n FernLanguage,\n FernResolvedGeneratorInput,\n JsonObject,\n MappingState,\n OutputMapping,\n} from './fern-config-mapper-types';\n\ntype OutputValueMapping = Omit<OutputMapping, 'unsupportedFields'>;\ntype PublicationMapping = {\n publish: SdkConfigV1PublishConfig;\n package?: SdkConfigV1PackageConfig;\n};\n\nexport function mapOutput(\n generator: FernResolvedGeneratorInput,\n language: FernLanguage,\n index: number,\n): OutputMapping {\n const raw = isObject(generator.raw) ? generator.raw : undefined;\n const rawOutput = raw && isObject(raw.output) ? raw.output : undefined;\n const outputPath = ['group', 'generators', index, 'outputMode'] as (string | number)[];\n const state: MappingState = { consumedPaths: new Set<string>() };\n if (rawOutput?.location === 'local-file-system') {\n if (isObject(generator.outputMode)) consume(state, [...outputPath, 'type']);\n return finishOutputMapping(\n {\n output: {\n delivery: 'files',\n ...(typeof rawOutput.path === 'string' && rawOutput.path ? { path: rawOutput.path } : {}),\n },\n },\n generator.outputMode,\n outputPath,\n state,\n index,\n );\n }\n if (!isObject(generator.outputMode) || typeof generator.outputMode.type !== 'string') {\n fail(\n 'FERN_OUTPUT_REQUIRED',\n ['group', 'generators', index, 'outputMode'],\n `Cannot map output for Fern generator ${generator.name}`,\n 'Set generator.output to a public SDK Config output, or provide the resolved Fern outputMode.',\n ['targets', index, 'output'],\n );\n }\n const output = generator.outputMode;\n consume(state, [...outputPath, 'type']);\n switch (output.type) {\n case 'downloadFiles':\n return finishOutputMapping({ output: { delivery: 'zip' } }, output, outputPath, state, index);\n case 'github':\n return finishOutputMapping(\n githubOutput(output, output.publishInfo, language, outputPath, state, index),\n output,\n outputPath,\n state,\n index,\n );\n case 'githubV2': {\n if (!isObject(output.githubV2))\n fail(\n 'FERN_GITHUB_OUTPUT_INVALID',\n ['group', 'generators', index, 'outputMode', 'githubV2'],\n 'Fern githubV2 output is missing its configuration',\n 'Set target.output manually with delivery \"github\" and the intended repository.',\n ['targets', index, 'output'],\n );\n const githubPath = [...outputPath, 'githubV2'];\n return finishOutputMapping(\n githubOutput(\n output.githubV2,\n output.githubV2.publishInfo,\n language,\n githubPath,\n state,\n index,\n ),\n output,\n outputPath,\n state,\n index,\n );\n }\n case 'publishV2': {\n const publication = mapPublication(\n output.publishV2,\n language,\n [...outputPath, 'publishV2'],\n state,\n index,\n );\n return finishOutputMapping(\n {\n output: { delivery: 'zip', publish: publication.publish },\n ...optional('package', publication.package),\n },\n output,\n outputPath,\n state,\n index,\n );\n }\n case 'publish': {\n const publication = mapLegacyPublication(\n output.registryOverrides,\n language,\n [...outputPath, 'registryOverrides'],\n state,\n index,\n );\n return finishOutputMapping(\n {\n output: { delivery: 'zip', publish: publication.publish },\n ...optional('package', publication.package),\n },\n output,\n outputPath,\n state,\n index,\n );\n }\n default:\n fail(\n 'FERN_OUTPUT_UNSUPPORTED',\n ['group', 'generators', index, 'outputMode', 'type'],\n `Unsupported Fern output mode \"${output.type}\"`,\n 'Choose the equivalent files, zip, or github SDK Config output manually.',\n ['targets', index, 'output'],\n );\n }\n}\n\nfunction githubOutput(\n value: JsonObject,\n publishInfo: unknown,\n language: FernLanguage,\n sourcePath: (string | number)[],\n state: MappingState,\n index: number,\n): OutputValueMapping {\n const owner = stringValue(value.owner);\n const repo = stringValue(value.repo);\n if (!owner || !repo)\n fail(\n 'FERN_GITHUB_REPOSITORY_REQUIRED',\n sourcePath,\n 'Fern GitHub output requires owner and repo',\n 'Set target.output.github.repository manually as \"owner/repository\".',\n ['targets', index, 'output', 'github', 'repository'],\n );\n consume(state, [...sourcePath, 'owner']);\n consume(state, [...sourcePath, 'repo']);\n const publication = publishInfo\n ? mapPublication(publishInfo, language, [...sourcePath, 'publishInfo'], state, index)\n : undefined;\n const type = stringValue(value.type);\n const reviewers = mapReviewers(value.reviewers, [...sourcePath, 'reviewers'], state);\n if (type) consume(state, [...sourcePath, 'type']);\n if (typeof value.makePr === 'boolean') consume(state, [...sourcePath, 'makePr']);\n if (stringValue(value.host)) consume(state, [...sourcePath, 'host']);\n if (stringValue(value.branch)) consume(state, [...sourcePath, 'branch']);\n const credentials = mapCredentials(value.credentials, [...sourcePath, 'credentials'], state);\n return {\n output: {\n delivery: 'github',\n github: {\n repository: `${owner}/${repo}`,\n ...optional('host', stringValue(value.host)),\n ...optional('branch', stringValue(value.branch)),\n mode:\n value.makePr === true || type === 'pullRequest'\n ? 'pull-request'\n : type === 'push'\n ? 'push'\n : 'release',\n ...optional('reviewers', reviewers),\n ...optional('credentials', credentials),\n },\n ...(publication ? { publish: publication.publish } : {}),\n },\n ...optional('package', publication?.package),\n };\n}\n\ntype RawCredentials = { username?: string; password?: string; token?: string; apiKey?: string };\n\nfunction mapCredentials(\n value: unknown,\n sourcePath: (string | number)[],\n state: MappingState,\n): RawCredentials | undefined {\n if (!isObject(value)) return undefined;\n return credentialsFromObject(value, sourcePath, state);\n}\n\nfunction mapInlineCredentials(\n value: JsonObject,\n sourcePath: (string | number)[],\n state: MappingState,\n): RawCredentials | undefined {\n // Prefer the nested `credentials` object when present; inline fields are treated as a\n // fallback and left unsupported (with a credential-specific diagnostic) when both are set.\n const credentials = mapCredentials(value.credentials, [...sourcePath, 'credentials'], state);\n if (credentials) return credentials;\n return credentialsFromObject(value, sourcePath, state);\n}\n\nfunction credentialsFromObject(\n value: JsonObject,\n sourcePath: (string | number)[],\n state: MappingState,\n): RawCredentials | undefined {\n const credentials: RawCredentials = {};\n const username = stringValue(value.username);\n const password = stringValue(value.password);\n const token = stringValue(value.token);\n const apiKey = stringValue(value.apiKey);\n if (username) {\n credentials.username = username;\n consume(state, [...sourcePath, 'username']);\n }\n if (password) {\n credentials.password = password;\n consume(state, [...sourcePath, 'password']);\n }\n if (token) {\n credentials.token = token;\n consume(state, [...sourcePath, 'token']);\n }\n if (apiKey) {\n credentials.apiKey = apiKey;\n consume(state, [...sourcePath, 'apiKey']);\n }\n return Object.keys(credentials).length === 0 ? undefined : credentials;\n}\n\nfunction mapMavenSignature(\n value: unknown,\n sourcePath: (string | number)[],\n state: MappingState,\n): { keyId: string; password: string; secretKey: string } | undefined {\n if (!isObject(value)) return undefined;\n const keyId = stringValue(value.keyId);\n const password = stringValue(value.password);\n const secretKey = stringValue(value.secretKey);\n if (!keyId || !password || !secretKey) return undefined;\n consume(state, [...sourcePath, 'keyId']);\n consume(state, [...sourcePath, 'password']);\n consume(state, [...sourcePath, 'secretKey']);\n return { keyId, password, secretKey };\n}\n\nfunction mapReviewers(\n value: unknown,\n sourcePath: (string | number)[],\n state: MappingState,\n): { teams?: string[]; users?: string[] } | undefined {\n if (Array.isArray(value)) {\n const teams = reviewerNames(value, 'team', sourcePath, state);\n const users = reviewerNames(value, 'user', sourcePath, state);\n return teams || users\n ? { ...optional('teams', teams), ...optional('users', users) }\n : undefined;\n }\n if (!isObject(value)) return undefined;\n const teams = reviewerNames(value.teams, 'team', [...sourcePath, 'teams'], state);\n const users = reviewerNames(value.users, 'user', [...sourcePath, 'users'], state);\n return teams || users ? { ...optional('teams', teams), ...optional('users', users) } : undefined;\n}\n\nfunction reviewerNames(\n value: unknown,\n expectedType: string,\n sourcePath: (string | number)[],\n state: MappingState,\n): string[] | undefined {\n if (!Array.isArray(value)) return undefined;\n const names = value.flatMap((reviewer, index) => {\n if (typeof reviewer === 'string') {\n consume(state, [...sourcePath, index]);\n return [reviewer];\n }\n if (\n !isObject(reviewer) ||\n reviewer.type !== expectedType ||\n typeof reviewer.name !== 'string'\n ) {\n return [];\n }\n consume(state, [...sourcePath, index, 'type']);\n consume(state, [...sourcePath, index, 'name']);\n return [reviewer.name];\n });\n return names.length ? names : undefined;\n}\n\nfunction mapPublication(\n value: unknown,\n language: FernLanguage,\n sourcePath: (string | number)[],\n state: MappingState,\n index: number,\n): PublicationMapping {\n if (!isObject(value))\n fail(\n 'FERN_PUBLICATION_INVALID',\n sourcePath,\n 'Fern publication output is invalid',\n 'Set target.output.publish and target.package manually.',\n ['targets', index, 'output', 'publish'],\n );\n const type = stringValue(value.type);\n if (type) consume(state, [...sourcePath, 'type']);\n const nested = type && isObject(value[type]) ? value[type] : value;\n const nestedPath = nested === value ? sourcePath : [...sourcePath, type as string];\n const registry = publicationRegistry(type, language, [...sourcePath, 'type'], index);\n const registryUrl = stringValue(nested.registryUrl);\n if (registryUrl) consume(state, [...nestedPath, 'registryUrl']);\n const credentials = mapInlineCredentials(nested, nestedPath, state);\n if (registry === 'maven') {\n const coordinate = stringValue(nested.coordinate);\n const signature = mapMavenSignature(nested.signature, [...nestedPath, 'signature'], state);\n if (coordinate) consume(state, [...nestedPath, 'coordinate']);\n return {\n publish: compact({ registry, url: registryUrl, credentials, signature }),\n ...(coordinate\n ? { package: mavenPackage(coordinate, [...nestedPath, 'coordinate'], index) }\n : {}),\n };\n }\n const packageNameField = stringValue(nested.packageName) ? 'packageName' : 'coordinate';\n const packageName = stringValue(nested[packageNameField]);\n if (packageName) consume(state, [...nestedPath, packageNameField]);\n const metadata =\n registry === 'pypi' ? mapPypiMetadata(nested.pypiMetadata, nestedPath, state) : {};\n return {\n publish: compact({ registry, url: registryUrl, credentials }),\n ...(packageName || Object.keys(metadata).length\n ? { package: { ...optional('packageName', packageName), ...metadata } }\n : {}),\n };\n}\n\nfunction mapLegacyPublication(\n value: unknown,\n language: FernLanguage,\n sourcePath: (string | number)[],\n state: MappingState,\n index: number,\n): PublicationMapping {\n const registry = defaultRegistry(language, sourcePath, index);\n const overrides = isObject(value) ? value : {};\n const override = isObject(overrides[registry]) ? overrides[registry] : {};\n return mapPublication(override, language, [...sourcePath, registry], state, index);\n}\n\nfunction publicationRegistry(\n type: string | undefined,\n language: FernLanguage,\n sourcePath: (string | number)[],\n index: number,\n): SdkConfigV1PublishRegistry {\n if (type === 'postman') {\n fail(\n 'FERN_POSTMAN_PUBLICATION_UNSUPPORTED',\n sourcePath,\n 'Postman collection publication is not an SDK output',\n 'Remove this non-SDK target or convert it separately from the SDK Config document.',\n );\n }\n const normalized = type?.replace(/Override$/, '').toLowerCase();\n if (normalized === 'rubygems') return 'rubygems' as const;\n if (normalized && ['npm', 'pypi', 'maven', 'nuget', 'crates'].includes(normalized)) {\n return normalized as 'npm' | 'pypi' | 'maven' | 'nuget' | 'crates';\n }\n if (normalized !== undefined) {\n fail(\n 'FERN_PUBLICATION_UNSUPPORTED',\n sourcePath,\n `Unsupported Fern publication type \"${type}\"`,\n 'Set target.output.publish and target.package manually if SDK Config supports the registry.',\n ['targets', index, 'output', 'publish'],\n );\n }\n return defaultRegistry(language, sourcePath, index);\n}\n\nfunction defaultRegistry(\n language: FernLanguage,\n sourcePath: (string | number)[],\n index: number,\n): SdkConfigV1PublishRegistry {\n const registries: Partial<Record<FernLanguage, SdkConfigV1PublishRegistry>> = {\n typescript: 'npm',\n mcp: 'npm',\n python: 'pypi',\n java: 'maven',\n kotlin: 'maven',\n csharp: 'nuget',\n ruby: 'rubygems',\n rust: 'crates',\n go: 'go',\n php: 'composer',\n };\n const registry = registries[language];\n if (!registry)\n fail(\n 'FERN_PUBLICATION_REGISTRY_REQUIRED',\n sourcePath,\n `No publication registry can be inferred for ${language}`,\n 'Set target.output.publish.registry manually.',\n ['targets', index, 'output', 'publish', 'registry'],\n );\n return registry;\n}\n\nfunction mavenPackage(\n coordinate: string,\n sourcePath: (string | number)[],\n index: number,\n): SdkConfigV1PackageConfig {\n const parts = coordinate.split(':');\n const [groupId, artifactId] = parts;\n if (parts.length !== 2 || !groupId || !artifactId)\n fail(\n 'FERN_MAVEN_COORDINATE_INVALID',\n sourcePath,\n `Invalid Maven coordinate ${coordinate}`,\n 'Set target.package.groupId and target.package.artifactId manually.',\n ['targets', index, 'package'],\n );\n return { groupId, artifactId };\n}\n\nfunction mapPypiMetadata(\n value: unknown,\n sourcePath: (string | number)[],\n state: MappingState,\n): SdkConfigV1PackageConfig {\n if (!isObject(value)) return {};\n const metadataPath = [...sourcePath, 'pypiMetadata'];\n const description = stringValue(value.description);\n const keywords = stringArrayValue(value.keywords);\n const documentationUrl = stringValue(value.documentationLink);\n const homepage = stringValue(value.homepageLink);\n const authors = mapAuthors(value.authors, [...metadataPath, 'authors'], state);\n if (description) consume(state, [...metadataPath, 'description']);\n if (keywords) consume(state, [...metadataPath, 'keywords']);\n if (documentationUrl) consume(state, [...metadataPath, 'documentationLink']);\n if (homepage) consume(state, [...metadataPath, 'homepageLink']);\n return compact({ description, authors, keywords, documentationUrl, homepage });\n}\n\nfunction mapAuthors(\n value: unknown,\n sourcePath: (string | number)[],\n state: MappingState,\n): { name: string; email?: string; url?: string }[] | undefined {\n if (!Array.isArray(value)) return undefined;\n const authors = value.flatMap((author) => {\n if (!isObject(author)) return [];\n const name = stringValue(author.name);\n const email = stringValue(author.email);\n const url = stringValue(author.url);\n return name ? [{ name, ...optional('email', email), ...optional('url', url) }] : [];\n });\n if (authors.length !== value.length) return undefined;\n value.forEach((author, index) => {\n consume(state, [...sourcePath, index, 'name']);\n if (isObject(author) && stringValue(author.email)) {\n consume(state, [...sourcePath, index, 'email']);\n }\n if (isObject(author) && stringValue(author.url)) {\n consume(state, [...sourcePath, index, 'url']);\n }\n });\n return authors;\n}\n\nfunction finishOutputMapping(\n mapping: OutputValueMapping,\n outputMode: unknown,\n sourcePath: (string | number)[],\n state: MappingState,\n index: number,\n): OutputMapping {\n for (const path of collectLeafPaths(outputMode, sourcePath)) {\n if (path[path.length - 1] === '_visit') consume(state, path);\n }\n const unsupported = collectUnsupported(outputMode, sourcePath, state);\n const hasCredentials = unsupported.some((diagnostic) => isCredentialPath(diagnostic.path));\n return {\n ...mapping,\n unsupportedFields: [\n ...(hasCredentials\n ? [\n {\n code: 'FERN_OUTPUT_CREDENTIAL_UNSUPPORTED',\n severity: 'warning' as const,\n path: sourcePath,\n // This diagnostic only captures credential/signature fields that remained\n // unconsumed after mapping supported registry/GitHub credentials into\n // SDK Config v1. Supported credential shapes are carried through; this\n // warning is about the remaining legacy-only credential fields.\n reason:\n 'Some Fern output credentials and signatures are intentionally excluded from SDK Config v1 when they cannot be represented in the public schema',\n suggestedAction:\n 'Provide publishing credentials through the build request or external secret resolution.',\n },\n ]\n : []),\n ...unsupported\n .filter((diagnostic) => !isCredentialPath(diagnostic.path))\n .map((diagnostic) => outputDiagnostic(diagnostic.path, index)),\n ],\n };\n}\n\nfunction isCredentialPath(path: (string | number)[]): boolean {\n const fields = path.filter((part): part is string => typeof part === 'string');\n const field = fields[fields.length - 1];\n return (\n fields.some((part) => part === 'credentials' || part === 'signature') ||\n ['apiKey', 'keyId', 'password', 'secretKey', 'token', 'username'].includes(field ?? '')\n );\n}\n\nfunction outputDiagnostic(path: (string | number)[], index: number): FernConfigMappingDiagnostic {\n const fields = path.filter((part): part is string => typeof part === 'string');\n const field = fields[fields.length - 1];\n const guidance: Record<string, { sdkConfigPath?: (string | number)[]; suggestedAction: string }> =\n {\n directory: {\n suggestedAction:\n 'Preserve the GitHub output subdirectory outside SDK Config; public v1 has no repository subdirectory field.',\n },\n license: {\n sdkConfigPath: ['targets', index, 'package', 'license'],\n suggestedAction: 'Set target.package.license manually using portable license metadata.',\n },\n id: {\n sdkConfigPath: ['targets', index, 'package', 'license'],\n suggestedAction: 'Set target.package.license manually using portable license metadata.',\n },\n contents: {\n sdkConfigPath: ['targets', index, 'package', 'license'],\n suggestedAction: 'Set target.package.license manually without embedding license contents.',\n },\n downloadSnippets: {\n sdkConfigPath: ['docs', 'snippets', 'enabled'],\n suggestedAction:\n 'Set docs.snippets.enabled manually and choose a portable output path if needed.',\n },\n version: {\n sdkConfigPath: ['targets', index, 'sdkVersion'],\n suggestedAction:\n 'Set target.sdkVersion manually if this output version identifies the SDK artifact.',\n },\n description: {\n sdkConfigPath: ['targets', index, 'package', 'description'],\n suggestedAction: 'Set target.package.description manually to a valid value.',\n },\n authors: {\n sdkConfigPath: ['targets', index, 'package', 'authors'],\n suggestedAction: 'Set target.package.authors manually using valid author metadata.',\n },\n keywords: {\n sdkConfigPath: ['targets', index, 'package', 'keywords'],\n suggestedAction: 'Set target.package.keywords manually using non-empty strings.',\n },\n documentationLink: {\n sdkConfigPath: ['targets', index, 'package', 'documentationUrl'],\n suggestedAction: 'Set target.package.documentationUrl manually to a valid URL.',\n },\n homepageLink: {\n sdkConfigPath: ['targets', index, 'package', 'homepage'],\n suggestedAction: 'Set target.package.homepage manually to a valid URL.',\n },\n };\n const fieldGuidance = field ? guidance[field] : undefined;\n const resolvedGuidance = fields.includes('license') ? guidance.license : fieldGuidance;\n return {\n code: 'FERN_OUTPUT_FIELD_UNSUPPORTED',\n severity: 'warning',\n path,\n reason: 'Fern output field is not represented by SDK Config v1',\n ...optional('sdkConfigPath', resolvedGuidance?.sdkConfigPath),\n suggestedAction:\n resolvedGuidance?.suggestedAction ??\n 'Review this output setting and preserve it outside SDK Config when no equivalent exists.',\n };\n}\n","import { z } from 'zod';\nimport { nonEmptyStringSchema } from './common';\n\n/** Naming behavior shared by the public SDK Config and the single-target SDK Config IR. */\nexport const namingConfigSchema = z.strictObject({\n clientName: nonEmptyStringSchema.optional(),\n exportedClientName: nonEmptyStringSchema.optional(),\n environmentTypeName: nonEmptyStringSchema.optional(),\n apiErrorName: nonEmptyStringSchema.optional(),\n baseErrorName: nonEmptyStringSchema.optional(),\n pagerName: nonEmptyStringSchema.optional(),\n /** Apply Fern's initialism-aware casing rules when deriving generated identifiers. */\n smartCasing: z.boolean().optional(),\n /** Preserve a word boundary after digits when Fern smart casing is enabled. */\n smartCasingDigitWordBoundary: z.boolean().optional(),\n});\n\nexport type NamingConfig = z.infer<typeof namingConfigSchema>;\n","import { z } from 'zod';\nimport { namingConfigSchema } from '../../sdk-config-domain/v1/generation';\nimport { sdkConfigV1NonEmptyStringSchema, sdkConfigV1RelativePathSchema } from './common';\n\nconst customerGenerationAssetSchema = z.discriminatedUnion('type', [\n z.strictObject({ type: z.literal('path'), location: sdkConfigV1RelativePathSchema }),\n z.strictObject({ type: z.literal('url'), location: sdkConfigV1NonEmptyStringSchema }),\n]);\n\nconst hookDependencySchema = z.strictObject({\n name: sdkConfigV1NonEmptyStringSchema,\n version: sdkConfigV1NonEmptyStringSchema,\n groupId: sdkConfigV1NonEmptyStringSchema.optional(),\n});\n\nconst hooksConfigSchema = z.strictObject({\n enabled: z.boolean(),\n source: customerGenerationAssetSchema.optional(),\n dependencies: z.array(hookDependencySchema).optional(),\n});\n\nconst customCodeConfigSchema = z.strictObject({\n enabled: z.boolean(),\n source: customerGenerationAssetSchema.optional(),\n conflictStrategy: z.enum(['mark', 'ours', 'theirs']).optional(),\n trackChanges: z.boolean().optional(),\n protectedFiles: z.array(sdkConfigV1NonEmptyStringSchema).optional(),\n});\n\nconst workflowConfigSchema = z.strictObject({\n path: sdkConfigV1RelativePathSchema,\n outputName: sdkConfigV1NonEmptyStringSchema.optional(),\n});\n\nconst analyticsHeaderSchema = z.union([\n z.strictObject({ name: sdkConfigV1NonEmptyStringSchema, value: z.string() }),\n z.strictObject({\n name: sdkConfigV1NonEmptyStringSchema,\n valueRef: sdkConfigV1NonEmptyStringSchema,\n }),\n]);\n\nconst analyticsConfigSchema = z\n .strictObject({\n enabled: z.boolean(),\n endpoint: sdkConfigV1NonEmptyStringSchema.optional(),\n exporter: z.enum(['otlp-http', 'console']).optional(),\n headers: z.array(analyticsHeaderSchema).optional(),\n batchSize: z.number().int().positive().optional(),\n scheduledDelayMs: z.number().nonnegative().optional(),\n exportTimeoutMs: z.number().nonnegative().optional(),\n })\n .superRefine(({ enabled, endpoint }, context) => {\n if (enabled && endpoint === undefined) {\n context.addIssue({\n code: 'custom',\n message: 'endpoint is required when analytics is enabled',\n path: ['endpoint'],\n });\n }\n });\n\nconst wireTestsSchema = z.strictObject({\n enabled: z.boolean(),\n exclusions: z.array(sdkConfigV1NonEmptyStringSchema).optional(),\n fallbackToGeneratedErrorExamples: z.boolean().optional(),\n fixtureSource: z.enum(['synthetic', 'recorded', 'auto']).optional(),\n});\n\nconst unitTestsSchema = z.strictObject({\n enabled: z.boolean(),\n mode: z.enum(['core-runtime', 'schema-driven', 'both']).optional(),\n exclusions: z.array(sdkConfigV1NonEmptyStringSchema).optional(),\n});\n\nconst streamsSchema = z.strictObject({\n enabled: z.boolean(),\n responseType: z.enum(['wrapper', 'native', 'web']).optional(),\n fileResponseType: z.enum(['stream', 'binary-response']).optional(),\n defaultChunkSizeBytes: z.number().int().positive().optional(),\n});\n\nconst layoutConfigSchema = z.strictObject({\n outputDirectory: z.enum(['project-root', 'source-root']).optional(),\n packagePath: sdkConfigV1NonEmptyStringSchema.optional(),\n});\n\nconst serializationConfigSchema = z.strictObject({\n enumRepresentation: z\n .enum(['enum', 'union', 'literal', 'forward-compatible-enum', 'language-default'])\n .optional(),\n additionalProperties: z.enum(['allow', 'forbid', 'ignore', 'language-default']).optional(),\n inlineTypes: z.boolean().optional(),\n omitUndefined: z.boolean().optional(),\n});\n\nconst generationConfigOverrideShape = {\n includeWatermark: z.boolean().optional(),\n ai: z.boolean().optional(),\n includeOptionalSnippetParameters: z.boolean().optional(),\n buildAllModels: z.boolean().optional(),\n inferServiceNames: z.boolean().optional(),\n includeDeprecatedOperations: z.boolean().optional(),\n multipleResponses: z.boolean().optional(),\n devContainer: z.boolean().optional(),\n allowMockClient: z.boolean().optional(),\n ignoreFiles: z.array(sdkConfigV1NonEmptyStringSchema).optional(),\n reservedKeywords: z.array(sdkConfigV1NonEmptyStringSchema).optional(),\n hooks: hooksConfigSchema.optional(),\n customCode: customCodeConfigSchema.optional(),\n workflows: z.array(workflowConfigSchema).optional(),\n customQueryPaths: z.array(sdkConfigV1RelativePathSchema).optional(),\n analytics: analyticsConfigSchema.optional(),\n wireTests: wireTestsSchema.optional(),\n unitTests: unitTestsSchema.optional(),\n webSockets: z.boolean().optional(),\n streams: streamsSchema.optional(),\n naming: namingConfigSchema.optional(),\n layout: layoutConfigSchema.optional(),\n serialization: serializationConfigSchema.optional(),\n};\n\n/** Sparse common generation properties that can override root generation for one target. */\nexport const sdkConfigV1GenerationConfigOverrideSchema = z.strictObject(\n generationConfigOverrideShape,\n);\n\nexport const sdkConfigV1GenerationConfigSchema = z.strictObject({\n ...generationConfigOverrideShape,\n includeWatermark: z.boolean().default(false),\n ai: z.boolean().default(false),\n buildAllModels: z.boolean().default(false),\n inferServiceNames: z.boolean().default(false),\n includeDeprecatedOperations: z.boolean().default(true),\n multipleResponses: z.boolean().default(false),\n devContainer: z.boolean().default(false),\n allowMockClient: z.boolean().default(false),\n});\n\nexport type SdkConfigV1GenerationConfigOverride = z.infer<\n typeof sdkConfigV1GenerationConfigOverrideSchema\n>;\nexport type SdkConfigV1GenerationConfigInput = z.input<typeof sdkConfigV1GenerationConfigSchema>;\nexport type SdkConfigV1GenerationConfig = z.output<typeof sdkConfigV1GenerationConfigSchema>;\n\nconst commonGenerationKeys = new Set(Object.keys(generationConfigOverrideShape));\n\n/** Separates flat target generation overrides into common and language-specific properties. */\nexport function splitSdkConfigV1TargetGeneration(generation: Record<string, unknown> | undefined): {\n common: SdkConfigV1GenerationConfigOverride;\n language: Record<string, unknown>;\n} {\n const common: Record<string, unknown> = {};\n const language: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(generation ?? {})) {\n (commonGenerationKeys.has(key) ? common : language)[key] = value;\n }\n return { common: common as SdkConfigV1GenerationConfigOverride, language };\n}\n","import { z } from 'zod';\nimport { sdkConfigV1NonEmptyStringSchema } from './common';\n\nexport const sdkConfigV1PublishRegistrySchema = z.enum([\n 'npm',\n 'pypi',\n 'maven',\n 'nuget',\n 'rubygems',\n 'crates',\n 'go',\n 'composer',\n]);\n\nconst registryCredentialsSchema = z.strictObject({\n username: sdkConfigV1NonEmptyStringSchema.optional(),\n password: sdkConfigV1NonEmptyStringSchema.optional(),\n token: sdkConfigV1NonEmptyStringSchema.optional(),\n apiKey: sdkConfigV1NonEmptyStringSchema.optional(),\n});\n\nconst mavenSignatureSchema = z.strictObject({\n keyId: sdkConfigV1NonEmptyStringSchema,\n password: sdkConfigV1NonEmptyStringSchema,\n secretKey: sdkConfigV1NonEmptyStringSchema,\n});\n\nconst commonPublishShape = {\n url: sdkConfigV1NonEmptyStringSchema.optional(),\n /** Raw registry credentials. These values can be sensitive and must be handled as secrets. */\n credentials: registryCredentialsSchema.optional(),\n releaseBranch: sdkConfigV1NonEmptyStringSchema.optional(),\n tolerateRepublish: z.boolean().optional(),\n};\n\nexport const sdkConfigV1PublishConfigSchema = z.discriminatedUnion('registry', [\n z.strictObject({ registry: z.literal('npm'), ...commonPublishShape }),\n z.strictObject({ registry: z.literal('pypi'), ...commonPublishShape }),\n z.strictObject({\n registry: z.literal('maven'),\n /** Raw Maven signing material. These values can be sensitive and must be handled as secrets. */\n signature: mavenSignatureSchema.optional(),\n ...commonPublishShape,\n }),\n z.strictObject({ registry: z.literal('nuget'), ...commonPublishShape }),\n z.strictObject({ registry: z.literal('rubygems'), ...commonPublishShape }),\n z.strictObject({ registry: z.literal('crates'), ...commonPublishShape }),\n z.strictObject({ registry: z.literal('go'), ...commonPublishShape }),\n z.strictObject({ registry: z.literal('composer'), ...commonPublishShape }),\n]);\n\nconst reviewersSchema = z.strictObject({\n teams: z.array(sdkConfigV1NonEmptyStringSchema).optional(),\n users: z.array(sdkConfigV1NonEmptyStringSchema).optional(),\n});\n\nconst githubCredentialsSchema = registryCredentialsSchema;\n\nconst githubOutputSchema = z.strictObject({\n repository: sdkConfigV1NonEmptyStringSchema,\n host: sdkConfigV1NonEmptyStringSchema.optional(),\n branch: sdkConfigV1NonEmptyStringSchema.optional(),\n mode: z.enum(['release', 'pull-request', 'push', 'commit', 'commit-and-release']).optional(),\n reviewers: reviewersSchema.optional(),\n /** Raw GitHub credentials. These values can be sensitive and must be handled as secrets. */\n credentials: githubCredentialsSchema.optional(),\n privateRepository: z.boolean().optional(),\n});\n\nconst filesOutputSchema = z.strictObject({\n delivery: z.literal('files'),\n path: sdkConfigV1NonEmptyStringSchema.optional(),\n publish: sdkConfigV1PublishConfigSchema.optional(),\n});\n\nconst zipOutputSchema = z.strictObject({\n delivery: z.literal('zip'),\n fileName: sdkConfigV1NonEmptyStringSchema.optional(),\n publish: sdkConfigV1PublishConfigSchema.optional(),\n});\n\nconst githubDeliverySchema = z.strictObject({\n delivery: z.literal('github'),\n github: githubOutputSchema,\n publish: sdkConfigV1PublishConfigSchema.optional(),\n});\n\nexport const sdkConfigV1OutputConfigSchema = z.discriminatedUnion(\n 'delivery',\n [filesOutputSchema, zipOutputSchema, githubDeliverySchema],\n { error: 'output.delivery must be one of \"files\", \"zip\", or \"github\"' },\n);\n\nexport type SdkConfigV1PublishRegistry = z.infer<typeof sdkConfigV1PublishRegistrySchema>;\nexport type SdkConfigV1PublishConfig = z.infer<typeof sdkConfigV1PublishConfigSchema>;\nexport type SdkConfigV1OutputConfig = z.infer<typeof sdkConfigV1OutputConfigSchema>;\n","import type { z } from 'zod';\nimport { dependencySchema, packageConfigSchema } from '../../sdk-config-domain/v1/package';\n\nexport const sdkConfigV1DependencySchema = dependencySchema;\nexport const sdkConfigV1PackageConfigSchema = packageConfigSchema;\n\nexport type SdkConfigV1Dependency = z.infer<typeof sdkConfigV1DependencySchema>;\nexport type SdkConfigV1PackageConfig = z.infer<typeof sdkConfigV1PackageConfigSchema>;\n","import { z } from 'zod';\n\nexport const apiImportSettingsSchema = z.strictObject({\n respectNullableSchemas: z.boolean().optional(),\n titleAsSchemaName: z.boolean().optional(),\n coerceEnumsToLiterals: z.boolean().optional(),\n idiomaticRequestNames: z.boolean().optional(),\n wrapReferencesToNullableInOptional: z.boolean().optional(),\n coerceOptionalSchemasToNullable: z.boolean().optional(),\n pathParameterOrder: z.enum(['url-order', 'spec-order']).optional(),\n onlyIncludeReferencedSchemas: z.boolean().optional(),\n objectQueryParameters: z.boolean().optional(),\n typeDatesAsStrings: z.boolean().optional(),\n groupMultiApiEnvironments: z.boolean().optional(),\n defaultIntegerFormat: z.enum(['int32', 'int64', 'uint32', 'uint64']).optional(),\n});\n\nexport const sourceSpecTypeSchema = z.enum([\n 'openapi',\n 'swagger',\n 'postman',\n 'asyncapi',\n 'graphql',\n]);\n\nexport type ApiImportSettings = z.infer<typeof apiImportSettingsSchema>;\nexport type SourceSpecType = z.infer<typeof sourceSpecTypeSchema>;\n","import { z } from 'zod';\nimport { apiImportSettingsSchema, sourceSpecTypeSchema } from '../../sdk-config-domain/v1/source';\nimport { sdkConfigV1NonEmptyStringSchema, sdkConfigV1RelativePathSchema } from './common';\n\nconst sourceSpecShape = {\n id: sdkConfigV1NonEmptyStringSchema,\n type: sourceSpecTypeSchema,\n name: sdkConfigV1NonEmptyStringSchema.optional(),\n namespace: sdkConfigV1NonEmptyStringSchema.optional(),\n apiImportSettings: apiImportSettingsSchema.optional(),\n overlays: z.array(sdkConfigV1RelativePathSchema).optional(),\n overrides: z.array(sdkConfigV1RelativePathSchema).optional(),\n};\n\n/** A source is either a local path or an HTTP(S) URL; the two locators are mutually exclusive. */\nexport const sdkConfigV1SourceSpecSchema = z.union(\n [\n z.strictObject({ ...sourceSpecShape, path: sdkConfigV1RelativePathSchema }),\n z.strictObject({\n ...sourceSpecShape,\n url: z.url({ protocol: /^https?$/ }),\n }),\n ],\n { error: 'source spec must contain exactly one locator: path or HTTP(S) url' },\n);\n\nexport const sdkConfigV1SourceConfigSchema = z\n .strictObject({\n specs: z\n .array(sdkConfigV1SourceSpecSchema)\n .min(1, 'source.specs must contain at least one source spec'),\n apiImportSettings: apiImportSettingsSchema.optional(),\n })\n .superRefine(({ specs }, context) => {\n const seenIds = new Set<string>();\n specs.forEach(({ id }, index) => {\n if (seenIds.has(id)) {\n context.addIssue({\n code: 'custom',\n message: `source spec id \"${id}\" must be unique`,\n path: ['specs', index, 'id'],\n });\n }\n seenIds.add(id);\n });\n });\n\nexport type SdkConfigV1SourceSpec = z.infer<typeof sdkConfigV1SourceSpecSchema>;\nexport type SdkConfigV1SourceConfig = z.infer<typeof sdkConfigV1SourceConfigSchema>;\n","import { z } from 'zod';\nimport { nonEmptyStringSchema } from '../common';\n\nexport const cliGenerationConfigSchema = z.strictObject({\n paginationParameters: z.array(nonEmptyStringSchema).optional(),\n skills: z.boolean().optional(),\n});\n\nexport type CliGenerationConfig = z.infer<typeof cliGenerationConfigSchema>;\n","import { z } from 'zod';\n\nexport const csharpGenerationConfigSchema = z.strictObject({\n useOptionalWrapper: z.boolean().optional(),\n simplifyObjectDictionaries: z.boolean().optional(),\n explicitNamespaces: z.boolean().optional(),\n rootNamespaceForCoreClasses: z.boolean().optional(),\n includeExceptionHandler: z.boolean().optional(),\n experimentalExplicitNullableOptional: z.boolean().optional(),\n});\n\nexport type CsharpGenerationConfig = z.infer<typeof csharpGenerationConfigSchema>;\n","import { z } from 'zod';\nimport { nonEmptyStringSchema } from '../common';\nexport const goGenerationConfigSchema = z.strictObject({\n legacyComplexModels: z.boolean().optional(),\n /** Uppercase common initialisms in generated names (`UserID` rather than `UserId`). */\n smartCasing: z.boolean().optional(),\n /** Overrides the fern root-client constructor independently from the client type name. */\n clientConstructorName: nonEmptyStringSchema.optional(),\n unionVersion: z.enum(['v0', 'v1']).optional(),\n includeLegacyClientOptions: z.boolean().optional(),\n});\n\nexport type GoGenerationConfig = z.infer<typeof goGenerationConfigSchema>;\n","import { z } from 'zod';\n\n/** Code-generation behavior shared by Java and Kotlin-targeted JVM SDKs. */\nexport const jvmGenerationConfigSchema = z.strictObject({\n packageLayout: z.enum(['flat', 'nested']).optional(),\n useLocalDateForDates: z.boolean().optional(),\n collapseOptionalNullable: z.boolean().optional(),\n gradleDistributionUrl: z.string().min(1).optional(),\n gradlePluginManagement: z.string().optional(),\n gradleCentralDependencyManagement: z.boolean().optional(),\n /** Selects co-located async methods or a separate async client surface. */\n asyncStyle: z.enum(['dedicated-client', 'twin-methods']).optional(),\n});\n\nexport type JvmGenerationConfig = z.infer<typeof jvmGenerationConfigSchema>;\n","import { z } from 'zod';\nimport { jvmGenerationConfigSchema } from './jvm';\n\nexport const javaGenerationConfigSchema = jvmGenerationConfigSchema.extend({\n includeKotlinSnippets: z.boolean().optional(),\n});\n\nexport type JavaGenerationConfig = z.infer<typeof javaGenerationConfigSchema>;\n","import type { z } from 'zod';\nimport { jvmGenerationConfigSchema } from './jvm';\n\n/**\n * Kotlin targets use the shared Java/JVM generator and always include Kotlin-facing\n * examples, snippets, and documentation.\n */\nexport const kotlinGenerationConfigSchema = jvmGenerationConfigSchema;\n\nexport type KotlinGenerationConfig = z.infer<typeof kotlinGenerationConfigSchema>;\n","import { z } from 'zod';\nimport { nonEmptyStringSchema } from '../common';\n\nconst compilerOptionsSchema = z.strictObject({\n target: nonEmptyStringSchema.optional(),\n module: nonEmptyStringSchema.optional(),\n lib: z.array(nonEmptyStringSchema).optional(),\n});\n\nconst packageScriptSchema = z.strictObject({\n name: nonEmptyStringSchema,\n command: nonEmptyStringSchema,\n});\n\nconst httpClientSchema = z.strictObject({\n name: z.enum(['axios', 'fetch']),\n});\n\nexport const typescriptGenerationConfigSchema = z.strictObject({\n typescriptVersion: nonEmptyStringSchema.optional(),\n zodVersion: nonEmptyStringSchema.optional(),\n compilerOptions: compilerOptionsSchema.optional(),\n httpClient: httpClientSchema.optional(),\n packageManager: z.enum(['pnpm', 'yarn']).optional(),\n testFramework: z.enum(['jest', 'vitest']).optional(),\n namingStrategy: z.enum(['base', 'originalPropertyNames']).optional(),\n bundle: z.boolean().optional(),\n exportClassDefault: z.boolean().optional(),\n /** Name of the top-level namespace export emitted by Fern-compatible TypeScript SDKs. */\n namespaceExportName: nonEmptyStringSchema.optional(),\n allowCustomFetcher: z.boolean().optional(),\n useBrandedStringAliases: z.boolean().optional(),\n useLegacyExports: z.boolean().optional(),\n useBigInt: z.boolean().optional(),\n serdeLayer: z.boolean().optional(),\n scripts: z.array(packageScriptSchema).optional(),\n});\n\nexport type TypescriptGenerationConfig = z.infer<typeof typescriptGenerationConfigSchema>;\n","import { z } from 'zod';\nimport { nonEmptyStringSchema } from '../common';\nimport { typescriptGenerationConfigSchema } from './typescript';\n\nexport const mcpAvailabilityStatuses = [\n 'IN_DEVELOPMENT',\n 'PRE_RELEASE',\n 'GENERAL_AVAILABILITY',\n 'DEPRECATED',\n 'ALPHA',\n 'BETA',\n 'PREVIEW',\n 'LEGACY',\n] as const;\n\nconst mcpToolFilterSchema = z.strictObject({\n include: z.array(nonEmptyStringSchema).optional(),\n exclude: z.array(nonEmptyStringSchema).optional(),\n});\n\nconst mcpToolsetNameSchema = nonEmptyStringSchema.refine(\n (name) => name !== 'default' && /^[a-z0-9-]+$/.test(name),\n 'toolset names must match [a-z0-9-]+ and cannot be \"default\"',\n);\n\nexport const mcpGenerationConfigSchema = typescriptGenerationConfigSchema.extend({\n serverName: nonEmptyStringSchema.optional(),\n serverDescription: nonEmptyStringSchema.optional(),\n excludeAvailability: z.array(z.enum(mcpAvailabilityStatuses)).optional(),\n tools: mcpToolFilterSchema.optional(),\n toolsets: z.record(mcpToolsetNameSchema, mcpToolFilterSchema).optional(),\n});\n\nexport type McpAvailabilityStatus = (typeof mcpAvailabilityStatuses)[number];\nexport type McpToolFilter = z.infer<typeof mcpToolFilterSchema>;\nexport type McpGenerationConfig = z.infer<typeof mcpGenerationConfigSchema>;\n","import { z } from 'zod';\n\nexport const phpGenerationConfigSchema = z.strictObject({\n propertyAccess: z.enum(['public', 'private']).optional(),\n generateClientInterfaces: z.boolean().optional(),\n});\n\nexport type PhpGenerationConfig = z.infer<typeof phpGenerationConfigSchema>;\n","import { z } from 'zod';\nimport { nonEmptyStringSchema } from '../common';\n\nconst pythonClientSchema = z.strictObject({\n fileName: nonEmptyStringSchema.optional(),\n exportedFileName: nonEmptyStringSchema.optional(),\n});\n\nconst pydanticConfigSchema = z.strictObject({\n versionCompatibility: z.enum(['v1', 'v2', 'both', 'v1-on-v2']).optional(),\n frozen: z.boolean().optional(),\n requireOptionalFields: z.boolean().optional(),\n unionNaming: z.enum(['v0', 'v1']).optional(),\n useFieldAliases: z.boolean().optional(),\n});\n\nconst additionalInitExportSchema = z.strictObject({\n from: nonEmptyStringSchema,\n imports: z.array(nonEmptyStringSchema).min(1),\n});\n\nexport const pythonGenerationConfigSchema = z.strictObject({\n pythonVersion: nonEmptyStringSchema.optional(),\n pydanticVersion: nonEmptyStringSchema.optional(),\n pydantic: pydanticConfigSchema.optional(),\n client: pythonClientSchema.optional(),\n alwaysInitializeOptionals: z.boolean().optional(),\n useTypedDictRequests: z.boolean().optional(),\n additionalInitExports: z.array(additionalInitExportSchema).optional(),\n});\n\nexport type PythonGenerationConfig = z.infer<typeof pythonGenerationConfigSchema>;\n","import { z } from 'zod';\nimport { nonEmptyStringSchema } from '../common';\n\nexport const rubyGenerationConfigSchema = z.strictObject({\n requirePaths: z.array(nonEmptyStringSchema).optional(),\n});\n\nexport type RubyGenerationConfig = z.infer<typeof rubyGenerationConfigSchema>;\n","import { z } from 'zod';\nimport { nonEmptyStringSchema } from '../common';\n\n/**\n * Rust keeps crate identity, client naming, and package metadata in the shared fields; only\n * behavior with no cross-language equivalent lives here.\n */\nexport const rustGenerationConfigSchema = z.strictObject({\n /**\n * Rust type for datetime primitives. `offset` maps to `DateTime<FixedOffset>` and preserves the\n * timezone the payload carried; `utc` maps to `DateTime<Utc>` and normalizes to UTC.\n */\n dateTimeType: z.enum(['offset', 'utc']).optional(),\n /** Uppercase common initialisms in generated names (`UserID` rather than `UserId`). */\n capitalizeInitialisms: z.boolean().optional(),\n /** Cargo features, mapping a feature name to the dependencies or features it enables. */\n features: z.record(z.string(), z.array(nonEmptyStringSchema)).optional(),\n /** Overrides which features make up Cargo's `default` feature set. */\n defaultFeatures: z.array(nonEmptyStringSchema).optional(),\n});\n\nexport type RustGenerationConfig = z.infer<typeof rustGenerationConfigSchema>;\n","import { z } from 'zod';\nimport { nonEmptyStringSchema } from '../common';\n\nexport const swiftGenerationConfigSchema = z.strictObject({\n moduleName: nonEmptyStringSchema.optional(),\n nullableAsOptional: z.boolean().optional(),\n});\n\nexport type SwiftGenerationConfig = z.infer<typeof swiftGenerationConfigSchema>;\n","import { z } from 'zod';\nimport { nonEmptyStringSchema } from '../common';\nimport { goModulePathSchema } from '../package';\n\nconst planModifierSourceSchema = z.discriminatedUnion('enabled', [\n z.strictObject({ enabled: z.literal(true), sourceDir: nonEmptyStringSchema }),\n z.strictObject({ enabled: z.literal(false) }),\n]);\n\nconst planModifiersSchema = z.strictObject({\n resources: planModifierSourceSchema,\n attributes: planModifierSourceSchema,\n});\n\n/** Names of the provider-level attributes the generated provider exposes for host and credentials. */\nconst providerSchemaSchema = z.strictObject({\n addressKey: nonEmptyStringSchema,\n authTokenKey: nonEmptyStringSchema,\n});\n\nexport const terraformGenerationConfigSchema = z.strictObject({\n providerName: nonEmptyStringSchema.optional(),\n providerVersion: nonEmptyStringSchema.optional(),\n providerModulePath: goModulePathSchema.optional(),\n mockAcceptance: z.boolean().optional(),\n hideComputedDiff: z.boolean().optional(),\n providerSchema: providerSchemaSchema.optional(),\n planModifiers: planModifiersSchema.optional(),\n});\n\nexport type PlanModifiers = z.infer<typeof planModifiersSchema>;\nexport type TerraformGenerationConfig = z.infer<typeof terraformGenerationConfigSchema>;\n","import { z } from 'zod';\nimport { sdkConfigV1ClientConfigOverrideSchema } from './client';\nimport { sdkConfigV1ExactSemverSchema, sdkConfigV1NonEmptyStringSchema } from './common';\nimport { sdkConfigV1DocsConfigSchema } from './docs';\nimport { sdkConfigV1GenerationConfigOverrideSchema } from './generation';\nimport {\n sdkConfigV1CliGenerationConfigSchema,\n sdkConfigV1CsharpGenerationConfigSchema,\n sdkConfigV1GoGenerationConfigSchema,\n sdkConfigV1JavaGenerationConfigSchema,\n sdkConfigV1KotlinGenerationConfigSchema,\n sdkConfigV1McpGenerationConfigSchema,\n sdkConfigV1PhpGenerationConfigSchema,\n sdkConfigV1PythonGenerationConfigSchema,\n sdkConfigV1RubyGenerationConfigSchema,\n sdkConfigV1RustGenerationConfigSchema,\n sdkConfigV1SwiftGenerationConfigSchema,\n sdkConfigV1TerraformGenerationConfigSchema,\n sdkConfigV1TypescriptGenerationConfigSchema,\n} from './language';\nimport { sdkConfigV1OutputConfigSchema } from './output';\nimport { sdkConfigV1PackageConfigSchema } from './package';\n\nconst targetOverrideShape = {\n generatorVersion: sdkConfigV1ExactSemverSchema.optional(),\n sdkName: sdkConfigV1NonEmptyStringSchema.optional(),\n sdkVersion: sdkConfigV1NonEmptyStringSchema.optional(),\n client: sdkConfigV1ClientConfigOverrideSchema.optional(),\n docs: sdkConfigV1DocsConfigSchema.optional(),\n package: sdkConfigV1PackageConfigSchema.optional(),\n output: sdkConfigV1OutputConfigSchema.optional(),\n};\n\nexport const sdkConfigV1TargetSchema = z.discriminatedUnion('language', [\n z.strictObject({\n language: z.literal('typescript'),\n generation: sdkConfigV1GenerationConfigOverrideSchema\n .extend(sdkConfigV1TypescriptGenerationConfigSchema.shape)\n .optional(),\n ...targetOverrideShape,\n }),\n z.strictObject({\n language: z.literal('python'),\n generation: sdkConfigV1GenerationConfigOverrideSchema\n .extend(sdkConfigV1PythonGenerationConfigSchema.shape)\n .optional(),\n ...targetOverrideShape,\n }),\n z.strictObject({\n language: z.literal('java'),\n generation: sdkConfigV1GenerationConfigOverrideSchema\n .extend(sdkConfigV1JavaGenerationConfigSchema.shape)\n .optional(),\n ...targetOverrideShape,\n }),\n z.strictObject({\n language: z.literal('kotlin'),\n generation: sdkConfigV1GenerationConfigOverrideSchema\n .extend(sdkConfigV1KotlinGenerationConfigSchema.shape)\n .optional(),\n ...targetOverrideShape,\n }),\n z.strictObject({\n language: z.literal('go'),\n generation: sdkConfigV1GenerationConfigOverrideSchema\n .extend(sdkConfigV1GoGenerationConfigSchema.shape)\n .optional(),\n ...targetOverrideShape,\n }),\n z.strictObject({\n language: z.literal('csharp'),\n generation: sdkConfigV1GenerationConfigOverrideSchema\n .extend(sdkConfigV1CsharpGenerationConfigSchema.shape)\n .optional(),\n ...targetOverrideShape,\n }),\n z.strictObject({\n language: z.literal('php'),\n generation: sdkConfigV1GenerationConfigOverrideSchema\n .extend(sdkConfigV1PhpGenerationConfigSchema.shape)\n .optional(),\n ...targetOverrideShape,\n }),\n z.strictObject({\n language: z.literal('ruby'),\n generation: sdkConfigV1GenerationConfigOverrideSchema\n .extend(sdkConfigV1RubyGenerationConfigSchema.shape)\n .optional(),\n ...targetOverrideShape,\n }),\n z.strictObject({\n language: z.literal('rust'),\n generation: sdkConfigV1GenerationConfigOverrideSchema\n .extend(sdkConfigV1RustGenerationConfigSchema.shape)\n .optional(),\n ...targetOverrideShape,\n }),\n z.strictObject({\n language: z.literal('swift'),\n generation: sdkConfigV1GenerationConfigOverrideSchema\n .extend(sdkConfigV1SwiftGenerationConfigSchema.shape)\n .optional(),\n ...targetOverrideShape,\n }),\n z.strictObject({\n language: z.literal('cli'),\n generation: sdkConfigV1GenerationConfigOverrideSchema\n .extend(sdkConfigV1CliGenerationConfigSchema.shape)\n .optional(),\n ...targetOverrideShape,\n }),\n z.strictObject({\n language: z.literal('mcp'),\n generation: sdkConfigV1GenerationConfigOverrideSchema\n .extend(sdkConfigV1McpGenerationConfigSchema.shape)\n .optional(),\n ...targetOverrideShape,\n }),\n z.strictObject({\n language: z.literal('terraform'),\n generation: sdkConfigV1GenerationConfigOverrideSchema\n .extend(sdkConfigV1TerraformGenerationConfigSchema.shape)\n .optional(),\n ...targetOverrideShape,\n }),\n]);\n\nexport type SdkConfigV1Target = z.infer<typeof sdkConfigV1TargetSchema>;\n","import { z, type RefinementCtx } from 'zod';\nimport { sdkConfigV1ApiConfigSchema } from './api';\nimport { sdkConfigV1ClientConfigSchema } from './client';\nimport { sdkConfigV1ComposerPackageNameSchema, sdkConfigV1NonEmptyStringSchema } from './common';\nimport { sdkConfigV1DocsConfigSchema } from './docs';\nimport { sdkConfigV1GenerationConfigSchema } from './generation';\nimport {\n sdkConfigV1OutputConfigSchema,\n type SdkConfigV1OutputConfig,\n type SdkConfigV1PublishRegistry,\n} from './output';\nimport { sdkConfigV1PackageConfigSchema, type SdkConfigV1PackageConfig } from './package';\nimport { sdkConfigV1SourceConfigSchema } from './source';\nimport { sdkConfigV1TargetSchema, type SdkConfigV1Target } from './target';\n\nexport const SDK_CONFIG_V1_SCHEMA_VERSION = 'sdk-config/v1' as const;\n\nconst publishRegistryLanguages = {\n npm: ['typescript', 'mcp'],\n pypi: ['python'],\n maven: ['java', 'kotlin'],\n nuget: ['csharp'],\n rubygems: ['ruby'],\n crates: ['rust'],\n go: ['go'],\n composer: ['php'],\n} as const;\n\nconst packageNameRegistries = new Set<SdkConfigV1PublishRegistry>([\n 'npm',\n 'pypi',\n 'nuget',\n 'rubygems',\n 'crates',\n 'composer',\n]);\n\nfunction validatePublishingIdentity(\n packageConfig: SdkConfigV1PackageConfig,\n registry: SdkConfigV1PublishRegistry,\n targetIndex: number,\n context: RefinementCtx,\n): void {\n const pathPrefix = ['targets', targetIndex, 'package'] as const;\n\n if (packageNameRegistries.has(registry) && !packageConfig.packageName) {\n context.addIssue({\n code: 'custom',\n message: `packageName is required when publishing to \"${registry}\"`,\n path: [...pathPrefix, 'packageName'],\n });\n }\n\n if (registry === 'composer' && packageConfig.packageName) {\n const result = sdkConfigV1ComposerPackageNameSchema.safeParse(packageConfig.packageName);\n if (!result.success) {\n context.addIssue({\n code: 'custom',\n message: result.error.issues[0]?.message ?? 'Invalid Composer package name',\n path: [...pathPrefix, 'packageName'],\n });\n }\n }\n\n if (registry === 'go' && !packageConfig.modulePath) {\n context.addIssue({\n code: 'custom',\n message: 'modulePath is required when publishing a Go module',\n path: [...pathPrefix, 'modulePath'],\n });\n }\n\n if (registry === 'maven') {\n (['groupId', 'artifactId'] as const).forEach((field) => {\n if (!packageConfig[field]) {\n context.addIssue({\n code: 'custom',\n message: `${field} is required when publishing to Maven`,\n path: [...pathPrefix, field],\n });\n }\n });\n }\n}\n\nfunction validateTargetPublishing(\n target: SdkConfigV1Target,\n targetIndex: number,\n globalPackage: SdkConfigV1PackageConfig,\n globalOutput: SdkConfigV1OutputConfig | undefined,\n context: RefinementCtx,\n): void {\n const output = target.output ?? globalOutput;\n if (!output) {\n context.addIssue({\n code: 'custom',\n message: 'output is required on the target when no global output is configured',\n path: ['targets', targetIndex, 'output'],\n });\n return;\n }\n if (!output.publish) {\n return;\n }\n\n const registry = output.publish.registry;\n if (!publishRegistryLanguages[registry].some((language) => language === target.language)) {\n context.addIssue({\n code: 'custom',\n message: `registry \"${registry}\" is not supported for target language \"${target.language}\"`,\n path: ['targets', targetIndex, target.output ? 'output' : 'language'],\n });\n return;\n }\n\n validatePublishingIdentity(\n { ...globalPackage, ...target.package },\n registry,\n targetIndex,\n context,\n );\n}\n\nexport const sdkConfigV1Schema = z\n .strictObject({\n schemaVersion: z.literal(SDK_CONFIG_V1_SCHEMA_VERSION),\n sdkName: sdkConfigV1NonEmptyStringSchema,\n sdkVersion: sdkConfigV1NonEmptyStringSchema.default('1.0.0'),\n apiVersion: sdkConfigV1NonEmptyStringSchema.optional(),\n source: sdkConfigV1SourceConfigSchema,\n api: sdkConfigV1ApiConfigSchema.prefault({}),\n client: sdkConfigV1ClientConfigSchema.prefault({}),\n package: sdkConfigV1PackageConfigSchema.prefault({}),\n output: sdkConfigV1OutputConfigSchema.optional(),\n docs: sdkConfigV1DocsConfigSchema.prefault({}),\n generation: sdkConfigV1GenerationConfigSchema.prefault({}),\n targets: z.array(sdkConfigV1TargetSchema).min(1),\n })\n .superRefine(({ output, package: globalPackage, targets }, context) => {\n const configuredLanguages = new Set<string>();\n\n targets.forEach((target, targetIndex) => {\n if (configuredLanguages.has(target.language)) {\n context.addIssue({\n code: 'custom',\n message: `target language \"${target.language}\" must be unique`,\n path: ['targets', targetIndex, 'language'],\n });\n }\n configuredLanguages.add(target.language);\n validateTargetPublishing(target, targetIndex, globalPackage, output, context);\n });\n });\n\nexport type SdkConfigV1Input = z.input<typeof sdkConfigV1Schema>;\nexport type SdkConfigV1 = z.output<typeof sdkConfigV1Schema>;\n/** The sparse, customer-authored SDK Config document before defaults are resolved. */\nexport type SdkConfigV1Document = SdkConfigV1Input;\n\n/** Validates a customer-authored document without materializing schema defaults into it. */\nexport function validateSdkConfigV1(value: unknown): SdkConfigV1Document {\n sdkConfigV1Schema.parse(value);\n return value as SdkConfigV1Document;\n}\n\n/** Parses SDK Config and materializes its versioned defaults for runtime resolution. */\nexport function parseSdkConfigV1(value: unknown): SdkConfigV1 {\n return sdkConfigV1Schema.parse(value);\n}\n","import { sdkConfigV1ExactSemverSchema } from './common';\nimport type { ReadmeEndpoint } from '../../sdk-config-domain/v1/docs';\nimport type { SdkConfigV1ApiConfigInput } from './api';\nimport type { SdkConfigV1ClientConfigInput } from './client';\nimport type { SdkConfigV1DocsConfig } from './docs';\nimport {\n collectUnsupported,\n compact,\n consume,\n fail,\n isObject,\n locate,\n optional,\n optionalObject,\n stableJson,\n stringArrayValue,\n stringValue,\n takeBoolean,\n takeEnum,\n takeEnumArray,\n takeGoModulePath,\n takeNumber,\n takeObject,\n takeString,\n takeStringArray,\n takeStringArrayRecord,\n takeTimeoutMs,\n} from './fern-config-mapper-helpers';\nimport { mapOutput } from './fern-config-mapper-output';\nimport {\n FernConfigMappingError,\n type FernConfigMappingDiagnostic,\n type FernConfigMappingResult,\n type FernLanguage,\n type FernResolvedGeneratorGroupInput,\n type FernResolvedGeneratorInput,\n type JsonObject,\n type MappingState,\n} from './fern-config-mapper-types';\nimport type { SdkConfigV1GenerationConfigInput } from './generation';\nimport type { SdkConfigV1Dependency, SdkConfigV1PackageConfig } from './package';\nimport { sdkConfigV1Schema } from './sdk-config-v1';\n\nexport {\n FernConfigMappingError,\n type FernConfigMappingDiagnostic,\n type FernConfigMappingResult,\n type FernResolvedGeneratorGroupInput,\n type FernResolvedGeneratorInput,\n type FernSdkConfigLanguage,\n} from './fern-config-mapper-types';\n\ninterface InvocationMapping {\n client: SdkConfigV1ClientConfigInput;\n docs: SdkConfigV1DocsConfig;\n generation: SdkConfigV1GenerationConfigInput;\n package: SdkConfigV1PackageConfig;\n targetGeneration: JsonObject;\n unsupportedFields: FernConfigMappingDiagnostic[];\n}\n\nconst generatorLanguages: Record<string, FernLanguage> = {\n 'fernapi/fern-typescript': 'typescript',\n 'fernapi/fern-typescript-sdk': 'typescript',\n 'fernapi/fern-typescript-node-sdk': 'typescript',\n 'fernapi/fern-typescript-browser-sdk': 'typescript',\n 'fernapi/fern-python-sdk': 'python',\n 'fernapi/fern-java-sdk': 'java',\n 'fernapi/fern-kotlin-sdk': 'kotlin',\n 'fernapi/fern-go-sdk': 'go',\n 'fernapi/fern-csharp-sdk': 'csharp',\n 'fernapi/fern-php-sdk': 'php',\n 'fernapi/fern-ruby-sdk': 'ruby',\n 'fernapi/fern-ruby-sdk-v2': 'ruby',\n 'fernapi/fern-rust-sdk': 'rust',\n 'fernapi/fern-swift-sdk': 'swift',\n 'fernapi/fern-cli': 'cli',\n 'fernapi/fern-cli-generator': 'cli',\n 'fernapi/fern-mcp-server': 'mcp',\n};\n\n/** Converts one resolved Fern generator group into a validated customer-facing SDK Config. */\nexport function mapFernConfigToSdkConfigV1(\n input: FernResolvedGeneratorGroupInput,\n): FernConfigMappingResult {\n if (input.group.generators.length === 0) {\n fail(\n 'FERN_GENERATORS_REQUIRED',\n ['group', 'generators'],\n 'Fern generator group must contain at least one generator',\n 'Select a Fern generator group containing at least one SDK generator.',\n );\n }\n\n const languages = input.group.generators.map((generator, index) =>\n resolveLanguage(generator, index),\n );\n requireUniqueLanguages(languages);\n const activeLanguages = new Set(languages);\n const mapped = input.group.generators.map((generator, index) => {\n const language = languages[index]!;\n const invocation = mapInvocation(generator, language, activeLanguages, index);\n const outputMapping = generator.output\n ? { output: generator.output, unsupportedFields: [] }\n : mapOutput(generator, language, index);\n return {\n generator,\n language,\n invocation,\n ...outputMapping,\n };\n });\n\n const clients = partitionSharedBlock(mapped.map(({ invocation }) => invocation.client));\n const docs = partitionSharedBlock(mapped.map(({ invocation }) => invocation.docs));\n const generations = partitionSharedBlock(mapped.map(({ invocation }) => invocation.generation));\n const api: SdkConfigV1ApiConfigInput = { ...(input.api ?? {}) };\n delete api.audiences;\n if (input.group.audiences.type === 'select') {\n api.audiences = [...input.group.audiences.audiences];\n }\n\n const targets = mapped.map(\n ({ generator, invocation, language, output, package: outputPackage }, index) => {\n const target: JsonObject = {\n language,\n output,\n ...optional('sdkName', generator.sdkName),\n ...optional('sdkVersion', generator.sdkVersion),\n ...optional('client', clients.targetOverrides[index]),\n ...optional('docs', docs.targetOverrides[index]),\n };\n if (Object.keys(invocation.package).length > 0 || outputPackage || generator.package) {\n target.package = { ...invocation.package, ...outputPackage, ...generator.package };\n }\n const targetGeneration = {\n ...generations.targetOverrides[index],\n ...invocation.targetGeneration,\n };\n if (Object.keys(targetGeneration).length > 0) {\n target.generation = targetGeneration;\n }\n if (generator.version) {\n if (sdkConfigV1ExactSemverSchema.safeParse(generator.version).success) {\n target.generatorVersion = generator.version;\n } else {\n invocation.unsupportedFields.push({\n code: 'FERN_GENERATOR_VERSION_NOT_EXACT',\n severity: 'warning',\n path: ['group', 'generators', index, 'version'],\n reason: 'SDK Config requires an exact generator semantic version',\n sdkConfigPath: ['targets', index, 'generatorVersion'],\n suggestedAction:\n 'Resolve the Fern generator tag to an exact semantic version and set target.generatorVersion manually, or leave it omitted.',\n });\n }\n }\n return target;\n },\n );\n\n const sdkConfig = {\n schemaVersion: 'sdk-config/v1',\n sdkName: input.apiName,\n source: input.source,\n ...optional('sdkVersion', input.sdkVersion),\n ...optional('apiVersion', input.apiVersion),\n ...optionalObject('api', api),\n ...optionalObject('client', clients.shared),\n ...optionalObject('docs', docs.shared),\n ...optionalObject('generation', generations.shared),\n targets,\n } as const;\n const parsed = sdkConfigV1Schema.safeParse(sdkConfig);\n if (!parsed.success) {\n throw new FernConfigMappingError(\n parsed.error.issues.map((issue) => {\n const path = issue.path.map((part) =>\n typeof part === 'symbol' ? (part.description ?? part.toString()) : part,\n );\n return {\n code: 'SDK_CONFIG_VALIDATION_FAILED',\n severity: 'error',\n path: ['mappedSdkConfig', ...path],\n reason: issue.message,\n sdkConfigPath: path,\n suggestedAction: `Set ${path.join('.')} manually to a valid SDK Config v1 value.`,\n };\n }),\n );\n }\n const validatedSdkConfig = sdkConfig as unknown as FernConfigMappingResult['sdkConfig'];\n\n return {\n sdkConfig: validatedSdkConfig,\n unsupportedFields: mapped.flatMap(({ invocation, unsupportedFields }) => [\n ...invocation.unsupportedFields,\n ...unsupportedFields,\n ]),\n };\n}\n\nfunction resolveLanguage(generator: FernResolvedGeneratorInput, index: number): FernLanguage {\n const language = generator.sdkLanguage ?? generatorLanguages[generator.name];\n if (!language || !isFernLanguage(language)) {\n fail(\n 'FERN_SDK_LANGUAGE_REQUIRED',\n ['group', 'generators', index, 'name'],\n `Cannot determine an SDK language for Fern generator ${generator.name}`,\n 'Set sdkLanguage explicitly if this custom generator produces one of the SDK Config v1 target languages.',\n ['targets', index, 'language'],\n );\n }\n return language;\n}\n\nfunction isFernLanguage(value: string): value is FernLanguage {\n return [\n 'typescript',\n 'python',\n 'java',\n 'kotlin',\n 'go',\n 'csharp',\n 'php',\n 'ruby',\n 'rust',\n 'swift',\n 'cli',\n 'mcp',\n 'terraform',\n ].includes(value);\n}\n\nfunction requireUniqueLanguages(languages: FernLanguage[]): void {\n const seen = new Set<FernLanguage>();\n for (const language of languages) {\n if (seen.has(language)) {\n fail(\n 'FERN_DUPLICATE_TARGET_LANGUAGE',\n ['group', 'generators'],\n `SDK Config v1 cannot represent multiple Fern generators for language \"${language}\"`,\n 'Create a separate SDK Config document for each generator that targets the same language.',\n ['targets'],\n );\n }\n seen.add(language);\n }\n}\n\nfunction partitionSharedBlock<T extends object>(\n values: T[],\n): {\n shared: T;\n targetOverrides: Array<T | undefined>;\n} {\n const partition = partitionObjectValues(values as JsonObject[]);\n return {\n shared: partition.shared as T,\n targetOverrides: partition.overrides.map((override) =>\n Object.keys(override).length > 0 ? (override as T) : undefined,\n ),\n };\n}\n\nfunction partitionObjectValues(values: JsonObject[]): {\n shared: JsonObject;\n overrides: JsonObject[];\n} {\n const shared: JsonObject = {};\n const overrides = values.map((): JsonObject => ({}));\n const keys = new Set(values.flatMap((value) => Object.keys(value)));\n\n for (const key of keys) {\n const fieldValues = values.map((value) => value[key]);\n const presentOnEveryTarget = fieldValues.every((value) => value !== undefined);\n if (!presentOnEveryTarget) {\n fieldValues.forEach((value, index) => {\n if (value !== undefined) overrides[index]![key] = value;\n });\n continue;\n }\n\n if (fieldValues.every(isObject)) {\n const nested = partitionObjectValues(fieldValues);\n if (Object.keys(nested.shared).length > 0) shared[key] = nested.shared;\n nested.overrides.forEach((override, index) => {\n if (Object.keys(override).length > 0) overrides[index]![key] = override;\n });\n continue;\n }\n\n const first = fieldValues[0];\n if (fieldValues.every((value) => stableJson(value) === stableJson(first))) {\n shared[key] = first;\n } else {\n fieldValues.forEach((value, index) => {\n overrides[index]![key] = value;\n });\n }\n }\n\n return { shared, overrides };\n}\n\nfunction mapInvocation(\n generator: FernResolvedGeneratorInput,\n language: FernLanguage,\n activeLanguages: ReadonlySet<FernLanguage>,\n index: number,\n): InvocationMapping {\n const prefix = ['group', 'generators', index] as const;\n const state: MappingState = { consumedPaths: new Set<string>() };\n const config = isObject(generator.config) ? generator.config : {};\n const client: SdkConfigV1ClientConfigInput = {};\n const generation: SdkConfigV1GenerationConfigInput = {};\n const packageConfig: SdkConfigV1PackageConfig = {};\n\n mapCommonConfig(language, config, state, client, generation, packageConfig, [\n ...prefix,\n 'config',\n ]);\n const rawGenerator = isObject(generator.raw) ? generator.raw : undefined;\n const smartCasing =\n typeof rawGenerator?.['smart-casing'] === 'boolean'\n ? rawGenerator['smart-casing']\n : generator.smartCasing === false\n ? false\n : undefined;\n const smartCasingDigitWordBoundary =\n typeof rawGenerator?.['smart-casing-digit-word-boundary'] === 'boolean'\n ? rawGenerator['smart-casing-digit-word-boundary']\n : generator.smartCasingDigitWordBoundary === true\n ? true\n : undefined;\n if (smartCasing !== undefined || smartCasingDigitWordBoundary !== undefined) {\n generation.naming = {\n ...generation.naming,\n ...optional('smartCasing', smartCasing),\n ...optional('smartCasingDigitWordBoundary', smartCasingDigitWordBoundary),\n };\n }\n const targetGeneration = mapLanguageConfig(language, config, state, packageConfig, [\n ...prefix,\n 'config',\n ]);\n mapPublishMetadata(generator.publishMetadata, packageConfig);\n if (generator.keywords?.length) {\n generation.reservedKeywords = [...generator.keywords];\n }\n\n const settings = isObject(generator.settings) ? generator.settings : undefined;\n if (settings) {\n const inlinePathParameters = takeBoolean(settings, ['inlinePathParameters'], state, [\n ...prefix,\n 'settings',\n ]);\n if (inlinePathParameters !== undefined && client.pathParameterStyle === undefined) {\n client.pathParameterStyle = inlinePathParameters ? 'inline' : 'wrapped';\n }\n }\n\n const docs = mapReadme(generator.readme, language, activeLanguages, state, [...prefix, 'readme']);\n const unsupportedFields = [\n ...collectUnsupported(config, [...prefix, 'config'], state),\n ...(settings ? collectUnsupported(settings, [...prefix, 'settings'], state) : []),\n ...(isObject(generator.readme)\n ? collectUnsupported(generator.readme, [...prefix, 'readme'], state)\n : []),\n ...unsupportedResolvedFields(generator, index),\n ];\n return { client, docs, generation, package: packageConfig, targetGeneration, unsupportedFields };\n}\n\nfunction unsupportedResolvedFields(\n generator: FernResolvedGeneratorInput,\n index: number,\n): FernConfigMappingDiagnostic[] {\n const values: [string, unknown][] = [\n ['automation', isDefaultAutomation(generator.automation) ? undefined : generator.automation],\n ['containerImage', generator.containerImage],\n ['irVersionOverride', generator.irVersionOverride],\n ['idempotencyKeyGenerationConfig', generator.idempotencyKeyGenerationConfig],\n ['absolutePathToLocalSnippets', generator.absolutePathToLocalSnippets],\n [\n 'disableExamples',\n generator.disableExamples === false ? undefined : generator.disableExamples,\n ],\n ['apiOverride', generator.apiOverride],\n ];\n return values.flatMap(([field, value]) => {\n if (value === undefined) return [];\n const guidance = resolvedFieldGuidance(field);\n return [\n {\n code: 'FERN_RESOLVED_FIELD_UNSUPPORTED',\n severity: 'warning' as const,\n path: ['group', 'generators', index, field],\n reason: 'Resolved Fern field is not represented by SDK Config v1',\n ...optional('sdkConfigPath', guidance.sdkConfigPath),\n suggestedAction: guidance.suggestedAction,\n },\n ];\n });\n}\n\nfunction resolvedFieldGuidance(field: string): {\n sdkConfigPath?: (string | number)[];\n suggestedAction: string;\n} {\n if (field === 'absolutePathToLocalSnippets') {\n return {\n sdkConfigPath: ['docs', 'snippets', 'outputPath'],\n suggestedAction:\n 'Choose a portable relative snippet path and set docs.snippets.outputPath manually.',\n };\n }\n if (field === 'idempotencyKeyGenerationConfig') {\n return {\n suggestedAction:\n 'Preserve this orchestration setting outside SDK Config; public v1 has no idempotency-generation field.',\n };\n }\n return {\n suggestedAction:\n 'Review this Fern setting and preserve it outside SDK Config, or set an equivalent SDK Config field manually if one is introduced.',\n };\n}\n\nfunction isDefaultAutomation(value: unknown): boolean {\n return (\n isObject(value) &&\n value.generate === true &&\n value.upgrade === true &&\n value.preview === true &&\n value.verify === true\n );\n}\n\nfunction mapCommonConfig(\n language: FernLanguage,\n config: JsonObject,\n state: MappingState,\n client: SdkConfigV1ClientConfigInput,\n generation: SdkConfigV1GenerationConfigInput,\n packageConfig: SdkConfigV1PackageConfig,\n basePath: (string | number)[],\n): void {\n const inlinePath = takeBoolean(config, ['inlinePathParameters'], state, basePath);\n const inlineFile = takeBoolean(config, ['inlineFileProperties'], state, basePath);\n const inlineRequest = takeBoolean(config, ['inlineRequestParams'], state, basePath);\n if (inlinePath !== undefined) client.pathParameterStyle = inlinePath ? 'inline' : 'wrapped';\n if (inlineFile !== undefined) client.filePropertyStyle = inlineFile ? 'inline' : 'wrapped';\n if (inlineRequest !== undefined)\n client.requestParameterStyle = inlineRequest ? 'inline' : 'wrapped';\n\n const timeoutMs = takeTimeoutMs(config, state, basePath);\n if (timeoutMs !== undefined) client.timeoutMs = timeoutMs;\n const directSkipValidation = takeBoolean(\n config,\n ['skipResponseValidation', 'skipValidation'],\n state,\n basePath,\n );\n const pydanticConfig =\n language === 'python' ? takeObject(config, ['pydanticConfig'], state, basePath) : undefined;\n const nestedSkipValidation = pydanticConfig\n ? takeBoolean(pydanticConfig.value, ['skipValidation'], state, pydanticConfig.path)\n : undefined;\n const skipValidation = directSkipValidation ?? nestedSkipValidation;\n if (skipValidation !== undefined) client.responseValidation = !skipValidation;\n const useDefaults = takeBoolean(config, ['useDefaultRequestParameterValues'], state, basePath);\n if (useDefaults !== undefined) client.useDefaultRequestParameterValues = useDefaults;\n const respectOptionalBody = takeBoolean(config, ['respectOptionalRequestBody'], state, basePath);\n if (respectOptionalBody !== undefined) client.respectOptionalRequestBody = respectOptionalBody;\n\n const maxRetries = takeNumber(config, ['maxRetries'], state, basePath);\n const statusCodeProfile = takeEnum(\n config,\n ['retryStatusCodes'],\n ['legacy', 'recommended'],\n state,\n basePath,\n );\n if (maxRetries !== undefined || statusCodeProfile !== undefined) {\n client.retry = {\n ...(maxRetries === undefined ? {} : { maxAttempts: maxRetries + 1 }),\n ...optional('statusCodeProfile', statusCodeProfile),\n };\n }\n\n const naming = compact({\n pagerName: takeString(\n config,\n ['customPagerName', 'customPagerClassname', 'customPagerClassName'],\n state,\n basePath,\n ),\n clientName: takeString(config, ['clientName', 'clientClassName'], state, basePath),\n exportedClientName: takeString(\n config,\n ['exportedClientName', 'exportedClientClassName'],\n state,\n basePath,\n ),\n environmentTypeName: takeString(\n config,\n ['environmentClassName', 'environmentEnumName'],\n state,\n basePath,\n ),\n apiErrorName: takeString(config, ['baseApiExceptionClassName'], state, basePath),\n baseErrorName: takeString(config, ['baseExceptionClassName'], state, basePath),\n });\n if (Object.keys(naming).length) generation.naming = naming;\n\n const wireTests = takeBoolean(config, ['enableWireTests', 'generateWireTests'], state, basePath);\n if (wireTests !== undefined) generation.wireTests = { enabled: wireTests };\n const webSockets = takeBoolean(\n config,\n ['generateWebSocketClients', 'shouldGenerateWebsocketClients', 'enableWebsockets'],\n state,\n basePath,\n );\n if (webSockets !== undefined) generation.webSockets = webSockets;\n\n const inlineTypes = takeBoolean(config, ['enableInlineTypes'], state, basePath);\n const omitUndefined = takeBoolean(config, ['omitUndefined'], state, basePath);\n const forwardEnums = takeBoolean(config, ['enableForwardCompatibleEnums'], state, basePath);\n const serialization = compact({\n inlineTypes,\n omitUndefined,\n enumRepresentation:\n forwardEnums === undefined\n ? undefined\n : forwardEnums\n ? ('forward-compatible-enum' as const)\n : ('language-default' as const),\n });\n if (Object.keys(serialization).length) generation.serialization = serialization;\n\n const namespace = takeString(config, ['namespace', 'packagePrefix'], state, basePath);\n if (namespace !== undefined) packageConfig.namespace = namespace;\n const packagePath = takeString(config, ['packagePath'], state, basePath);\n if (packagePath !== undefined) generation.layout = { packagePath };\n mapDependencies(config, state, packageConfig, basePath);\n}\n\nfunction mapLanguageConfig(\n language: FernLanguage,\n config: JsonObject,\n state: MappingState,\n packageConfig: SdkConfigV1PackageConfig,\n basePath: (string | number)[],\n): JsonObject {\n switch (language) {\n case 'typescript':\n return mapTypescript(config, state, packageConfig, basePath);\n case 'mcp':\n return {\n ...mapTypescript(config, state, packageConfig, basePath),\n ...mapMcp(config, state, basePath),\n };\n case 'python':\n return mapPython(config, state, packageConfig, basePath);\n case 'java':\n case 'kotlin':\n return mapJvm(language, config, state, packageConfig, basePath);\n case 'go':\n return mapGo(config, state, packageConfig, basePath);\n case 'csharp':\n return mapCsharp(config, state, packageConfig, basePath);\n case 'php':\n return mapPhp(config, state, packageConfig, basePath);\n case 'ruby':\n return mapRuby(config, state, packageConfig, basePath);\n case 'rust':\n return mapRust(config, state, packageConfig, basePath);\n case 'swift':\n return compact({ moduleName: takeString(config, ['moduleName'], state, basePath) });\n case 'cli':\n return mapCli(config, state, packageConfig, basePath);\n case 'terraform':\n return mapTerraform(config, state, packageConfig, basePath);\n }\n}\n\nfunction mapTypescript(\n config: JsonObject,\n state: MappingState,\n packageConfig: SdkConfigV1PackageConfig,\n basePath: (string | number)[],\n): JsonObject {\n mapPackageManifest(config, ['packageJson'], state, packageConfig, basePath);\n const serdeLayer = takeBoolean(config, ['serdeLayer'], state, basePath);\n const noSerdeLayer = takeBoolean(config, ['noSerdeLayer'], state, basePath);\n const fetchSupport = takeEnum(config, ['fetchSupport'], ['native'], state, basePath);\n return compact({\n typescriptVersion: takeString(config, ['typescriptVersion'], state, basePath),\n zodVersion: takeString(config, ['zodVersion'], state, basePath),\n packageManager: takeEnum(config, ['packageManager'], ['pnpm', 'yarn'], state, basePath),\n testFramework: takeEnum(config, ['testFramework'], ['jest', 'vitest'], state, basePath),\n httpClient: fetchSupport === 'native' ? { name: 'fetch' } : undefined,\n bundle: takeBoolean(config, ['bundle'], state, basePath),\n exportClassDefault: takeBoolean(config, ['exportClassDefault'], state, basePath),\n namespaceExportName: takeString(\n config,\n ['namespaceExportName', 'namespaceExport'],\n state,\n basePath,\n ),\n allowCustomFetcher: takeBoolean(config, ['allowCustomFetcher'], state, basePath),\n useBrandedStringAliases: takeBoolean(config, ['useBrandedStringAliases'], state, basePath),\n useLegacyExports: takeBoolean(config, ['useLegacyExports'], state, basePath),\n useBigInt: takeBoolean(config, ['useBigInt'], state, basePath),\n serdeLayer: serdeLayer ?? (noSerdeLayer === undefined ? undefined : !noSerdeLayer),\n });\n}\n\nfunction mapPython(\n config: JsonObject,\n state: MappingState,\n packageConfig: SdkConfigV1PackageConfig,\n basePath: (string | number)[],\n): JsonObject {\n const moduleName = takeString(config, ['packageName'], state, basePath);\n const packageName = takeString(config, ['pypiPackageName'], state, basePath);\n if (moduleName !== undefined) packageConfig.moduleName = moduleName;\n if (packageName !== undefined) packageConfig.packageName = packageName;\n return compact({\n pythonVersion: takeString(config, ['pythonVersion', 'pyprojectPythonVersion'], state, basePath),\n pydanticVersion: takeString(config, ['pydanticVersion'], state, basePath),\n alwaysInitializeOptionals: takeBoolean(config, ['alwaysInitializeOptionals'], state, basePath),\n useTypedDictRequests: takeBoolean(config, ['useTypedDictRequests'], state, basePath),\n additionalInitExports: takePythonAdditionalInitExports(config, state, basePath),\n });\n}\n\nfunction mapJvm(\n language: 'java' | 'kotlin',\n config: JsonObject,\n state: MappingState,\n packageConfig: SdkConfigV1PackageConfig,\n basePath: (string | number)[],\n): JsonObject {\n const namespace = takeString(config, ['packageName', 'packagePrefix'], state, basePath);\n const groupId = takeString(config, ['group', 'groupId'], state, basePath);\n const artifactId = takeString(config, ['artifact', 'artifactId'], state, basePath);\n if (namespace !== undefined) packageConfig.namespace = namespace;\n if (groupId !== undefined) packageConfig.groupId = groupId;\n if (artifactId !== undefined) packageConfig.artifactId = artifactId;\n return compact({\n packageLayout: takeEnum(config, ['packageLayout'], ['flat', 'nested'], state, basePath),\n useLocalDateForDates: takeBoolean(config, ['useLocalDateForDates'], state, basePath),\n collapseOptionalNullable: takeBoolean(config, ['collapseOptionalNullable'], state, basePath),\n gradleDistributionUrl: takeString(config, ['gradleDistributionUrl'], state, basePath),\n gradlePluginManagement: takeString(config, ['gradlePluginManagement'], state, basePath),\n gradleCentralDependencyManagement: takeBoolean(\n config,\n ['gradleCentralDependencyManagement'],\n state,\n basePath,\n ),\n asyncStyle: takeEnum(\n config,\n ['asyncStyle'],\n ['dedicated-client', 'twin-methods'],\n state,\n basePath,\n ),\n ...(language === 'java'\n ? {\n includeKotlinSnippets: takeBoolean(config, ['includeKotlinSnippets'], state, basePath),\n }\n : {}),\n });\n}\n\nfunction mapGo(\n config: JsonObject,\n state: MappingState,\n packageConfig: SdkConfigV1PackageConfig,\n basePath: (string | number)[],\n): JsonObject {\n const module = takeObject(config, ['module'], state, basePath);\n const modulePath = module\n ? takeGoModulePath(module.value, ['path'], state, module.path)\n : undefined;\n const packageName = takeString(config, ['packageName'], state, basePath);\n if (modulePath !== undefined) packageConfig.modulePath = modulePath;\n if (packageName !== undefined) packageConfig.packageName = packageName;\n return compact({\n legacyComplexModels: takeBoolean(config, ['legacyComplexModels'], state, basePath),\n unionVersion: takeEnum(config, ['union'], ['v0', 'v1'], state, basePath),\n includeLegacyClientOptions: takeBoolean(\n config,\n ['includeLegacyClientOptions'],\n state,\n basePath,\n ),\n clientConstructorName: takeString(config, ['clientConstructorName'], state, basePath),\n });\n}\n\nfunction mapCsharp(\n config: JsonObject,\n state: MappingState,\n packageConfig: SdkConfigV1PackageConfig,\n basePath: (string | number)[],\n): JsonObject {\n const packageName = takeString(config, ['packageId'], state, basePath);\n if (packageName !== undefined) packageConfig.packageName = packageName;\n return compact({\n useOptionalWrapper: takeBoolean(config, ['useOptionalWrapper'], state, basePath),\n simplifyObjectDictionaries: takeBoolean(\n config,\n ['simplifyObjectDictionaries'],\n state,\n basePath,\n ),\n explicitNamespaces: takeBoolean(config, ['explicitNamespaces'], state, basePath),\n rootNamespaceForCoreClasses: takeBoolean(\n config,\n ['rootNamespaceForCoreClasses'],\n state,\n basePath,\n ),\n includeExceptionHandler: takeBoolean(config, ['includeExceptionHandler'], state, basePath),\n experimentalExplicitNullableOptional: takeBoolean(\n config,\n ['experimentalExplicitNullableOptional'],\n state,\n basePath,\n ),\n });\n}\n\nfunction mapPhp(\n config: JsonObject,\n state: MappingState,\n packageConfig: SdkConfigV1PackageConfig,\n basePath: (string | number)[],\n): JsonObject {\n mapPackageManifest(config, ['composerJson'], state, packageConfig, basePath);\n const packageName = takeString(config, ['packageName'], state, basePath);\n if (packageName !== undefined) packageConfig.packageName = packageName;\n return compact({\n propertyAccess: takeEnum(config, ['propertyAccess'], ['public', 'private'], state, basePath),\n generateClientInterfaces: takeBoolean(config, ['generateClientInterfaces'], state, basePath),\n });\n}\n\nfunction mapRuby(\n config: JsonObject,\n state: MappingState,\n packageConfig: SdkConfigV1PackageConfig,\n basePath: (string | number)[],\n): JsonObject {\n const moduleName = takeString(config, ['moduleName'], state, basePath);\n if (moduleName !== undefined) packageConfig.moduleName = moduleName;\n return compact({ requirePaths: takeStringArray(config, ['requirePaths'], state, basePath) });\n}\n\nfunction mapRust(\n config: JsonObject,\n state: MappingState,\n packageConfig: SdkConfigV1PackageConfig,\n basePath: (string | number)[],\n): JsonObject {\n const packageName = takeString(config, ['crateName'], state, basePath);\n const repository = takeString(config, ['packageRepository'], state, basePath);\n const description = takeString(config, ['packageDescription'], state, basePath);\n const documentationUrl = takeString(config, ['packageDocumentation'], state, basePath);\n Object.assign(packageConfig, compact({ packageName, repository, description, documentationUrl }));\n return compact({\n dateTimeType: takeEnum(config, ['dateTimeType'], ['offset', 'utc'], state, basePath),\n capitalizeInitialisms: takeBoolean(config, ['capitalizeInitialisms'], state, basePath),\n features: takeStringArrayRecord(config, ['features'], state, basePath),\n defaultFeatures: takeStringArray(config, ['defaultFeatures'], state, basePath),\n });\n}\n\nfunction mapCli(\n config: JsonObject,\n state: MappingState,\n packageConfig: SdkConfigV1PackageConfig,\n basePath: (string | number)[],\n): JsonObject {\n const identity = takeObject(config, ['packageIdentity'], state, basePath);\n if (identity) {\n Object.assign(\n packageConfig,\n compact({\n packageName: takeString(identity.value, ['name'], state, identity.path),\n repository: takeString(identity.value, ['repository'], state, identity.path),\n description: takeString(identity.value, ['description'], state, identity.path),\n }),\n );\n }\n return compact({\n paginationParameters: takeStringArray(config, ['paginationParameters'], state, basePath),\n skills: takeBoolean(config, ['skills'], state, basePath),\n });\n}\n\nfunction mapTerraform(\n config: JsonObject,\n state: MappingState,\n packageConfig: SdkConfigV1PackageConfig,\n basePath: (string | number)[],\n): JsonObject {\n const providerModulePath = takeString(\n config,\n ['providerModulePath', 'providerGoModuleName'],\n state,\n basePath,\n );\n if (providerModulePath !== undefined) packageConfig.modulePath = providerModulePath;\n return compact({\n providerName: takeString(config, ['providerName'], state, basePath),\n providerVersion: takeString(config, ['providerVersion'], state, basePath),\n providerModulePath,\n mockAcceptance: takeBoolean(config, ['mockAcceptance'], state, basePath),\n hideComputedDiff: takeBoolean(config, ['hideComputedDiff'], state, basePath),\n });\n}\n\nfunction mapMcp(\n config: JsonObject,\n state: MappingState,\n basePath: (string | number)[],\n): JsonObject {\n return compact({\n serverName: takeString(config, ['serverName'], state, basePath),\n serverDescription: takeString(config, ['serverDescription'], state, basePath),\n excludeAvailability: takeEnumArray(\n config,\n ['excludeAvailability'],\n [\n 'IN_DEVELOPMENT',\n 'PRE_RELEASE',\n 'GENERAL_AVAILABILITY',\n 'DEPRECATED',\n 'ALPHA',\n 'BETA',\n 'PREVIEW',\n 'LEGACY',\n ],\n state,\n basePath,\n ),\n tools: takeToolFilter(config, ['tools'], state, basePath),\n toolsets: takeToolsets(config, ['toolsets'], state, basePath),\n });\n}\n\nfunction mapReadme(\n value: unknown,\n language: FernLanguage,\n activeLanguages: ReadonlySet<FernLanguage>,\n state: MappingState,\n basePath: (string | number)[],\n): SdkConfigV1DocsConfig {\n if (!isObject(value)) return {};\n const readme = compact({\n apiName: takeString(value, ['apiName'], state, basePath),\n introduction: takeString(value, ['introduction'], state, basePath),\n apiReferenceLink: takeString(value, ['apiReferenceLink'], state, basePath),\n bannerLink: takeString(value, ['bannerLink'], state, basePath),\n disabledSections: takeStringArray(value, ['disabledSections'], state, basePath),\n customSections: takeCustomSections(value, language, activeLanguages, state, basePath),\n defaultEndpoint: takeReadmeEndpoint(value, ['defaultEndpoint'], state, basePath),\n features: takeReadmeFeatures(value, state, basePath),\n });\n return Object.keys(readme).length ? { readme } : {};\n}\n\nfunction mapPublishMetadata(value: unknown, packageConfig: SdkConfigV1PackageConfig): void {\n if (!isObject(value)) return;\n const publisherName = stringValue(value.publisherName);\n const publisherEmail = stringValue(value.publisherEmail);\n Object.assign(\n packageConfig,\n compact({\n description: stringValue(value.packageDescription),\n documentationUrl: stringValue(value.referenceUrl),\n authors: publisherName\n ? [{ name: publisherName, ...optional('email', publisherEmail) }]\n : undefined,\n }),\n );\n}\n\nfunction mapDependencies(\n config: JsonObject,\n state: MappingState,\n packageConfig: SdkConfigV1PackageConfig,\n basePath: (string | number)[],\n): void {\n for (const field of [\n 'extraDependencies',\n 'extraDevDependencies',\n 'extraPeerDependencies',\n ] as const) {\n const located = takeObject(config, [field], state, basePath);\n if (!located) continue;\n const dependencies = Object.entries(located.value).flatMap(([name, dependency]) =>\n mapDependency(name, dependency, state, [...located.path, name]),\n );\n if (dependencies.length) packageConfig[field] = dependencies;\n }\n}\n\nfunction mapDependency(\n name: string,\n value: unknown,\n state: MappingState,\n path: (string | number)[],\n): SdkConfigV1Dependency[] {\n if (typeof value === 'string' && value) {\n consume(state, path);\n return [{ name, version: value }];\n }\n if (!isObject(value)) return [];\n const version = takeString(value, ['version'], state, path);\n const gitUrl = takeString(value, ['git'], state, path);\n const localPath = takeString(value, ['path'], state, path);\n const source = gitUrl\n ? {\n type: 'git' as const,\n url: gitUrl,\n ...optional('ref', takeString(value, ['ref'], state, path)),\n }\n : localPath\n ? { type: 'path' as const, path: localPath }\n : undefined;\n if (!version && !source) return [];\n return [\n {\n name,\n ...optional('version', version),\n ...optional('source', source),\n ...optional('packageName', takeString(value, ['package'], state, path)),\n ...optional('features', takeStringArray(value, ['features'], state, path)),\n ...optional('extras', takeStringArray(value, ['extras'], state, path)),\n ...optional('optional', takeBoolean(value, ['optional'], state, path)),\n ...optional('defaultFeatures', takeBoolean(value, ['defaultFeatures'], state, path)),\n ...optional('environmentMarker', takeString(value, ['python'], state, path)),\n },\n ];\n}\n\nfunction takeCustomSections(\n value: JsonObject,\n language: FernLanguage,\n activeLanguages: ReadonlySet<FernLanguage>,\n state: MappingState,\n basePath: (string | number)[],\n) {\n const located = locate(value, ['customSections'], basePath);\n if (!located || !Array.isArray(located.value)) return undefined;\n const sections = located.value.flatMap((section, index) => {\n if (\n !isObject(section) ||\n typeof section.title !== 'string' ||\n section.title.length === 0 ||\n typeof section.content !== 'string'\n ) {\n return [];\n }\n const sectionLanguage = section.language;\n if (\n sectionLanguage !== undefined &&\n (typeof sectionLanguage !== 'string' ||\n !isFernLanguage(sectionLanguage) ||\n !activeLanguages.has(sectionLanguage))\n ) {\n return [];\n }\n consume(state, [...located.path, index]);\n return sectionLanguage === undefined || sectionLanguage === language\n ? [{ title: section.title, content: section.content }]\n : [];\n });\n return sections.length > 0 ? sections : undefined;\n}\n\nfunction mapPackageManifest(\n config: JsonObject,\n aliases: string[],\n state: MappingState,\n packageConfig: SdkConfigV1PackageConfig,\n basePath: (string | number)[],\n): void {\n const manifest = takeObject(config, aliases, state, basePath);\n if (!manifest) return;\n const packageName = takeString(manifest.value, ['name'], state, manifest.path);\n const description = takeString(manifest.value, ['description'], state, manifest.path);\n const license = takeString(manifest.value, ['license'], state, manifest.path);\n const author = takeObject(manifest.value, ['author'], state, manifest.path);\n const authorName = author ? takeString(author.value, ['name'], state, author.path) : undefined;\n const authors =\n authorName && author\n ? [\n compact({\n name: authorName,\n email: takeString(author.value, ['email'], state, author.path),\n url: takeString(author.value, ['url'], state, author.path),\n }),\n ]\n : undefined;\n Object.assign(\n packageConfig,\n compact({\n packageName,\n description,\n authors,\n license: license ? { type: license } : undefined,\n }),\n );\n}\n\nfunction takePythonAdditionalInitExports(\n config: JsonObject,\n state: MappingState,\n basePath: (string | number)[],\n) {\n const located = locate(config, ['additionalInitExports'], basePath);\n if (!located || !Array.isArray(located.value)) return undefined;\n const exports = located.value.flatMap((entry) => {\n if (!isObject(entry)) return [];\n const from = stringValue(entry.from);\n const imports = stringArrayValue(entry.imports);\n return from && imports?.length ? [{ from, imports }] : [];\n });\n if (exports.length !== located.value.length) return undefined;\n consume(state, located.path);\n return exports;\n}\n\nfunction takeReadmeEndpoint(\n value: JsonObject,\n aliases: string[],\n state: MappingState,\n basePath: (string | number)[],\n) {\n const located = locate(value, aliases, basePath);\n if (!located) return undefined;\n const endpoint = parseReadmeEndpoint(located.value);\n if (endpoint) consume(state, located.path);\n return endpoint;\n}\n\nfunction takeReadmeFeatures(value: JsonObject, state: MappingState, basePath: (string | number)[]) {\n const located = locate(value, ['features'], basePath);\n if (!located || !isObject(located.value)) return undefined;\n const features: Record<string, ReadmeEndpoint[]> = {};\n for (const [name, endpoints] of Object.entries(located.value)) {\n if (!Array.isArray(endpoints)) return undefined;\n const parsed = endpoints.map(parseReadmeEndpoint);\n if (parsed.some((endpoint) => !endpoint)) return undefined;\n features[name] = parsed as ReadmeEndpoint[];\n }\n consume(state, located.path);\n return features;\n}\n\nfunction parseReadmeEndpoint(value: unknown): ReadmeEndpoint | undefined {\n if (typeof value === 'string') {\n const match = /^(GET|POST|PUT|PATCH|DELETE|HEAD|OPTIONS|TRACE|CONNECT)\\s+(\\/\\S*)$/.exec(\n value.trim(),\n );\n return match\n ? { method: match[1] as ReadmeEndpoint['method'], path: match[2] as string }\n : undefined;\n }\n if (!isObject(value) || typeof value.method !== 'string' || typeof value.path !== 'string') {\n return undefined;\n }\n const method = value.method.toUpperCase();\n if (\n !['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS', 'TRACE', 'CONNECT'].includes(\n method,\n )\n ) {\n return undefined;\n }\n return {\n method: method as ReadmeEndpoint['method'],\n path: value.path,\n ...optional('stream', typeof value.stream === 'boolean' ? value.stream : undefined),\n };\n}\n\nfunction takeToolFilter(\n value: JsonObject,\n aliases: string[],\n state: MappingState,\n basePath: (string | number)[],\n) {\n const located = takeObject(value, aliases, state, basePath);\n if (!located) return undefined;\n const filter = compact({\n include: stringArrayValue(located.value.include),\n exclude: stringArrayValue(located.value.exclude),\n });\n if (Object.keys(filter).length === 0 && Object.keys(located.value).length > 0) return undefined;\n consume(state, located.path);\n return filter;\n}\n\nfunction takeToolsets(\n value: JsonObject,\n aliases: string[],\n state: MappingState,\n basePath: (string | number)[],\n) {\n const located = takeObject(value, aliases, state, basePath);\n if (!located) return undefined;\n const entries = Object.entries(located.value).map(([name, filter]) => {\n if (name === 'default' || !/^[a-z0-9-]+$/.test(name)) {\n fail(\n 'FERN_MCP_TOOLSET_NAME_INVALID',\n [...located.path, name],\n `MCP toolset name \"${name}\" is not valid in SDK Config v1`,\n 'Rename the toolset to lowercase letters, numbers, or hyphens; \"default\" is reserved.',\n ['targets', basePath[2]!, 'generation', 'toolsets', name],\n );\n }\n if (!isObject(filter)) return undefined;\n return [\n name,\n compact({\n include: stringArrayValue(filter.include),\n exclude: stringArrayValue(filter.exclude),\n }),\n ] as const;\n });\n if (entries.some((entry) => !entry)) return undefined;\n consume(state, located.path);\n return Object.fromEntries(entries.filter((entry) => entry !== undefined));\n}\n"]}