@postman/sdk-config 0.13.0 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/sdk-config-domain/v1/common.ts","../../../src/sdk-config-domain/v1/webhook.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/distribution.ts","../../../src/sdk-config/v1/diagnostics.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-domain/v1/language/cli.ts","../../../src/sdk-config/v1/fern-config-mapper-cli.ts","../../../src/sdk-config/v1/fern-config-mapper-cli-distribution.ts","../../../src/sdk-config/v1/fern-config-mapper-output.ts","../../../src/sdk-config/v1/package.ts","../../../src/sdk-config/v1/fern-config-mapper-package.ts","../../../src/schema/forward-compatible.ts","../../../src/sdk-config-domain/v1/generation.ts","../../../src/sdk-config/v1/generation.ts","../../../src/sdk-config/v1/output.ts","../../../src/sdk-config/v1/replay.ts","../../../src/sdk-config-domain/v1/source.ts","../../../src/sdk-config/v1/source.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","teams","users","docs"],"mappings":"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","file":"index.js","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\n/**\n * How an API signs the webhooks it sends, so a generated SDK can ship a verification helper.\n *\n * Declared once for the whole API rather than per webhook. Providers that sign every webhook\n * identically often do not model the webhooks themselves at all — ElevenLabs' published OpenAPI has\n * no `webhooks` section, and Twilio's is OpenAPI 3.0.1, where the section does not exist — so there\n * is no per-webhook place to hang this. Mirrors Fern's `api.settings.webhook-signature`\n * (fern-api/fern#17857), whose IR field the SDK generators consume (fern-api/fern#17866).\n *\n * Only HMAC today. Fern's schema also admits an `asymmetric` type (RSA/ECDSA/Ed25519, static key or\n * JWKS); keeping this a discriminated union on `type` means adding it later is additive.\n */\n\nconst hashAlgorithmSchema = z.enum(['sha1', 'sha256', 'sha384', 'sha512']);\n\nconst encodingSchema = z.enum(['base64', 'hex']);\n\n/**\n * A segment of the string the HMAC is computed over, concatenated in declaration order.\n * `notification-url` is required alongside a body-hash binding, whose hash travels in that URL.\n */\nconst payloadComponentSchema = z.enum(['body', 'timestamp', 'notification-url', 'message-id']);\n\nconst payloadFormatSchema = z.strictObject({\n components: z\n .array(payloadComponentSchema)\n .min(1)\n .describe('Payload components concatenated in declaration order before signing.'),\n delimiter: z.string().optional().describe('The delimiter inserted between payload components.'),\n /**\n * Set when the body is a form-encoded parameter map that must be canonicalized before signing:\n * keys sorted, each key's values deduped and sorted, concatenated as key-value pairs.\n */\n bodySort: z\n .literal('alphabetical')\n .optional()\n .describe('Canonicalizes form body keys and values alphabetically before signing.'),\n});\n\nconst timestampSchema = z.strictObject({\n header: nonEmptyStringSchema.describe('The request header containing the signing timestamp.'),\n format: z\n .enum(['unix-seconds', 'unix-millis', 'iso8601'])\n .optional()\n .describe('The timestamp format used in the signature payload.'),\n /** Replay window in seconds. */\n tolerance: z\n .number()\n .positive()\n .optional()\n .describe('The maximum accepted timestamp age, in seconds.'),\n});\n\n/** A union so a header location can be added without a breaking change. */\nconst bodyHashLocationSchema = z.discriminatedUnion('type', [\n z.strictObject({\n type: z.literal('query-parameter').describe('Reads the body hash from a query parameter.'),\n name: nonEmptyStringSchema.describe('The query parameter containing the body hash.'),\n }),\n]);\n\n/**\n * For a provider that transmits `hash(rawBody)` out of band instead of folding the body into the\n * signed payload — Twilio's JSON webhooks put it in the notification URL as `?bodySHA256=...` and\n * sign that URL. Verification becomes two checks, and both must pass. The algorithm and encoding\n * here are independent of the outer HMAC's: Twilio signs SHA1/base64 over a SHA256/hex body hash.\n */\nconst bodyHashBindingSchema = z.strictObject({\n algorithm: hashAlgorithmSchema.describe('The hash algorithm applied to the raw request body.'),\n encoding: encodingSchema.optional().describe('The encoding used for the body hash.'),\n location: bodyHashLocationSchema.describe('Where the expected body hash is read from.'),\n});\n\n/**\n * For providers inconsistent about the form of the URL they signed. When set, verification tries each\n * candidate form of the notification URL and succeeds if any one matches.\n */\nconst urlNormalizationSchema = z\n .strictObject({\n /** Try the URL with and without an explicit default port. */\n portVariants: z\n .boolean()\n .optional()\n .describe('Whether verification tries URLs with and without an explicit default port.'),\n /** Try the URL with the pre-RFC3986 query encoding (`+` for space, unescaped `*`). */\n legacyQueryEncoding: z\n .boolean()\n .optional()\n .describe('Whether verification also tries legacy form-style query encoding.'),\n })\n // Rejects `{}` as well as an explicit `false, false`: a block enabling nothing would silently do\n // nothing, and an empty one is the likelier way to write it by mistake.\n .refine(\n ({ portVariants, legacyQueryEncoding }) =>\n portVariants === true || legacyQueryEncoding === true,\n { message: 'url normalization must enable at least one variant' },\n );\n\nexport const webhookSignatureSchema = z.discriminatedUnion('type', [\n z.strictObject({\n type: z.literal('hmac').describe('Identifies HMAC webhook signature verification.'),\n /** Request header carrying the signature. */\n header: nonEmptyStringSchema.describe('The request header containing the signature.'),\n algorithm: hashAlgorithmSchema.optional().describe('The HMAC hash algorithm.'),\n encoding: encodingSchema.optional().describe('The encoding used for the HMAC signature.'),\n /** Stripped from the header value before comparison, e.g. `sha256=`. */\n signaturePrefix: z\n .string()\n .optional()\n .describe('A prefix removed from the signature header before comparison.'),\n payloadFormat: payloadFormatSchema\n .optional()\n .describe('How the payload signed by the provider is assembled.'),\n timestamp: timestampSchema\n .optional()\n .describe('Timestamp validation included in signature verification.'),\n bodyHashBinding: bodyHashBindingSchema\n .optional()\n .describe('A separately transmitted hash that binds the raw body to the signed payload.'),\n urlNormalization: urlNormalizationSchema\n .optional()\n .describe('Alternate notification URL forms accepted during verification.'),\n }),\n]);\n\nexport type WebhookSignatureInput = z.input<typeof webhookSignatureSchema>;\nexport type WebhookSignature = z.output<typeof webhookSignatureSchema>;\n","import { z } from 'zod';\nimport { nonEmptyStringSchema } from './common';\nimport { webhookSignatureSchema } from './webhook';\n\nconst authVariableSchema = z.strictObject({\n name: nonEmptyStringSchema.optional().describe('The parameter name exposed by the SDK.'),\n environmentVariable: nonEmptyStringSchema\n .optional()\n .describe('The environment variable used to populate the parameter.'),\n description: z\n .string()\n .optional()\n .describe(\n 'A description of the authentication parameter included in generated SDK documentation.',\n ),\n omit: z.boolean().optional().describe('Whether the parameter is omitted from the SDK surface.'),\n});\n\nconst apiKeyAuthSchema = z.strictObject({\n id: nonEmptyStringSchema.describe('A unique identifier for this authentication scheme.'),\n type: z.literal('api-key').describe('Identifies an API key authentication scheme.'),\n location: z\n .enum(['header', 'query', 'cookie'])\n .describe('Where the API key is sent on requests.'),\n name: nonEmptyStringSchema.describe('The header, query parameter, or cookie name.'),\n prefix: nonEmptyStringSchema.optional().describe('A prefix added before the API key value.'),\n environmentVariable: nonEmptyStringSchema\n .optional()\n .describe('The default environment variable for the API key.'),\n description: z\n .string()\n .optional()\n .describe(\n 'A description of the authentication scheme included in generated SDK documentation.',\n ),\n});\n\nconst bearerAuthSchema = z.strictObject({\n id: nonEmptyStringSchema.describe('A unique identifier for this authentication scheme.'),\n type: z.literal('bearer').describe('Identifies a bearer token authentication scheme.'),\n header: nonEmptyStringSchema\n .optional()\n .describe('The request header that carries the bearer token.'),\n prefix: nonEmptyStringSchema.optional().describe('The token prefix, such as \"Bearer\".'),\n environmentVariable: nonEmptyStringSchema\n .optional()\n .describe('The default environment variable for the bearer token.'),\n description: z\n .string()\n .optional()\n .describe(\n 'A description of the authentication scheme included in generated SDK documentation.',\n ),\n});\n\nconst basicAuthSchema = z.strictObject({\n id: nonEmptyStringSchema.describe('A unique identifier for this authentication scheme.'),\n type: z.literal('basic').describe('Identifies an HTTP Basic authentication scheme.'),\n username: authVariableSchema.optional().describe('The username parameter exposed by the SDK.'),\n password: authVariableSchema.optional().describe('The password parameter exposed by the SDK.'),\n description: z\n .string()\n .optional()\n .describe(\n 'A description of the authentication scheme included in generated SDK documentation.',\n ),\n});\n\nconst oauthScopeSchema = z.strictObject({\n name: nonEmptyStringSchema.describe('The OAuth scope value requested from the provider.'),\n description: z\n .string()\n .optional()\n .describe('A description of the OAuth scope included in generated SDK documentation.'),\n});\n\n/**\n * A public client identifier (RFC 6749 §2.2) is baked into generated code, unlike the scheme-level\n * `clientId`/`clientSecret` parameters, which are supplied by the SDK caller at runtime. Environment\n * expressions are rejected because this value is never resolved: it is copied verbatim.\n */\nconst publicClientIdSchema = nonEmptyStringSchema\n .refine((value) => value.trim() === value, {\n message: 'must not have leading or trailing whitespace',\n })\n .refine((value) => !value.includes('${'), {\n message: 'must be a literal public client ID, not an environment expression',\n });\n\nconst oauthFlowSchema = z.discriminatedUnion('type', [\n z.strictObject({\n type: z.literal('authorization-code').describe('Uses the OAuth authorization code flow.'),\n authorizationUrl: nonEmptyStringSchema.describe('The URL used to authorize the client.'),\n tokenUrl: nonEmptyStringSchema.describe('The URL used to exchange a code for tokens.'),\n refreshUrl: nonEmptyStringSchema.optional().describe('The URL used to refresh access tokens.'),\n scopes: z.array(oauthScopeSchema).optional().describe('The scopes supported by this flow.'),\n clientId: publicClientIdSchema\n .optional()\n .describe(\n 'The public, non-secret OAuth client ID that generated interactive login flows, such as ' +\n 'CLI browser login with PKCE, send to the authorization and token endpoints. It is ' +\n 'embedded verbatim in generated code, so it must never be a client secret.',\n ),\n }),\n z.strictObject({\n type: z.literal('client-credentials').describe('Uses the OAuth client credentials flow.'),\n tokenUrl: nonEmptyStringSchema.describe('The URL used to obtain access tokens.'),\n refreshUrl: nonEmptyStringSchema.optional().describe('The URL used to refresh access tokens.'),\n scopes: z.array(oauthScopeSchema).optional().describe('The scopes supported by this flow.'),\n }),\n z.strictObject({\n type: z.literal('implicit').describe('Uses the OAuth implicit flow.'),\n authorizationUrl: nonEmptyStringSchema.describe('The URL used to authorize the client.'),\n refreshUrl: nonEmptyStringSchema.optional().describe('The URL used to refresh access tokens.'),\n scopes: z.array(oauthScopeSchema).optional().describe('The scopes supported by this flow.'),\n }),\n z.strictObject({\n type: z.literal('password').describe('Uses the OAuth resource owner password flow.'),\n tokenUrl: nonEmptyStringSchema.describe('The URL used to obtain access tokens.'),\n refreshUrl: nonEmptyStringSchema.optional().describe('The URL used to refresh access tokens.'),\n scopes: z.array(oauthScopeSchema).optional().describe('The scopes supported by this flow.'),\n }),\n]);\n\nconst oauth2AuthSchema = z.strictObject({\n id: nonEmptyStringSchema.describe('A unique identifier for this authentication scheme.'),\n type: z.literal('oauth2').describe('Identifies an OAuth 2.0 authentication scheme.'),\n flows: z.array(oauthFlowSchema).min(1).describe('The OAuth flows supported by the API.'),\n clientId: authVariableSchema\n .optional()\n .describe('The OAuth client ID parameter exposed by the SDK.'),\n clientSecret: authVariableSchema\n .optional()\n .describe('The OAuth client secret parameter exposed by the SDK.'),\n tokenHeader: nonEmptyStringSchema\n .optional()\n .describe('The request header that carries the OAuth access token.'),\n tokenPrefix: nonEmptyStringSchema\n .optional()\n .describe('The prefix added before the OAuth access token.'),\n refreshBufferSeconds: z\n .number()\n .nonnegative()\n .optional()\n .describe('How early, in seconds, the client refreshes a token before it expires.'),\n description: z\n .string()\n .optional()\n .describe(\n 'A description of the authentication scheme included in generated SDK documentation.',\n ),\n});\n\nconst customAuthParameterSchema = z.strictObject({\n location: z\n .enum(['header', 'query', 'cookie'])\n .describe('Where the custom authentication value is sent.'),\n name: nonEmptyStringSchema.describe('The header, query parameter, or cookie name.'),\n prefix: nonEmptyStringSchema.optional().describe('A prefix added before the parameter value.'),\n environmentVariable: nonEmptyStringSchema\n .optional()\n .describe('The default environment variable for the parameter.'),\n});\n\nconst customAuthSchema = z.strictObject({\n id: nonEmptyStringSchema.describe('A unique identifier for this authentication scheme.'),\n type: z.literal('custom').describe('Identifies a custom authentication scheme.'),\n parameters: z\n .array(customAuthParameterSchema)\n .min(1)\n .describe('The request parameters that implement the custom scheme.'),\n description: z\n .string()\n .optional()\n .describe(\n 'A description of the authentication scheme included in generated SDK documentation.',\n ),\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\n .array(nonEmptyStringSchema)\n .min(1)\n .describe('Scheme identifiers that must be satisfied together.'),\n});\n\nexport const authConfigSchema = z\n .strictObject({\n schemes: z\n .array(authSchemeSchema)\n .min(1)\n .describe('Authentication schemes offered by the API.'),\n requirements: z\n .array(authRequirementSchema)\n .optional()\n .describe('Valid combinations of authentication schemes.'),\n endpointSecurity: z\n .boolean()\n .optional()\n .describe('Whether generated endpoints expose their individual security requirements.'),\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.describe('The display name for this environment URL.'),\n url: nonEmptyStringSchema.describe('The base URL used for this environment entry.'),\n serverName: nonEmptyStringSchema\n .optional()\n .describe('The source server represented by this URL.'),\n});\n\nconst environmentSchema = z.strictObject({\n name: nonEmptyStringSchema.describe('The environment name exposed by the SDK.'),\n urls: z\n .array(environmentUrlSchema)\n .min(1)\n .describe('The base URLs available in this environment.'),\n description: z\n .string()\n .optional()\n .describe('A description of the environment included in generated SDK documentation.'),\n});\n\nconst headerSchema = z.strictObject({\n name: nonEmptyStringSchema.describe('The HTTP header name.'),\n value: z.string().optional().describe('A fixed value for the generated header.'),\n description: z\n .string()\n .optional()\n .describe('A description of the header included in generated SDK documentation.'),\n environmentVariable: nonEmptyStringSchema\n .optional()\n .describe('The environment variable used to populate the header.'),\n});\n\nconst environmentVariableSchema = z.strictObject({\n name: nonEmptyStringSchema.describe('The environment variable name exposed by the SDK.'),\n description: z\n .string()\n .optional()\n .describe('A description of the environment variable included in generated SDK documentation.'),\n defaultValue: z\n .string()\n .optional()\n .describe('The default value used when the variable is unset.'),\n});\n\nexport const apiConfigSchema = z.strictObject({\n baseUrl: z.string().default('').describe('The default base URL used by the generated client.'),\n environments: z\n .array(environmentSchema)\n .default([])\n .describe('Named API environments and their base URLs.'),\n environmentVariables: z\n .array(environmentVariableSchema)\n .default([])\n .describe('Environment variables exposed through generated client configuration.'),\n defaultEnvironment: nonEmptyStringSchema\n .optional()\n .describe('The environment selected when a caller does not choose one.'),\n auth: authConfigSchema.optional().describe('Authentication supported by the API.'),\n headers: z.array(headerSchema).optional().describe('Headers added to generated API requests.'),\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\n .array(nonEmptyStringSchema)\n .optional()\n .describe('Named API audiences included in the generated SDK.'),\n /**\n * How the API signs the webhooks it sends, enabling a generated verification helper. API-wide, and\n * independent of whether any webhook is modeled — see {@link webhookSignatureSchema}.\n */\n webhookSignature: webhookSignatureSchema\n .optional()\n .describe('How generated helpers verify webhook signatures from the API.'),\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';\nimport { webhookSignatureSchema } from '../../sdk-config-domain/v1/webhook';\n\nexport const sdkConfigV1AuthSchemeSchema = authSchemeSchema;\nexport const sdkConfigV1AuthConfigSchema = authConfigSchema;\nexport const sdkConfigV1ApiConfigSchema = apiConfigSchema;\nexport const sdkConfigV1WebhookSignatureSchema = webhookSignatureSchema;\n\nexport type SdkConfigV1ApiConfigInput = z.input<typeof sdkConfigV1ApiConfigSchema>;\nexport type SdkConfigV1ApiConfig = z.output<typeof sdkConfigV1ApiConfigSchema>;\nexport type SdkConfigV1WebhookSignatureInput = z.input<typeof sdkConfigV1WebhookSignatureSchema>;\nexport type SdkConfigV1WebhookSignature = z.output<typeof sdkConfigV1WebhookSignatureSchema>;\n","import { z } from 'zod';\nimport { nonEmptyStringSchema } from './common';\n\nconst retryOverrideShape = {\n enabled: z.boolean().optional().describe('Whether the generated client retries failed requests.'),\n maxAttempts: z\n .number()\n .int()\n .min(1)\n .optional()\n .describe('The maximum total request attempts, including the initial attempt.'),\n retryDelayMs: z\n .number()\n .nonnegative()\n .optional()\n .describe('The initial delay between retry attempts, in milliseconds.'),\n maxDelayMs: z\n .number()\n .nonnegative()\n .optional()\n .describe('The maximum backoff delay between attempts, in milliseconds.'),\n jitterMs: z\n .number()\n .nonnegative()\n .optional()\n .describe('The maximum random jitter added to retry delays, in milliseconds.'),\n backoffFactor: z\n .number()\n .positive()\n .optional()\n .describe('The multiplier applied to the delay after each failed attempt.'),\n statusCodes: z\n .array(z.number().int().min(100).max(599))\n .optional()\n .describe('HTTP status codes that are eligible for retries.'),\n methods: z\n .array(nonEmptyStringSchema)\n .optional()\n .describe('HTTP methods that are eligible for retries.'),\n statusCodeProfile: z\n .enum(['legacy', 'recommended'])\n .optional()\n .describe('The built-in retryable status-code policy.'),\n maxRetryAfterDelayMs: z\n .number()\n .nonnegative()\n .optional()\n .describe('The longest Retry-After delay the client will honor, in milliseconds.'),\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\n .boolean()\n .default(true)\n .describe('Whether the generated client retries failed requests.'),\n maxAttempts: z\n .number()\n .int()\n .min(1)\n .default(3)\n .describe('The maximum total request attempts, including the initial attempt.'),\n retryDelayMs: z\n .number()\n .nonnegative()\n .default(150)\n .describe('The initial delay between retry attempts, in milliseconds.'),\n maxDelayMs: z\n .number()\n .nonnegative()\n .default(5_000)\n .describe('The maximum backoff delay between attempts, in milliseconds.'),\n jitterMs: z\n .number()\n .nonnegative()\n .default(50)\n .describe('The maximum random jitter added to retry delays, in milliseconds.'),\n backoffFactor: z\n .number()\n .positive()\n .default(2)\n .describe('The multiplier applied to the delay after each failed attempt.'),\n methods: z\n .array(nonEmptyStringSchema)\n // GET/HEAD/OPTIONS are read-only; PUT (replace-with-same-body) and DELETE are idempotent\n // by HTTP semantics. POST and PATCH are NOT guaranteed idempotent (POST routinely creates\n // something new per call; PATCH's semantics are operation-specific) -- retrying one by\n // default on a 5xx/408/429 risks silently double-executing a request whose response was\n // merely lost, with no idempotency-key protection unless the specific API happens to\n // require one. A caller whose API's POST/PATCH endpoints ARE safe to retry (e.g. they\n // require an idempotency key) can still opt back in by passing `methods` explicitly.\n .default(['GET', 'PUT', 'DELETE', 'HEAD', 'OPTIONS'])\n .describe('HTTP methods that are eligible for retries.'),\n maxRetryAfterDelayMs: z\n .number()\n .nonnegative()\n .default(60_000)\n .describe('The longest Retry-After delay the client will honor, in milliseconds.'),\n })\n .superRefine(validateRetryDelays);\n\nconst constructorParameterSchema = z.strictObject({\n name: nonEmptyStringSchema.describe('The parameter name in the generated client constructor.'),\n example: z.string().optional().describe('An example value shown in generated documentation.'),\n description: z\n .string()\n .optional()\n .describe(\n 'A description of the constructor parameter included in generated SDK documentation.',\n ),\n required: z.boolean().optional().describe('Whether callers must provide the parameter.'),\n});\n\nconst parameterStyleSchema = z.enum(['wrapped', 'inline', 'language-default']);\n\nconst tokenRefreshConfigSchema = z\n .strictObject({\n enabled: z.boolean().describe('Whether the client can exchange refresh tokens.'),\n endpoint: nonEmptyStringSchema.optional().describe('The API endpoint used to refresh tokens.'),\n accessTokenField: nonEmptyStringSchema\n .optional()\n .describe('The response field containing the refreshed access token.'),\n refreshTokenField: nonEmptyStringSchema\n .optional()\n .describe('The response field containing the refreshed refresh token.'),\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 idempotencyKeyGenerationSchema = z.strictObject({\n enabled: z\n .boolean()\n .describe('Whether the client generates an idempotency key when the caller supplies none.'),\n headerName: nonEmptyStringSchema\n .optional()\n .describe('The header that carries the generated key. Generators default to Idempotency-Key.'),\n methods: z\n .array(nonEmptyStringSchema)\n .optional()\n .describe('HTTP methods that receive a generated key. Generators default to POST and PUT.'),\n});\n\nconst userAgentConfigSchema = z.strictObject({\n template: nonEmptyStringSchema\n .optional()\n .describe(\n 'The User-Agent product token, resolved at generation time. Supports the {packageName}, ' +\n '{version}, {language}, {generatorVersion}, {organization}, and {apiName} placeholders.',\n ),\n includePlatformInfo: z\n .boolean()\n .optional()\n .describe(\n 'Whether the User-Agent carries operating system, architecture, and runtime details, as ' +\n '`{product} ({os}; {arch}) {runtime}/{runtimeVersion}`.',\n ),\n allowAppInfo: z\n .boolean()\n .optional()\n .describe(\n 'Whether callers can pass application info that is appended to the User-Agent as a ' +\n '`{name}/{version} ({comment})` product token.',\n ),\n});\n\nconst clientOverrideShape = {\n retry: clientRetryOverrideSchema\n .optional()\n .describe('Retry behavior for generated API requests.'),\n responseHeaders: z\n .boolean()\n .optional()\n .describe('Whether generated operations expose HTTP response headers.'),\n responseValidation: z\n .boolean()\n .optional()\n .describe('Whether the client validates API responses against the schema.'),\n multiTenant: z\n .boolean()\n .optional()\n .describe('Whether the client exposes configuration for tenant-specific API access.'),\n additionalConstructorParameters: z\n .array(constructorParameterSchema)\n .optional()\n .describe('Additional parameters added to the generated client constructor.'),\n timeoutMs: z\n .union([z.number().nonnegative(), z.literal('infinity')])\n .optional()\n .describe('The default request timeout in milliseconds, or \"infinity\" for no timeout.'),\n requestParameterStyle: parameterStyleSchema\n .optional()\n .describe('Whether generated operation parameters are wrapped or passed inline.'),\n pathParameterStyle: parameterStyleSchema\n .optional()\n .describe('Whether generated path parameters are wrapped or passed inline.'),\n filePropertyStyle: parameterStyleSchema\n .optional()\n .describe('Whether generated file properties are wrapped or passed inline.'),\n useDefaultRequestParameterValues: z\n .boolean()\n .optional()\n .describe('Whether schema defaults are applied to omitted request parameters.'),\n respectOptionalRequestBody: z\n .boolean()\n .optional()\n .describe('Whether an optional request body remains optional in generated methods.'),\n tokenRefresh: tokenRefreshConfigSchema\n .optional()\n .describe('Refresh-token behavior for the generated client.'),\n idempotencyKeyGeneration: idempotencyKeyGenerationSchema\n .optional()\n .describe('Automatic idempotency keys on eligible requests.'),\n userAgent: userAgentConfigSchema\n .optional()\n .describe('The User-Agent header the generated client sends.'),\n offsetSemantics: z\n .enum(['item-index', 'page-index'])\n .optional()\n .describe(\n 'How an offset-paginated endpoint advances: by the number of items returned, or by one page.',\n ),\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({}).describe('Retry behavior for generated API requests.'),\n responseHeaders: z\n .boolean()\n .default(false)\n .describe('Whether generated operations expose HTTP response headers.'),\n multiTenant: z\n .boolean()\n .default(false)\n .describe('Whether the client exposes configuration for tenant-specific API access.'),\n additionalConstructorParameters: z\n .array(constructorParameterSchema)\n .default([])\n .describe('Additional parameters added to the generated client constructor.'),\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 { jsonObjectSchema, 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.describe('The package author name.'),\n email: z.email().optional().describe('The package author email address.'),\n url: nonEmptyStringSchema.optional().describe('The package author website.'),\n});\n\nconst developerSchema = z.strictObject({\n name: nonEmptyStringSchema.describe('The package developer name.'),\n email: z.email().optional().describe('The package developer email address.'),\n organization: nonEmptyStringSchema.optional().describe('The developer organization name.'),\n organizationUrl: nonEmptyStringSchema.optional().describe('The developer organization website.'),\n});\n\nconst licenseSchema = z.strictObject({\n type: nonEmptyStringSchema.describe('The license identifier or license type.'),\n name: nonEmptyStringSchema.optional().describe('The human-readable license name.'),\n url: nonEmptyStringSchema.optional().describe('The URL containing the license text.'),\n path: nonEmptyStringSchema.optional().describe('The path to a custom license file.'),\n});\n\nconst dependencySourceSchema = z.discriminatedUnion('type', [\n z.strictObject({\n type: z.literal('registry').describe('Resolves the dependency from a package registry.'),\n registry: nonEmptyStringSchema\n .optional()\n .describe('The registry used to resolve the dependency.'),\n }),\n z.strictObject({\n type: z.literal('git').describe('Resolves the dependency from a Git repository.'),\n url: nonEmptyStringSchema.describe('The Git repository URL.'),\n ref: nonEmptyStringSchema.optional().describe('The Git branch, tag, or commit to use.'),\n subdirectory: nonEmptyStringSchema\n .optional()\n .describe('The package subdirectory within the Git repository.'),\n }),\n z.strictObject({\n type: z.literal('path').describe('Resolves the dependency from a local path.'),\n path: nonEmptyStringSchema.describe('The local path containing the dependency.'),\n }),\n]);\n\nexport const dependencySchema = z\n .strictObject({\n name: nonEmptyStringSchema.describe('The dependency name used by the package manager.'),\n version: nonEmptyStringSchema.optional().describe('The dependency version requirement.'),\n source: dependencySourceSchema.optional().describe('A non-default source for the dependency.'),\n packageName: nonEmptyStringSchema\n .optional()\n .describe('The source package name when it differs from the dependency alias.'),\n features: z\n .array(nonEmptyStringSchema)\n .optional()\n .describe('Cargo features enabled for this dependency.'),\n extras: z\n .array(nonEmptyStringSchema)\n .optional()\n .describe('Python extras enabled for this dependency.'),\n optional: z.boolean().optional().describe('Whether the dependency is optional.'),\n defaultFeatures: z\n .boolean()\n .optional()\n .describe('Whether the dependency enables its default Cargo features.'),\n environmentMarker: nonEmptyStringSchema\n .optional()\n .describe('A Python environment marker that conditions this dependency.'),\n })\n .refine(({ source, version }) => source !== undefined || version !== undefined, {\n message: 'dependency must define a version or a source',\n });\n\nconst bugsSchema = z\n .strictObject({\n url: nonEmptyStringSchema.optional().describe('The issue tracker URL.'),\n email: nonEmptyStringSchema.optional().describe('The address for reporting issues.'),\n })\n .refine(({ url, email }) => url !== undefined || email !== undefined, {\n message: 'bugs must define a url or an email',\n });\n\nconst projectUrlSchema = z.strictObject({\n label: nonEmptyStringSchema.describe('The label displayed for the project link.'),\n url: nonEmptyStringSchema.describe('The project link URL.'),\n});\n\nexport const packageConfigSchema = z.strictObject({\n packageName: nonEmptyStringSchema\n .optional()\n .describe('The package name used by the target language registry.'),\n moduleName: nonEmptyStringSchema\n .optional()\n .describe('The generated module or import name when it differs from the package name.'),\n modulePath: goModulePathSchema\n .optional()\n .describe('The Go module path used for imports and publishing.'),\n namespace: nonEmptyStringSchema\n .optional()\n .describe('The namespace or package prefix for generated code.'),\n groupId: nonEmptyStringSchema.optional().describe('The Maven group identifier.'),\n artifactId: nonEmptyStringSchema.optional().describe('The Maven artifact identifier.'),\n description: z\n .string()\n .optional()\n .describe('The package description used in generated metadata.'),\n repository: nonEmptyStringSchema\n .optional()\n .describe('The source repository for the generated SDK.'),\n homepage: nonEmptyStringSchema.optional().describe('The package homepage URL.'),\n bugs: bugsSchema.optional().describe('Where issues with the package are reported.'),\n documentationUrl: nonEmptyStringSchema.optional().describe('The package documentation URL.'),\n authors: z.array(authorSchema).optional().describe('Authors credited in package metadata.'),\n developers: z\n .array(developerSchema)\n .optional()\n .describe('Developers credited in package metadata.'),\n license: licenseSchema.optional().describe('License metadata for the generated package.'),\n keywords: z\n .array(nonEmptyStringSchema)\n .optional()\n .describe('Search keywords for package metadata.'),\n classifiers: z\n .array(nonEmptyStringSchema)\n .optional()\n .describe('Package classifiers used by registries such as PyPI.'),\n projectUrls: z\n .array(projectUrlSchema)\n .optional()\n .describe('Labeled project links for package metadata.'),\n extraDependencies: z\n .array(dependencySchema)\n .optional()\n .describe('Additional runtime dependencies added to the generated package.'),\n extraDevDependencies: z\n .array(dependencySchema)\n .optional()\n .describe('Additional development dependencies added to the generated package.'),\n extraPeerDependencies: z\n .array(dependencySchema)\n .optional()\n .describe('Additional peer dependencies added to the generated package.'),\n extraPeerDependenciesMeta: z\n .record(nonEmptyStringSchema, jsonObjectSchema)\n .optional()\n .describe(\n 'npm peerDependenciesMeta entries keyed by peer dependency name, such as { optional: true }.',\n ),\n});\n\nexport type Dependency = z.infer<typeof dependencySchema>;\nexport type PackageConfig = z.infer<typeof packageConfigSchema>;\n","import { z } from 'zod';\n\n// Patterns mirror the Fern CLI generator's distribution validation (generators/cli/src/customConfig.ts).\n// Messages deliberately never interpolate the supplied value: a secret pasted into a secret-name\n// field must not be echoed into logs.\nconst GITHUB_ACTIONS_SECRET_NAME_PATTERN = /^[A-Z][A-Z0-9_]*$/;\nconst GITHUB_REPOSITORY_SLUG_PATTERN = /^[A-Za-z0-9._-]+\\/[A-Za-z0-9._-]+$/;\nconst HOMEBREW_FORMULA_NAME_PATTERN = /^[a-z][a-z0-9-]*$/;\n\nexport const githubActionsSecretNameSchema = z\n .string({ error: 'must be the name of a GitHub Actions secret' })\n .regex(GITHUB_ACTIONS_SECRET_NAME_PATTERN, {\n error:\n 'must be the name of a GitHub Actions secret: start with an uppercase letter and contain ' +\n 'only A-Z, 0-9, or _. Secret values and ${...} expressions are not accepted.',\n })\n .refine((value) => value !== 'GITHUB_TOKEN', {\n error:\n \"GITHUB_TOKEN cannot be used: it is the workflow's built-in token, scoped to the generated \" +\n 'repository. Store the credential under a different secret name.',\n });\n\nexport const githubRepositorySlugSchema = z\n .string({ error: 'must be a GitHub repository in \"<owner>/<repo>\" form' })\n .regex(GITHUB_REPOSITORY_SLUG_PATTERN, {\n error: 'must be a GitHub repository in \"<owner>/<repo>\" form, for example \"acme/homebrew-tap\"',\n });\n\nexport const homebrewFormulaNameSchema = z\n .string({ error: 'must be a Homebrew formula name' })\n .regex(HOMEBREW_FORMULA_NAME_PATTERN, {\n error:\n 'must be a Homebrew formula name: start with a lowercase letter and contain only a-z, 0-9, or -',\n });\n\nexport const cliDistributionGithubAppSchema = z.strictObject({\n appIdSecretName: githubActionsSecretNameSchema.describe(\n 'The name of the GitHub Actions secret holding the GitHub App ID or client ID.',\n ),\n privateKeySecretName: githubActionsSecretNameSchema.describe(\n 'The name of the GitHub Actions secret holding the GitHub App private key in PEM form.',\n ),\n});\n\nconst channelTokenSecretNameDescription =\n 'The name of the GitHub Actions secret holding a token with write access to the channel ' +\n 'repository. Takes precedence over githubApp for this channel.';\n\nexport const cliDistributionHomebrewSchema = z.strictObject({\n tap: githubRepositorySlugSchema.describe(\n 'The Homebrew tap repository in \"<owner>/<repo>\" form that receives the formula.',\n ),\n formula: homebrewFormulaNameSchema\n .optional()\n .describe('The Homebrew formula name; the generator defaults it to the CLI binary name.'),\n tokenSecretName: githubActionsSecretNameSchema\n .optional()\n .describe(channelTokenSecretNameDescription),\n});\n\nexport const cliDistributionScoopSchema = z.strictObject({\n bucket: githubRepositorySlugSchema.describe(\n 'The Scoop bucket repository in \"<owner>/<repo>\" form that receives the manifest.',\n ),\n tokenSecretName: githubActionsSecretNameSchema\n .optional()\n .describe(channelTokenSecretNameDescription),\n});\n\nexport const cliDistributionConfigSchema = z\n .strictObject({\n githubApp: cliDistributionGithubAppSchema\n .optional()\n .describe(\n 'A GitHub App used to mint short-lived tokens for every channel without its own tokenSecretName.',\n ),\n homebrew: cliDistributionHomebrewSchema\n .optional()\n .describe('Publishes a Homebrew formula to a tap repository on each tagged release.'),\n scoop: cliDistributionScoopSchema\n .optional()\n .describe('Publishes a Scoop manifest to a bucket repository on each tagged release.'),\n githubAttestations: z\n .union([z.literal('auto'), z.boolean()], { error: 'must be \"auto\", true, or false' })\n .optional()\n .describe(\n 'Whether the generated release workflow attests build provenance. \"auto\" (the generator ' +\n 'default) attests only on public repositories; true always attests, for private ' +\n 'repositories on GitHub Enterprise Cloud; false omits the attestation step and its ' +\n 'permissions.',\n ),\n })\n .superRefine((distribution, context) => {\n if (distribution.homebrew !== undefined || distribution.scoop !== undefined) {\n return;\n }\n if (distribution.githubApp !== undefined) {\n context.addIssue({\n code: 'custom',\n message: 'githubApp requires at least one distribution channel: homebrew or scoop',\n path: ['githubApp'],\n });\n return;\n }\n if (distribution.githubAttestations !== undefined) {\n return;\n }\n context.addIssue({\n code: 'custom',\n message: 'distribution must configure at least one channel: homebrew or scoop',\n });\n });\n\nexport const CLI_DISTRIBUTION_REQUIRES_GITHUB_DELIVERY_MESSAGE =\n 'distribution requires output.delivery \"github\": Homebrew and Scoop publish from a tagged ' +\n 'GitHub Release produced by the generated release workflow. Set delivery to \"github\" or remove ' +\n 'distribution.';\n\nexport const CLI_PUBLISH_REQUIRES_GITHUB_DELIVERY_MESSAGE =\n 'package publication for target language \"cli\" requires output.delivery \"github\": the CLI ' +\n 'generator publishes npm packages only from its generated GitHub workflow.';\n\nexport const CLI_DISTRIBUTION_NON_RELEASE_MODE_CODE = 'CLI_DISTRIBUTION_NON_RELEASE_MODE';\n\nconst nonReleaseGithubModes: ReadonlySet<string> = new Set(['pull-request', 'push', 'commit']);\n\nexport interface SdkConfigDiagnostic {\n code: string;\n severity: 'warning';\n path: (string | number)[];\n reason: string;\n suggestedAction: string;\n}\n\ninterface DistributionOutputView {\n github?: { mode?: string | undefined };\n distribution?: { homebrew?: unknown; scoop?: unknown } | undefined;\n}\n\nexport function cliDistributionModeDiagnostic(\n output: DistributionOutputView | undefined,\n outputPath: readonly (string | number)[],\n): SdkConfigDiagnostic | undefined {\n const mode = output?.github?.mode;\n const distribution = output?.distribution;\n if (distribution === undefined || mode === undefined || !nonReleaseGithubModes.has(mode)) {\n return undefined;\n }\n const hasChannel = distribution.homebrew !== undefined || distribution.scoop !== undefined;\n const consequence = hasChannel\n ? 'Homebrew and Scoop publish only after a semantic-version tag is pushed to the repository.'\n : 'the release workflow, including its githubAttestations setting, runs only after a ' +\n 'semantic-version tag is pushed to the repository.';\n return {\n code: CLI_DISTRIBUTION_NON_RELEASE_MODE_CODE,\n severity: 'warning',\n path: [...outputPath, 'github', 'mode'],\n reason: `GitHub mode \"${mode}\" does not create a release tag, so ${consequence}`,\n suggestedAction:\n 'Use mode \"release\" or \"commit-and-release\", or push a version tag after merging generated changes.',\n };\n}\n\nexport type GithubActionsSecretName = z.infer<typeof githubActionsSecretNameSchema>;\nexport type CliDistributionGithubAppConfig = z.infer<typeof cliDistributionGithubAppSchema>;\nexport type CliDistributionHomebrewConfig = z.infer<typeof cliDistributionHomebrewSchema>;\nexport type CliDistributionScoopConfig = z.infer<typeof cliDistributionScoopSchema>;\nexport type CliDistributionConfig = z.infer<typeof cliDistributionConfigSchema>;\n","import {\n cliDistributionModeDiagnostic,\n type SdkConfigDiagnostic,\n} from '../../sdk-config-domain/v1/distribution';\nimport type { SdkConfigV1, SdkConfigV1Document } from './sdk-config-v1';\n\n/**\n * Returns non-fatal diagnostics for an SDK Config document that has already passed validation.\n * Validation errors are reported by `validateSdkConfigV1`/`parseSdkConfigV1`, not here.\n */\nexport function getSdkConfigV1Diagnostics(\n config: SdkConfigV1Document | SdkConfigV1,\n): SdkConfigDiagnostic[] {\n return config.targets.flatMap((target, targetIndex) => {\n if (target.language !== 'cli') {\n return [];\n }\n const diagnostic = cliDistributionModeDiagnostic(target.output, [\n 'targets',\n targetIndex,\n 'output',\n ]);\n return diagnostic ? [diagnostic] : [];\n });\n}\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.describe('The HTTP method of the documented endpoint.'),\n path: nonEmptyStringSchema.describe('The endpoint path used in generated examples.'),\n stream: z.boolean().optional().describe('Whether the example uses the streaming response API.'),\n});\n\nexport const readmeCustomSectionSchema = z.strictObject({\n title: nonEmptyStringSchema.describe('The heading displayed for this README section.'),\n content: z.string().describe('The Markdown content of this README section.'),\n});\n\nconst readmeConfigSchema = z.strictObject({\n apiName: nonEmptyStringSchema.optional().describe('The API name displayed in the README.'),\n introduction: z.string().optional().describe('Custom introductory Markdown for the README.'),\n apiReferenceLink: nonEmptyStringSchema\n .optional()\n .describe('The URL linked as the API reference.'),\n bannerLink: nonEmptyStringSchema\n .optional()\n .describe('The destination URL for the README banner.'),\n disabledSections: z\n .array(nonEmptyStringSchema)\n .optional()\n .describe('Generated README sections to omit.'),\n customSections: z\n .array(readmeCustomSectionSchema)\n .optional()\n .describe('Additional sections inserted into the README.'),\n defaultEndpoint: readmeEndpointSchema\n .optional()\n .describe('The endpoint used for the primary README example.'),\n features: z\n .record(z.string(), z.array(readmeEndpointSchema))\n .optional()\n .describe('Named feature groups and the endpoints demonstrated by each group.'),\n});\n\nconst snippetsConfigSchema = z.strictObject({\n enabled: z.boolean().describe('Whether standalone usage snippets are generated.'),\n format: z.enum(['md', 'json']).optional().describe('The output format for generated snippets.'),\n outputPath: nonEmptyStringSchema\n .optional()\n .describe('The output path for generated snippet files.'),\n});\n\nexport const docsConfigSchema = z.strictObject({\n readme: readmeConfigSchema.optional().describe('README content and example configuration.'),\n snippets: snippetsConfigSchema.optional().describe('Standalone usage snippet generation.'),\n referenceBaseUrl: nonEmptyStringSchema\n .optional()\n .describe('The base URL used for links to generated API reference files.'),\n includeApiReference: z\n .boolean()\n .optional()\n .describe('Whether API reference documentation is included in the SDK output.'),\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 { SdkConfigV1CliDistributionConfig } from './distribution';\nimport type { SdkConfigV1GenerationConfigOverride } from './generation';\nimport type { SdkConfigV1DocsConfig } from './docs';\nimport type { SdkConfigV1OutputConfig } from './output';\nimport type { SdkConfigV1PackageConfig } from './package';\nimport type { SdkConfigV1ReplayConfig } from './replay';\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 replay settings lowered from the top-level Fern generators.yml replay block. */\n replay?: SdkConfigV1ReplayConfig | 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 /** Legacy orchestration flag used by CLI packaging paths to request a complete SDK project. */\n generateFullProject?: 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 credentialDiagnostics?: FernConfigMappingDiagnostic[];\n valueDiagnostics?: FernConfigMappingDiagnostic[];\n packageFallbacks?: PackageFallback[];\n cliDistribution?: PendingCliDistribution;\n}\n\n/** A validated legacy CLI distribution, written to the target output only for GitHub delivery. */\nexport interface PendingCliDistribution {\n value: SdkConfigV1CliDistributionConfig;\n path: (string | number)[];\n}\n\n/** A legacy package value written only when the assembled target package lacks the field. */\nexport type PackageFallback = {\n [Field in keyof SdkConfigV1PackageConfig]-?: {\n field: Field;\n value: NonNullable<SdkConfigV1PackageConfig[Field]>;\n path: (string | number)[];\n };\n}[keyof SdkConfigV1PackageConfig];\n\nexport interface OutputMapping {\n output: SdkConfigV1OutputConfig;\n package?: SdkConfigV1PackageConfig;\n generation?: SdkConfigV1GenerationConfigOverride;\n docs?: SdkConfigV1DocsConfig;\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 minimum = 0,\n) {\n const located = locate(value, aliases, basePath);\n if (\n !located ||\n !isNonNegativeNumber(located.value) ||\n !Number.isInteger(located.value) ||\n located.value < minimum\n )\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\n// SDK Config license types follow the hosted generator's license table; others stay verbatim.\nconst canonicalLicenseTypes: Record<string, string> = {\n mit: 'MIT',\n apache: 'APACHE',\n 'apache-2.0': 'APACHE',\n 'gpl-3.0': 'GPL3',\n 'gpl-3.0-only': 'GPL3',\n unlicensed: 'UNLICENSED',\n};\n\nexport function canonicalLicenseType(value: string): string | undefined {\n return canonicalLicenseTypes[value.trim().toLowerCase()];\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 { z } from 'zod';\nimport { nonEmptyStringSchema } from '../common';\n\nconst ALPHANUMERIC_PATTERN = /[A-Za-z0-9]/;\nconst ROOT_GROUP_PATTERN = /^[a-z][a-z0-9_-]*$/;\nconst KEBAB_NAME_PATTERN = /^[a-z][a-z0-9-]*$/;\nconst DOTTED_COMMAND_PATH_PATTERN = /^[a-z0-9-]+(?:\\.[a-z0-9-]+)+$/;\nconst FIELD_NAME_PATTERN = /^[A-Za-z0-9_.-]+$/;\n\n/**\n * Global long flags every generated CLI registers. Mirrors the CLI generator's\n * `RESERVED_SUFFIX_FLAG_NAMES`; a collision makes clap panic on every invocation.\n */\nconst RESERVED_USER_AGENT_SUFFIX_FLAGS: ReadonlySet<string> = new Set([\n 'params',\n 'output',\n 'json',\n 'format',\n 'dry-run',\n 'base-url',\n 'page-all',\n 'page-limit',\n 'page-delay',\n 'no-pager',\n 'no-extract',\n 'no-retry',\n 'no-stream',\n 'quiet',\n 'query',\n 'help',\n 'debug',\n 'schema',\n]);\n\n/** Top-level command groups every generated CLI registers. Mirrors the CLI generator. */\nconst RESERVED_PROFILES_COMMAND_NAMES: ReadonlySet<string> = new Set([\n 'auth',\n 'completion',\n 'man',\n 'errors',\n 'generate-skills',\n 'help',\n]);\n\n/** The CLI generator kebab-cases binaryName and rejects values that kebab-case to empty. */\nconst binaryNameSchema = nonEmptyStringSchema.regex(ALPHANUMERIC_PATTERN, {\n message: 'binaryName must contain at least one ASCII letter or digit',\n});\n\nconst rootGroupSchema = z.string().regex(ROOT_GROUP_PATTERN, {\n message:\n 'rootGroup must start with a lowercase letter and contain only lowercase letters, digits, ' +\n 'hyphens, and underscores',\n});\n\nconst userAgentSuffixFlagSchema = z.string().superRefine((value, context) => {\n if (value.startsWith('-')) {\n context.addIssue({\n code: 'custom',\n message: 'userAgentSuffixFlag must be the long flag name without the leading \"--\"',\n });\n } else if (!KEBAB_NAME_PATTERN.test(value)) {\n context.addIssue({\n code: 'custom',\n message:\n 'userAgentSuffixFlag must start with a lowercase letter and contain only lowercase ' +\n 'letters, digits, and hyphens',\n });\n } else if (RESERVED_USER_AGENT_SUFFIX_FLAGS.has(value)) {\n context.addIssue({\n code: 'custom',\n message: `userAgentSuffixFlag \"${value}\" collides with a built-in global flag`,\n });\n }\n});\n\nconst profilesCommandNameSchema = z.string().superRefine((value, context) => {\n if (!KEBAB_NAME_PATTERN.test(value)) {\n context.addIssue({\n code: 'custom',\n message:\n 'profiles.commandName must start with a lowercase letter and contain only lowercase ' +\n 'letters, digits, and hyphens',\n });\n } else if (RESERVED_PROFILES_COMMAND_NAMES.has(value)) {\n context.addIssue({\n code: 'custom',\n message: `profiles.commandName \"${value}\" collides with a built-in command group`,\n });\n }\n});\n\nfunction dottedCommandPathSchema(field: string): z.ZodString {\n return z.string().regex(DOTTED_COMMAND_PATH_PATTERN, {\n message: `${field} must be a dotted command path such as \"iam.keys.create\"`,\n });\n}\n\nfunction fieldNameMapSchema(field: string): z.ZodType<Record<string, string>> {\n const message = `${field} keys and values must be field names containing only [A-Za-z0-9_.-]`;\n return z\n .record(z.string(), z.string().regex(FIELD_NAME_PATTERN, { message }))\n .superRefine((value, context) => {\n for (const key of Object.keys(value)) {\n if (!FIELD_NAME_PATTERN.test(key)) {\n context.addIssue({ code: 'custom', message, path: [key] });\n }\n }\n });\n}\n\nconst profilesProvisionOperationSchema = z.strictObject({\n operation: dottedCommandPathSchema('profiles.provisionOperation.operation').describe(\n 'The dotted command path of the operation that mints a profile credential.',\n ),\n credential: fieldNameMapSchema('profiles.provisionOperation.credential')\n .refine((value) => Object.keys(value).length > 0, {\n message: 'profiles.provisionOperation.credential must map at least one credential field',\n })\n .describe('Maps each stored credential field to the response field that supplies it.'),\n revokeParameters: fieldNameMapSchema('profiles.provisionOperation.revokeParameters')\n .optional()\n .describe('Maps each revoke-operation parameter to the response field that supplies it.'),\n});\n\nconst profilesConfigSchema = z.strictObject({\n enabled: z\n .boolean()\n .describe('Whether the CLI emits profile commands and the global --profile flag.'),\n commandName: profilesCommandNameSchema\n .optional()\n .describe('The profile command group name. The generator defaults to \"profiles\".'),\n revokeOperation: dottedCommandPathSchema('profiles.revokeOperation')\n .optional()\n .describe('The dotted command path called by \"profiles remove --revoke\".'),\n provisionOperation: profilesProvisionOperationSchema\n .optional()\n .describe('The operation called by \"profiles create --provision\" and its response mapping.'),\n});\n\n/**\n * Omitted fields are left undefined; the CLI generator applies its own defaults: a binary name\n * derived from the API display name, custom commands on, no root group, profiles off, a single\n * types crate, and a `user-agent-suffix` flag.\n */\nexport const cliGenerationConfigSchema = z.strictObject({\n paginationParameters: z\n .array(nonEmptyStringSchema)\n .optional()\n .describe('Request parameter names treated as pagination controls by the CLI.'),\n skills: z\n .boolean()\n .optional()\n .describe('Whether the generated CLI includes skills that teach AI agents to invoke commands.'),\n binaryName: binaryNameSchema\n .optional()\n .describe(\n 'The CLI executable name. The generator kebab-cases it and also uses it for the source ' +\n 'directory and env-var prefix.',\n ),\n customCommands: z\n .boolean()\n .optional()\n .describe('Whether hand-written command support is generated. The generator defaults to true.'),\n rootGroup: rootGroupSchema\n .optional()\n .describe('A command group that every spec-derived command is nested under.'),\n profiles: profilesConfigSchema.optional().describe('Named profile command configuration.'),\n splitTypeCrates: z\n .boolean()\n .optional()\n .describe('Whether generated types are split into one crate per API behind a facade crate.'),\n userAgentSuffixFlag: userAgentSuffixFlagSchema\n .optional()\n .describe('The long flag name, without \"--\", that appends a product token to the User-Agent.'),\n});\n\nexport type CliProfilesProvisionOperation = z.infer<typeof profilesProvisionOperationSchema>;\nexport type CliProfilesConfig = z.infer<typeof profilesConfigSchema>;\nexport type CliGenerationConfig = z.infer<typeof cliGenerationConfigSchema>;\n","import { cliGenerationConfigSchema } from '../../sdk-config-domain/v1/language/cli';\nimport { consume, isObject } from './fern-config-mapper-helpers';\nimport type {\n FernConfigMappingDiagnostic,\n JsonObject,\n MappingState,\n} from './fern-config-mapper-types';\n\ntype Path = (string | number)[];\ntype CliGenerationField = keyof typeof cliGenerationConfigSchema.shape;\n\nconst CLI_GENERATION_FIELDS = [\n 'binaryName',\n 'customCommands',\n 'rootGroup',\n 'profiles',\n 'splitTypeCrates',\n 'userAgentSuffixFlag',\n] as const satisfies readonly CliGenerationField[];\n\nconst PROFILES_FIELDS = ['enabled', 'commandName', 'revokeOperation'] as const;\nconst PROVISION_OPERATION_FIELDS = ['operation', 'credential', 'revokeParameters'] as const;\n\n/** The CLI generator reads these `customConfig` keys by exact name, so aliases are not matched. */\nexport function mapCliGeneration(\n config: JsonObject,\n state: MappingState,\n basePath: Path,\n targetIndex: number,\n): JsonObject {\n const generation: JsonObject = {};\n for (const field of CLI_GENERATION_FIELDS) {\n const raw = ownValue(config, field);\n if (raw === undefined) continue;\n const fieldPath = [...basePath, field];\n const { value, consumedPaths } =\n field === 'profiles' && isObject(raw)\n ? pickProfiles(raw, fieldPath)\n : { value: raw, consumedPaths: [fieldPath] };\n const parsed = cliGenerationConfigSchema.shape[field].safeParse(value);\n consumedPaths.forEach((path) => consume(state, path));\n if (parsed.success) {\n generation[field] = structuredClone(value);\n continue;\n }\n const diagnostics = parsed.error.issues.map((issue) =>\n invalidValueDiagnostic(field, fieldPath, issue.path, issue.message, targetIndex),\n );\n (state.valueDiagnostics ??= []).push(...diagnostics);\n }\n return generation;\n}\n\ninterface PickedValue {\n value: unknown;\n consumedPaths: Path[];\n}\n\n/**\n * Copies the profile keys the generator reads; any other key stays unconsumed and is reported as\n * unsupported. The generator treats a missing `enabled` as `false`, so that is written explicitly.\n * Picked keys are consumed by the caller even when the block is invalid, because the invalid-value\n * diagnostic already reports that the whole `profiles` setting was not migrated.\n */\nfunction pickProfiles(profiles: JsonObject, path: Path): PickedValue {\n const picked = pickKnown(profiles, PROFILES_FIELDS, path);\n const provisionOperation = ownValue(profiles, 'provisionOperation');\n const provisionPath = [...path, 'provisionOperation'];\n if (isObject(provisionOperation)) {\n const provision = pickKnown(provisionOperation, PROVISION_OPERATION_FIELDS, provisionPath);\n picked.value.provisionOperation = provision.value;\n picked.consumedPaths.push(...provision.consumedPaths);\n } else if (provisionOperation !== undefined) {\n picked.value.provisionOperation = provisionOperation;\n picked.consumedPaths.push(provisionPath);\n }\n return { value: { enabled: false, ...picked.value }, consumedPaths: picked.consumedPaths };\n}\n\nfunction pickKnown(\n value: JsonObject,\n fields: readonly string[],\n path: Path,\n): { value: JsonObject; consumedPaths: Path[] } {\n const picked: JsonObject = {};\n const consumedPaths: Path[] = [];\n for (const field of fields) {\n const child = ownValue(value, field);\n if (child === undefined) continue;\n picked[field] = child;\n consumedPaths.push([...path, field]);\n }\n return { value: picked, consumedPaths };\n}\n\nfunction ownValue(value: JsonObject, key: string): unknown {\n return Object.hasOwn(value, key) ? value[key] : undefined;\n}\n\nfunction invalidValueDiagnostic(\n field: CliGenerationField,\n fieldPath: Path,\n issuePath: PropertyKey[],\n message: string,\n targetIndex: number,\n): FernConfigMappingDiagnostic {\n const relative = issuePath.map((part) => (typeof part === 'symbol' ? String(part) : part));\n const sdkConfigField = ['targets', targetIndex, 'generation', field];\n return {\n code: 'FERN_CONFIG_VALUE_INVALID',\n severity: 'warning',\n path: [...fieldPath, ...relative],\n reason: `CLI setting ${field} was not migrated because SDK Config rejects it: ${message}`,\n sdkConfigPath: [...sdkConfigField, ...relative],\n suggestedAction: `Correct the value, then set ${sdkConfigField.join('.')} manually.`,\n };\n}\n","import { cliDistributionConfigSchema } from '../../sdk-config-domain/v1/distribution';\nimport { consume, isObject } from './fern-config-mapper-helpers';\nimport type {\n FernConfigMappingDiagnostic,\n JsonObject,\n MappingState,\n PendingCliDistribution,\n} from './fern-config-mapper-types';\nimport type { SdkConfigV1OutputConfig } from './output';\n\ntype Path = (string | number)[];\n\n/** Legacy CLI generator key → SDK Config key, per distribution block. Matched by exact name. */\nconst DISTRIBUTION_KEYS: Readonly<Record<string, Readonly<Record<string, string>>>> = {\n githubApp: { appIdSecret: 'appIdSecretName', privateKeySecret: 'privateKeySecretName' },\n homebrew: { tap: 'tap', formula: 'formula', tokenEnvironmentVariable: 'tokenSecretName' },\n scoop: { bucket: 'bucket', tokenEnvironmentVariable: 'tokenSecretName' },\n};\n\nconst DISTRIBUTION_SCALAR_KEYS: readonly string[] = ['githubAttestations'];\n\ninterface TranslatedDistribution {\n value: unknown;\n consumedPaths: Path[];\n legacyKeys: Map<string, string>;\n}\n\n/**\n * Translates the CLI generator's `config.distribution` into SDK Config's\n * `targets[].output.distribution`. Secret names are copied verbatim and generator defaults are not\n * written, so a channel without its own token keeps falling back to `githubApp`. Keys the generator\n * does not read stay unconsumed and are reported as unsupported.\n */\nexport function mapCliDistribution(\n config: JsonObject,\n state: MappingState,\n basePath: Path,\n targetIndex: number,\n): void {\n if (!Object.hasOwn(config, 'distribution')) return;\n const raw = config.distribution;\n const path = [...basePath, 'distribution'];\n const translated = isObject(raw)\n ? translateDistribution(raw, path)\n : { value: raw, consumedPaths: [path], legacyKeys: new Map<string, string>() };\n const parsed = cliDistributionConfigSchema.safeParse(translated.value);\n translated.consumedPaths.forEach((consumedPath) => consume(state, consumedPath));\n if (parsed.success) {\n state.cliDistribution = { value: parsed.data, path };\n return;\n }\n const diagnostics = parsed.error.issues.map((issue) =>\n invalidDistributionDiagnostic(issue, path, translated.legacyKeys, targetIndex),\n );\n const reportedPaths = new Set<string>();\n (state.valueDiagnostics ??= []).push(\n ...diagnostics.filter(({ path: diagnosticPath }) => {\n const key = diagnosticPath.join('.');\n if (reportedPaths.has(key)) return false;\n reportedPaths.add(key);\n return true;\n }),\n );\n}\n\nfunction translateDistribution(distribution: JsonObject, path: Path): TranslatedDistribution {\n const value: JsonObject = {};\n const consumedPaths: Path[] = [];\n const legacyKeys = new Map<string, string>();\n for (const [block, keys] of Object.entries(DISTRIBUTION_KEYS)) {\n if (!Object.hasOwn(distribution, block)) continue;\n const blockValue = distribution[block];\n const blockPath = [...path, block];\n if (!isObject(blockValue)) {\n value[block] = blockValue;\n consumedPaths.push(blockPath);\n continue;\n }\n const translatedBlock: JsonObject = {};\n for (const [legacyKey, sdkConfigKey] of Object.entries(keys)) {\n if (!Object.hasOwn(blockValue, legacyKey)) continue;\n translatedBlock[sdkConfigKey] = blockValue[legacyKey];\n consumedPaths.push([...blockPath, legacyKey]);\n legacyKeys.set(`${block}.${sdkConfigKey}`, legacyKey);\n }\n value[block] = translatedBlock;\n }\n for (const key of DISTRIBUTION_SCALAR_KEYS) {\n if (!Object.hasOwn(distribution, key)) continue;\n value[key] = distribution[key];\n consumedPaths.push([...path, key]);\n }\n return { value, consumedPaths, legacyKeys };\n}\n\nfunction invalidDistributionDiagnostic(\n issue: { path: PropertyKey[]; message: string },\n path: Path,\n legacyKeys: ReadonlyMap<string, string>,\n targetIndex: number,\n): FernConfigMappingDiagnostic {\n const relative = issue.path.map((part) => (typeof part === 'symbol' ? String(part) : part));\n const [block, field] = relative;\n const legacyField =\n typeof block === 'string' && typeof field === 'string'\n ? legacyKeys.get(`${block}.${field}`)\n : undefined;\n const legacyRelative =\n typeof block === 'string' && legacyField !== undefined ? [block, legacyField] : relative;\n const sdkConfigField = ['targets', targetIndex, 'output', 'distribution'];\n return {\n code: 'FERN_CONFIG_VALUE_INVALID',\n severity: 'warning',\n path: [...path, ...legacyRelative],\n reason: `CLI distribution was not migrated because SDK Config rejects it: ${issue.message}`,\n sdkConfigPath: [...sdkConfigField, ...relative],\n suggestedAction: `Correct the value, then set ${sdkConfigField.join('.')} manually.`,\n };\n}\n\n/**\n * The CLI generator honors distribution only for GitHub output and silently ignores it otherwise;\n * SDK Config rejects it outside `delivery: github`, so it is reported instead of written.\n */\nexport function applyCliDistribution(\n output: SdkConfigV1OutputConfig,\n pending: PendingCliDistribution | undefined,\n targetIndex: number,\n): { output: JsonObject; diagnostics: FernConfigMappingDiagnostic[] } {\n if (pending === undefined) return { output, diagnostics: [] };\n if (output.delivery === 'github') {\n return { output: { ...output, distribution: pending.value }, diagnostics: [] };\n }\n const outputPath = ['targets', targetIndex, 'output'];\n return {\n output,\n diagnostics: [\n {\n code: 'FERN_CLI_DISTRIBUTION_REQUIRES_GITHUB_OUTPUT',\n severity: 'warning',\n path: pending.path,\n reason:\n `The CLI generator ignores distribution for \"${output.delivery}\" output, and SDK Config ` +\n 'accepts distribution only with output.delivery \"github\", so it was not migrated',\n sdkConfigPath: [...outputPath, 'distribution'],\n suggestedAction:\n `Set ${outputPath.join('.')}.delivery to \"github\" for the CLI repository and add ` +\n `${outputPath.join('.')}.distribution manually, or remove distribution.`,\n },\n ],\n };\n}\n","import type {\n SdkConfigV1OutputConfig,\n SdkConfigV1PublishConfig,\n SdkConfigV1PublishRegistry,\n} from './output';\nimport type { SdkConfigV1PackageConfig } from './package';\nimport {\n canonicalLicenseType,\n collectLeafPaths,\n collectUnsupported,\n compact,\n consume,\n fail,\n isObject,\n optional,\n optionalObject,\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>(), credentialDiagnostics: [] };\n if (generator.output) {\n const downloadSnippets = mapDownloadSnippets(\n generator.outputMode,\n outputPath,\n state,\n language,\n index,\n );\n return {\n output: sanitizeNormalizedOutput(generator.output, rawOutput, state, index),\n ...optional(\n 'docs',\n downloadSnippets === undefined ? undefined : { snippets: { enabled: downloadSnippets } },\n ),\n unsupportedFields: state.credentialDiagnostics ?? [],\n };\n }\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 language,\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(\n { output: { delivery: 'zip' } },\n output,\n outputPath,\n state,\n index,\n language,\n );\n case 'github':\n return finishOutputMapping(\n githubOutput(output, output.publishInfo, rawOutput, language, outputPath, state, index),\n output,\n outputPath,\n state,\n index,\n language,\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 rawOutput,\n language,\n githubPath,\n state,\n index,\n ),\n output,\n outputPath,\n state,\n index,\n language,\n );\n }\n case 'publishV2': {\n const publication = mapPublication(\n output.publishV2,\n rawOutput,\n language,\n 'zip',\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 language,\n );\n }\n case 'publish': {\n const publication = mapLegacyPublication(\n output.registryOverrides,\n rawOutput,\n language,\n 'zip',\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 language,\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 sanitizeNormalizedOutput(\n output: SdkConfigV1OutputConfig,\n rawOutput: JsonObject | undefined,\n state: MappingState,\n index: number,\n): SdkConfigV1OutputConfig {\n const publish = output.publish\n ? sanitizePublishConfig(\n output.publish,\n output.publish as JsonObject,\n rawOutput,\n output.delivery,\n state,\n index,\n )\n : undefined;\n const publishShape = publish ? { publish } : {};\n if (output.delivery !== 'github') return { ...output, ...publishShape };\n\n const { credentials, ...github } = output.github;\n if (credentials) {\n addCredentialDiagnostic(\n state,\n ['group', 'generators', index, 'output', 'github', 'credentials'],\n ['targets', index, 'output', 'github', 'credentials'],\n 'Normalized GitHub credentials have no raw environment-expression provenance',\n );\n }\n return { ...output, github, ...publishShape };\n}\n\nfunction githubOutput(\n value: JsonObject,\n publishInfo: unknown,\n rawOutput: JsonObject | undefined,\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(\n publishInfo,\n rawOutput,\n language,\n 'github',\n [...sourcePath, 'publishInfo'],\n state,\n index,\n )\n : undefined;\n const type = stringValue(value.type);\n const licensePackage = mapGithubLicense(value.license, [...sourcePath, 'license'], state);\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 // Fern's default. `false` means \"commit no .github/workflows files\", which SDK Config cannot say, so it stays reported.\n if (value.workflows === true) consume(state, [...sourcePath, 'workflows']);\n if (stringValue(value.host)) consume(state, [...sourcePath, 'host']);\n if (stringValue(value.branch)) consume(state, [...sourcePath, 'branch']);\n consumeCredentialObject(value.credentials, [...sourcePath, 'credentials'], state);\n if (isObject(value.credentials)) {\n addCredentialDiagnostic(\n state,\n [...sourcePath, 'credentials'],\n ['targets', index, 'output', 'github', 'credentials'],\n 'GitHub credentials cannot be traced safely to raw environment expressions',\n );\n }\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 // The GitHub license wins over a publication-supplied one; `licensePackage` is `{}` or `{ license }`.\n ...optionalObject('package', { ...publication?.package, ...licensePackage }),\n };\n}\n\n// Fern resolves only `MIT` and `Apache-2.0` to a basic license id (`getGithubLicense`); anything\n// else arrives as a custom license file, which keeps its \"set target.package.license\" diagnostic.\nfunction mapGithubLicense(\n value: unknown,\n sourcePath: (string | number)[],\n state: MappingState,\n): Pick<SdkConfigV1PackageConfig, 'license'> {\n if (!isObject(value) || stringValue(value.type) !== 'basic') return {};\n const id = stringValue(value.id);\n const type = id ? canonicalLicenseType(id) : undefined;\n if (!type) return {};\n consume(state, [...sourcePath, 'type']);\n consume(state, [...sourcePath, 'id']);\n return { license: { type } };\n}\n\nfunction consumeCredentialObject(\n value: unknown,\n sourcePath: (string | number)[],\n state: MappingState,\n): void {\n if (!isObject(value)) return;\n for (const field of ['username', 'password', 'token', 'apiKey']) {\n if (stringValue(value[field])) consume(state, [...sourcePath, field]);\n }\n}\n\nfunction consumeResolvedCredentials(\n value: JsonObject,\n sourcePath: (string | number)[],\n state: MappingState,\n): void {\n for (const field of ['username', 'password', 'token', 'apiKey']) {\n if (stringValue(value[field])) {\n consume(state, [...sourcePath, field]);\n }\n }\n if (isObject(value.credentials)) {\n for (const field of ['username', 'password', 'token', 'apiKey']) {\n if (stringValue(value.credentials[field])) {\n consume(state, [...sourcePath, 'credentials', field]);\n }\n }\n }\n if (isObject(value.signature)) {\n consume(state, [...sourcePath, 'signature']);\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 rawOutput: JsonObject | undefined,\n language: FernLanguage,\n delivery: SdkConfigV1OutputConfig['delivery'],\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 consumeResolvedCredentials(nested, nestedPath, state);\n const publish = sanitizePublishConfig(\n compact({ registry, url: registryUrl }) as SdkConfigV1PublishConfig,\n nested,\n rawOutput,\n delivery,\n state,\n index,\n );\n if (registry === 'maven') {\n const coordinate = stringValue(nested.coordinate);\n if (coordinate) consume(state, [...nestedPath, 'coordinate']);\n return {\n publish,\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,\n ...(packageName || Object.keys(metadata).length\n ? { package: { ...optional('packageName', packageName), ...metadata } }\n : {}),\n };\n}\n\nfunction sanitizePublishConfig(\n publish: SdkConfigV1PublishConfig,\n resolvedPublication: JsonObject,\n rawOutput: JsonObject | undefined,\n delivery: SdkConfigV1OutputConfig['delivery'],\n state: MappingState,\n index: number,\n): SdkConfigV1PublishConfig {\n const rawPublication = rawOutput?.location === publish.registry ? rawOutput : undefined;\n const rawPath = ['group', 'generators', index, 'output'] as (string | number)[];\n if (publish.registry === 'npm' || publish.registry === 'crates') {\n const token = mapCredentialExpression(\n rawPublication,\n resolvedPublication,\n 'token',\n rawPath,\n state,\n index,\n );\n warnForUnexpectedCredentialFields(\n rawPublication,\n resolvedPublication,\n ['token'],\n rawPath,\n state,\n index,\n );\n return compact({\n registry: publish.registry,\n url: publish.url,\n releaseBranch: publish.releaseBranch,\n tolerateRepublish: publish.tolerateRepublish,\n token,\n });\n }\n if (publish.registry === 'pypi') {\n const { username, password } = mapPypiCredentialExpressions(\n rawPublication,\n resolvedPublication,\n rawPath,\n state,\n index,\n );\n warnForUnexpectedCredentialFields(\n rawPublication,\n resolvedPublication,\n ['username', 'password', 'token'],\n rawPath,\n state,\n index,\n );\n return compact({\n registry: publish.registry,\n url: publish.url,\n releaseBranch: publish.releaseBranch,\n tolerateRepublish: publish.tolerateRepublish,\n username,\n password,\n });\n }\n if (publish.registry === 'maven') {\n const username = mapCredentialExpression(\n rawPublication,\n resolvedPublication,\n 'username',\n rawPath,\n state,\n index,\n );\n const password = mapCredentialExpression(\n rawPublication,\n resolvedPublication,\n 'password',\n rawPath,\n state,\n index,\n );\n const signature = mapMavenSignatureExpressions(\n rawPublication?.signature,\n resolvedPublication.signature,\n [...rawPath, 'signature'],\n state,\n index,\n );\n warnForUnexpectedCredentialFields(\n rawPublication,\n resolvedPublication,\n ['username', 'password'],\n rawPath,\n state,\n index,\n true,\n );\n return compact({\n registry: publish.registry,\n url: publish.url,\n releaseBranch: publish.releaseBranch,\n tolerateRepublish: publish.tolerateRepublish,\n username,\n password,\n signature,\n });\n }\n if (publish.registry === 'nuget' || publish.registry === 'rubygems') {\n const apiKey = mapApiKeyExpression(\n publish.registry,\n rawPublication,\n resolvedPublication,\n rawPath,\n state,\n index,\n fernDefaultApiKey(publish.registry, rawOutput, delivery),\n );\n warnForUnexpectedCredentialFields(\n rawPublication,\n resolvedPublication,\n ['apiKey'],\n rawPath,\n state,\n index,\n );\n return compact({\n registry: publish.registry,\n url: publish.url,\n releaseBranch: publish.releaseBranch,\n tolerateRepublish: publish.tolerateRepublish,\n apiKey,\n trustedPublishing: usesTrustedPublishing(rawPublication) || undefined,\n });\n }\n warnForUnrepresentableCredentials(rawPublication, resolvedPublication, rawPath, state, index);\n return compact({\n registry: publish.registry,\n url: publish.url,\n releaseBranch: publish.releaseBranch,\n tolerateRepublish: publish.tolerateRepublish,\n });\n}\n\nfunction mapLegacyPublication(\n value: unknown,\n rawOutput: JsonObject | undefined,\n language: FernLanguage,\n delivery: SdkConfigV1OutputConfig['delivery'],\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(\n override,\n rawOutput,\n language,\n delivery,\n [...sourcePath, registry],\n state,\n index,\n );\n}\n\nfunction mapCredentialExpression(\n rawPublication: JsonObject | undefined,\n resolvedPublication: JsonObject,\n field: 'username' | 'password' | 'token',\n rawPath: (string | number)[],\n state: MappingState,\n index: number,\n): string | undefined {\n const rawValue = rawPublication?.[field];\n if (isEnvironmentExpression(rawValue)) return rawValue;\n if (rawValue !== undefined || hasResolvedCredential(resolvedPublication, field)) {\n addCredentialDiagnostic(\n state,\n [...rawPath, field],\n ['targets', index, 'output', 'publish', field],\n `Fern publishing ${field} is not an exact environment expression`,\n );\n }\n return undefined;\n}\n\nconst TRUSTED_PUBLISHING_VALUES = new Set(['OIDC', '<USE_OIDC>']);\n\ntype ApiKeyRegistry = 'nuget' | 'rubygems';\n\n/** Fern accepts both spellings of the field; read them in one place so the callers can't drift. */\nfunction rawApiKeyValue(raw: JsonObject | undefined): unknown {\n return raw?.apiKey ?? raw?.['api-key'];\n}\n\n/**\n * Fern asks for trusted publishing through the `api-key` field, by setting it to `OIDC` rather than\n * to a secret name. SDK Config states it as its own flag, so the value maps across instead of being\n * dropped.\n */\nfunction usesTrustedPublishing(rawPublication: JsonObject | undefined): boolean {\n const rawValue = rawApiKeyValue(rawPublication);\n return typeof rawValue === 'string' && TRUSTED_PUBLISHING_VALUES.has(rawValue);\n}\n\n/**\n * A Fern NuGet or RubyGems `api-key` names the repository secret the generated workflow reads, so\n * an exact environment expression is preserved as that secret name. Anything else could be a\n * literal key and is omitted.\n *\n * `defaultSecretName` is the secret Fern's own workflow would have read instead. Where one exists\n * the omitted value was never a working credential, so it is substituted without a warning.\n */\nfunction mapApiKeyExpression(\n registry: ApiKeyRegistry,\n rawPublication: JsonObject | undefined,\n resolvedPublication: JsonObject,\n rawPath: (string | number)[],\n state: MappingState,\n index: number,\n defaultSecretName: string | undefined,\n): string | undefined {\n const rawValue = rawApiKeyValue(rawPublication);\n if (isEnvironmentExpression(rawValue)) return rawValue;\n // Trusted publishing is carried by its own flag, and names no secret to put here.\n if (usesTrustedPublishing(rawPublication)) return undefined;\n if (defaultSecretName !== undefined) return defaultSecretName;\n if (rawValue === undefined && !hasResolvedCredential(resolvedPublication, 'apiKey')) {\n return undefined;\n }\n addCredentialDiagnostic(\n state,\n [...rawPath, 'apiKey'],\n ['targets', index, 'output', 'publish', 'apiKey'],\n apiKeyOmissionReason(registry),\n );\n return undefined;\n}\n\n/**\n * Why an omitted `api-key` is worth warning about. Trusted publishing is handled before this, so\n * every value that reaches it is one that could have been a literal key.\n */\nfunction apiKeyOmissionReason(registry: ApiKeyRegistry): string {\n const label = registry === 'nuget' ? 'NuGet' : 'RubyGems';\n return `Fern ${label} apiKey is not an exact environment expression naming a secret`;\n}\n\nconst FERN_DEFAULT_NUGET_API_KEY = '${NUGET_API_TOKEN}';\n\n/**\n * The secret name Fern's own generated workflow would read for an `api-key` this mapper cannot\n * keep, or undefined when there is none and the omission is worth warning about.\n *\n * Fern's generated C# workflow reads `NUGET_API_TOKEN` whenever `api-key` names no secret, so\n * naming it explicitly keeps a migrated GitHub NuGet target publishing exactly as it did. Trusted\n * publishing reads no API key secret at all, so it is left to the warning path.\n *\n * Only GitHub delivery gets this. A directly published target really does lose its key, and the\n * generated Ruby workflow has no default secret to fall back on.\n *\n * `location` is the only place a NuGet default can be read from: `getGithubPublishInfo` in the Fern\n * CLI builds NuGet publish info from `case \"nuget\"` alone, so a missing or differently spelled raw\n * output cannot belong to a NuGet publish target.\n */\nfunction fernDefaultApiKey(\n registry: ApiKeyRegistry,\n rawOutput: JsonObject | undefined,\n delivery: SdkConfigV1OutputConfig['delivery'],\n): string | undefined {\n if (registry !== 'nuget' || delivery !== 'github' || rawOutput?.location !== 'nuget') {\n return undefined;\n }\n const rawApiKey = rawApiKeyValue(rawOutput);\n if (typeof rawApiKey === 'string' && TRUSTED_PUBLISHING_VALUES.has(rawApiKey)) {\n return undefined;\n }\n return FERN_DEFAULT_NUGET_API_KEY;\n}\n\nfunction mapPypiCredentialExpressions(\n rawPublication: JsonObject | undefined,\n resolvedPublication: JsonObject,\n rawPath: (string | number)[],\n state: MappingState,\n index: number,\n): { username?: string; password?: string } {\n const rawToken = rawPublication?.token;\n if (isEnvironmentExpression(rawToken)) {\n return { username: '__token__', password: rawToken };\n }\n\n const resolvedUsesToken =\n resolvedCredentialValue(resolvedPublication, 'username') === '__token__';\n if (rawToken !== undefined || resolvedUsesToken) {\n addCredentialDiagnostic(\n state,\n [...rawPath, 'token'],\n ['targets', index, 'output', 'publish', 'password'],\n 'Fern PyPI token is not an exact raw environment expression',\n );\n return {};\n }\n\n return {\n ...optional(\n 'username',\n mapCredentialExpression(\n rawPublication,\n resolvedPublication,\n 'username',\n rawPath,\n state,\n index,\n ),\n ),\n ...optional(\n 'password',\n mapCredentialExpression(\n rawPublication,\n resolvedPublication,\n 'password',\n rawPath,\n state,\n index,\n ),\n ),\n };\n}\n\nfunction mapMavenSignatureExpressions(\n rawValue: unknown,\n resolvedValue: unknown,\n rawPath: (string | number)[],\n state: MappingState,\n index: number,\n): { keyId: string; password: string; secretKey: string } | undefined {\n if (isObject(rawValue)) {\n const yamlValues = [rawValue['key-id'], rawValue.password, rawValue['secret-key']];\n const projectedValues = [rawValue.keyId, rawValue.password, rawValue.secretKey];\n const values = yamlValues.every(isEnvironmentExpression)\n ? yamlValues\n : projectedValues.every(isEnvironmentExpression)\n ? projectedValues\n : undefined;\n if (values) {\n const [keyId, password, secretKey] = values as [string, string, string];\n return { keyId, password, secretKey };\n }\n }\n if (rawValue !== undefined || isObject(resolvedValue)) {\n addCredentialDiagnostic(\n state,\n rawPath,\n ['targets', index, 'output', 'publish', 'signature'],\n 'Maven signing credentials are incomplete or not exact environment expressions',\n );\n }\n return undefined;\n}\n\nfunction warnForUnrepresentableCredentials(\n rawPublication: JsonObject | undefined,\n resolvedPublication: JsonObject,\n rawPath: (string | number)[],\n state: MappingState,\n index: number,\n): void {\n const rawHasCredential =\n ['username', 'password', 'token', 'apiKey'].some(\n (field) => rawPublication?.[field] !== undefined,\n ) || rawPublication?.signature !== undefined;\n if (rawHasCredential || hasAnyResolvedCredential(resolvedPublication)) {\n addCredentialDiagnostic(\n state,\n rawPath,\n ['targets', index, 'output', 'publish'],\n 'This registry does not support credentials in public SDK Config v1',\n );\n }\n}\n\nfunction warnForUnexpectedCredentialFields(\n rawPublication: JsonObject | undefined,\n resolvedPublication: JsonObject,\n allowedFields: readonly string[],\n rawPath: (string | number)[],\n state: MappingState,\n index: number,\n allowSignature = false,\n): void {\n const credentialFields = ['username', 'password', 'token', 'apiKey'];\n const unexpectedFields = credentialFields.filter(\n (field) =>\n !allowedFields.includes(field) &&\n (rawPublication?.[field] !== undefined || hasResolvedCredential(resolvedPublication, field)),\n );\n const hasUnexpectedSignature =\n !allowSignature &&\n (rawPublication?.signature !== undefined || resolvedPublication.signature !== undefined);\n if (unexpectedFields.length > 0 || hasUnexpectedSignature) {\n addCredentialDiagnostic(\n state,\n rawPath,\n ['targets', index, 'output', 'publish'],\n 'Fern publishing credentials or signing material include fields unsupported by this registry',\n );\n }\n}\n\nfunction hasResolvedCredential(value: JsonObject, field: string): boolean {\n return resolvedCredentialValue(value, field) !== undefined;\n}\n\nfunction resolvedCredentialValue(value: JsonObject, field: string): string | undefined {\n return (\n stringValue(value[field]) ??\n (isObject(value.credentials) ? stringValue(value.credentials[field]) : undefined)\n );\n}\n\nfunction hasAnyResolvedCredential(value: JsonObject): boolean {\n return (\n ['username', 'password', 'token', 'apiKey'].some((field) =>\n hasResolvedCredential(value, field),\n ) || value.signature !== undefined\n );\n}\n\nfunction isEnvironmentExpression(value: unknown): value is string {\n return typeof value === 'string' && /^\\$\\{[A-Za-z_][A-Za-z0-9_]*\\}$/.test(value);\n}\n\nfunction addCredentialDiagnostic(\n state: MappingState,\n path: (string | number)[],\n sdkConfigPath: (string | number)[],\n reason: string,\n): void {\n state.credentialDiagnostics?.push({\n code: 'FERN_OUTPUT_CREDENTIAL_OMITTED',\n severity: 'warning',\n path,\n reason,\n sdkConfigPath,\n suggestedAction: `Configure ${sdkConfigPath.join('.')} with an environment expression such as \\${CREDENTIAL_ENV_VAR}.`,\n });\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 language: FernLanguage,\n): OutputMapping {\n const downloadSnippets = mapDownloadSnippets(outputMode, sourcePath, state, language, index);\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 ...optional(\n 'docs',\n downloadSnippets === undefined ? undefined : { snippets: { enabled: downloadSnippets } },\n ),\n unsupportedFields: [\n ...(state.credentialDiagnostics ?? []),\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 mapDownloadSnippets(\n value: unknown,\n sourcePath: (string | number)[],\n state: MappingState,\n language: FernLanguage,\n index: number,\n): boolean | undefined {\n if (!isObject(value)) return undefined;\n const candidates: Array<{ value: JsonObject; path: (string | number)[] }> = [];\n switch (value.type) {\n case 'downloadFiles':\n case 'github':\n candidates.push({ value, path: sourcePath });\n break;\n case 'githubV2':\n if (isObject(value.githubV2)) {\n candidates.push({ value: value.githubV2, path: [...sourcePath, 'githubV2'] });\n }\n break;\n case 'publishV2':\n if (isObject(value.publishV2)) {\n candidates.push({ value: value.publishV2, path: [...sourcePath, 'publishV2'] });\n }\n break;\n case 'publish':\n if (isObject(value.registryOverrides)) {\n const registry = defaultRegistry(language, [...sourcePath, 'registryOverrides'], index);\n const override = value.registryOverrides[registry];\n if (isObject(override)) {\n candidates.push({\n value: override,\n path: [...sourcePath, 'registryOverrides', registry],\n });\n }\n }\n break;\n }\n\n let enabled: boolean | undefined;\n for (const candidate of candidates) {\n if (typeof candidate.value.downloadSnippets !== 'boolean') continue;\n consume(state, [...candidate.path, 'downloadSnippets']);\n enabled = enabled === true || candidate.value.downloadSnippets;\n }\n return enabled;\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 generateFullProject: {\n suggestedAction:\n 'Preserve this packaging setting on the generation request; it is not customer-authored SDK configuration.',\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 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';\nimport {\n canonicalLicenseType,\n consume,\n isObject,\n locate,\n stableJson,\n stringArrayValue,\n stringValue,\n} from './fern-config-mapper-helpers';\nimport type {\n FernConfigMappingDiagnostic,\n FernResolvedGeneratorInput,\n JsonObject,\n MappingState,\n PackageFallback,\n} from './fern-config-mapper-types';\nimport { sdkConfigV1PackageConfigSchema, type SdkConfigV1PackageConfig } from './package';\n\ntype Path = (string | number)[];\ntype Author = NonNullable<SdkConfigV1PackageConfig['authors']>[number];\ntype License = NonNullable<SdkConfigV1PackageConfig['license']>;\n\nconst emailSchema = z.email();\n\n/** The CLI generator writes these `packageIdentity` keys into the Cargo manifest. */\nexport function mapCliPackageIdentity(\n identity: { value: JsonObject; path: Path },\n state: MappingState,\n targetIndex: number,\n): void {\n mapIdentityField(identity, 'homepage', stringValue, state);\n mapIdentityField(identity, 'keywords', (value) => stringArrayValue(value)?.slice(), state);\n mapCargoAuthors(identity, state, targetIndex);\n mapIdentityField(identity, 'license', licenseValue, state);\n}\n\nfunction mapIdentityField<Field extends 'homepage' | 'keywords' | 'license'>(\n identity: { value: JsonObject; path: Path },\n field: Field,\n read: (value: unknown) => NonNullable<SdkConfigV1PackageConfig[Field]> | undefined,\n state: MappingState,\n): void {\n const located = locate(identity.value, [field], identity.path);\n const value = located && read(located.value);\n if (located && value !== undefined) addPackageFallback(state, field, value, located.path);\n}\n\nexport function mapLicenseFallback(\n config: JsonObject,\n aliases: string[],\n state: MappingState,\n basePath: Path,\n): void {\n const located = locate(config, aliases, basePath);\n const license = located && licenseValue(located.value);\n if (located && license) addPackageFallback(state, 'license', license, located.path);\n}\n\n/**\n * Applies legacy package metadata to a target package that already holds every mapped value.\n * Fallbacks only fill fields that are still empty; a differing value is reported, not overwritten.\n */\nexport function resolveTargetPackage(\n targetPackage: SdkConfigV1PackageConfig,\n fallbacks: readonly PackageFallback[],\n generator: FernResolvedGeneratorInput,\n delivery: string,\n index: number,\n): FernConfigMappingDiagnostic[] {\n const diagnostics: FernConfigMappingDiagnostic[] = [];\n for (const fallback of fallbacks) {\n applyFallback(targetPackage, fallback, index, diagnostics);\n }\n // A GitHub output already carries metadata.license, which Fern resolves into the output license.\n if (delivery !== 'github') {\n applyMetadataLicense(targetPackage, generator.raw, index, diagnostics);\n }\n return diagnostics;\n}\n\nfunction applyFallback(\n targetPackage: SdkConfigV1PackageConfig,\n { field, value, path }: PackageFallback,\n index: number,\n diagnostics: FernConfigMappingDiagnostic[],\n): void {\n const existing = targetPackage[field];\n if (existing === undefined) {\n (targetPackage as JsonObject)[field] = value;\n } else if (stableJson(existing) !== stableJson(value)) {\n diagnostics.push({\n code: 'FERN_PACKAGE_VALUE_CONFLICT',\n severity: 'warning',\n path,\n reason: `Fern value conflicts with the package.${field} already migrated for this target, which is kept`,\n sdkConfigPath: ['targets', index, 'package', field],\n suggestedAction: `Choose the intended value and set targets.${index}.package.${field} manually.`,\n });\n }\n}\n\n/** Custom license files stay manual: their path is relative to generators.yml, not SDK Config. */\nfunction applyMetadataLicense(\n targetPackage: SdkConfigV1PackageConfig,\n raw: unknown,\n index: number,\n diagnostics: FernConfigMappingDiagnostic[],\n): void {\n const metadata = isObject(raw) && isObject(raw.metadata) ? raw.metadata : undefined;\n if (metadata?.license === undefined || metadata.license === null) return;\n const path = ['group', 'generators', index, 'metadata', 'license'];\n const license = licenseValue(metadata.license);\n if (license) {\n applyFallback(targetPackage, { field: 'license', value: license, path }, index, diagnostics);\n return;\n }\n diagnostics.push({\n code: 'FERN_CONFIG_FIELD_UNSUPPORTED',\n severity: 'warning',\n path,\n reason: isObject(metadata.license)\n ? 'A custom license file cannot be migrated automatically'\n : 'metadata.license is not a license identifier',\n sdkConfigPath: ['targets', index, 'package', 'license'],\n suggestedAction: `Set targets.${index}.package.license manually.`,\n });\n}\n\n/** Cargo `authors` entries are `\"Name <email>\"` or a bare name; any invalid entry blocks all. */\nfunction mapCargoAuthors(\n identity: { value: JsonObject; path: Path },\n state: MappingState,\n targetIndex: number,\n): void {\n const located = locate(identity.value, ['authors'], identity.path);\n const entries = located && stringArrayValue(located.value);\n if (!located || !entries) return;\n consume(state, located.path);\n const authors = entries.map(parseCargoAuthor);\n const parsed = sdkConfigV1PackageConfigSchema.shape.authors.safeParse(authors);\n const invalid = parsed.success\n ? []\n : [...new Set(parsed.error.issues.map((issue) => issue.path[0]))].filter(\n (index): index is number => typeof index === 'number',\n );\n if (invalid.length === 0) {\n addPackageFallback(state, 'authors', authors, located.path);\n return;\n }\n const authorsPath = ['targets', targetIndex, 'package', 'authors'];\n (state.valueDiagnostics ??= []).push(\n ...invalid.map((entry) => ({\n code: 'FERN_CONFIG_VALUE_INVALID',\n severity: 'warning' as const,\n path: [...located.path, entry],\n reason:\n 'CLI packageIdentity.authors was not migrated because this entry is not \"Name\" or \"Name <email>\" with a valid email',\n sdkConfigPath: authorsPath,\n suggestedAction: `Correct the entry, then set ${authorsPath.join('.')} manually.`,\n })),\n );\n}\n\n/**\n * A bracketed suffix is an email only when it parses as one; otherwise the whole entry is a bare\n * name, since Cargo authors are free-form. An entry with no name before the brackets stays invalid.\n */\nfunction parseCargoAuthor(entry: string): Author {\n const trimmed = entry.trim();\n const match = /^(.*?)\\s*<([^<>]*)>$/.exec(trimmed);\n if (!match) return { name: trimmed };\n const [, name = '', email = ''] = match;\n if (name !== '' && !emailSchema.safeParse(email).success) return { name: trimmed };\n return { name, email };\n}\n\nfunction licenseValue(value: unknown): License | undefined {\n const license = stringValue(value)?.trim();\n return license ? { type: canonicalLicenseType(license) ?? license } : undefined;\n}\n\nfunction addPackageFallback<Field extends keyof SdkConfigV1PackageConfig>(\n state: MappingState,\n field: Field,\n value: NonNullable<SdkConfigV1PackageConfig[Field]>,\n path: Path,\n): void {\n consume(state, path);\n (state.packageFallbacks ??= []).push({ field, value, path } as PackageFallback);\n}\n","import { z } from 'zod';\n\ninterface JsonSchema {\n $defs?: Record<string, JsonSchema>;\n $ref?: string;\n type?: string | string[];\n properties?: Record<string, JsonSchema>;\n additionalProperties?: boolean | JsonSchema;\n items?: JsonSchema;\n oneOf?: JsonSchema[];\n anyOf?: JsonSchema[];\n const?: unknown;\n enum?: unknown[];\n default?: unknown;\n}\n\nconst OMIT = Symbol('omit');\n\nexport function inputJsonSchema(schema: z.ZodType): JsonSchema {\n return z.toJSONSchema(schema, {\n io: 'input',\n unrepresentable: 'any',\n }) as JsonSchema;\n}\n\n/**\n * Removes object properties that are unknown to the supplied schema while preserving record keys.\n * This is deliberately separate from the strict authoring schema: transport consumers may accept\n * additive fields without making misspelled customer configuration valid.\n */\nexport function stripUnknownProperties(value: unknown, schema: JsonSchema): unknown {\n return project(value, schema, schema, false);\n}\n\n/** Projects a parsed value into its canonical wire shape, omitting schema defaults. */\nexport function omitSchemaDefaults(value: unknown, schema: JsonSchema): unknown {\n const projected = project(value, schema, schema, true);\n return projected === OMIT ? undefined : projected;\n}\n\nfunction project(\n value: unknown,\n candidateSchema: JsonSchema,\n rootSchema: JsonSchema,\n omitDefaults: boolean,\n): unknown | typeof OMIT {\n const resolvedCandidate = resolveSchema(candidateSchema, rootSchema);\n if (\n omitDefaults &&\n Object.hasOwn(resolvedCandidate, 'default') &&\n deepEqual(value, resolvedCandidate.default)\n ) {\n return OMIT;\n }\n const schema = selectSchema(value, resolvedCandidate, rootSchema);\n if (\n omitDefaults &&\n schema !== resolvedCandidate &&\n Object.hasOwn(schema, 'default') &&\n deepEqual(value, schema.default)\n ) {\n return OMIT;\n }\n\n if (Array.isArray(value)) {\n if (!schema.items) return value;\n return value.map((item) => {\n const projected = project(item, schema.items!, rootSchema, omitDefaults);\n // Array elements are positional. A default-valued item must not shift later indices.\n return projected === OMIT ? item : projected;\n });\n }\n\n if (!isRecord(value) || schema.type !== 'object') return value;\n\n const entries: [string, unknown][] = [];\n const properties = schema.properties ?? {};\n const unionProperties = omitDefaults\n ? properties\n : collectAlternativeProperties(resolvedCandidate, rootSchema);\n for (const [key, propertySchema] of Object.entries(properties)) {\n if (!Object.hasOwn(value, key)) continue;\n const projected = project(value[key], propertySchema, rootSchema, omitDefaults);\n if (projected !== OMIT) entries.push([key, projected]);\n }\n\n for (const [key, fieldValue] of Object.entries(value)) {\n if (Object.hasOwn(properties, key)) continue;\n // A property belonging to another known union variant is invalid, not forward-compatible.\n // Preserve it so the strict parser reports the variant mismatch instead of silently dropping it.\n if (Object.hasOwn(unionProperties, key)) {\n entries.push([key, fieldValue]);\n continue;\n }\n if (schema.additionalProperties !== false) {\n const projected =\n typeof schema.additionalProperties === 'object'\n ? project(fieldValue, schema.additionalProperties, rootSchema, omitDefaults)\n : fieldValue;\n if (projected !== OMIT) entries.push([key, projected]);\n } else if (omitDefaults) {\n throw new Error(`Cannot serialize property unknown to the wire schema: ${key}`);\n }\n }\n\n return Object.fromEntries(entries);\n}\n\nfunction collectAlternativeProperties(\n schema: JsonSchema,\n rootSchema: JsonSchema,\n): Record<string, JsonSchema> {\n const alternatives = schema.oneOf ?? schema.anyOf;\n if (!alternatives) return schema.properties ?? {};\n\n return Object.assign(\n {},\n ...alternatives.map((alternative) => resolveSchema(alternative, rootSchema).properties ?? {}),\n ) as Record<string, JsonSchema>;\n}\n\nfunction selectSchema(value: unknown, schema: JsonSchema, rootSchema: JsonSchema): JsonSchema {\n const alternatives = schema.oneOf ?? schema.anyOf;\n if (!alternatives || alternatives.length === 0) return schema;\n\n const best = alternatives\n .map((alternative, index) => {\n const resolved = resolveSchema(alternative, rootSchema);\n return { index, schema: resolved, score: schemaMatchScore(value, resolved) };\n })\n .sort((left, right) => right.score - left.score || left.index - right.index)[0]!;\n\n // Preserve an invalid union value intact so the strict parser reports its original error.\n return best.score === Number.NEGATIVE_INFINITY ? schema : best.schema;\n}\n\nfunction schemaMatchScore(value: unknown, schema: JsonSchema): number {\n if (Object.hasOwn(schema, 'const') && !deepEqual(value, schema.const)) {\n return Number.NEGATIVE_INFINITY;\n }\n if (schema.enum && !schema.enum.some((candidate) => deepEqual(value, candidate))) {\n return Number.NEGATIVE_INFINITY;\n }\n\n if (schema.type === 'object') {\n if (!isRecord(value)) return Number.NEGATIVE_INFINITY;\n const properties = schema.properties ?? {};\n for (const [key, propertySchema] of Object.entries(properties)) {\n if (!Object.hasOwn(value, key)) continue;\n if (Object.hasOwn(propertySchema, 'const') && !deepEqual(value[key], propertySchema.const)) {\n return Number.NEGATIVE_INFINITY;\n }\n }\n return Object.keys(value).filter((key) => Object.hasOwn(properties, key)).length;\n }\n\n if (schema.type === 'array') return Array.isArray(value) ? 1 : Number.NEGATIVE_INFINITY;\n if (schema.type === 'string') return typeof value === 'string' ? 1 : Number.NEGATIVE_INFINITY;\n if (schema.type === 'number' || schema.type === 'integer') {\n return typeof value === 'number' ? 1 : Number.NEGATIVE_INFINITY;\n }\n if (schema.type === 'boolean') return typeof value === 'boolean' ? 1 : Number.NEGATIVE_INFINITY;\n if (schema.type === 'null') return value === null ? 1 : Number.NEGATIVE_INFINITY;\n return 0;\n}\n\nfunction resolveSchema(schema: JsonSchema, rootSchema: JsonSchema): JsonSchema {\n if (!schema.$ref) return schema;\n if (!schema.$ref.startsWith('#/$defs/')) return schema;\n const name = schema.$ref.slice('#/$defs/'.length).replaceAll('~1', '/').replaceAll('~0', '~');\n return rootSchema.$defs?.[name] ?? schema;\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return value !== null && typeof value === 'object' && !Array.isArray(value);\n}\n\nfunction deepEqual(left: unknown, right: unknown): boolean {\n if (Object.is(left, right)) return true;\n if (Array.isArray(left) && Array.isArray(right)) {\n return (\n left.length === right.length && left.every((value, index) => deepEqual(value, right[index]))\n );\n }\n if (isRecord(left) && isRecord(right)) {\n const leftKeys = Object.keys(left);\n const rightKeys = Object.keys(right);\n return (\n leftKeys.length === rightKeys.length &&\n leftKeys.every((key) => Object.hasOwn(right, key) && deepEqual(left[key], right[key]))\n );\n }\n return false;\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().describe('The generated client class name.'),\n exportedClientName: nonEmptyStringSchema\n .optional()\n .describe('The client name exported from the generated package.'),\n environmentTypeName: nonEmptyStringSchema\n .optional()\n .describe('The generated type name for API environments.'),\n apiErrorName: nonEmptyStringSchema.optional().describe('The generated API error class name.'),\n baseErrorName: nonEmptyStringSchema.optional().describe('The generated base error class name.'),\n pagerName: nonEmptyStringSchema.optional().describe('The generated pagination helper name.'),\n /** Apply Fern's initialism-aware casing rules when deriving generated identifiers. */\n smartCasing: z\n .boolean()\n .optional()\n .describe('Whether generated identifiers use initialism-aware casing.'),\n /** Preserve a word boundary after digits when Fern smart casing is enabled. */\n smartCasingDigitWordBoundary: z\n .boolean()\n .optional()\n .describe('Whether smart casing preserves a word boundary after digits.'),\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({\n type: z.literal('path').describe('Loads the generation asset from a relative path.'),\n location: sdkConfigV1RelativePathSchema.describe('The relative path to the generation asset.'),\n }),\n z.strictObject({\n type: z.literal('url').describe('Loads the generation asset from a URL.'),\n location: sdkConfigV1NonEmptyStringSchema.describe('The URL of the generation asset.'),\n }),\n]);\n\nconst customCodeConfigSchema = z.strictObject({\n enabled: z.boolean().describe('Whether customer-authored code is merged into generated output.'),\n source: customerGenerationAssetSchema\n .optional()\n .describe('The source containing customer-authored code.'),\n conflictStrategy: z\n .enum(['mark', 'ours', 'theirs'])\n .optional()\n .describe('How merge conflicts between generated and custom code are handled.'),\n trackChanges: z\n .boolean()\n .optional()\n .describe('Whether custom-code changes are tracked between builds.'),\n protectedFiles: z\n .array(sdkConfigV1NonEmptyStringSchema)\n .optional()\n .describe('Generated file paths that custom-code merging must not overwrite.'),\n});\n\nconst analyticsHeaderSchema = z.strictObject({\n name: sdkConfigV1NonEmptyStringSchema.describe('The exported telemetry header name.'),\n value: z.string().describe('The literal telemetry header value.'),\n});\n\nconst analyticsConfigSchema = z\n .strictObject({\n enabled: z.boolean().describe('Whether generated clients export usage telemetry.'),\n endpoint: sdkConfigV1NonEmptyStringSchema.optional().describe('The telemetry export endpoint.'),\n exporter: z\n .enum(['otlp-http', 'console'])\n .optional()\n .describe('The telemetry exporter implementation.'),\n headers: z\n .array(analyticsHeaderSchema)\n .optional()\n .describe('Headers sent by the telemetry exporter.'),\n batchSize: z\n .number()\n .int()\n .positive()\n .optional()\n .describe('The maximum spans in each export batch.'),\n scheduledDelayMs: z\n .number()\n .nonnegative()\n .optional()\n .describe('The delay between scheduled exports, in milliseconds.'),\n exportTimeoutMs: z\n .number()\n .nonnegative()\n .optional()\n .describe('The maximum time allowed for an export, in milliseconds.'),\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().describe('Whether wire-level request and response tests are generated.'),\n exclusions: z\n .array(sdkConfigV1NonEmptyStringSchema)\n .optional()\n .describe('Operations excluded from wire tests.'),\n fallbackToGeneratedErrorExamples: z\n .boolean()\n .optional()\n .describe('Whether missing error fixtures are synthesized from generated examples.'),\n fixtureSource: z\n .enum(['synthetic', 'recorded', 'auto'])\n .optional()\n .describe('Where wire-test fixtures are obtained.'),\n});\n\nconst unitTestsSchema = z.strictObject({\n enabled: z.boolean().describe('Whether SDK unit tests are generated.'),\n exclusions: z\n .array(sdkConfigV1NonEmptyStringSchema)\n .optional()\n .describe('Operations excluded from unit tests.'),\n});\n\nconst streamsSchema = z.strictObject({\n enabled: z.boolean().describe('Whether generated clients expose streaming response APIs.'),\n responseType: z\n .enum(['wrapper', 'native', 'web'])\n .optional()\n .describe('The streaming response abstraction exposed by generated clients.'),\n fileResponseType: z\n .enum(['stream', 'binary-response'])\n .optional()\n .describe('The response type used for file downloads.'),\n defaultChunkSizeBytes: z\n .number()\n .int()\n .positive()\n .optional()\n .describe('The default number of bytes yielded by streaming iterators.'),\n});\n\nconst layoutConfigSchema = z.strictObject({\n outputDirectory: z\n .enum(['project-root', 'source-root'])\n .optional()\n .describe('Whether generated source is rooted at the project or its source directory.'),\n packagePath: sdkConfigV1NonEmptyStringSchema\n .optional()\n .describe('The package-relative path for generated source files.'),\n});\n\nconst serializationConfigSchema = z.strictObject({\n enumRepresentation: z\n .enum(['enum', 'union', 'literal', 'forward-compatible-enum', 'language-default'])\n .optional()\n .describe('How schema enums are represented in generated code.'),\n additionalProperties: z\n .enum(['allow', 'forbid', 'ignore', 'language-default'])\n .optional()\n .describe('How undeclared object properties are handled.'),\n inlineTypes: z\n .boolean()\n .optional()\n .describe('Whether inline schemas remain nested under their parent types.'),\n omitUndefined: z\n .boolean()\n .optional()\n .describe('Whether undefined properties are omitted during serialization.'),\n});\n\nconst generationConfigOverrideShape = {\n includeOptionalSnippetParameters: z\n .boolean()\n .optional()\n .describe('Whether usage snippets include optional request parameters.'),\n buildAllModels: z\n .boolean()\n .optional()\n .describe('Whether models not referenced by operations are also generated.'),\n inferServiceNames: z\n .boolean()\n .optional()\n .describe('Whether service names are inferred from API structure.'),\n includeDeprecatedOperations: z\n .boolean()\n .optional()\n .describe('Whether deprecated API operations are generated.'),\n multipleResponses: z\n .boolean()\n .optional()\n .describe('Whether operations model multiple successful response types.'),\n devContainer: z\n .boolean()\n .optional()\n .describe('Whether development-container configuration is generated.'),\n allowMockClient: z\n .boolean()\n .optional()\n .describe('Whether a mock API client is included in the generated SDK.'),\n ignoreFiles: z\n .array(sdkConfigV1NonEmptyStringSchema)\n .optional()\n .describe('Generated paths excluded from the final output.'),\n reservedKeywords: z\n .array(sdkConfigV1NonEmptyStringSchema)\n .optional()\n .describe('Additional identifiers treated as reserved words.'),\n customCode: customCodeConfigSchema\n .optional()\n .describe('Customer-authored code merge configuration.'),\n customQueryPaths: z\n .array(sdkConfigV1RelativePathSchema)\n .optional()\n .describe('Relative paths to custom query definitions.'),\n analytics: analyticsConfigSchema.optional().describe('Generated client telemetry configuration.'),\n wireTests: wireTestsSchema\n .optional()\n .describe('Wire-level request and response test generation.'),\n unitTests: unitTestsSchema.optional().describe('SDK unit-test generation.'),\n webSockets: z\n .boolean()\n .optional()\n .describe('Whether WebSocket clients are generated for supported channels.'),\n streams: streamsSchema.optional().describe('Streaming response generation behavior.'),\n naming: namingConfigSchema.optional().describe('Names and casing used by generated code.'),\n layout: layoutConfigSchema.optional().describe('Generated project and source layout.'),\n serialization: serializationConfigSchema\n .optional()\n .describe('Generated model serialization behavior.'),\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 buildAllModels: z\n .boolean()\n .default(false)\n .describe('Whether models not referenced by operations are also generated.'),\n inferServiceNames: z\n .boolean()\n .default(false)\n .describe('Whether service names are inferred from API structure.'),\n includeDeprecatedOperations: z\n .boolean()\n .default(true)\n .describe('Whether deprecated API operations are generated.'),\n multipleResponses: z\n .boolean()\n .default(false)\n .describe('Whether operations model multiple successful response types.'),\n devContainer: z\n .boolean()\n .default(false)\n .describe('Whether development-container configuration is generated.'),\n allowMockClient: z\n .boolean()\n .default(false)\n .describe('Whether a mock API client is included in the generated SDK.'),\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, type RefinementCtx } from 'zod';\nimport {\n CLI_DISTRIBUTION_REQUIRES_GITHUB_DELIVERY_MESSAGE,\n cliDistributionConfigSchema,\n} from '../../sdk-config-domain/v1/distribution';\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 mavenSignatureSchema = z.strictObject({\n keyId: sdkConfigV1NonEmptyStringSchema.describe(\n 'The signing key identifier, or an environment expression that resolves to it.',\n ),\n password: sdkConfigV1NonEmptyStringSchema.describe(\n 'The signing key password, or an environment expression that resolves to it.',\n ),\n secretKey: sdkConfigV1NonEmptyStringSchema.describe(\n 'The armored secret key, or an environment expression that resolves to it.',\n ),\n});\n\n/**\n * A NuGet or RubyGems `api-key` in Fern's config names the repository secret the generated release\n * workflow reads the key from, so only an exact environment expression is accepted here and a\n * literal key can never be written to an SDK Config document.\n */\nfunction apiKeySecretSchema(registry: string, example: string) {\n return sdkConfigV1NonEmptyStringSchema.regex(\n /^\\$\\{[A-Za-z_][A-Za-z0-9_]*\\}$/,\n `${registry} apiKey must be an environment expression naming a secret, such as ${example}`,\n );\n}\n\nfunction apiKeySecretDescription(registry: string, example: string): string {\n return `An environment expression naming the repository secret that the generated release workflow reads the ${registry} API key from, such as ${example}. This is a secret name, never the key itself.`;\n}\n\n/**\n * Trusted publishing authenticates the release workflow with a short-lived OIDC token the registry\n * verifies against the repository, so there is no API key secret to name. The two are therefore\n * mutually exclusive.\n */\nfunction trustedPublishingSchema(registry: string) {\n return z\n .boolean()\n .optional()\n .describe(\n `Whether ${registry} publication uses trusted publishing (OIDC) instead of an API key secret.`,\n );\n}\n\nfunction refineApiKeyAgainstTrustedPublishing(\n publish: { apiKey?: string | undefined; trustedPublishing?: boolean | undefined },\n context: z.RefinementCtx,\n): void {\n if (publish.trustedPublishing === true && publish.apiKey !== undefined) {\n context.addIssue({\n code: 'custom',\n message: 'apiKey must be omitted when trustedPublishing is true',\n path: ['apiKey'],\n });\n }\n}\n\nconst commonPublishShape = {\n url: sdkConfigV1NonEmptyStringSchema.optional().describe('A custom package registry URL.'),\n releaseBranch: sdkConfigV1NonEmptyStringSchema\n .optional()\n .describe('The branch used by generated package release workflows.'),\n tolerateRepublish: z\n .boolean()\n .optional()\n .describe('Whether an already-published package version is treated as non-fatal.'),\n};\n\nexport const sdkConfigV1PublishConfigSchema = z.discriminatedUnion('registry', [\n z\n .strictObject({\n registry: z.literal('npm').describe('Publishes the package to an npm-compatible registry.'),\n token: sdkConfigV1NonEmptyStringSchema\n .optional()\n .describe('The npm registry token, or an environment expression that resolves to it.'),\n trustedPublishing: z\n .boolean()\n .optional()\n .describe('Whether npm publication uses trusted publishing (OIDC) instead of a token.'),\n ...commonPublishShape,\n })\n .superRefine((publish, context) => {\n if (publish.trustedPublishing === true && publish.token !== undefined) {\n context.addIssue({\n code: 'custom',\n message: 'token must be omitted when trustedPublishing is true',\n path: ['token'],\n });\n }\n }),\n z.strictObject({\n registry: z.literal('pypi').describe('Publishes the package to a PyPI-compatible registry.'),\n username: sdkConfigV1NonEmptyStringSchema\n .optional()\n .describe('The PyPI username, or an environment expression that resolves to it.'),\n password: sdkConfigV1NonEmptyStringSchema\n .optional()\n .describe('The PyPI password or token, or an environment expression that resolves to it.'),\n ...commonPublishShape,\n }),\n z.strictObject({\n registry: z\n .literal('maven')\n .describe('Publishes the package to a Maven-compatible repository.'),\n username: sdkConfigV1NonEmptyStringSchema\n .optional()\n .describe('The Maven username, or an environment expression that resolves to it.'),\n password: sdkConfigV1NonEmptyStringSchema\n .optional()\n .describe('The Maven password, or an environment expression that resolves to it.'),\n signature: mavenSignatureSchema\n .optional()\n .describe('Credentials used to sign Maven artifacts.'),\n ...commonPublishShape,\n }),\n z\n .strictObject({\n registry: z\n .literal('nuget')\n .describe('Publishes the package to a NuGet-compatible registry.'),\n apiKey: apiKeySecretSchema('NuGet', '${NUGET_API_KEY}')\n .optional()\n .describe(apiKeySecretDescription('NuGet', '${NUGET_API_KEY}')),\n trustedPublishing: trustedPublishingSchema('NuGet'),\n ...commonPublishShape,\n })\n .superRefine(refineApiKeyAgainstTrustedPublishing),\n z\n .strictObject({\n registry: z\n .literal('rubygems')\n .describe('Publishes the package to a RubyGems-compatible registry.'),\n apiKey: apiKeySecretSchema('RubyGems', '${RUBYGEMS_API_KEY}')\n .optional()\n .describe(apiKeySecretDescription('RubyGems', '${RUBYGEMS_API_KEY}')),\n trustedPublishing: trustedPublishingSchema('RubyGems'),\n ...commonPublishShape,\n })\n .superRefine(refineApiKeyAgainstTrustedPublishing),\n z.strictObject({\n registry: z.literal('crates').describe('Publishes the crate to a Cargo-compatible registry.'),\n token: sdkConfigV1NonEmptyStringSchema\n .optional()\n .describe('The Cargo registry token, or an environment expression that resolves to it.'),\n ...commonPublishShape,\n }),\n z.strictObject({\n registry: z.literal('go').describe('Publishes the SDK as a Go module.'),\n ...commonPublishShape,\n }),\n z.strictObject({\n registry: z\n .literal('composer')\n .describe('Publishes the package to a Composer-compatible registry.'),\n ...commonPublishShape,\n }),\n]);\n\nconst reviewersSchema = z.strictObject({\n teams: z\n .array(sdkConfigV1NonEmptyStringSchema)\n .optional()\n .describe('GitHub teams requested as reviewers.'),\n users: z\n .array(sdkConfigV1NonEmptyStringSchema)\n .optional()\n .describe('GitHub users requested as reviewers.'),\n});\n\nconst githubCredentialsSchema = z.strictObject({\n username: sdkConfigV1NonEmptyStringSchema\n .optional()\n .describe('The username used to authenticate with the GitHub host.'),\n password: sdkConfigV1NonEmptyStringSchema\n .optional()\n .describe('The password used to authenticate with the GitHub host.'),\n token: sdkConfigV1NonEmptyStringSchema\n .optional()\n .describe('A token used to authenticate with the GitHub host.'),\n apiKey: sdkConfigV1NonEmptyStringSchema\n .optional()\n .describe('An API key used to authenticate with the GitHub host.'),\n});\n\nconst githubOutputSchema = z.strictObject({\n repository: sdkConfigV1NonEmptyStringSchema.describe(\n 'The GitHub repository that receives generated files.',\n ),\n host: sdkConfigV1NonEmptyStringSchema\n .optional()\n .describe('The GitHub host for enterprise installations.'),\n branch: sdkConfigV1NonEmptyStringSchema\n .optional()\n .describe('The target branch for generated changes.'),\n mode: z\n .enum(['release', 'pull-request', 'push', 'commit', 'commit-and-release'])\n .optional()\n .describe('How generated changes are delivered to the repository.'),\n reviewers: reviewersSchema\n .optional()\n .describe('Reviewers requested for generated pull requests.'),\n credentials: githubCredentialsSchema\n .optional()\n .describe('Credentials used to authenticate GitHub delivery.'),\n privateRepository: z\n .boolean()\n .optional()\n .describe('Whether the destination repository is private.'),\n});\n\nconst filesOutputSchema = z.strictObject({\n delivery: z.literal('files').describe('Writes the generated SDK to a directory.'),\n path: sdkConfigV1NonEmptyStringSchema\n .optional()\n .describe('The destination directory for generated files.'),\n publish: sdkConfigV1PublishConfigSchema\n .optional()\n .describe('Optional package registry publication.'),\n});\n\nconst zipOutputSchema = z.strictObject({\n delivery: z.literal('zip').describe('Packages the generated SDK as a ZIP archive.'),\n fileName: sdkConfigV1NonEmptyStringSchema\n .optional()\n .describe('The generated ZIP archive file name.'),\n publish: sdkConfigV1PublishConfigSchema\n .optional()\n .describe('Optional package registry publication.'),\n});\n\nconst githubDeliverySchema = z.strictObject({\n delivery: z.literal('github').describe('Delivers the generated SDK to GitHub.'),\n github: githubOutputSchema.describe('GitHub repository delivery settings.'),\n publish: sdkConfigV1PublishConfigSchema\n .optional()\n .describe('Optional package registry publication.'),\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\nconst cliDistributionShape = {\n distribution: cliDistributionConfigSchema\n .optional()\n .describe(\n 'CLI release channels and build attestation settings for the generated release workflow; credentials are GitHub Actions secret names.',\n ),\n};\n\nfunction rejectDistributionWithoutGithub(\n output: { distribution?: unknown },\n context: RefinementCtx,\n): void {\n if (output.distribution !== undefined) {\n context.addIssue({\n code: 'custom',\n message: CLI_DISTRIBUTION_REQUIRES_GITHUB_DELIVERY_MESSAGE,\n path: ['distribution'],\n });\n }\n}\n\n// `distribution` is accepted on every delivery so files/zip get an actionable error instead of a\n// generic unrecognized-key error.\nexport const sdkConfigV1CliOutputConfigSchema = z.discriminatedUnion(\n 'delivery',\n [\n filesOutputSchema.extend(cliDistributionShape).superRefine(rejectDistributionWithoutGithub),\n zipOutputSchema.extend(cliDistributionShape).superRefine(rejectDistributionWithoutGithub),\n githubDeliverySchema.extend(cliDistributionShape),\n ],\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>;\nexport type SdkConfigV1CliOutputConfig = z.infer<typeof sdkConfigV1CliOutputConfigSchema>;\n","import { z } from 'zod';\n\n/** Replay behavior for generation requests. */\nexport const sdkConfigV1ReplayConfigSchema = z.strictObject({\n enabled: z\n .boolean()\n .describe('Whether regeneration reapplies customer-authored repository changes.'),\n});\n\nexport type SdkConfigV1ReplayConfig = z.infer<typeof sdkConfigV1ReplayConfigSchema>;\n","import { z } from 'zod';\n\nexport const apiImportSettingsSchema = z.strictObject({\n respectNullableSchemas: z\n .boolean()\n .optional()\n .describe('Whether nullable schemas remain nullable in generated types.'),\n titleAsSchemaName: z\n .boolean()\n .optional()\n .describe('Whether a schema title can determine the generated type name.'),\n coerceEnumsToLiterals: z\n .boolean()\n .optional()\n .describe('Whether single-value enums are imported as literal values.'),\n idiomaticRequestNames: z\n .boolean()\n .optional()\n .describe('Whether request types use concise, idiomatic generated names.'),\n wrapReferencesToNullableInOptional: z\n .boolean()\n .optional()\n .describe('Whether nullable schema references are also treated as optional.'),\n coerceOptionalSchemasToNullable: z\n .boolean()\n .optional()\n .describe('Whether optional properties are represented as nullable required properties.'),\n pathParameterOrder: z\n .enum(['url-order', 'spec-order'])\n .optional()\n .describe('Whether path parameters follow their URL order or specification order.'),\n onlyIncludeReferencedSchemas: z\n .boolean()\n .optional()\n .describe('Whether unreferenced schemas are omitted from the generated SDK.'),\n objectQueryParameters: z\n .boolean()\n .optional()\n .describe('Whether object-valued query parameters are preserved as objects.'),\n typeDatesAsStrings: z\n .boolean()\n .optional()\n .describe('Whether date and date-time schemas are generated as strings.'),\n groupMultiApiEnvironments: z\n .boolean()\n .optional()\n .describe(\n 'Whether environments from multiple API sources are merged into shared named groups.',\n ),\n ignoreTags: z\n .boolean()\n .optional()\n .describe('Whether API tags are ignored when organizing generated resources.'),\n disambiguateRequestNames: z\n .boolean()\n .optional()\n .describe('Whether colliding request type names are automatically disambiguated.'),\n respectReadonlySchemas: z\n .boolean()\n .optional()\n .describe(\n 'Whether read-only properties are modeled separately for request and response types.',\n ),\n discriminatedUnionV2: z\n .boolean()\n .optional()\n .describe('Whether oneOf and anyOf schemas use the newer discriminator inference rules.'),\n undiscriminatedUnionsWithLiterals: z\n .boolean()\n .optional()\n .describe('Whether literal-bearing unions remain undiscriminated during import.'),\n inlineAllOfSchemas: z\n .boolean()\n .optional()\n .describe('Whether schemas composed with allOf are inlined when possible.'),\n inferDiscriminatedUnionBaseProperties: z\n .boolean()\n .optional()\n .describe(\n 'Whether properties every discriminated-union variant shares are lifted onto the union.',\n ),\n resolveSchemaCollisions: z\n .boolean()\n .optional()\n .describe('Whether colliding imported schema names are resolved automatically.'),\n asyncApiMessageNaming: z\n .enum(['v1', 'v2'])\n .optional()\n .describe('The naming strategy used for messages imported from AsyncAPI.'),\n defaultIntegerFormat: z\n .enum(['int32', 'int64', 'uint32', 'uint64'])\n .optional()\n .describe('The integer format used when a schema does not declare one.'),\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.describe('A unique identifier for this API source.'),\n type: sourceSpecTypeSchema.describe('The API description format of this source.'),\n name: sdkConfigV1NonEmptyStringSchema\n .optional()\n .describe('A human-readable name for this API source.'),\n namespace: sdkConfigV1NonEmptyStringSchema\n .optional()\n .describe('A namespace used to isolate this source in a multi-source SDK.'),\n apiImportSettings: apiImportSettingsSchema\n .optional()\n .describe('Import behavior that overrides the source-level defaults for this spec.'),\n overlays: z\n .array(sdkConfigV1RelativePathSchema)\n .optional()\n .describe('Relative paths to overlays applied to this source in order.'),\n overrides: z\n .array(sdkConfigV1RelativePathSchema)\n .optional()\n .describe('Relative paths to source override files applied in order.'),\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({\n ...sourceSpecShape,\n path: sdkConfigV1RelativePathSchema.describe('The relative path to the API source file.'),\n }),\n z.strictObject({\n ...sourceSpecShape,\n url: z\n .url({ protocol: /^https?$/ })\n .describe('The HTTP or HTTPS URL of the API source file.'),\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 .describe('API source files in authoritative processing order.'),\n apiImportSettings: apiImportSettingsSchema\n .optional()\n .describe('Default import behavior shared by every source spec.'),\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';\n\nexport const csharpGenerationConfigSchema = z.strictObject({\n useOptionalWrapper: z\n .boolean()\n .optional()\n .describe('Whether optional values use an explicit Optional wrapper.'),\n simplifyObjectDictionaries: z\n .boolean()\n .optional()\n .describe('Whether object schemas with arbitrary values use simplified dictionary types.'),\n explicitNamespaces: z\n .boolean()\n .optional()\n .describe('Whether generated resource groups use explicit nested namespaces.'),\n rootNamespaceForCoreClasses: z\n .boolean()\n .optional()\n .describe('Whether shared client classes are emitted in the root namespace.'),\n includeExceptionHandler: z\n .boolean()\n .optional()\n .describe('Whether generated client operations use a configurable exception handler.'),\n experimentalExplicitNullableOptional: z\n .boolean()\n .optional()\n .describe(\n 'Whether optional nullable properties distinguish omitted values from explicit nulls.',\n ),\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\n .boolean()\n .optional()\n .describe('Whether complex models use the legacy Go representation.'),\n /** Uppercase common initialisms in generated names (`UserID` rather than `UserId`). */\n smartCasing: z\n .boolean()\n .optional()\n .describe('Whether generated Go names capitalize common initialisms.'),\n /** Overrides the fern root-client constructor independently from the client type name. */\n clientConstructorName: nonEmptyStringSchema\n .optional()\n .describe('The generated root-client constructor name.'),\n unionVersion: z\n .enum(['v0', 'v1'])\n .optional()\n .describe('The representation used for generated Go unions.'),\n includeLegacyClientOptions: z\n .boolean()\n .optional()\n .describe('Whether the client retains legacy constructor option helpers.'),\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\n .enum(['flat', 'nested'])\n .optional()\n .describe('Whether generated JVM packages use a flat or nested resource layout.'),\n useLocalDateForDates: z\n .boolean()\n .optional()\n .describe('Whether date-only values use LocalDate instead of OffsetDateTime.'),\n collapseOptionalNullable: z\n .boolean()\n .optional()\n .describe('Whether optional nullable values collapse into a single nullable representation.'),\n gradleDistributionUrl: z\n .string()\n .min(1)\n .optional()\n .describe('The Gradle distribution URL written to the generated wrapper.'),\n gradlePluginManagement: z\n .string()\n .optional()\n .describe('Plugin management configuration added to the generated Gradle settings.'),\n gradleCentralDependencyManagement: z\n .boolean()\n .optional()\n .describe('Whether dependency versions are managed centrally in the Gradle project.'),\n /** Selects co-located async methods or a separate async client surface. */\n asyncStyle: z\n .enum(['dedicated-client', 'twin-methods'])\n .optional()\n .describe('Whether asynchronous operations use a separate client or co-located methods.'),\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\n .boolean()\n .optional()\n .describe('Whether Java SDK documentation includes Kotlin usage snippets.'),\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 { jsonObjectSchema, nonEmptyStringSchema } from '../common';\n\nconst compilerOptionsSchema = z.strictObject({\n target: nonEmptyStringSchema\n .optional()\n .describe('The JavaScript language target passed to TypeScript.'),\n module: nonEmptyStringSchema.optional().describe('The module format passed to TypeScript.'),\n lib: z\n .array(nonEmptyStringSchema)\n .optional()\n .describe('The runtime library definitions passed to TypeScript.'),\n});\n\nconst packageScriptSchema = z.strictObject({\n name: nonEmptyStringSchema.describe('The package script name.'),\n command: nonEmptyStringSchema.describe('The command executed by the package script.'),\n});\n\nconst httpClientSchema = z.strictObject({\n name: z\n .enum(['axios', 'fetch', 'node-fetch'])\n .describe('The HTTP client used by generated TypeScript code.'),\n});\n\nexport const typescriptGenerationConfigSchema = z.strictObject({\n typescriptVersion: nonEmptyStringSchema\n .optional()\n .describe('The TypeScript version used by the generated project.'),\n zodVersion: nonEmptyStringSchema\n .optional()\n .describe('The Zod version used by generated runtime schemas.'),\n compilerOptions: compilerOptionsSchema\n .optional()\n .describe('TypeScript compiler options for the generated project.'),\n httpClient: httpClientSchema\n .optional()\n .describe('The HTTP client used by generated TypeScript code.'),\n packageManager: z\n .enum(['pnpm', 'yarn'])\n .optional()\n .describe('The package manager used by the generated project.'),\n packageManagerVersion: nonEmptyStringSchema\n .optional()\n .describe('The package manager version used by the generated project.'),\n testFramework: z\n .enum(['jest', 'vitest'])\n .optional()\n .describe('The test framework used by generated tests.'),\n namingStrategy: z\n .enum(['base', 'originalPropertyNames'])\n .optional()\n .describe('How schema property names are converted into TypeScript identifiers.'),\n bundle: z.boolean().optional().describe('Whether the generated package includes bundled output.'),\n exportClassDefault: z\n .boolean()\n .optional()\n .describe('Whether the client class is also exported as the default export.'),\n /** Name of the top-level namespace export emitted by Fern-compatible TypeScript SDKs. */\n namespaceExportName: nonEmptyStringSchema\n .optional()\n .describe('The top-level namespace export name.'),\n consolidateTypeFiles: z\n .boolean()\n .optional()\n .describe('Whether generated types are consolidated into fewer source files.'),\n formDataSupport: z\n .enum(['Node16', 'Node18'])\n .optional()\n .describe(\n 'The multipart form-data implementation: Node16 uses the form-data packages, Node18 uses the platform FormData.',\n ),\n allowExtraFields: z\n .boolean()\n .optional()\n .describe(\n 'Whether response parsing keeps unrecognized object keys and accepts unrecognized union members and enum values.',\n ),\n generateSubpackageExports: z\n .boolean()\n .optional()\n .describe(\n 'Whether the package manifest exports each subpackage client as its own entry point.',\n ),\n exportAllRequestsAtRoot: z\n .boolean()\n .optional()\n .describe('Whether every request type is also exported from the package root.'),\n generateEndpointMetadata: z\n .boolean()\n .optional()\n .describe('Whether generated clients expose metadata for each endpoint.'),\n outputEsm: z\n .boolean()\n .optional()\n .describe(\n 'Whether the package is marked as an ES module while still shipping its CommonJS build.',\n ),\n neverThrowErrors: z\n .boolean()\n .optional()\n .describe(\n 'Whether client methods return a wrapped response instead of throwing on a non-2xx status.',\n ),\n includeOtherInUnionTypes: z\n .boolean()\n .optional()\n .describe('Whether union types gain a member for variants the SDK does not recognize.'),\n includeUtilsOnUnionMembers: z\n .boolean()\n .optional()\n .describe('Whether helper utilities are generated on each member of a union type.'),\n omitFernHeaders: z\n .boolean()\n .optional()\n .describe('Whether requests omit the SDK identification headers and the User-Agent header.'),\n linter: z\n .enum(['biome', 'oxlint', 'none'])\n .optional()\n .describe('The linter configured in the generated project.'),\n formatter: z\n .enum(['prettier', 'biome', 'oxfmt', 'none'])\n .optional()\n .describe('The formatter configured in the generated project.'),\n exports: jsonObjectSchema\n .optional()\n .describe(\n 'package.json exports entries, keyed by subpath, applied over the generated exports. Each subpath replaces the generated one.',\n ),\n files: z\n .array(nonEmptyStringSchema)\n .optional()\n .describe('package.json files entries, listed ahead of the generated ones.'),\n engines: z\n .record(nonEmptyStringSchema, nonEmptyStringSchema)\n .optional()\n .describe('package.json engines version ranges, keyed by engine name such as node.'),\n lintStaged: z\n .record(nonEmptyStringSchema, z.array(nonEmptyStringSchema).min(1))\n .optional()\n .describe('lint-staged commands to run, keyed by file glob.'),\n browser: z\n .record(nonEmptyStringSchema, z.union([z.boolean(), nonEmptyStringSchema]))\n .optional()\n .describe(\n 'package.json browser field: a module or file is excluded (false) or replaced by another path.',\n ),\n allowCustomFetcher: z\n .boolean()\n .optional()\n .describe('Whether callers can supply a custom fetch implementation.'),\n useBrandedStringAliases: z\n .boolean()\n .optional()\n .describe('Whether string aliases are emitted as distinct branded types.'),\n useLegacyExports: z\n .boolean()\n .optional()\n .describe('Whether the package emits the legacy export layout.'),\n useBigInt: z\n .boolean()\n .optional()\n .describe('Whether 64-bit integer values are represented with bigint.'),\n serdeLayer: z\n .boolean()\n .optional()\n .describe('Whether generated models use Fern serialization and deserialization helpers.'),\n /** Ship only the ESM build (drops CJS) to avoid the Node dual-package hazard. */\n esmOnly: z.boolean().optional().describe('Whether the package emits only ECMAScript modules.'),\n scripts: z\n .array(packageScriptSchema)\n .optional()\n .describe('Additional scripts added to the generated package manifest.'),\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\n .array(nonEmptyStringSchema)\n .optional()\n .describe('Operations explicitly included as MCP tools.'),\n exclude: z\n .array(nonEmptyStringSchema)\n .optional()\n .describe('Operations explicitly excluded from MCP tools.'),\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\n .optional()\n .describe('The name advertised by the generated MCP server.'),\n serverDescription: nonEmptyStringSchema\n .optional()\n .describe('The description advertised by the generated MCP server.'),\n excludeAvailability: z\n .array(z.enum(mcpAvailabilityStatuses))\n .optional()\n .describe('Operation availability statuses excluded from MCP tool generation.'),\n tools: mcpToolFilterSchema\n .optional()\n .describe('Global operation filters for generated MCP tools.'),\n toolsets: z\n .record(mcpToolsetNameSchema, mcpToolFilterSchema)\n .optional()\n .describe('Named MCP toolsets and the operation filters for each toolset.'),\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\n .enum(['public', 'private'])\n .optional()\n .describe('The visibility of generated PHP model properties.'),\n generateClientInterfaces: z\n .boolean()\n .optional()\n .describe('Whether interfaces are generated for PHP client classes.'),\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().describe('The source file name for the Python client.'),\n exportedFileName: nonEmptyStringSchema\n .optional()\n .describe('The file name used when exporting the Python client.'),\n});\n\nconst pydanticConfigSchema = z.strictObject({\n versionCompatibility: z\n .enum(['v1', 'v2', 'both', 'v1-on-v2'])\n .optional()\n .describe('The Pydantic major versions supported by generated models.'),\n frozen: z.boolean().optional().describe('Whether generated Pydantic models are immutable.'),\n requireOptionalFields: z\n .boolean()\n .optional()\n .describe('Whether Optional fields remain required unless they declare a default.'),\n unionNaming: z\n .enum(['v0', 'v1'])\n .optional()\n .describe('The naming strategy for generated union types.'),\n useFieldAliases: z\n .boolean()\n .optional()\n .describe('Whether Pydantic field aliases preserve wire names.'),\n});\n\nconst additionalInitExportSchema = z.strictObject({\n from: nonEmptyStringSchema.describe('The module from which names are re-exported.'),\n imports: z.array(nonEmptyStringSchema).min(1).describe('Names re-exported from the module.'),\n});\n\nexport const pythonGenerationConfigSchema = z.strictObject({\n pythonVersion: nonEmptyStringSchema\n .optional()\n .describe('The Python version targeted by the generated project.'),\n pydanticVersion: nonEmptyStringSchema\n .optional()\n .describe('The Pydantic dependency version requirement.'),\n pydantic: pydanticConfigSchema.optional().describe('Pydantic model-generation behavior.'),\n client: pythonClientSchema.optional().describe('Python client file naming.'),\n /** Default followed by generated sync and async HTTP clients when the caller does not override it. */\n followRedirectsByDefault: z\n .boolean()\n .optional()\n .describe('Whether generated HTTP clients follow redirects by default.'),\n /** Chunk size passed to Python byte-stream iterators. */\n defaultBytesStreamChunkSize: z\n .number()\n .int()\n .positive()\n .optional()\n .describe('The default byte-stream iterator chunk size.'),\n /** Python interpreter recursion limit installed by the generated package at import time. */\n recursionLimit: z\n .number()\n .int()\n .gt(1_000)\n .optional()\n .describe('The Python recursion limit installed when the generated package is imported.'),\n /** Published Python extras, keyed by extra name with package dependency names as values. */\n extras: z\n .record(nonEmptyStringSchema, z.array(nonEmptyStringSchema))\n .optional()\n .describe('Published Python extras and their dependency names.'),\n alwaysInitializeOptionals: z\n .boolean()\n .optional()\n .describe('Whether optional model fields are initialized even when omitted.'),\n useTypedDictRequests: z\n .boolean()\n .optional()\n .describe('Whether request bodies are generated as TypedDict types.'),\n additionalInitExports: z\n .array(additionalInitExportSchema)\n .optional()\n .describe('Additional names re-exported from the package initializer.'),\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\n .array(nonEmptyStringSchema)\n .optional()\n .describe('Files the generated entry file loads with `require`.'),\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\n .enum(['offset', 'utc'])\n .optional()\n .describe('Whether datetime values preserve their offset or normalize to UTC.'),\n /** Uppercase common initialisms in generated names (`UserID` rather than `UserId`). */\n capitalizeInitialisms: z\n .boolean()\n .optional()\n .describe('Whether generated Rust names capitalize common initialisms.'),\n /** Cargo features, mapping a feature name to the dependencies or features it enables. */\n features: z\n .record(z.string(), z.array(nonEmptyStringSchema))\n .optional()\n .describe('Cargo features and the dependencies or features each enables.'),\n /** Overrides which features make up Cargo's `default` feature set. */\n defaultFeatures: z\n .array(nonEmptyStringSchema)\n .optional()\n .describe('Cargo features included in the crate default feature set.'),\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\n .optional()\n .describe('The Swift module name for the generated package.'),\n nullableAsOptional: z\n .boolean()\n .optional()\n .describe('Whether nullable values are represented as Swift optionals.'),\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({\n enabled: z.literal(true).describe('Enables custom Terraform plan modifiers.'),\n sourceDir: nonEmptyStringSchema.describe(\n 'The directory containing custom plan modifier source files.',\n ),\n }),\n z.strictObject({\n enabled: z.literal(false).describe('Disables custom Terraform plan modifiers.'),\n }),\n]);\n\nconst planModifiersSchema = z.strictObject({\n resources: planModifierSourceSchema.describe('Custom plan modifiers for generated resources.'),\n attributes: planModifierSourceSchema.describe('Custom plan modifiers for generated attributes.'),\n});\n\n/** Names of the provider-level attributes the generated provider exposes for host and credentials. */\nconst providerSchemaSchema = z.strictObject({\n addressKey: nonEmptyStringSchema.describe(\n 'The provider attribute used to configure the API address.',\n ),\n authTokenKey: nonEmptyStringSchema.describe(\n 'The provider attribute used to configure the authentication token.',\n ),\n});\n\nexport const terraformGenerationConfigSchema = z.strictObject({\n providerName: nonEmptyStringSchema.optional().describe('The Terraform provider name.'),\n providerVersion: nonEmptyStringSchema\n .optional()\n .describe('The generated Terraform provider version.'),\n providerModulePath: goModulePathSchema\n .optional()\n .describe('The Go module path for the generated provider.'),\n mockAcceptance: z\n .boolean()\n .optional()\n .describe('Whether acceptance tests use a mock API server.'),\n hideComputedDiff: z\n .boolean()\n .optional()\n .describe('Whether computed-only changes are hidden from Terraform plans.'),\n providerSchema: providerSchemaSchema\n .optional()\n .describe('Names of provider-level configuration attributes.'),\n planModifiers: planModifiersSchema\n .optional()\n .describe('Custom plan modifier source configuration.'),\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 { sdkConfigV1CliOutputConfigSchema, sdkConfigV1OutputConfigSchema } from './output';\nimport { sdkConfigV1PackageConfigSchema } from './package';\n\nconst targetOverrideShape = {\n generatorVersion: sdkConfigV1ExactSemverSchema\n .optional()\n .describe('The exact generator version used for this target.'),\n sdkName: sdkConfigV1NonEmptyStringSchema\n .optional()\n .describe('An SDK name that overrides the root value for this target.'),\n sdkVersion: sdkConfigV1NonEmptyStringSchema\n .optional()\n .describe('An SDK version that overrides the root value for this target.'),\n client: sdkConfigV1ClientConfigOverrideSchema\n .optional()\n .describe('Client settings that override root client configuration for this target.'),\n docs: sdkConfigV1DocsConfigSchema\n .optional()\n .describe('Documentation settings that override root documentation for this target.'),\n package: sdkConfigV1PackageConfigSchema\n .optional()\n .describe('Package metadata that overrides root package configuration for this target.'),\n output: sdkConfigV1OutputConfigSchema\n .optional()\n .describe('Output configuration that replaces the root output for this target.'),\n};\n\nexport const sdkConfigV1TargetSchema = z.discriminatedUnion('language', [\n z.strictObject({\n language: z.literal('typescript').describe('Generates a TypeScript SDK.'),\n generation: sdkConfigV1GenerationConfigOverrideSchema\n .extend(sdkConfigV1TypescriptGenerationConfigSchema.shape)\n .optional()\n .describe('Common and TypeScript-specific generation settings for this target.'),\n ...targetOverrideShape,\n }),\n z.strictObject({\n language: z.literal('python').describe('Generates a Python SDK.'),\n generation: sdkConfigV1GenerationConfigOverrideSchema\n .extend(sdkConfigV1PythonGenerationConfigSchema.shape)\n .optional()\n .describe('Common and Python-specific generation settings for this target.'),\n ...targetOverrideShape,\n }),\n z.strictObject({\n language: z.literal('java').describe('Generates a Java SDK.'),\n generation: sdkConfigV1GenerationConfigOverrideSchema\n .extend(sdkConfigV1JavaGenerationConfigSchema.shape)\n .optional()\n .describe('Common and Java-specific generation settings for this target.'),\n ...targetOverrideShape,\n }),\n z.strictObject({\n language: z.literal('kotlin').describe('Generates a Kotlin SDK.'),\n generation: sdkConfigV1GenerationConfigOverrideSchema\n .extend(sdkConfigV1KotlinGenerationConfigSchema.shape)\n .optional()\n .describe('Common and Kotlin-specific generation settings for this target.'),\n ...targetOverrideShape,\n }),\n z.strictObject({\n language: z.literal('go').describe('Generates a Go SDK.'),\n generation: sdkConfigV1GenerationConfigOverrideSchema\n .extend(sdkConfigV1GoGenerationConfigSchema.shape)\n .optional()\n .describe('Common and Go-specific generation settings for this target.'),\n ...targetOverrideShape,\n }),\n z.strictObject({\n language: z.literal('csharp').describe('Generates a C# SDK.'),\n generation: sdkConfigV1GenerationConfigOverrideSchema\n .extend(sdkConfigV1CsharpGenerationConfigSchema.shape)\n .optional()\n .describe('Common and C#-specific generation settings for this target.'),\n ...targetOverrideShape,\n }),\n z.strictObject({\n language: z.literal('php').describe('Generates a PHP SDK.'),\n generation: sdkConfigV1GenerationConfigOverrideSchema\n .extend(sdkConfigV1PhpGenerationConfigSchema.shape)\n .optional()\n .describe('Common and PHP-specific generation settings for this target.'),\n ...targetOverrideShape,\n }),\n z.strictObject({\n language: z.literal('ruby').describe('Generates a Ruby SDK.'),\n generation: sdkConfigV1GenerationConfigOverrideSchema\n .extend(sdkConfigV1RubyGenerationConfigSchema.shape)\n .optional()\n .describe('Common and Ruby-specific generation settings for this target.'),\n ...targetOverrideShape,\n }),\n z.strictObject({\n language: z.literal('rust').describe('Generates a Rust SDK.'),\n generation: sdkConfigV1GenerationConfigOverrideSchema\n .extend(sdkConfigV1RustGenerationConfigSchema.shape)\n .optional()\n .describe('Common and Rust-specific generation settings for this target.'),\n ...targetOverrideShape,\n }),\n z.strictObject({\n language: z.literal('swift').describe('Generates a Swift SDK.'),\n generation: sdkConfigV1GenerationConfigOverrideSchema\n .extend(sdkConfigV1SwiftGenerationConfigSchema.shape)\n .optional()\n .describe('Common and Swift-specific generation settings for this target.'),\n ...targetOverrideShape,\n }),\n z.strictObject({\n language: z.literal('cli').describe('Generates a command-line interface.'),\n generation: sdkConfigV1GenerationConfigOverrideSchema\n .extend(sdkConfigV1CliGenerationConfigSchema.shape)\n .optional()\n .describe('Common and CLI-specific generation settings for this target.'),\n ...targetOverrideShape,\n output: sdkConfigV1CliOutputConfigSchema\n .optional()\n .describe(\n 'Output configuration, including optional CLI distribution channels, that replaces the root output for this target.',\n ),\n }),\n z.strictObject({\n language: z.literal('mcp').describe('Generates an MCP server.'),\n generation: sdkConfigV1GenerationConfigOverrideSchema\n .extend(sdkConfigV1McpGenerationConfigSchema.shape)\n .optional()\n .describe('Common and MCP-specific generation settings for this target.'),\n ...targetOverrideShape,\n }),\n z.strictObject({\n language: z.literal('terraform').describe('Generates a Terraform provider.'),\n generation: sdkConfigV1GenerationConfigOverrideSchema\n .extend(sdkConfigV1TerraformGenerationConfigSchema.shape)\n .optional()\n .describe('Common and Terraform-specific generation settings for this target.'),\n ...targetOverrideShape,\n }),\n]);\n\nexport type SdkConfigV1Target = z.infer<typeof sdkConfigV1TargetSchema>;\n","import { z, type RefinementCtx } from 'zod';\nimport { inputJsonSchema, stripUnknownProperties } from '../../schema/forward-compatible';\nimport { CLI_PUBLISH_REQUIRES_GITHUB_DELIVERY_MESSAGE } from '../../sdk-config-domain/v1/distribution';\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 { sdkConfigV1ReplayConfigSchema } from './replay';\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', 'cli'],\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 if (target.language === 'cli' && output.delivery !== 'github') {\n context.addIssue({\n code: 'custom',\n message: CLI_PUBLISH_REQUIRES_GITHUB_DELIVERY_MESSAGE,\n path: target.output ? ['targets', targetIndex, 'output', 'delivery'] : ['output', 'delivery'],\n });\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\n .literal(SDK_CONFIG_V1_SCHEMA_VERSION)\n .describe('The version of the customer-facing SDK Config schema.'),\n sdkName: sdkConfigV1NonEmptyStringSchema.describe('The default name used for generated SDKs.'),\n sdkVersion: sdkConfigV1NonEmptyStringSchema\n .default('1.0.0')\n .describe('The default version assigned to generated SDKs.'),\n apiVersion: sdkConfigV1NonEmptyStringSchema\n .optional()\n .describe('The version of the API represented by the generated SDKs.'),\n source: sdkConfigV1SourceConfigSchema.describe(\n 'The API descriptions used to generate the SDKs.',\n ),\n api: sdkConfigV1ApiConfigSchema.prefault({}).describe('Shared API behavior for every target.'),\n client: sdkConfigV1ClientConfigSchema\n .prefault({})\n .describe('Shared generated-client behavior for every target.'),\n package: sdkConfigV1PackageConfigSchema\n .prefault({})\n .describe('Package metadata inherited by every target.'),\n output: sdkConfigV1OutputConfigSchema\n .optional()\n .describe('The default output delivery and publication configuration.'),\n replay: sdkConfigV1ReplayConfigSchema\n .optional()\n .describe('Generation replay behavior shared by every target.'),\n docs: sdkConfigV1DocsConfigSchema\n .prefault({})\n .describe('Documentation settings inherited by every target.'),\n generation: sdkConfigV1GenerationConfigSchema\n .prefault({})\n .describe('Generation settings inherited by every target.'),\n targets: z\n .array(sdkConfigV1TargetSchema)\n .min(1)\n .describe('Language targets to generate; each language may appear once.'),\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\nconst sdkConfigV1InputJsonSchema = inputJsonSchema(sdkConfigV1Schema);\n\n/**\n * Parses a service-to-service SDK Config v1 document while ignoring additive object fields unknown\n * to this package version. Customer-authored documents should continue to use the strict parser or\n * validator so misspellings are reported.\n */\nexport function parseSdkConfigV1ForConsumption(value: unknown): SdkConfigV1 {\n return parseSdkConfigV1(stripUnknownProperties(value, sdkConfigV1InputJsonSchema));\n}\n","import { sdkConfigV1ExactSemverSchema } from './common';\nimport { jsonObjectSchema } from '../../sdk-config-domain/v1/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 { mapCliGeneration } from './fern-config-mapper-cli';\nimport { applyCliDistribution, mapCliDistribution } from './fern-config-mapper-cli-distribution';\nimport { mapOutput } from './fern-config-mapper-output';\nimport {\n mapCliPackageIdentity,\n mapLicenseFallback,\n resolveTargetPackage,\n} from './fern-config-mapper-package';\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 type PackageFallback,\n type PendingCliDistribution,\n} from './fern-config-mapper-types';\nimport type { SdkConfigV1GenerationConfigInput } from './generation';\nimport type { SdkConfigV1OutputConfig } from './output';\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\ntype LocatedObject = { value: JsonObject; path: (string | number)[] };\n\ninterface InvocationMapping {\n client: SdkConfigV1ClientConfigInput;\n docs: SdkConfigV1DocsConfig;\n generation: SdkConfigV1GenerationConfigInput;\n package: SdkConfigV1PackageConfig;\n packageFallbacks: PackageFallback[];\n cliDistribution?: PendingCliDistribution;\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 = mapOutput(generator, language, index);\n return {\n generator,\n language,\n invocation,\n ...outputMapping,\n docs: { ...invocation.docs, ...outputMapping.docs },\n };\n });\n\n const clients = partitionSharedBlock(mapped.map(({ invocation }) => invocation.client));\n const docs = partitionSharedBlock(mapped.map(({ docs }) => 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 (\n {\n generator,\n invocation,\n language,\n output,\n package: outputPackage,\n generation: outputGeneration,\n },\n index,\n ) => {\n const distribution = applyCliDistribution(output, invocation.cliDistribution, index);\n invocation.unsupportedFields.push(...distribution.diagnostics);\n const target: JsonObject = {\n language,\n output: distribution.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 const mappedPackage = { ...invocation.package, ...outputPackage, ...generator.package };\n invocation.unsupportedFields.push(\n ...resolveTargetPackage(\n mappedPackage,\n invocation.packageFallbacks,\n generator,\n output.delivery,\n index,\n ),\n );\n const targetPackage = withRustCratesPublishDefaults(mappedPackage, {\n language,\n output,\n generator,\n });\n if (Object.keys(targetPackage).length > 0 || outputPackage || generator.package) {\n target.package = targetPackage;\n }\n const targetGeneration = {\n ...generations.targetOverrides[index],\n ...outputGeneration,\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 ...optional('replay', input.replay),\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\n/**\n * The Fern Rust generator wrote a default description and an `MIT` license into `Cargo.toml` itself.\n * crates.io publication through sdk-gen-api requires both in SDK Config, so a migrated target that\n * publishes to crates keeps the same defaults. A configured value, or a custom license file, wins.\n */\nfunction withRustCratesPublishDefaults(\n packageConfig: SdkConfigV1PackageConfig,\n { language, output, generator }: RustCratesDefaultsContext,\n): SdkConfigV1PackageConfig {\n if (language !== 'rust' || !('publish' in output) || output.publish?.registry !== 'crates') {\n return packageConfig;\n }\n const { packageName } = packageConfig;\n return {\n ...(packageName ? { description: `Rust SDK for ${packageName} generated by Fern` } : {}),\n ...(usesCustomLicenseFile(generator) ? {} : { license: { type: 'MIT' } }),\n ...packageConfig,\n };\n}\n\nfunction usesCustomLicenseFile({ config, raw }: FernResolvedGeneratorInput): boolean {\n const metadata = isObject(raw) && isObject(raw.metadata) ? raw.metadata : undefined;\n return (\n (isObject(config) && typeof config.packageLicenseFile === 'string') ||\n isObject(metadata?.license)\n );\n}\n\ninterface RustCratesDefaultsContext {\n language: FernLanguage;\n output: SdkConfigV1OutputConfig;\n generator: FernResolvedGeneratorInput;\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 // The API-wide `api.settings.auto-generate-idempotency-key`; a generator's own config wins.\n const apiWideIdempotency = idempotencyKeyGenerationFrom(\n generator.idempotencyKeyGenerationConfig,\n [...prefix, 'idempotencyKeyGenerationConfig'],\n state,\n );\n if (apiWideIdempotency && client.idempotencyKeyGeneration === undefined) {\n client.idempotencyKeyGeneration = apiWideIdempotency;\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(\n language,\n config,\n state,\n packageConfig,\n [...prefix, 'config'],\n index,\n );\n mapPublishMetadata(generator.publishMetadata, packageConfig);\n if (generator.keywords?.length) {\n generation.reservedKeywords = [...generator.keywords];\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 if (language === 'typescript') {\n const includeApiReference = takeBoolean(config, ['includeApiReference'], state, [\n ...prefix,\n 'config',\n ]);\n if (includeApiReference !== undefined) docs.includeApiReference = includeApiReference;\n }\n const unsupportedFields = [\n ...(state.valueDiagnostics ?? []),\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, apiWideIdempotency !== undefined),\n ];\n return {\n client,\n docs,\n generation,\n package: packageConfig,\n packageFallbacks: state.packageFallbacks ?? [],\n ...optional('cliDistribution', state.cliDistribution),\n targetGeneration,\n unsupportedFields,\n };\n}\n\nfunction unsupportedResolvedFields(\n generator: FernResolvedGeneratorInput,\n index: number,\n idempotencyMapped: boolean,\n): FernConfigMappingDiagnostic[] {\n const values: [string, unknown][] = [\n ['automation', isDefaultAutomation(generator.automation) ? undefined : generator.automation],\n ['containerImage', generator.containerImage],\n ['irVersionOverride', generator.irVersionOverride],\n [\n 'idempotencyKeyGenerationConfig',\n idempotencyMapped ? undefined : generator.idempotencyKeyGenerationConfig,\n ],\n ['absolutePathToLocalSnippets', generator.absolutePathToLocalSnippets],\n [\n 'disableExamples',\n generator.disableExamples === false ? undefined : generator.disableExamples,\n ],\n ['generateFullProject', generator.generateFullProject],\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 sdkConfigPath: ['client', 'idempotencyKeyGeneration'],\n suggestedAction:\n 'Use true, false, or an object with header-name and methods, or set client.idempotencyKeyGeneration manually.',\n };\n }\n if (field === 'generateFullProject') {\n return {\n suggestedAction:\n 'Preserve this packaging setting on the generation request; it is not customer-authored SDK configuration.',\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\nconst HTTP_METHODS = ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS'] as const;\n\n/**\n * Fern's `auto-generate-idempotency-key`, from generator config or the API-wide setting: `true` or\n * `false`, or an object customizing `header-name` and `methods`, which enables it. An object with\n * any key or value this cannot read maps to nothing, so the whole setting is reported rather than\n * silently enabled with defaults the customer did not choose.\n */\nfunction idempotencyKeyGenerationFrom(\n value: unknown,\n path: (string | number)[],\n state: MappingState,\n): NonNullable<SdkConfigV1ClientConfigInput['idempotencyKeyGeneration']> | undefined {\n if (typeof value === 'boolean') {\n consume(state, path);\n return { enabled: value };\n }\n if (!isObject(value)) return undefined;\n const probe: MappingState = { consumedPaths: new Set<string>() };\n const headerName = takeString(value, ['headerName'], probe, path);\n const methods = takeEnumArray(value, ['methods'], HTTP_METHODS, probe, path);\n if (probe.consumedPaths.size !== Object.keys(value).length) return undefined;\n consume(state, path);\n return { enabled: true, ...optional('headerName', headerName), ...optional('methods', methods) };\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 idempotency = locate(config, ['autoGenerateIdempotencyKey'], basePath);\n const idempotencyKeyGeneration =\n idempotency && idempotencyKeyGenerationFrom(idempotency.value, idempotency.path, state);\n if (idempotencyKeyGeneration) client.idempotencyKeyGeneration = idempotencyKeyGeneration;\n\n const userAgent = compact({\n template: takeString(config, ['userAgent'], state, basePath),\n includePlatformInfo: takeBoolean(config, ['includePlatformHeaders'], state, basePath),\n allowAppInfo: takeBoolean(config, ['allowUserAgentAppInfo'], state, basePath),\n });\n if (Object.keys(userAgent).length) client.userAgent = userAgent;\n\n const offsetSemantics = takeEnum(\n config,\n ['offsetSemantics'],\n ['item-index', 'page-index'],\n state,\n basePath,\n );\n if (offsetSemantics !== undefined) client.offsetSemantics = offsetSemantics;\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 pythonClient =\n language === 'python' ? takeObject(config, ['client'], state, basePath) : undefined;\n // TypeScript's real generator config nests all root-naming overrides under one `naming` object\n // (`naming.namespace`/`naming.client`/`naming.environment`, confirmed against Fern's published\n // TypeScript generator docs) instead of the flat `clientClassName`/`environmentClassName`-style\n // keys other languages use — `mcp` shares the same generator config shape as `typescript`.\n const typescriptNaming =\n language === 'typescript' || language === 'mcp'\n ? takeObject(config, ['naming'], state, basePath)\n : undefined;\n // Fern's Ruby generator ignores `clientClassName` (the root client is always `<Module>::Client`,\n // or `<Module>::<clientModuleName>`), so Ruby leaves it unconsumed and it is reported unsupported.\n const directClientName = takeString(\n config,\n language === 'ruby' ? ['clientName'] : ['clientName', 'clientClassName'],\n state,\n basePath,\n );\n const nestedClientName = pythonClient\n ? takeString(pythonClient.value, ['className'], state, pythonClient.path)\n : typescriptNaming\n ? takeString(typescriptNaming.value, ['client'], state, typescriptNaming.path)\n : language === 'ruby'\n ? // Fern's Ruby generator renames the root client class (`Auth0::Management`) with it.\n takeString(config, ['clientModuleName'], state, basePath)\n : undefined;\n const directExportedClientName = takeString(\n config,\n ['exportedClientName', 'exportedClientClassName'],\n state,\n basePath,\n );\n const nestedExportedClientName = pythonClient\n ? takeString(pythonClient.value, ['exportedClassName'], state, pythonClient.path)\n : typescriptNaming\n ? // TypeScript's `naming.namespace` is the base every other naming.* field defaults from\n // (Fern's docs: `client` defaults to `${PascalCase(namespace)}Client`, same for\n // `environment`/`error`/etc.) — the same role `exportedClientName` already plays for every\n // other language's `clientPrefix` derivation.\n takeString(typescriptNaming.value, ['namespace'], state, typescriptNaming.path)\n : undefined;\n const nestedEnvironmentTypeName = typescriptNaming\n ? takeString(typescriptNaming.value, ['environment'], state, typescriptNaming.path)\n : undefined;\n const naming = compact({\n pagerName: takeString(\n config,\n ['customPagerName', 'customPagerClassname', 'customPagerClassName'],\n state,\n basePath,\n ),\n clientName: directClientName ?? nestedClientName,\n exportedClientName: directExportedClientName ?? nestedExportedClientName,\n environmentTypeName:\n takeString(config, ['environmentClassName', 'environmentEnumName'], state, basePath) ??\n nestedEnvironmentTypeName,\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 // Only the TypeScript generator declares this key. Fern generates wire tests unless told not\n // to, so a lone fallback setting implies `enabled: true` (the same way `streams` below does).\n const wireTestsFallback =\n language === 'typescript'\n ? takeBoolean(config, ['wireTestsFallbackToAutoGeneratedErrorExamples'], state, basePath)\n : undefined;\n if (wireTests !== undefined || wireTestsFallback !== undefined) {\n generation.wireTests = { enabled: wireTests ?? true };\n if (wireTestsFallback !== undefined) {\n generation.wireTests.fallbackToGeneratedErrorExamples = wireTestsFallback;\n }\n }\n const webSockets = takeBoolean(\n config,\n ['generateWebSocketClients', 'shouldGenerateWebsocketClients', 'enableWebsockets'],\n state,\n basePath,\n );\n if (webSockets !== undefined) generation.webSockets = webSockets;\n\n // Deliberately TS-only, unlike the shared `naming` block above: streamType/fileResponseType\n // are real keys in Fern's TypeScript generator config, but mcp has no equivalent (confirmed by\n // the sibling \"does not map fileResponseType for fernapi/fern-mcp-server\" test).\n if (language === 'typescript') {\n const streams = mapTypescriptStreams(config, state, basePath);\n if (streams) generation.streams = streams;\n }\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 mapPeerDependenciesMeta(config, state, packageConfig, basePath);\n}\n\nfunction mapTypescriptStreams(\n config: JsonObject,\n state: MappingState,\n basePath: (string | number)[],\n): SdkConfigV1GenerationConfigInput['streams'] {\n const responseType = takeEnum(config, ['streamType'], ['wrapper', 'web'], state, basePath);\n const fileResponseType = takeEnum(\n config,\n ['fileResponseType'],\n ['stream', 'binary-response'],\n state,\n basePath,\n );\n if (responseType === undefined && fileResponseType === undefined) return undefined;\n return { enabled: true, ...compact({ responseType, fileResponseType }) };\n}\n\nfunction mapLanguageConfig(\n language: FernLanguage,\n config: JsonObject,\n state: MappingState,\n packageConfig: SdkConfigV1PackageConfig,\n basePath: (string | number)[],\n targetIndex: number,\n): JsonObject {\n switch (language) {\n case 'typescript':\n return mapTypescript(config, state, packageConfig, basePath, true);\n case 'mcp':\n return {\n ...mapTypescript(config, state, packageConfig, basePath, false),\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 mapSwift(config, state, basePath);\n case 'cli':\n return mapCli(config, state, packageConfig, basePath, targetIndex);\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 sdkTarget: boolean,\n): JsonObject {\n const packageJsonManifest = mapPackageManifest(\n config,\n ['packageJson'],\n state,\n packageConfig,\n basePath,\n );\n // mapPackageManifest doesn't lift packageManager, so read its version here.\n const packageJsonPackageManager = packageJsonManifest\n ? takeString(packageJsonManifest.value, ['packageManager'], state, packageJsonManifest.path)\n : undefined;\n // corepack allows an integrity suffix (`yarn@1.22.22+sha224.<hash>`) — strip it, and treat a\n // trailing bare `@` (empty version) as unset rather than an empty string. Split on the FIRST\n // `@` after a leading scope marker (not the last) — a scoped specifier like `@acme/pm@1.0.0`\n // would otherwise mis-parse under `lastIndexOf`.\n const packageManagerAtIndex = packageJsonPackageManager\n ? packageJsonPackageManager.indexOf('@', packageJsonPackageManager.startsWith('@') ? 1 : 0)\n : -1;\n const packageManagerVersionPart =\n packageManagerAtIndex >= 0\n ? packageJsonPackageManager?.slice(packageManagerAtIndex + 1).split('+')[0]\n : undefined;\n const packageManagerVersion = packageManagerVersionPart || undefined;\n // Must run after `mapCommonConfig` (which reads the `extra*` options): the `packageJson` entries\n // replace same-named ones, and running first would let the `extra*` options overwrite them.\n if (packageJsonManifest) liftPackageJsonDependencies(packageJsonManifest, state, packageConfig);\n const manifestOptions =\n sdkTarget && packageJsonManifest\n ? mapPackageManifestOptions(packageJsonManifest, state, packageConfig)\n : {};\n const serdeLayer = takeBoolean(config, ['serdeLayer'], state, basePath);\n const noSerdeLayer = takeBoolean(config, ['noSerdeLayer'], state, basePath);\n const fetchSupport = takeEnum(\n config,\n ['fetchSupport'],\n sdkTarget ? ['native', 'node-fetch'] : ['native'],\n state,\n basePath,\n );\n // `naming.namespace` is read again here (mapCommonConfig already reads it for the shared\n // `generation.naming.exportedClientName`) — this is the TypeScript-specific namespace EXPORT\n // name itself (`export * as X`), a separate field from the shared naming block. Re-reading the\n // same path is harmless: `takeString`/`takeObject` just mark it consumed again.\n const namingObject = takeObject(config, ['naming'], state, basePath);\n const nestedNamespace = namingObject\n ? takeString(namingObject.value, ['namespace'], state, namingObject.path)\n : undefined;\n // The MCP generator keeps the TypeScript options its converter already shared; the options in\n // `sdkOnlyOptions` are only read for the TypeScript SDK, so an MCP config still reports them.\n const sdkOnlyOptions = sdkTarget\n ? {\n formDataSupport: takeEnum(\n config,\n ['formDataSupport'],\n ['Node16', 'Node18'],\n state,\n basePath,\n ),\n allowExtraFields: takeBoolean(config, ['allowExtraFields'], state, basePath),\n generateSubpackageExports: takeBoolean(\n config,\n ['generateSubpackageExports'],\n state,\n basePath,\n ),\n exportAllRequestsAtRoot: takeBoolean(config, ['exportAllRequestsAtRoot'], state, basePath),\n generateEndpointMetadata: takeBoolean(\n config,\n ['generateEndpointMetadata'],\n state,\n basePath,\n ),\n outputEsm: takeBoolean(config, ['outputEsm'], state, basePath),\n neverThrowErrors: takeBoolean(config, ['neverThrowErrors'], state, basePath),\n includeOtherInUnionTypes: takeBoolean(\n config,\n ['includeOtherInUnionTypes'],\n state,\n basePath,\n ),\n includeUtilsOnUnionMembers: takeBoolean(\n config,\n ['includeUtilsOnUnionMembers'],\n state,\n basePath,\n ),\n omitFernHeaders: takeBoolean(config, ['omitFernHeaders'], state, basePath),\n linter: takeEnum(config, ['linter'], ['biome', 'oxlint', 'none'], state, basePath),\n formatter: takeEnum(\n config,\n ['formatter'],\n ['prettier', 'biome', 'oxfmt', 'none'],\n state,\n basePath,\n ),\n }\n : {};\n return compact({\n ...sdkOnlyOptions,\n // Only the manifest writes these keys; nothing in sdkOnlyOptions or below shares a name.\n ...manifestOptions,\n typescriptVersion: takeString(config, ['typescriptVersion'], state, basePath),\n zodVersion: takeString(config, ['zodVersion'], state, basePath),\n packageManager: takeEnum(config, ['packageManager'], ['pnpm', 'yarn'], state, basePath),\n packageManagerVersion,\n testFramework: takeEnum(config, ['testFramework'], ['jest', 'vitest'], state, basePath),\n httpClient:\n fetchSupport === undefined\n ? undefined\n : { name: fetchSupport === 'native' ? 'fetch' : 'node-fetch' },\n bundle: takeBoolean(config, ['bundle'], state, basePath),\n exportClassDefault: takeBoolean(config, ['exportClassDefault'], state, basePath),\n namespaceExportName:\n takeString(config, ['namespaceExportName', 'namespaceExport'], state, basePath) ??\n nestedNamespace,\n consolidateTypeFiles: takeBoolean(config, ['consolidateTypeFiles'], state, basePath),\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 esmOnly: takeBoolean(config, ['esmOnly'], state, basePath),\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 const client = takeObject(config, ['client'], state, basePath);\n const directFileName = takeString(config, ['clientFilename'], state, basePath);\n const nestedFileName = client\n ? takeString(client.value, ['filename'], state, client.path)\n : undefined;\n const exportedFileName = client\n ? takeString(client.value, ['exportedFilename'], state, client.path)\n : undefined;\n return compact({\n pythonVersion: takeString(config, ['pythonVersion', 'pyprojectPythonVersion'], state, basePath),\n pydanticVersion: takeString(config, ['pydanticVersion'], state, basePath),\n ...optionalObject(\n 'client',\n compact({ fileName: directFileName ?? nestedFileName, exportedFileName }),\n ),\n followRedirectsByDefault: takeBoolean(config, ['followRedirectsByDefault'], state, basePath),\n defaultBytesStreamChunkSize: takeNumber(\n config,\n ['defaultBytesStreamChunkSize'],\n state,\n basePath,\n 1,\n ),\n recursionLimit: takeNumber(config, ['recursionLimit'], state, basePath, 1_001),\n extras: takeStringArrayRecord(config, ['extras'], 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 // fern-java-sdk reads only `package-prefix`; it ignores `packageName`.\n const namespaceAliases =\n language === 'java' ? ['packagePrefix'] : ['packageName', 'packagePrefix'];\n const namespace = takeString(config, namespaceAliases, 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 manifest = mapPackageManifest(config, ['composerJson'], state, packageConfig, basePath);\n if (manifest) mapComposerRequirements(manifest, state, packageConfig);\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 mapComposerRequirements(\n manifest: LocatedObject,\n state: MappingState,\n packageConfig: SdkConfigV1PackageConfig,\n): void {\n const fields = [\n ['require', 'extraDependencies'],\n ['require-dev', 'extraDevDependencies'],\n ] as const;\n for (const [composerField, packageField] of fields) {\n const located = takeObject(manifest.value, [composerField], state, manifest.path);\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[packageField] = dependencies;\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 // Fern names the gem from `config.package-name` when the output sets none; an output\n // `package-name` still wins, because the target package spreads the output package last.\n const packageName = takeString(config, ['package-name'], state, basePath);\n if (packageName !== undefined) packageConfig.packageName = packageName;\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 mapLicenseFallback(config, ['packageLicense'], state, basePath);\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 mapSwift(\n config: JsonObject,\n state: MappingState,\n basePath: (string | number)[],\n): JsonObject {\n return compact({\n moduleName: takeString(config, ['moduleName'], state, basePath),\n nullableAsOptional: takeBoolean(config, ['nullableAsOptional'], state, basePath),\n });\n}\n\nfunction mapCli(\n config: JsonObject,\n state: MappingState,\n packageConfig: SdkConfigV1PackageConfig,\n basePath: (string | number)[],\n targetIndex: 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 mapCliPackageIdentity(identity, state, targetIndex);\n }\n mapCliDistribution(config, state, basePath, targetIndex);\n return compact({\n paginationParameters: takeStringArray(config, ['paginationParameters'], state, basePath),\n skills: takeBoolean(config, ['skills'], state, basePath),\n ...mapCliGeneration(config, state, basePath, targetIndex),\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\n/**\n * Fern merges the `packageJson` option over the generated and `extra*` dependencies, one key at a\n * time, so a name it lists wins and the rest stay. The extra lists are where this contract already\n * keeps those maps, so its entries go in last and replace a same-named one in place.\n */\nfunction liftPackageJsonDependencies(\n manifest: LocatedObject,\n state: MappingState,\n packageConfig: SdkConfigV1PackageConfig,\n): void {\n for (const [field, target] of [\n ['dependencies', 'extraDependencies'],\n ['devDependencies', 'extraDevDependencies'],\n ['peerDependencies', 'extraPeerDependencies'],\n ] as const) {\n const located = takeObject(manifest.value, [field], state, manifest.path);\n if (!located) continue;\n const lifted = Object.entries(located.value).flatMap(([name, dependency]) =>\n mapDependency(name, dependency, state, [...located.path, name]),\n );\n if (lifted.length) packageConfig[target] = overrideByName(packageConfig[target] ?? [], lifted);\n }\n const meta = takeObject(manifest.value, ['peerDependenciesMeta'], state, manifest.path);\n if (!meta) return;\n const entries = peerDependenciesMetaEntries(meta, state);\n if (entries.length) {\n packageConfig.extraPeerDependenciesMeta = {\n ...packageConfig.extraPeerDependenciesMeta,\n ...Object.fromEntries(entries),\n };\n }\n}\n\nfunction overrideByName(\n existing: SdkConfigV1Dependency[],\n overrides: SdkConfigV1Dependency[],\n): SdkConfigV1Dependency[] {\n const byName = new Map(existing.map((dependency) => [dependency.name, dependency]));\n overrides.forEach((dependency) => byName.set(dependency.name, dependency));\n return [...byName.values()];\n}\n\nfunction mapPeerDependenciesMeta(\n config: JsonObject,\n state: MappingState,\n packageConfig: SdkConfigV1PackageConfig,\n basePath: (string | number)[],\n): void {\n const located = takeObject(config, ['extraPeerDependenciesMeta'], state, basePath);\n if (!located) return;\n const entries = peerDependenciesMetaEntries(located, state);\n if (entries.length) packageConfig.extraPeerDependenciesMeta = Object.fromEntries(entries);\n}\n\ntype PeerDependencyMeta = NonNullable<\n SdkConfigV1PackageConfig['extraPeerDependenciesMeta']\n>[string];\n\n/** An entry that is not an object stays unconsumed, so it is reported as unsupported. */\nfunction peerDependenciesMetaEntries(\n located: LocatedObject,\n state: MappingState,\n): (readonly [string, PeerDependencyMeta])[] {\n return Object.entries(located.value).flatMap(([name, value]) => {\n const parsed = jsonObjectSchema.safeParse(value);\n if (!parsed.success) return [];\n consume(state, [...located.path, name]);\n return [[name, parsed.data] as const];\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 source = takeDependencySource(value, state, path);\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\n/** Cargo pins a Git dependency with `rev` or `branch`; only one of `git`, `path`, `registry` applies. */\nfunction takeDependencySource(\n value: JsonObject,\n state: MappingState,\n path: (string | number)[],\n): SdkConfigV1Dependency['source'] {\n const gitUrl = takeString(value, ['git'], state, path);\n if (gitUrl) {\n const ref = takeString(value, ['ref', 'rev', 'branch'], state, path);\n return { type: 'git', url: gitUrl, ...optional('ref', ref) };\n }\n const localPath = takeString(value, ['path'], state, path);\n if (localPath) return { type: 'path', path: localPath };\n const registry = takeString(value, ['registry'], state, path);\n return registry ? { type: 'registry', registry } : undefined;\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): LocatedObject | undefined {\n const manifest = takeObject(config, aliases, state, basePath);\n if (!manifest) return undefined;\n const packageName = takeString(manifest.value, ['name'], state, manifest.path);\n const description = takeString(manifest.value, ['description'], state, manifest.path);\n const keywords = takeStringArray(manifest.value, ['keywords'], 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 : []),\n ...takeManifestAuthors(manifest, state),\n ];\n Object.assign(\n packageConfig,\n compact({\n packageName,\n description,\n homepage: takeString(manifest.value, ['homepage'], state, manifest.path),\n keywords,\n authors: authors.length ? authors : undefined,\n license: license ? { type: license } : undefined,\n }),\n );\n return manifest;\n}\n\n/**\n * Lifts the package.json keys that have a typed home. `bugs` and `repository` go to the package\n * block; the rest become TypeScript generation options. Values that do not have the declared shape\n * stay unconsumed, so they are reported as unsupported.\n */\nfunction mapPackageManifestOptions(\n manifest: LocatedObject,\n state: MappingState,\n packageConfig: SdkConfigV1PackageConfig,\n) {\n const bugs = takeManifestBugs(manifest, state);\n if (bugs) packageConfig.bugs = bugs;\n const repository = takeManifestRepository(manifest, state);\n if (repository !== undefined && packageConfig.repository === undefined) {\n packageConfig.repository = repository;\n }\n const exports = takeObject(manifest.value, ['exports'], state, manifest.path);\n if (exports) consume(state, exports.path);\n return compact({\n exports: exports?.value,\n scripts: takeManifestScripts(manifest, state),\n files: takeStringArray(manifest.value, ['files'], state, manifest.path),\n engines: takeManifestStringRecord(manifest, 'engines', state),\n lintStaged: takeManifestLintStaged(manifest, state),\n browser: takeManifestBrowser(manifest, state),\n });\n}\n\nfunction takeManifestBugs(manifest: LocatedObject, state: MappingState) {\n const text = takeString(manifest.value, ['bugs'], state, manifest.path);\n if (text !== undefined) return { url: text };\n const located = takeObject(manifest.value, ['bugs'], state, manifest.path);\n if (!located) return undefined;\n const url = takeString(located.value, ['url'], state, located.path);\n const email = takeString(located.value, ['email'], state, located.path);\n return url === undefined && email === undefined ? undefined : compact({ url, email });\n}\n\nfunction takeManifestRepository(manifest: LocatedObject, state: MappingState) {\n const text = takeString(manifest.value, ['repository'], state, manifest.path);\n if (text !== undefined) return text;\n const located = takeObject(manifest.value, ['repository'], state, manifest.path);\n if (!located) return undefined;\n const url = takeString(located.value, ['url'], state, located.path);\n // Consume a recognized `git` type so it is not reported; any other type stays reported.\n if (url !== undefined) void takeEnum(located.value, ['type'], ['git'], state, located.path);\n return url;\n}\n\nfunction takeManifestScripts(manifest: LocatedObject, state: MappingState) {\n const located = takeObject(manifest.value, ['scripts'], state, manifest.path);\n if (!located) return undefined;\n const scripts = Object.entries(located.value).flatMap(([name, command]) => {\n if (typeof command !== 'string' || !command) return [];\n consume(state, [...located.path, name]);\n return [{ name, command }];\n });\n return scripts.length ? scripts : undefined;\n}\n\nfunction takeManifestStringRecord(manifest: LocatedObject, key: string, state: MappingState) {\n const located = takeObject(manifest.value, [key], state, manifest.path);\n if (!located) return undefined;\n const entries = Object.entries(located.value).flatMap(([name, value]) => {\n if (typeof value !== 'string' || !value) return [];\n consume(state, [...located.path, name]);\n return [[name, value] as const];\n });\n return entries.length ? Object.fromEntries(entries) : undefined;\n}\n\nfunction takeManifestLintStaged(manifest: LocatedObject, state: MappingState) {\n const located = takeObject(manifest.value, ['lint-staged'], state, manifest.path);\n if (!located) return undefined;\n const entries = Object.entries(located.value).flatMap(([glob, commands]) => {\n const list = typeof commands === 'string' ? [commands] : stringArrayValue(commands);\n if (!list?.length || list.some((command) => !command)) return [];\n consume(state, [...located.path, glob]);\n return [[glob, list] as const];\n });\n return entries.length ? Object.fromEntries(entries) : undefined;\n}\n\nfunction takeManifestBrowser(manifest: LocatedObject, state: MappingState) {\n const located = takeObject(manifest.value, ['browser'], state, manifest.path);\n if (!located) return undefined;\n const entries = Object.entries(located.value).flatMap(([name, value]) => {\n if (typeof value !== 'boolean' && (typeof value !== 'string' || !value)) return [];\n consume(state, [...located.path, name]);\n return [[name, value] as const];\n });\n return entries.length ? Object.fromEntries(entries) : undefined;\n}\n\nfunction takeManifestAuthors(manifest: LocatedObject, state: MappingState) {\n const located = locate(manifest.value, ['authors'], manifest.path);\n if (!located || !Array.isArray(located.value)) return [];\n return located.value.flatMap((entry, index) => {\n if (!isObject(entry)) return [];\n const path = [...located.path, index];\n const name = takeString(entry, ['name'], state, path);\n if (!name) return [];\n return [\n compact({\n name,\n email: takeString(entry, ['email'], state, path),\n url: takeString(entry, ['url'], state, path),\n }),\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"]}
1
+ {"version":3,"sources":["../../../src/sdk-config-domain/v1/common.ts","../../../src/sdk-config-domain/v1/webhook.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/distribution.ts","../../../src/sdk-config/v1/diagnostics.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-domain/v1/language/cli.ts","../../../src/sdk-config/v1/fern-config-mapper-cli.ts","../../../src/sdk-config/v1/fern-config-mapper-cli-distribution.ts","../../../src/sdk-config/v1/fern-config-mapper-output.ts","../../../src/sdk-config/v1/package.ts","../../../src/sdk-config/v1/fern-config-mapper-package.ts","../../../src/schema/forward-compatible.ts","../../../src/sdk-config-domain/v1/generation.ts","../../../src/sdk-config/v1/generation.ts","../../../src/sdk-config/v1/output.ts","../../../src/sdk-config/v1/replay.ts","../../../src/sdk-config-domain/v1/source.ts","../../../src/sdk-config/v1/source.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","teams","users","docs"],"mappings":"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","file":"index.js","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\n/**\n * How an API signs the webhooks it sends, so a generated SDK can ship a verification helper.\n *\n * Declared once for the whole API rather than per webhook. Providers that sign every webhook\n * identically often do not model the webhooks themselves at all — ElevenLabs' published OpenAPI has\n * no `webhooks` section, and Twilio's is OpenAPI 3.0.1, where the section does not exist — so there\n * is no per-webhook place to hang this. Mirrors Fern's `api.settings.webhook-signature`\n * (fern-api/fern#17857), whose IR field the SDK generators consume (fern-api/fern#17866).\n *\n * Only HMAC today. Fern's schema also admits an `asymmetric` type (RSA/ECDSA/Ed25519, static key or\n * JWKS); keeping this a discriminated union on `type` means adding it later is additive.\n */\n\nconst hashAlgorithmSchema = z.enum(['sha1', 'sha256', 'sha384', 'sha512']);\n\nconst encodingSchema = z.enum(['base64', 'hex']);\n\n/**\n * A segment of the string the HMAC is computed over, concatenated in declaration order.\n * `notification-url` is required alongside a body-hash binding, whose hash travels in that URL.\n */\nconst payloadComponentSchema = z.enum(['body', 'timestamp', 'notification-url', 'message-id']);\n\nconst payloadFormatSchema = z.strictObject({\n components: z\n .array(payloadComponentSchema)\n .min(1)\n .describe('Payload components concatenated in declaration order before signing.'),\n delimiter: z.string().optional().describe('The delimiter inserted between payload components.'),\n /**\n * Set when the body is a form-encoded parameter map that must be canonicalized before signing:\n * keys sorted, each key's values deduped and sorted, concatenated as key-value pairs.\n */\n bodySort: z\n .literal('alphabetical')\n .optional()\n .describe('Canonicalizes form body keys and values alphabetically before signing.'),\n});\n\nconst timestampSchema = z.strictObject({\n header: nonEmptyStringSchema.describe('The request header containing the signing timestamp.'),\n format: z\n .enum(['unix-seconds', 'unix-millis', 'iso8601'])\n .optional()\n .describe('The timestamp format used in the signature payload.'),\n /** Replay window in seconds. */\n tolerance: z\n .number()\n .positive()\n .optional()\n .describe('The maximum accepted timestamp age, in seconds.'),\n});\n\n/** A union so a header location can be added without a breaking change. */\nconst bodyHashLocationSchema = z.discriminatedUnion('type', [\n z.strictObject({\n type: z.literal('query-parameter').describe('Reads the body hash from a query parameter.'),\n name: nonEmptyStringSchema.describe('The query parameter containing the body hash.'),\n }),\n]);\n\n/**\n * For a provider that transmits `hash(rawBody)` out of band instead of folding the body into the\n * signed payload — Twilio's JSON webhooks put it in the notification URL as `?bodySHA256=...` and\n * sign that URL. Verification becomes two checks, and both must pass. The algorithm and encoding\n * here are independent of the outer HMAC's: Twilio signs SHA1/base64 over a SHA256/hex body hash.\n */\nconst bodyHashBindingSchema = z.strictObject({\n algorithm: hashAlgorithmSchema.describe('The hash algorithm applied to the raw request body.'),\n encoding: encodingSchema.optional().describe('The encoding used for the body hash.'),\n location: bodyHashLocationSchema.describe('Where the expected body hash is read from.'),\n});\n\n/**\n * For providers inconsistent about the form of the URL they signed. When set, verification tries each\n * candidate form of the notification URL and succeeds if any one matches.\n */\nconst urlNormalizationSchema = z\n .strictObject({\n /** Try the URL with and without an explicit default port. */\n portVariants: z\n .boolean()\n .optional()\n .describe('Whether verification tries URLs with and without an explicit default port.'),\n /** Try the URL with the pre-RFC3986 query encoding (`+` for space, unescaped `*`). */\n legacyQueryEncoding: z\n .boolean()\n .optional()\n .describe('Whether verification also tries legacy form-style query encoding.'),\n })\n // Rejects `{}` as well as an explicit `false, false`: a block enabling nothing would silently do\n // nothing, and an empty one is the likelier way to write it by mistake.\n .refine(\n ({ portVariants, legacyQueryEncoding }) =>\n portVariants === true || legacyQueryEncoding === true,\n { message: 'url normalization must enable at least one variant' },\n );\n\nexport const webhookSignatureSchema = z.discriminatedUnion('type', [\n z.strictObject({\n type: z.literal('hmac').describe('Identifies HMAC webhook signature verification.'),\n /** Request header carrying the signature. */\n header: nonEmptyStringSchema.describe('The request header containing the signature.'),\n algorithm: hashAlgorithmSchema.optional().describe('The HMAC hash algorithm.'),\n encoding: encodingSchema.optional().describe('The encoding used for the HMAC signature.'),\n /** Stripped from the header value before comparison, e.g. `sha256=`. */\n signaturePrefix: z\n .string()\n .optional()\n .describe('A prefix removed from the signature header before comparison.'),\n payloadFormat: payloadFormatSchema\n .optional()\n .describe('How the payload signed by the provider is assembled.'),\n timestamp: timestampSchema\n .optional()\n .describe('Timestamp validation included in signature verification.'),\n bodyHashBinding: bodyHashBindingSchema\n .optional()\n .describe('A separately transmitted hash that binds the raw body to the signed payload.'),\n urlNormalization: urlNormalizationSchema\n .optional()\n .describe('Alternate notification URL forms accepted during verification.'),\n }),\n]);\n\nexport type WebhookSignatureInput = z.input<typeof webhookSignatureSchema>;\nexport type WebhookSignature = z.output<typeof webhookSignatureSchema>;\n","import { z } from 'zod';\nimport { nonEmptyStringSchema } from './common';\nimport { webhookSignatureSchema } from './webhook';\n\nconst authVariableSchema = z.strictObject({\n name: nonEmptyStringSchema.optional().describe('The parameter name exposed by the SDK.'),\n environmentVariable: nonEmptyStringSchema\n .optional()\n .describe('The environment variable used to populate the parameter.'),\n description: z\n .string()\n .optional()\n .describe(\n 'A description of the authentication parameter included in generated SDK documentation.',\n ),\n omit: z.boolean().optional().describe('Whether the parameter is omitted from the SDK surface.'),\n});\n\nconst apiKeyAuthSchema = z.strictObject({\n id: nonEmptyStringSchema.describe('A unique identifier for this authentication scheme.'),\n type: z.literal('api-key').describe('Identifies an API key authentication scheme.'),\n location: z\n .enum(['header', 'query', 'cookie'])\n .describe('Where the API key is sent on requests.'),\n name: nonEmptyStringSchema.describe('The header, query parameter, or cookie name.'),\n prefix: nonEmptyStringSchema.optional().describe('A prefix added before the API key value.'),\n environmentVariable: nonEmptyStringSchema\n .optional()\n .describe('The default environment variable for the API key.'),\n description: z\n .string()\n .optional()\n .describe(\n 'A description of the authentication scheme included in generated SDK documentation.',\n ),\n});\n\nconst bearerAuthSchema = z.strictObject({\n id: nonEmptyStringSchema.describe('A unique identifier for this authentication scheme.'),\n type: z.literal('bearer').describe('Identifies a bearer token authentication scheme.'),\n header: nonEmptyStringSchema\n .optional()\n .describe('The request header that carries the bearer token.'),\n prefix: nonEmptyStringSchema.optional().describe('The token prefix, such as \"Bearer\".'),\n environmentVariable: nonEmptyStringSchema\n .optional()\n .describe('The default environment variable for the bearer token.'),\n description: z\n .string()\n .optional()\n .describe(\n 'A description of the authentication scheme included in generated SDK documentation.',\n ),\n});\n\nconst basicAuthSchema = z.strictObject({\n id: nonEmptyStringSchema.describe('A unique identifier for this authentication scheme.'),\n type: z.literal('basic').describe('Identifies an HTTP Basic authentication scheme.'),\n username: authVariableSchema.optional().describe('The username parameter exposed by the SDK.'),\n password: authVariableSchema.optional().describe('The password parameter exposed by the SDK.'),\n description: z\n .string()\n .optional()\n .describe(\n 'A description of the authentication scheme included in generated SDK documentation.',\n ),\n});\n\nconst oauthScopeSchema = z.strictObject({\n name: nonEmptyStringSchema.describe('The OAuth scope value requested from the provider.'),\n description: z\n .string()\n .optional()\n .describe('A description of the OAuth scope included in generated SDK documentation.'),\n});\n\n/**\n * A public client identifier (RFC 6749 §2.2) is baked into generated code, unlike the scheme-level\n * `clientId`/`clientSecret` parameters, which are supplied by the SDK caller at runtime. Environment\n * expressions are rejected because this value is never resolved: it is copied verbatim.\n */\nconst publicClientIdSchema = nonEmptyStringSchema\n .refine((value) => value.trim() === value, {\n message: 'must not have leading or trailing whitespace',\n })\n .refine((value) => !value.includes('${'), {\n message: 'must be a literal public client ID, not an environment expression',\n });\n\nconst oauthFlowSchema = z.discriminatedUnion('type', [\n z.strictObject({\n type: z.literal('authorization-code').describe('Uses the OAuth authorization code flow.'),\n authorizationUrl: nonEmptyStringSchema.describe('The URL used to authorize the client.'),\n tokenUrl: nonEmptyStringSchema.describe('The URL used to exchange a code for tokens.'),\n refreshUrl: nonEmptyStringSchema.optional().describe('The URL used to refresh access tokens.'),\n scopes: z.array(oauthScopeSchema).optional().describe('The scopes supported by this flow.'),\n clientId: publicClientIdSchema\n .optional()\n .describe(\n 'The public, non-secret OAuth client ID that generated interactive login flows, such as ' +\n 'CLI browser login with PKCE, send to the authorization and token endpoints. It is ' +\n 'embedded verbatim in generated code, so it must never be a client secret.',\n ),\n }),\n z.strictObject({\n type: z.literal('client-credentials').describe('Uses the OAuth client credentials flow.'),\n tokenUrl: nonEmptyStringSchema.describe('The URL used to obtain access tokens.'),\n refreshUrl: nonEmptyStringSchema.optional().describe('The URL used to refresh access tokens.'),\n scopes: z.array(oauthScopeSchema).optional().describe('The scopes supported by this flow.'),\n }),\n z.strictObject({\n type: z.literal('implicit').describe('Uses the OAuth implicit flow.'),\n authorizationUrl: nonEmptyStringSchema.describe('The URL used to authorize the client.'),\n refreshUrl: nonEmptyStringSchema.optional().describe('The URL used to refresh access tokens.'),\n scopes: z.array(oauthScopeSchema).optional().describe('The scopes supported by this flow.'),\n }),\n z.strictObject({\n type: z.literal('password').describe('Uses the OAuth resource owner password flow.'),\n tokenUrl: nonEmptyStringSchema.describe('The URL used to obtain access tokens.'),\n refreshUrl: nonEmptyStringSchema.optional().describe('The URL used to refresh access tokens.'),\n scopes: z.array(oauthScopeSchema).optional().describe('The scopes supported by this flow.'),\n }),\n]);\n\nconst oauth2AuthSchema = z.strictObject({\n id: nonEmptyStringSchema.describe('A unique identifier for this authentication scheme.'),\n type: z.literal('oauth2').describe('Identifies an OAuth 2.0 authentication scheme.'),\n flows: z.array(oauthFlowSchema).min(1).describe('The OAuth flows supported by the API.'),\n clientId: authVariableSchema\n .optional()\n .describe('The OAuth client ID parameter exposed by the SDK.'),\n clientSecret: authVariableSchema\n .optional()\n .describe('The OAuth client secret parameter exposed by the SDK.'),\n tokenHeader: nonEmptyStringSchema\n .optional()\n .describe('The request header that carries the OAuth access token.'),\n tokenPrefix: nonEmptyStringSchema\n .optional()\n .describe('The prefix added before the OAuth access token.'),\n refreshBufferSeconds: z\n .number()\n .nonnegative()\n .optional()\n .describe('How early, in seconds, the client refreshes a token before it expires.'),\n description: z\n .string()\n .optional()\n .describe(\n 'A description of the authentication scheme included in generated SDK documentation.',\n ),\n});\n\nconst customAuthParameterSchema = z.strictObject({\n location: z\n .enum(['header', 'query', 'cookie'])\n .describe('Where the custom authentication value is sent.'),\n name: nonEmptyStringSchema.describe('The header, query parameter, or cookie name.'),\n prefix: nonEmptyStringSchema.optional().describe('A prefix added before the parameter value.'),\n environmentVariable: nonEmptyStringSchema\n .optional()\n .describe('The default environment variable for the parameter.'),\n});\n\nconst customAuthSchema = z.strictObject({\n id: nonEmptyStringSchema.describe('A unique identifier for this authentication scheme.'),\n type: z.literal('custom').describe('Identifies a custom authentication scheme.'),\n parameters: z\n .array(customAuthParameterSchema)\n .min(1)\n .describe('The request parameters that implement the custom scheme.'),\n description: z\n .string()\n .optional()\n .describe(\n 'A description of the authentication scheme included in generated SDK documentation.',\n ),\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\n .array(nonEmptyStringSchema)\n .min(1)\n .describe('Scheme identifiers that must be satisfied together.'),\n});\n\nexport const authConfigSchema = z\n .strictObject({\n schemes: z\n .array(authSchemeSchema)\n .min(1)\n .describe('Authentication schemes offered by the API.'),\n requirements: z\n .array(authRequirementSchema)\n .optional()\n .describe('Valid combinations of authentication schemes.'),\n endpointSecurity: z\n .boolean()\n .optional()\n .describe('Whether generated endpoints expose their individual security requirements.'),\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.describe('The display name for this environment URL.'),\n url: nonEmptyStringSchema.describe('The base URL used for this environment entry.'),\n serverName: nonEmptyStringSchema\n .optional()\n .describe('The source server represented by this URL.'),\n});\n\nconst environmentSchema = z.strictObject({\n name: nonEmptyStringSchema.describe('The environment name exposed by the SDK.'),\n urls: z\n .array(environmentUrlSchema)\n .min(1)\n .describe('The base URLs available in this environment.'),\n description: z\n .string()\n .optional()\n .describe('A description of the environment included in generated SDK documentation.'),\n});\n\nconst headerSchema = z.strictObject({\n name: nonEmptyStringSchema.describe('The HTTP header name.'),\n value: z.string().optional().describe('A fixed value for the generated header.'),\n description: z\n .string()\n .optional()\n .describe('A description of the header included in generated SDK documentation.'),\n environmentVariable: nonEmptyStringSchema\n .optional()\n .describe('The environment variable used to populate the header.'),\n});\n\nconst environmentVariableSchema = z.strictObject({\n name: nonEmptyStringSchema.describe('The environment variable name exposed by the SDK.'),\n description: z\n .string()\n .optional()\n .describe('A description of the environment variable included in generated SDK documentation.'),\n defaultValue: z\n .string()\n .optional()\n .describe('The default value used when the variable is unset.'),\n});\n\nexport const apiConfigSchema = z.strictObject({\n baseUrl: z.string().default('').describe('The default base URL used by the generated client.'),\n environments: z\n .array(environmentSchema)\n .default([])\n .describe('Named API environments and their base URLs.'),\n environmentVariables: z\n .array(environmentVariableSchema)\n .default([])\n .describe('Environment variables exposed through generated client configuration.'),\n defaultEnvironment: nonEmptyStringSchema\n .optional()\n .describe('The environment selected when a caller does not choose one.'),\n auth: authConfigSchema.optional().describe('Authentication supported by the API.'),\n headers: z.array(headerSchema).optional().describe('Headers added to generated API requests.'),\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\n .array(nonEmptyStringSchema)\n .optional()\n .describe('Named API audiences included in the generated SDK.'),\n /**\n * How the API signs the webhooks it sends, enabling a generated verification helper. API-wide, and\n * independent of whether any webhook is modeled — see {@link webhookSignatureSchema}.\n */\n webhookSignature: webhookSignatureSchema\n .optional()\n .describe('How generated helpers verify webhook signatures from the API.'),\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';\nimport { webhookSignatureSchema } from '../../sdk-config-domain/v1/webhook';\n\nexport const sdkConfigV1AuthSchemeSchema = authSchemeSchema;\nexport const sdkConfigV1AuthConfigSchema = authConfigSchema;\nexport const sdkConfigV1ApiConfigSchema = apiConfigSchema;\nexport const sdkConfigV1WebhookSignatureSchema = webhookSignatureSchema;\n\nexport type SdkConfigV1ApiConfigInput = z.input<typeof sdkConfigV1ApiConfigSchema>;\nexport type SdkConfigV1ApiConfig = z.output<typeof sdkConfigV1ApiConfigSchema>;\nexport type SdkConfigV1WebhookSignatureInput = z.input<typeof sdkConfigV1WebhookSignatureSchema>;\nexport type SdkConfigV1WebhookSignature = z.output<typeof sdkConfigV1WebhookSignatureSchema>;\n","import { z } from 'zod';\nimport { nonEmptyStringSchema } from './common';\n\nconst retryOverrideShape = {\n enabled: z.boolean().optional().describe('Whether the generated client retries failed requests.'),\n maxAttempts: z\n .number()\n .int()\n .min(1)\n .optional()\n .describe('The maximum total request attempts, including the initial attempt.'),\n retryDelayMs: z\n .number()\n .nonnegative()\n .optional()\n .describe('The initial delay between retry attempts, in milliseconds.'),\n maxDelayMs: z\n .number()\n .nonnegative()\n .optional()\n .describe('The maximum backoff delay between attempts, in milliseconds.'),\n jitterMs: z\n .number()\n .nonnegative()\n .optional()\n .describe('The maximum random jitter added to retry delays, in milliseconds.'),\n backoffFactor: z\n .number()\n .positive()\n .optional()\n .describe('The multiplier applied to the delay after each failed attempt.'),\n statusCodes: z\n .array(z.number().int().min(100).max(599))\n .optional()\n .describe('HTTP status codes that are eligible for retries.'),\n methods: z\n .array(nonEmptyStringSchema)\n .optional()\n .describe('HTTP methods that are eligible for retries.'),\n statusCodeProfile: z\n .enum(['legacy', 'recommended'])\n .optional()\n .describe('The built-in retryable status-code policy.'),\n maxRetryAfterDelayMs: z\n .number()\n .nonnegative()\n .optional()\n .describe('The longest Retry-After delay the client will honor, in milliseconds.'),\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\n .boolean()\n .default(true)\n .describe('Whether the generated client retries failed requests.'),\n maxAttempts: z\n .number()\n .int()\n .min(1)\n .default(3)\n .describe('The maximum total request attempts, including the initial attempt.'),\n retryDelayMs: z\n .number()\n .nonnegative()\n .default(150)\n .describe('The initial delay between retry attempts, in milliseconds.'),\n maxDelayMs: z\n .number()\n .nonnegative()\n .default(5_000)\n .describe('The maximum backoff delay between attempts, in milliseconds.'),\n jitterMs: z\n .number()\n .nonnegative()\n .default(50)\n .describe('The maximum random jitter added to retry delays, in milliseconds.'),\n backoffFactor: z\n .number()\n .positive()\n .default(2)\n .describe('The multiplier applied to the delay after each failed attempt.'),\n methods: z\n .array(nonEmptyStringSchema)\n // GET/HEAD/OPTIONS are read-only; PUT (replace-with-same-body) and DELETE are idempotent\n // by HTTP semantics. POST and PATCH are NOT guaranteed idempotent (POST routinely creates\n // something new per call; PATCH's semantics are operation-specific) -- retrying one by\n // default on a 5xx/408/429 risks silently double-executing a request whose response was\n // merely lost, with no idempotency-key protection unless the specific API happens to\n // require one. A caller whose API's POST/PATCH endpoints ARE safe to retry (e.g. they\n // require an idempotency key) can still opt back in by passing `methods` explicitly.\n .default(['GET', 'PUT', 'DELETE', 'HEAD', 'OPTIONS'])\n .describe('HTTP methods that are eligible for retries.'),\n maxRetryAfterDelayMs: z\n .number()\n .nonnegative()\n .default(60_000)\n .describe('The longest Retry-After delay the client will honor, in milliseconds.'),\n })\n .superRefine(validateRetryDelays);\n\nconst constructorParameterSchema = z.strictObject({\n name: nonEmptyStringSchema.describe('The parameter name in the generated client constructor.'),\n example: z.string().optional().describe('An example value shown in generated documentation.'),\n description: z\n .string()\n .optional()\n .describe(\n 'A description of the constructor parameter included in generated SDK documentation.',\n ),\n required: z.boolean().optional().describe('Whether callers must provide the parameter.'),\n});\n\nconst parameterStyleSchema = z.enum(['wrapped', 'inline', 'language-default']);\n\nconst tokenRefreshConfigSchema = z\n .strictObject({\n enabled: z.boolean().describe('Whether the client can exchange refresh tokens.'),\n endpoint: nonEmptyStringSchema.optional().describe('The API endpoint used to refresh tokens.'),\n accessTokenField: nonEmptyStringSchema\n .optional()\n .describe('The response field containing the refreshed access token.'),\n refreshTokenField: nonEmptyStringSchema\n .optional()\n .describe('The response field containing the refreshed refresh token.'),\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 idempotencyKeyGenerationSchema = z.strictObject({\n enabled: z\n .boolean()\n .describe('Whether the client generates an idempotency key when the caller supplies none.'),\n headerName: nonEmptyStringSchema\n .optional()\n .describe('The header that carries the generated key. Generators default to Idempotency-Key.'),\n methods: z\n .array(nonEmptyStringSchema)\n .optional()\n .describe('HTTP methods that receive a generated key. Generators default to POST and PUT.'),\n});\n\nconst userAgentConfigSchema = z.strictObject({\n template: nonEmptyStringSchema\n .optional()\n .describe(\n 'The User-Agent product token, resolved at generation time. Supports the {packageName}, ' +\n '{version}, {language}, {generatorVersion}, {organization}, and {apiName} placeholders.',\n ),\n includePlatformInfo: z\n .boolean()\n .optional()\n .describe(\n 'Whether the User-Agent carries operating system, architecture, and runtime details, as ' +\n '`{product} ({os}; {arch}) {runtime}/{runtimeVersion}`.',\n ),\n allowAppInfo: z\n .boolean()\n .optional()\n .describe(\n 'Whether callers can pass application info that is appended to the User-Agent as a ' +\n '`{name}/{version} ({comment})` product token.',\n ),\n});\n\nconst clientOverrideShape = {\n retry: clientRetryOverrideSchema\n .optional()\n .describe('Retry behavior for generated API requests.'),\n responseHeaders: z\n .boolean()\n .optional()\n .describe('Whether generated operations expose HTTP response headers.'),\n responseValidation: z\n .boolean()\n .optional()\n .describe('Whether the client validates API responses against the schema.'),\n multiTenant: z\n .boolean()\n .optional()\n .describe('Whether the client exposes configuration for tenant-specific API access.'),\n additionalConstructorParameters: z\n .array(constructorParameterSchema)\n .optional()\n .describe('Additional parameters added to the generated client constructor.'),\n timeoutMs: z\n .union([z.number().nonnegative(), z.literal('infinity')])\n .optional()\n .describe('The default request timeout in milliseconds, or \"infinity\" for no timeout.'),\n requestParameterStyle: parameterStyleSchema\n .optional()\n .describe('Whether generated operation parameters are wrapped or passed inline.'),\n pathParameterStyle: parameterStyleSchema\n .optional()\n .describe('Whether generated path parameters are wrapped or passed inline.'),\n filePropertyStyle: parameterStyleSchema\n .optional()\n .describe('Whether generated file properties are wrapped or passed inline.'),\n useDefaultRequestParameterValues: z\n .boolean()\n .optional()\n .describe('Whether schema defaults are applied to omitted request parameters.'),\n respectOptionalRequestBody: z\n .boolean()\n .optional()\n .describe('Whether an optional request body remains optional in generated methods.'),\n tokenRefresh: tokenRefreshConfigSchema\n .optional()\n .describe('Refresh-token behavior for the generated client.'),\n idempotencyKeyGeneration: idempotencyKeyGenerationSchema\n .optional()\n .describe('Automatic idempotency keys on eligible requests.'),\n userAgent: userAgentConfigSchema\n .optional()\n .describe('The User-Agent header the generated client sends.'),\n offsetSemantics: z\n .enum(['item-index', 'page-index'])\n .optional()\n .describe(\n 'How an offset-paginated endpoint advances: by the number of items returned, or by one page.',\n ),\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({}).describe('Retry behavior for generated API requests.'),\n responseHeaders: z\n .boolean()\n .default(false)\n .describe('Whether generated operations expose HTTP response headers.'),\n multiTenant: z\n .boolean()\n .default(false)\n .describe('Whether the client exposes configuration for tenant-specific API access.'),\n additionalConstructorParameters: z\n .array(constructorParameterSchema)\n .default([])\n .describe('Additional parameters added to the generated client constructor.'),\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 { jsonObjectSchema, 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.describe('The package author name.'),\n email: z.email().optional().describe('The package author email address.'),\n url: nonEmptyStringSchema.optional().describe('The package author website.'),\n});\n\nconst developerSchema = z.strictObject({\n name: nonEmptyStringSchema.describe('The package developer name.'),\n email: z.email().optional().describe('The package developer email address.'),\n organization: nonEmptyStringSchema.optional().describe('The developer organization name.'),\n organizationUrl: nonEmptyStringSchema.optional().describe('The developer organization website.'),\n});\n\nconst licenseSchema = z.strictObject({\n type: nonEmptyStringSchema.describe('The license identifier or license type.'),\n name: nonEmptyStringSchema.optional().describe('The human-readable license name.'),\n url: nonEmptyStringSchema.optional().describe('The URL containing the license text.'),\n path: nonEmptyStringSchema.optional().describe('The path to a custom license file.'),\n});\n\nconst dependencySourceSchema = z.discriminatedUnion('type', [\n z.strictObject({\n type: z.literal('registry').describe('Resolves the dependency from a package registry.'),\n registry: nonEmptyStringSchema\n .optional()\n .describe('The registry used to resolve the dependency.'),\n }),\n z.strictObject({\n type: z.literal('git').describe('Resolves the dependency from a Git repository.'),\n url: nonEmptyStringSchema.describe('The Git repository URL.'),\n ref: nonEmptyStringSchema.optional().describe('The Git branch, tag, or commit to use.'),\n subdirectory: nonEmptyStringSchema\n .optional()\n .describe('The package subdirectory within the Git repository.'),\n }),\n z.strictObject({\n type: z.literal('path').describe('Resolves the dependency from a local path.'),\n path: nonEmptyStringSchema.describe('The local path containing the dependency.'),\n }),\n]);\n\nexport const dependencySchema = z\n .strictObject({\n name: nonEmptyStringSchema.describe('The dependency name used by the package manager.'),\n version: nonEmptyStringSchema.optional().describe('The dependency version requirement.'),\n source: dependencySourceSchema.optional().describe('A non-default source for the dependency.'),\n packageName: nonEmptyStringSchema\n .optional()\n .describe('The source package name when it differs from the dependency alias.'),\n features: z\n .array(nonEmptyStringSchema)\n .optional()\n .describe('Cargo features enabled for this dependency.'),\n extras: z\n .array(nonEmptyStringSchema)\n .optional()\n .describe('Python extras enabled for this dependency.'),\n optional: z.boolean().optional().describe('Whether the dependency is optional.'),\n defaultFeatures: z\n .boolean()\n .optional()\n .describe('Whether the dependency enables its default Cargo features.'),\n environmentMarker: nonEmptyStringSchema\n .optional()\n .describe('A Python environment marker that conditions this dependency.'),\n })\n .refine(({ source, version }) => source !== undefined || version !== undefined, {\n message: 'dependency must define a version or a source',\n });\n\nconst bugsSchema = z\n .strictObject({\n url: nonEmptyStringSchema.optional().describe('The issue tracker URL.'),\n email: nonEmptyStringSchema.optional().describe('The address for reporting issues.'),\n })\n .refine(({ url, email }) => url !== undefined || email !== undefined, {\n message: 'bugs must define a url or an email',\n });\n\nconst projectUrlSchema = z.strictObject({\n label: nonEmptyStringSchema.describe('The label displayed for the project link.'),\n url: nonEmptyStringSchema.describe('The project link URL.'),\n});\n\nexport const packageConfigSchema = z.strictObject({\n packageName: nonEmptyStringSchema\n .optional()\n .describe('The package name used by the target language registry.'),\n moduleName: nonEmptyStringSchema\n .optional()\n .describe('The generated module or import name when it differs from the package name.'),\n modulePath: goModulePathSchema\n .optional()\n .describe('The Go module path used for imports and publishing.'),\n namespace: nonEmptyStringSchema\n .optional()\n .describe('The namespace or package prefix for generated code.'),\n groupId: nonEmptyStringSchema.optional().describe('The Maven group identifier.'),\n artifactId: nonEmptyStringSchema.optional().describe('The Maven artifact identifier.'),\n description: z\n .string()\n .optional()\n .describe('The package description used in generated metadata.'),\n repository: nonEmptyStringSchema\n .optional()\n .describe('The source repository for the generated SDK.'),\n homepage: nonEmptyStringSchema.optional().describe('The package homepage URL.'),\n bugs: bugsSchema.optional().describe('Where issues with the package are reported.'),\n documentationUrl: nonEmptyStringSchema.optional().describe('The package documentation URL.'),\n authors: z.array(authorSchema).optional().describe('Authors credited in package metadata.'),\n developers: z\n .array(developerSchema)\n .optional()\n .describe('Developers credited in package metadata.'),\n license: licenseSchema.optional().describe('License metadata for the generated package.'),\n keywords: z\n .array(nonEmptyStringSchema)\n .optional()\n .describe('Search keywords for package metadata.'),\n classifiers: z\n .array(nonEmptyStringSchema)\n .optional()\n .describe('Package classifiers used by registries such as PyPI.'),\n projectUrls: z\n .array(projectUrlSchema)\n .optional()\n .describe('Labeled project links for package metadata.'),\n extraDependencies: z\n .array(dependencySchema)\n .optional()\n .describe('Additional runtime dependencies added to the generated package.'),\n extraDevDependencies: z\n .array(dependencySchema)\n .optional()\n .describe('Additional development dependencies added to the generated package.'),\n extraPeerDependencies: z\n .array(dependencySchema)\n .optional()\n .describe('Additional peer dependencies added to the generated package.'),\n extraPeerDependenciesMeta: z\n .record(nonEmptyStringSchema, jsonObjectSchema)\n .optional()\n .describe(\n 'npm peerDependenciesMeta entries keyed by peer dependency name, such as { optional: true }.',\n ),\n});\n\nexport type Dependency = z.infer<typeof dependencySchema>;\nexport type PackageConfig = z.infer<typeof packageConfigSchema>;\n","import { z } from 'zod';\n\n// Patterns mirror the Fern CLI generator's distribution validation (generators/cli/src/customConfig.ts).\n// Messages deliberately never interpolate the supplied value: a secret pasted into a secret-name\n// field must not be echoed into logs.\nconst GITHUB_ACTIONS_SECRET_NAME_PATTERN = /^[A-Z][A-Z0-9_]*$/;\nconst GITHUB_REPOSITORY_SLUG_PATTERN = /^[A-Za-z0-9._-]+\\/[A-Za-z0-9._-]+$/;\nconst HOMEBREW_FORMULA_NAME_PATTERN = /^[a-z][a-z0-9-]*$/;\n\nexport const githubActionsSecretNameSchema = z\n .string({ error: 'must be the name of a GitHub Actions secret' })\n .regex(GITHUB_ACTIONS_SECRET_NAME_PATTERN, {\n error:\n 'must be the name of a GitHub Actions secret: start with an uppercase letter and contain ' +\n 'only A-Z, 0-9, or _. Secret values and ${...} expressions are not accepted.',\n })\n .refine((value) => value !== 'GITHUB_TOKEN', {\n error:\n \"GITHUB_TOKEN cannot be used: it is the workflow's built-in token, scoped to the generated \" +\n 'repository. Store the credential under a different secret name.',\n });\n\nexport const githubRepositorySlugSchema = z\n .string({ error: 'must be a GitHub repository in \"<owner>/<repo>\" form' })\n .regex(GITHUB_REPOSITORY_SLUG_PATTERN, {\n error: 'must be a GitHub repository in \"<owner>/<repo>\" form, for example \"acme/homebrew-tap\"',\n });\n\nexport const homebrewFormulaNameSchema = z\n .string({ error: 'must be a Homebrew formula name' })\n .regex(HOMEBREW_FORMULA_NAME_PATTERN, {\n error:\n 'must be a Homebrew formula name: start with a lowercase letter and contain only a-z, 0-9, or -',\n });\n\nexport const cliDistributionGithubAppSchema = z.strictObject({\n appIdSecretName: githubActionsSecretNameSchema.describe(\n 'The name of the GitHub Actions secret holding the GitHub App ID or client ID.',\n ),\n privateKeySecretName: githubActionsSecretNameSchema.describe(\n 'The name of the GitHub Actions secret holding the GitHub App private key in PEM form.',\n ),\n});\n\nconst channelTokenSecretNameDescription =\n 'The name of the GitHub Actions secret holding a token with write access to the channel ' +\n 'repository. Takes precedence over githubApp for this channel.';\n\nexport const cliDistributionHomebrewSchema = z.strictObject({\n tap: githubRepositorySlugSchema.describe(\n 'The Homebrew tap repository in \"<owner>/<repo>\" form that receives the formula.',\n ),\n formula: homebrewFormulaNameSchema\n .optional()\n .describe('The Homebrew formula name; the generator defaults it to the CLI binary name.'),\n tokenSecretName: githubActionsSecretNameSchema\n .optional()\n .describe(channelTokenSecretNameDescription),\n});\n\nexport const cliDistributionScoopSchema = z.strictObject({\n bucket: githubRepositorySlugSchema.describe(\n 'The Scoop bucket repository in \"<owner>/<repo>\" form that receives the manifest.',\n ),\n tokenSecretName: githubActionsSecretNameSchema\n .optional()\n .describe(channelTokenSecretNameDescription),\n});\n\nexport const cliDistributionConfigSchema = z\n .strictObject({\n githubApp: cliDistributionGithubAppSchema\n .optional()\n .describe(\n 'A GitHub App used to mint short-lived tokens for every channel without its own tokenSecretName.',\n ),\n homebrew: cliDistributionHomebrewSchema\n .optional()\n .describe('Publishes a Homebrew formula to a tap repository on each tagged release.'),\n scoop: cliDistributionScoopSchema\n .optional()\n .describe('Publishes a Scoop manifest to a bucket repository on each tagged release.'),\n githubAttestations: z\n .union([z.literal('auto'), z.boolean()], { error: 'must be \"auto\", true, or false' })\n .optional()\n .describe(\n 'Whether the generated release workflow attests build provenance. \"auto\" (the generator ' +\n 'default) attests only on public repositories; true always attests, for private ' +\n 'repositories on GitHub Enterprise Cloud; false omits the attestation step and its ' +\n 'permissions.',\n ),\n })\n .superRefine((distribution, context) => {\n if (distribution.homebrew !== undefined || distribution.scoop !== undefined) {\n return;\n }\n if (distribution.githubApp !== undefined) {\n context.addIssue({\n code: 'custom',\n message: 'githubApp requires at least one distribution channel: homebrew or scoop',\n path: ['githubApp'],\n });\n return;\n }\n if (distribution.githubAttestations !== undefined) {\n return;\n }\n context.addIssue({\n code: 'custom',\n message: 'distribution must configure at least one channel: homebrew or scoop',\n });\n });\n\nexport const CLI_DISTRIBUTION_REQUIRES_GITHUB_DELIVERY_MESSAGE =\n 'distribution requires output.delivery \"github\": Homebrew and Scoop publish from a tagged ' +\n 'GitHub Release produced by the generated release workflow. Set delivery to \"github\" or remove ' +\n 'distribution.';\n\nexport const CLI_PUBLISH_REQUIRES_GITHUB_DELIVERY_MESSAGE =\n 'package publication for target language \"cli\" requires output.delivery \"github\": the CLI ' +\n 'generator publishes npm packages only from its generated GitHub workflow.';\n\nexport const CLI_DISTRIBUTION_NON_RELEASE_MODE_CODE = 'CLI_DISTRIBUTION_NON_RELEASE_MODE';\n\nconst nonReleaseGithubModes: ReadonlySet<string> = new Set(['pull-request', 'push', 'commit']);\n\nexport interface SdkConfigDiagnostic {\n code: string;\n severity: 'warning';\n path: (string | number)[];\n reason: string;\n suggestedAction: string;\n}\n\ninterface DistributionOutputView {\n github?: { mode?: string | undefined };\n distribution?: { homebrew?: unknown; scoop?: unknown } | undefined;\n}\n\nexport function cliDistributionModeDiagnostic(\n output: DistributionOutputView | undefined,\n outputPath: readonly (string | number)[],\n): SdkConfigDiagnostic | undefined {\n const mode = output?.github?.mode;\n const distribution = output?.distribution;\n if (distribution === undefined || mode === undefined || !nonReleaseGithubModes.has(mode)) {\n return undefined;\n }\n const hasChannel = distribution.homebrew !== undefined || distribution.scoop !== undefined;\n const consequence = hasChannel\n ? 'Homebrew and Scoop publish only after a semantic-version tag is pushed to the repository.'\n : 'the release workflow, including its githubAttestations setting, runs only after a ' +\n 'semantic-version tag is pushed to the repository.';\n return {\n code: CLI_DISTRIBUTION_NON_RELEASE_MODE_CODE,\n severity: 'warning',\n path: [...outputPath, 'github', 'mode'],\n reason: `GitHub mode \"${mode}\" does not create a release tag, so ${consequence}`,\n suggestedAction:\n 'Use mode \"release\" or \"commit-and-release\", or push a version tag after merging generated changes.',\n };\n}\n\nexport type GithubActionsSecretName = z.infer<typeof githubActionsSecretNameSchema>;\nexport type CliDistributionGithubAppConfig = z.infer<typeof cliDistributionGithubAppSchema>;\nexport type CliDistributionHomebrewConfig = z.infer<typeof cliDistributionHomebrewSchema>;\nexport type CliDistributionScoopConfig = z.infer<typeof cliDistributionScoopSchema>;\nexport type CliDistributionConfig = z.infer<typeof cliDistributionConfigSchema>;\n","import {\n cliDistributionModeDiagnostic,\n type SdkConfigDiagnostic,\n} from '../../sdk-config-domain/v1/distribution';\nimport type { SdkConfigV1, SdkConfigV1Document } from './sdk-config-v1';\n\n/**\n * Returns non-fatal diagnostics for an SDK Config document that has already passed validation.\n * Validation errors are reported by `validateSdkConfigV1`/`parseSdkConfigV1`, not here.\n */\nexport function getSdkConfigV1Diagnostics(\n config: SdkConfigV1Document | SdkConfigV1,\n): SdkConfigDiagnostic[] {\n return config.targets.flatMap((target, targetIndex) => {\n if (target.language !== 'cli') {\n return [];\n }\n const diagnostic = cliDistributionModeDiagnostic(target.output, [\n 'targets',\n targetIndex,\n 'output',\n ]);\n return diagnostic ? [diagnostic] : [];\n });\n}\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.describe('The HTTP method of the documented endpoint.'),\n path: nonEmptyStringSchema.describe('The endpoint path used in generated examples.'),\n stream: z.boolean().optional().describe('Whether the example uses the streaming response API.'),\n});\n\nexport const readmeCustomSectionSchema = z.strictObject({\n title: nonEmptyStringSchema.describe('The heading displayed for this README section.'),\n content: z.string().describe('The Markdown content of this README section.'),\n});\n\nconst readmeConfigSchema = z.strictObject({\n apiName: nonEmptyStringSchema.optional().describe('The API name displayed in the README.'),\n introduction: z.string().optional().describe('Custom introductory Markdown for the README.'),\n apiReferenceLink: nonEmptyStringSchema\n .optional()\n .describe('The URL linked as the API reference.'),\n bannerLink: nonEmptyStringSchema\n .optional()\n .describe('The destination URL for the README banner.'),\n disabledSections: z\n .array(nonEmptyStringSchema)\n .optional()\n .describe('Generated README sections to omit.'),\n customSections: z\n .array(readmeCustomSectionSchema)\n .optional()\n .describe('Additional sections inserted into the README.'),\n defaultEndpoint: readmeEndpointSchema\n .optional()\n .describe('The endpoint used for the primary README example.'),\n features: z\n .record(z.string(), z.array(readmeEndpointSchema))\n .optional()\n .describe('Named feature groups and the endpoints demonstrated by each group.'),\n});\n\nconst snippetsConfigSchema = z.strictObject({\n enabled: z.boolean().describe('Whether standalone usage snippets are generated.'),\n format: z.enum(['md', 'json']).optional().describe('The output format for generated snippets.'),\n outputPath: nonEmptyStringSchema\n .optional()\n .describe('The output path for generated snippet files.'),\n});\n\nexport const docsConfigSchema = z.strictObject({\n readme: readmeConfigSchema.optional().describe('README content and example configuration.'),\n snippets: snippetsConfigSchema.optional().describe('Standalone usage snippet generation.'),\n referenceBaseUrl: nonEmptyStringSchema\n .optional()\n .describe('The base URL used for links to generated API reference files.'),\n includeApiReference: z\n .boolean()\n .optional()\n .describe('Whether API reference documentation is included in the SDK output.'),\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 { SdkConfigV1CliDistributionConfig } from './distribution';\nimport type { SdkConfigV1GenerationConfigOverride } from './generation';\nimport type { SdkConfigV1DocsConfig } from './docs';\nimport type { SdkConfigV1OutputConfig } from './output';\nimport type { SdkConfigV1PackageConfig } from './package';\nimport type { SdkConfigV1ReplayConfig } from './replay';\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 replay settings lowered from the top-level Fern generators.yml replay block. */\n replay?: SdkConfigV1ReplayConfig | 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 /** Legacy orchestration flag used by CLI packaging paths to request a complete SDK project. */\n generateFullProject?: 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 credentialDiagnostics?: FernConfigMappingDiagnostic[];\n valueDiagnostics?: FernConfigMappingDiagnostic[];\n packageFallbacks?: PackageFallback[];\n cliDistribution?: PendingCliDistribution;\n}\n\n/** A validated legacy CLI distribution, written to the target output only for GitHub delivery. */\nexport interface PendingCliDistribution {\n value: SdkConfigV1CliDistributionConfig;\n path: (string | number)[];\n}\n\n/** A legacy package value written only when the assembled target package lacks the field. */\nexport type PackageFallback = {\n [Field in keyof SdkConfigV1PackageConfig]-?: {\n field: Field;\n value: NonNullable<SdkConfigV1PackageConfig[Field]>;\n path: (string | number)[];\n };\n}[keyof SdkConfigV1PackageConfig];\n\nexport interface OutputMapping {\n output: SdkConfigV1OutputConfig;\n package?: SdkConfigV1PackageConfig;\n generation?: SdkConfigV1GenerationConfigOverride;\n docs?: SdkConfigV1DocsConfig;\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 minimum = 0,\n) {\n const located = locate(value, aliases, basePath);\n if (\n !located ||\n !isNonNegativeNumber(located.value) ||\n !Number.isInteger(located.value) ||\n located.value < minimum\n )\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\n// SDK Config license types follow the hosted generator's license table; others stay verbatim.\nconst canonicalLicenseTypes: Record<string, string> = {\n mit: 'MIT',\n apache: 'APACHE',\n 'apache-2.0': 'APACHE',\n 'gpl-3.0': 'GPL3',\n 'gpl-3.0-only': 'GPL3',\n unlicensed: 'UNLICENSED',\n};\n\nexport function canonicalLicenseType(value: string): string | undefined {\n return canonicalLicenseTypes[value.trim().toLowerCase()];\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 { z } from 'zod';\nimport { nonEmptyStringSchema } from '../common';\n\nconst ALPHANUMERIC_PATTERN = /[A-Za-z0-9]/;\nconst ROOT_GROUP_PATTERN = /^[a-z][a-z0-9_-]*$/;\nconst KEBAB_NAME_PATTERN = /^[a-z][a-z0-9-]*$/;\nconst DOTTED_COMMAND_PATH_PATTERN = /^[a-z0-9-]+(?:\\.[a-z0-9-]+)+$/;\nconst FIELD_NAME_PATTERN = /^[A-Za-z0-9_.-]+$/;\n\n/**\n * Global long flags every generated CLI registers. Mirrors the CLI generator's\n * `RESERVED_SUFFIX_FLAG_NAMES`; a collision makes clap panic on every invocation.\n */\nconst RESERVED_USER_AGENT_SUFFIX_FLAGS: ReadonlySet<string> = new Set([\n 'params',\n 'output',\n 'json',\n 'format',\n 'dry-run',\n 'base-url',\n 'page-all',\n 'page-limit',\n 'page-delay',\n 'no-pager',\n 'no-extract',\n 'no-retry',\n 'no-stream',\n 'quiet',\n 'query',\n 'help',\n 'debug',\n 'schema',\n]);\n\n/** Top-level command groups every generated CLI registers. Mirrors the CLI generator. */\nconst RESERVED_PROFILES_COMMAND_NAMES: ReadonlySet<string> = new Set([\n 'auth',\n 'completion',\n 'man',\n 'errors',\n 'generate-skills',\n 'help',\n]);\n\n/** The CLI generator kebab-cases binaryName and rejects values that kebab-case to empty. */\nconst binaryNameSchema = nonEmptyStringSchema.regex(ALPHANUMERIC_PATTERN, {\n message: 'binaryName must contain at least one ASCII letter or digit',\n});\n\nconst rootGroupSchema = z.string().regex(ROOT_GROUP_PATTERN, {\n message:\n 'rootGroup must start with a lowercase letter and contain only lowercase letters, digits, ' +\n 'hyphens, and underscores',\n});\n\nconst userAgentSuffixFlagSchema = z.string().superRefine((value, context) => {\n if (value.startsWith('-')) {\n context.addIssue({\n code: 'custom',\n message: 'userAgentSuffixFlag must be the long flag name without the leading \"--\"',\n });\n } else if (!KEBAB_NAME_PATTERN.test(value)) {\n context.addIssue({\n code: 'custom',\n message:\n 'userAgentSuffixFlag must start with a lowercase letter and contain only lowercase ' +\n 'letters, digits, and hyphens',\n });\n } else if (RESERVED_USER_AGENT_SUFFIX_FLAGS.has(value)) {\n context.addIssue({\n code: 'custom',\n message: `userAgentSuffixFlag \"${value}\" collides with a built-in global flag`,\n });\n }\n});\n\nconst profilesCommandNameSchema = z.string().superRefine((value, context) => {\n if (!KEBAB_NAME_PATTERN.test(value)) {\n context.addIssue({\n code: 'custom',\n message:\n 'profiles.commandName must start with a lowercase letter and contain only lowercase ' +\n 'letters, digits, and hyphens',\n });\n } else if (RESERVED_PROFILES_COMMAND_NAMES.has(value)) {\n context.addIssue({\n code: 'custom',\n message: `profiles.commandName \"${value}\" collides with a built-in command group`,\n });\n }\n});\n\nfunction dottedCommandPathSchema(field: string): z.ZodString {\n return z.string().regex(DOTTED_COMMAND_PATH_PATTERN, {\n message: `${field} must be a dotted command path such as \"iam.keys.create\"`,\n });\n}\n\nfunction fieldNameMapSchema(field: string): z.ZodType<Record<string, string>> {\n const message = `${field} keys and values must be field names containing only [A-Za-z0-9_.-]`;\n return z\n .record(z.string(), z.string().regex(FIELD_NAME_PATTERN, { message }))\n .superRefine((value, context) => {\n for (const key of Object.keys(value)) {\n if (!FIELD_NAME_PATTERN.test(key)) {\n context.addIssue({ code: 'custom', message, path: [key] });\n }\n }\n });\n}\n\nconst profilesProvisionOperationSchema = z.strictObject({\n operation: dottedCommandPathSchema('profiles.provisionOperation.operation').describe(\n 'The dotted command path of the operation that mints a profile credential.',\n ),\n credential: fieldNameMapSchema('profiles.provisionOperation.credential')\n .refine((value) => Object.keys(value).length > 0, {\n message: 'profiles.provisionOperation.credential must map at least one credential field',\n })\n .describe('Maps each stored credential field to the response field that supplies it.'),\n revokeParameters: fieldNameMapSchema('profiles.provisionOperation.revokeParameters')\n .optional()\n .describe('Maps each revoke-operation parameter to the response field that supplies it.'),\n});\n\nconst profilesConfigSchema = z.strictObject({\n enabled: z\n .boolean()\n .describe('Whether the CLI emits profile commands and the global --profile flag.'),\n commandName: profilesCommandNameSchema\n .optional()\n .describe('The profile command group name. The generator defaults to \"profiles\".'),\n revokeOperation: dottedCommandPathSchema('profiles.revokeOperation')\n .optional()\n .describe('The dotted command path called by \"profiles remove --revoke\".'),\n provisionOperation: profilesProvisionOperationSchema\n .optional()\n .describe('The operation called by \"profiles create --provision\" and its response mapping.'),\n});\n\n/**\n * Omitted fields are left undefined; the CLI generator applies its own defaults: a binary name\n * derived from the API display name, custom commands on, no root group, profiles off, a single\n * types crate, and a `user-agent-suffix` flag.\n */\nexport const cliGenerationConfigSchema = z.strictObject({\n paginationParameters: z\n .array(nonEmptyStringSchema)\n .optional()\n .describe('Request parameter names treated as pagination controls by the CLI.'),\n skills: z\n .boolean()\n .optional()\n .describe('Whether the generated CLI includes skills that teach AI agents to invoke commands.'),\n binaryName: binaryNameSchema\n .optional()\n .describe(\n 'The CLI executable name. The generator kebab-cases it and also uses it for the source ' +\n 'directory and env-var prefix.',\n ),\n customCommands: z\n .boolean()\n .optional()\n .describe('Whether hand-written command support is generated. The generator defaults to true.'),\n rootGroup: rootGroupSchema\n .optional()\n .describe('A command group that every spec-derived command is nested under.'),\n profiles: profilesConfigSchema.optional().describe('Named profile command configuration.'),\n splitTypeCrates: z\n .boolean()\n .optional()\n .describe('Whether generated types are split into one crate per API behind a facade crate.'),\n userAgentSuffixFlag: userAgentSuffixFlagSchema\n .optional()\n .describe('The long flag name, without \"--\", that appends a product token to the User-Agent.'),\n});\n\nexport type CliProfilesProvisionOperation = z.infer<typeof profilesProvisionOperationSchema>;\nexport type CliProfilesConfig = z.infer<typeof profilesConfigSchema>;\nexport type CliGenerationConfig = z.infer<typeof cliGenerationConfigSchema>;\n","import { cliGenerationConfigSchema } from '../../sdk-config-domain/v1/language/cli';\nimport { consume, isObject } from './fern-config-mapper-helpers';\nimport type {\n FernConfigMappingDiagnostic,\n JsonObject,\n MappingState,\n} from './fern-config-mapper-types';\n\ntype Path = (string | number)[];\ntype CliGenerationField = keyof typeof cliGenerationConfigSchema.shape;\n\nconst CLI_GENERATION_FIELDS = [\n 'binaryName',\n 'customCommands',\n 'rootGroup',\n 'profiles',\n 'splitTypeCrates',\n 'userAgentSuffixFlag',\n] as const satisfies readonly CliGenerationField[];\n\nconst PROFILES_FIELDS = ['enabled', 'commandName', 'revokeOperation'] as const;\nconst PROVISION_OPERATION_FIELDS = ['operation', 'credential', 'revokeParameters'] as const;\n\n/** The CLI generator reads these `customConfig` keys by exact name, so aliases are not matched. */\nexport function mapCliGeneration(\n config: JsonObject,\n state: MappingState,\n basePath: Path,\n targetIndex: number,\n): JsonObject {\n const generation: JsonObject = {};\n for (const field of CLI_GENERATION_FIELDS) {\n const raw = ownValue(config, field);\n if (raw === undefined) continue;\n const fieldPath = [...basePath, field];\n const { value, consumedPaths } =\n field === 'profiles' && isObject(raw)\n ? pickProfiles(raw, fieldPath)\n : { value: raw, consumedPaths: [fieldPath] };\n const parsed = cliGenerationConfigSchema.shape[field].safeParse(value);\n consumedPaths.forEach((path) => consume(state, path));\n if (parsed.success) {\n generation[field] = structuredClone(value);\n continue;\n }\n const diagnostics = parsed.error.issues.map((issue) =>\n invalidValueDiagnostic(field, fieldPath, issue.path, issue.message, targetIndex),\n );\n (state.valueDiagnostics ??= []).push(...diagnostics);\n }\n return generation;\n}\n\ninterface PickedValue {\n value: unknown;\n consumedPaths: Path[];\n}\n\n/**\n * Copies the profile keys the generator reads; any other key stays unconsumed and is reported as\n * unsupported. The generator treats a missing `enabled` as `false`, so that is written explicitly.\n * Picked keys are consumed by the caller even when the block is invalid, because the invalid-value\n * diagnostic already reports that the whole `profiles` setting was not migrated.\n */\nfunction pickProfiles(profiles: JsonObject, path: Path): PickedValue {\n const picked = pickKnown(profiles, PROFILES_FIELDS, path);\n const provisionOperation = ownValue(profiles, 'provisionOperation');\n const provisionPath = [...path, 'provisionOperation'];\n if (isObject(provisionOperation)) {\n const provision = pickKnown(provisionOperation, PROVISION_OPERATION_FIELDS, provisionPath);\n picked.value.provisionOperation = provision.value;\n picked.consumedPaths.push(...provision.consumedPaths);\n } else if (provisionOperation !== undefined) {\n picked.value.provisionOperation = provisionOperation;\n picked.consumedPaths.push(provisionPath);\n }\n return { value: { enabled: false, ...picked.value }, consumedPaths: picked.consumedPaths };\n}\n\nfunction pickKnown(\n value: JsonObject,\n fields: readonly string[],\n path: Path,\n): { value: JsonObject; consumedPaths: Path[] } {\n const picked: JsonObject = {};\n const consumedPaths: Path[] = [];\n for (const field of fields) {\n const child = ownValue(value, field);\n if (child === undefined) continue;\n picked[field] = child;\n consumedPaths.push([...path, field]);\n }\n return { value: picked, consumedPaths };\n}\n\nfunction ownValue(value: JsonObject, key: string): unknown {\n return Object.hasOwn(value, key) ? value[key] : undefined;\n}\n\nfunction invalidValueDiagnostic(\n field: CliGenerationField,\n fieldPath: Path,\n issuePath: PropertyKey[],\n message: string,\n targetIndex: number,\n): FernConfigMappingDiagnostic {\n const relative = issuePath.map((part) => (typeof part === 'symbol' ? String(part) : part));\n const sdkConfigField = ['targets', targetIndex, 'generation', field];\n return {\n code: 'FERN_CONFIG_VALUE_INVALID',\n severity: 'warning',\n path: [...fieldPath, ...relative],\n reason: `CLI setting ${field} was not migrated because SDK Config rejects it: ${message}`,\n sdkConfigPath: [...sdkConfigField, ...relative],\n suggestedAction: `Correct the value, then set ${sdkConfigField.join('.')} manually.`,\n };\n}\n","import { cliDistributionConfigSchema } from '../../sdk-config-domain/v1/distribution';\nimport { consume, isObject } from './fern-config-mapper-helpers';\nimport type {\n FernConfigMappingDiagnostic,\n JsonObject,\n MappingState,\n PendingCliDistribution,\n} from './fern-config-mapper-types';\nimport type { SdkConfigV1OutputConfig } from './output';\n\ntype Path = (string | number)[];\n\n/** Legacy CLI generator key → SDK Config key, per distribution block. Matched by exact name. */\nconst DISTRIBUTION_KEYS: Readonly<Record<string, Readonly<Record<string, string>>>> = {\n githubApp: { appIdSecret: 'appIdSecretName', privateKeySecret: 'privateKeySecretName' },\n homebrew: { tap: 'tap', formula: 'formula', tokenEnvironmentVariable: 'tokenSecretName' },\n scoop: { bucket: 'bucket', tokenEnvironmentVariable: 'tokenSecretName' },\n};\n\nconst DISTRIBUTION_SCALAR_KEYS: readonly string[] = ['githubAttestations'];\n\ninterface TranslatedDistribution {\n value: unknown;\n consumedPaths: Path[];\n legacyKeys: Map<string, string>;\n}\n\n/**\n * Translates the CLI generator's `config.distribution` into SDK Config's\n * `targets[].output.distribution`. Secret names are copied verbatim and generator defaults are not\n * written, so a channel without its own token keeps falling back to `githubApp`. Keys the generator\n * does not read stay unconsumed and are reported as unsupported.\n */\nexport function mapCliDistribution(\n config: JsonObject,\n state: MappingState,\n basePath: Path,\n targetIndex: number,\n): void {\n if (!Object.hasOwn(config, 'distribution')) return;\n const raw = config.distribution;\n const path = [...basePath, 'distribution'];\n const translated = isObject(raw)\n ? translateDistribution(raw, path)\n : { value: raw, consumedPaths: [path], legacyKeys: new Map<string, string>() };\n const parsed = cliDistributionConfigSchema.safeParse(translated.value);\n translated.consumedPaths.forEach((consumedPath) => consume(state, consumedPath));\n if (parsed.success) {\n state.cliDistribution = { value: parsed.data, path };\n return;\n }\n const diagnostics = parsed.error.issues.map((issue) =>\n invalidDistributionDiagnostic(issue, path, translated.legacyKeys, targetIndex),\n );\n const reportedPaths = new Set<string>();\n (state.valueDiagnostics ??= []).push(\n ...diagnostics.filter(({ path: diagnosticPath }) => {\n const key = diagnosticPath.join('.');\n if (reportedPaths.has(key)) return false;\n reportedPaths.add(key);\n return true;\n }),\n );\n}\n\nfunction translateDistribution(distribution: JsonObject, path: Path): TranslatedDistribution {\n const value: JsonObject = {};\n const consumedPaths: Path[] = [];\n const legacyKeys = new Map<string, string>();\n for (const [block, keys] of Object.entries(DISTRIBUTION_KEYS)) {\n if (!Object.hasOwn(distribution, block)) continue;\n const blockValue = distribution[block];\n const blockPath = [...path, block];\n if (!isObject(blockValue)) {\n value[block] = blockValue;\n consumedPaths.push(blockPath);\n continue;\n }\n const translatedBlock: JsonObject = {};\n for (const [legacyKey, sdkConfigKey] of Object.entries(keys)) {\n if (!Object.hasOwn(blockValue, legacyKey)) continue;\n translatedBlock[sdkConfigKey] = blockValue[legacyKey];\n consumedPaths.push([...blockPath, legacyKey]);\n legacyKeys.set(`${block}.${sdkConfigKey}`, legacyKey);\n }\n value[block] = translatedBlock;\n }\n for (const key of DISTRIBUTION_SCALAR_KEYS) {\n if (!Object.hasOwn(distribution, key)) continue;\n value[key] = distribution[key];\n consumedPaths.push([...path, key]);\n }\n return { value, consumedPaths, legacyKeys };\n}\n\nfunction invalidDistributionDiagnostic(\n issue: { path: PropertyKey[]; message: string },\n path: Path,\n legacyKeys: ReadonlyMap<string, string>,\n targetIndex: number,\n): FernConfigMappingDiagnostic {\n const relative = issue.path.map((part) => (typeof part === 'symbol' ? String(part) : part));\n const [block, field] = relative;\n const legacyField =\n typeof block === 'string' && typeof field === 'string'\n ? legacyKeys.get(`${block}.${field}`)\n : undefined;\n const legacyRelative =\n typeof block === 'string' && legacyField !== undefined ? [block, legacyField] : relative;\n const sdkConfigField = ['targets', targetIndex, 'output', 'distribution'];\n return {\n code: 'FERN_CONFIG_VALUE_INVALID',\n severity: 'warning',\n path: [...path, ...legacyRelative],\n reason: `CLI distribution was not migrated because SDK Config rejects it: ${issue.message}`,\n sdkConfigPath: [...sdkConfigField, ...relative],\n suggestedAction: `Correct the value, then set ${sdkConfigField.join('.')} manually.`,\n };\n}\n\n/**\n * The CLI generator honors distribution only for GitHub output and silently ignores it otherwise;\n * SDK Config rejects it outside `delivery: github`, so it is reported instead of written.\n */\nexport function applyCliDistribution(\n output: SdkConfigV1OutputConfig,\n pending: PendingCliDistribution | undefined,\n targetIndex: number,\n): { output: JsonObject; diagnostics: FernConfigMappingDiagnostic[] } {\n if (pending === undefined) return { output, diagnostics: [] };\n if (output.delivery === 'github') {\n return { output: { ...output, distribution: pending.value }, diagnostics: [] };\n }\n const outputPath = ['targets', targetIndex, 'output'];\n return {\n output,\n diagnostics: [\n {\n code: 'FERN_CLI_DISTRIBUTION_REQUIRES_GITHUB_OUTPUT',\n severity: 'warning',\n path: pending.path,\n reason:\n `The CLI generator ignores distribution for \"${output.delivery}\" output, and SDK Config ` +\n 'accepts distribution only with output.delivery \"github\", so it was not migrated',\n sdkConfigPath: [...outputPath, 'distribution'],\n suggestedAction:\n `Set ${outputPath.join('.')}.delivery to \"github\" for the CLI repository and add ` +\n `${outputPath.join('.')}.distribution manually, or remove distribution.`,\n },\n ],\n };\n}\n","import type {\n SdkConfigV1OutputConfig,\n SdkConfigV1PublishConfig,\n SdkConfigV1PublishRegistry,\n} from './output';\nimport type { SdkConfigV1PackageConfig } from './package';\nimport {\n canonicalLicenseType,\n collectLeafPaths,\n collectUnsupported,\n compact,\n consume,\n fail,\n isObject,\n optional,\n optionalObject,\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>(), credentialDiagnostics: [] };\n if (generator.output) {\n const downloadSnippets = mapDownloadSnippets(\n generator.outputMode,\n outputPath,\n state,\n language,\n index,\n );\n return {\n output: sanitizeNormalizedOutput(generator.output, rawOutput, state, index),\n ...optional(\n 'docs',\n downloadSnippets === undefined ? undefined : { snippets: { enabled: downloadSnippets } },\n ),\n unsupportedFields: state.credentialDiagnostics ?? [],\n };\n }\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 language,\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(\n { output: { delivery: 'zip' } },\n output,\n outputPath,\n state,\n index,\n language,\n );\n case 'github':\n return finishOutputMapping(\n githubOutput(output, output.publishInfo, rawOutput, language, outputPath, state, index),\n output,\n outputPath,\n state,\n index,\n language,\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 rawOutput,\n language,\n githubPath,\n state,\n index,\n ),\n output,\n outputPath,\n state,\n index,\n language,\n );\n }\n case 'publishV2': {\n const publication = mapPublication(\n output.publishV2,\n rawOutput,\n language,\n 'zip',\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 language,\n );\n }\n case 'publish': {\n const publication = mapLegacyPublication(\n output.registryOverrides,\n rawOutput,\n language,\n 'zip',\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 language,\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 sanitizeNormalizedOutput(\n output: SdkConfigV1OutputConfig,\n rawOutput: JsonObject | undefined,\n state: MappingState,\n index: number,\n): SdkConfigV1OutputConfig {\n const publish = output.publish\n ? sanitizePublishConfig(\n output.publish,\n output.publish as JsonObject,\n rawOutput,\n output.delivery,\n state,\n index,\n )\n : undefined;\n const publishShape = publish ? { publish } : {};\n if (output.delivery !== 'github') return { ...output, ...publishShape };\n\n const { credentials, ...github } = output.github;\n if (credentials) {\n addCredentialDiagnostic(\n state,\n ['group', 'generators', index, 'output', 'github', 'credentials'],\n ['targets', index, 'output', 'github', 'credentials'],\n 'Normalized GitHub credentials have no raw environment-expression provenance',\n );\n }\n return { ...output, github, ...publishShape };\n}\n\nfunction githubOutput(\n value: JsonObject,\n publishInfo: unknown,\n rawOutput: JsonObject | undefined,\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(\n publishInfo,\n rawOutput,\n language,\n 'github',\n [...sourcePath, 'publishInfo'],\n state,\n index,\n )\n : undefined;\n const type = stringValue(value.type);\n const licensePackage = mapGithubLicense(value.license, [...sourcePath, 'license'], state);\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 // `true` is Fern's default and stays omitted; only an explicit opt-out is written.\n const workflows = typeof value.workflows === 'boolean' ? value.workflows : undefined;\n if (workflows !== undefined) consume(state, [...sourcePath, 'workflows']);\n if (stringValue(value.host)) consume(state, [...sourcePath, 'host']);\n if (stringValue(value.branch)) consume(state, [...sourcePath, 'branch']);\n consumeCredentialObject(value.credentials, [...sourcePath, 'credentials'], state);\n if (isObject(value.credentials)) {\n addCredentialDiagnostic(\n state,\n [...sourcePath, 'credentials'],\n ['targets', index, 'output', 'github', 'credentials'],\n 'GitHub credentials cannot be traced safely to raw environment expressions',\n );\n }\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 ...(workflows === false ? { workflows } : {}),\n },\n ...(publication ? { publish: publication.publish } : {}),\n },\n // The GitHub license wins over a publication-supplied one; `licensePackage` is `{}` or `{ license }`.\n ...optionalObject('package', { ...publication?.package, ...licensePackage }),\n };\n}\n\n// Fern resolves only `MIT` and `Apache-2.0` to a basic license id (`getGithubLicense`); anything\n// else arrives as a custom license file, which keeps its \"set target.package.license\" diagnostic.\nfunction mapGithubLicense(\n value: unknown,\n sourcePath: (string | number)[],\n state: MappingState,\n): Pick<SdkConfigV1PackageConfig, 'license'> {\n if (!isObject(value) || stringValue(value.type) !== 'basic') return {};\n const id = stringValue(value.id);\n const type = id ? canonicalLicenseType(id) : undefined;\n if (!type) return {};\n consume(state, [...sourcePath, 'type']);\n consume(state, [...sourcePath, 'id']);\n return { license: { type } };\n}\n\nfunction consumeCredentialObject(\n value: unknown,\n sourcePath: (string | number)[],\n state: MappingState,\n): void {\n if (!isObject(value)) return;\n for (const field of ['username', 'password', 'token', 'apiKey']) {\n if (stringValue(value[field])) consume(state, [...sourcePath, field]);\n }\n}\n\nfunction consumeResolvedCredentials(\n value: JsonObject,\n sourcePath: (string | number)[],\n state: MappingState,\n): void {\n for (const field of ['username', 'password', 'token', 'apiKey']) {\n if (stringValue(value[field])) {\n consume(state, [...sourcePath, field]);\n }\n }\n if (isObject(value.credentials)) {\n for (const field of ['username', 'password', 'token', 'apiKey']) {\n if (stringValue(value.credentials[field])) {\n consume(state, [...sourcePath, 'credentials', field]);\n }\n }\n }\n if (isObject(value.signature)) {\n consume(state, [...sourcePath, 'signature']);\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 rawOutput: JsonObject | undefined,\n language: FernLanguage,\n delivery: SdkConfigV1OutputConfig['delivery'],\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 consumeResolvedCredentials(nested, nestedPath, state);\n const publish = sanitizePublishConfig(\n compact({ registry, url: registryUrl }) as SdkConfigV1PublishConfig,\n nested,\n rawOutput,\n delivery,\n state,\n index,\n );\n if (registry === 'maven') {\n const coordinate = stringValue(nested.coordinate);\n if (coordinate) consume(state, [...nestedPath, 'coordinate']);\n return {\n publish,\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,\n ...(packageName || Object.keys(metadata).length\n ? { package: { ...optional('packageName', packageName), ...metadata } }\n : {}),\n };\n}\n\nfunction sanitizePublishConfig(\n publish: SdkConfigV1PublishConfig,\n resolvedPublication: JsonObject,\n rawOutput: JsonObject | undefined,\n delivery: SdkConfigV1OutputConfig['delivery'],\n state: MappingState,\n index: number,\n): SdkConfigV1PublishConfig {\n const rawPublication = rawOutput?.location === publish.registry ? rawOutput : undefined;\n const rawPath = ['group', 'generators', index, 'output'] as (string | number)[];\n if (publish.registry === 'npm' || publish.registry === 'crates') {\n const token = mapCredentialExpression(\n rawPublication,\n resolvedPublication,\n 'token',\n rawPath,\n state,\n index,\n );\n warnForUnexpectedCredentialFields(\n rawPublication,\n resolvedPublication,\n ['token'],\n rawPath,\n state,\n index,\n );\n return compact({\n registry: publish.registry,\n url: publish.url,\n releaseBranch: publish.releaseBranch,\n tolerateRepublish: publish.tolerateRepublish,\n token,\n });\n }\n if (publish.registry === 'pypi') {\n const { username, password } = mapPypiCredentialExpressions(\n rawPublication,\n resolvedPublication,\n rawPath,\n state,\n index,\n );\n warnForUnexpectedCredentialFields(\n rawPublication,\n resolvedPublication,\n ['username', 'password', 'token'],\n rawPath,\n state,\n index,\n );\n return compact({\n registry: publish.registry,\n url: publish.url,\n releaseBranch: publish.releaseBranch,\n tolerateRepublish: publish.tolerateRepublish,\n username,\n password,\n });\n }\n if (publish.registry === 'maven') {\n const username = mapCredentialExpression(\n rawPublication,\n resolvedPublication,\n 'username',\n rawPath,\n state,\n index,\n );\n const password = mapCredentialExpression(\n rawPublication,\n resolvedPublication,\n 'password',\n rawPath,\n state,\n index,\n );\n const signature = mapMavenSignatureExpressions(\n rawPublication?.signature,\n resolvedPublication.signature,\n [...rawPath, 'signature'],\n state,\n index,\n );\n warnForUnexpectedCredentialFields(\n rawPublication,\n resolvedPublication,\n ['username', 'password'],\n rawPath,\n state,\n index,\n true,\n );\n return compact({\n registry: publish.registry,\n url: publish.url,\n releaseBranch: publish.releaseBranch,\n tolerateRepublish: publish.tolerateRepublish,\n username,\n password,\n signature,\n });\n }\n if (publish.registry === 'nuget' || publish.registry === 'rubygems') {\n const apiKey = mapApiKeyExpression(\n publish.registry,\n rawPublication,\n resolvedPublication,\n rawPath,\n state,\n index,\n fernDefaultApiKey(publish.registry, rawOutput, delivery),\n );\n warnForUnexpectedCredentialFields(\n rawPublication,\n resolvedPublication,\n ['apiKey'],\n rawPath,\n state,\n index,\n );\n return compact({\n registry: publish.registry,\n url: publish.url,\n releaseBranch: publish.releaseBranch,\n tolerateRepublish: publish.tolerateRepublish,\n apiKey,\n trustedPublishing: usesTrustedPublishing(rawPublication) || undefined,\n });\n }\n warnForUnrepresentableCredentials(rawPublication, resolvedPublication, rawPath, state, index);\n return compact({\n registry: publish.registry,\n url: publish.url,\n releaseBranch: publish.releaseBranch,\n tolerateRepublish: publish.tolerateRepublish,\n });\n}\n\nfunction mapLegacyPublication(\n value: unknown,\n rawOutput: JsonObject | undefined,\n language: FernLanguage,\n delivery: SdkConfigV1OutputConfig['delivery'],\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(\n override,\n rawOutput,\n language,\n delivery,\n [...sourcePath, registry],\n state,\n index,\n );\n}\n\nfunction mapCredentialExpression(\n rawPublication: JsonObject | undefined,\n resolvedPublication: JsonObject,\n field: 'username' | 'password' | 'token',\n rawPath: (string | number)[],\n state: MappingState,\n index: number,\n): string | undefined {\n const rawValue = rawPublication?.[field];\n if (isEnvironmentExpression(rawValue)) return rawValue;\n if (rawValue !== undefined || hasResolvedCredential(resolvedPublication, field)) {\n addCredentialDiagnostic(\n state,\n [...rawPath, field],\n ['targets', index, 'output', 'publish', field],\n `Fern publishing ${field} is not an exact environment expression`,\n );\n }\n return undefined;\n}\n\nconst TRUSTED_PUBLISHING_VALUES = new Set(['OIDC', '<USE_OIDC>']);\n\ntype ApiKeyRegistry = 'nuget' | 'rubygems';\n\n/** Fern accepts both spellings of the field; read them in one place so the callers can't drift. */\nfunction rawApiKeyValue(raw: JsonObject | undefined): unknown {\n return raw?.apiKey ?? raw?.['api-key'];\n}\n\n/**\n * Fern asks for trusted publishing through the `api-key` field, by setting it to `OIDC` rather than\n * to a secret name. SDK Config states it as its own flag, so the value maps across instead of being\n * dropped.\n */\nfunction usesTrustedPublishing(rawPublication: JsonObject | undefined): boolean {\n const rawValue = rawApiKeyValue(rawPublication);\n return typeof rawValue === 'string' && TRUSTED_PUBLISHING_VALUES.has(rawValue);\n}\n\n/**\n * A Fern NuGet or RubyGems `api-key` names the repository secret the generated workflow reads, so\n * an exact environment expression is preserved as that secret name. Anything else could be a\n * literal key and is omitted.\n *\n * `defaultSecretName` is the secret Fern's own workflow would have read instead. Where one exists\n * the omitted value was never a working credential, so it is substituted without a warning.\n */\nfunction mapApiKeyExpression(\n registry: ApiKeyRegistry,\n rawPublication: JsonObject | undefined,\n resolvedPublication: JsonObject,\n rawPath: (string | number)[],\n state: MappingState,\n index: number,\n defaultSecretName: string | undefined,\n): string | undefined {\n const rawValue = rawApiKeyValue(rawPublication);\n if (isEnvironmentExpression(rawValue)) return rawValue;\n // Trusted publishing is carried by its own flag, and names no secret to put here.\n if (usesTrustedPublishing(rawPublication)) return undefined;\n if (defaultSecretName !== undefined) return defaultSecretName;\n if (rawValue === undefined && !hasResolvedCredential(resolvedPublication, 'apiKey')) {\n return undefined;\n }\n addCredentialDiagnostic(\n state,\n [...rawPath, 'apiKey'],\n ['targets', index, 'output', 'publish', 'apiKey'],\n apiKeyOmissionReason(registry),\n );\n return undefined;\n}\n\n/**\n * Why an omitted `api-key` is worth warning about. Trusted publishing is handled before this, so\n * every value that reaches it is one that could have been a literal key.\n */\nfunction apiKeyOmissionReason(registry: ApiKeyRegistry): string {\n const label = registry === 'nuget' ? 'NuGet' : 'RubyGems';\n return `Fern ${label} apiKey is not an exact environment expression naming a secret`;\n}\n\nconst FERN_DEFAULT_NUGET_API_KEY = '${NUGET_API_TOKEN}';\n\n/**\n * The secret name Fern's own generated workflow would read for an `api-key` this mapper cannot\n * keep, or undefined when there is none and the omission is worth warning about.\n *\n * Fern's generated C# workflow reads `NUGET_API_TOKEN` whenever `api-key` names no secret, so\n * naming it explicitly keeps a migrated GitHub NuGet target publishing exactly as it did. Trusted\n * publishing reads no API key secret at all, so it is left to the warning path.\n *\n * Only GitHub delivery gets this. A directly published target really does lose its key, and the\n * generated Ruby workflow has no default secret to fall back on.\n *\n * `location` is the only place a NuGet default can be read from: `getGithubPublishInfo` in the Fern\n * CLI builds NuGet publish info from `case \"nuget\"` alone, so a missing or differently spelled raw\n * output cannot belong to a NuGet publish target.\n */\nfunction fernDefaultApiKey(\n registry: ApiKeyRegistry,\n rawOutput: JsonObject | undefined,\n delivery: SdkConfigV1OutputConfig['delivery'],\n): string | undefined {\n if (registry !== 'nuget' || delivery !== 'github' || rawOutput?.location !== 'nuget') {\n return undefined;\n }\n const rawApiKey = rawApiKeyValue(rawOutput);\n if (typeof rawApiKey === 'string' && TRUSTED_PUBLISHING_VALUES.has(rawApiKey)) {\n return undefined;\n }\n return FERN_DEFAULT_NUGET_API_KEY;\n}\n\nfunction mapPypiCredentialExpressions(\n rawPublication: JsonObject | undefined,\n resolvedPublication: JsonObject,\n rawPath: (string | number)[],\n state: MappingState,\n index: number,\n): { username?: string; password?: string } {\n const rawToken = rawPublication?.token;\n if (isEnvironmentExpression(rawToken)) {\n return { username: '__token__', password: rawToken };\n }\n\n const resolvedUsesToken =\n resolvedCredentialValue(resolvedPublication, 'username') === '__token__';\n if (rawToken !== undefined || resolvedUsesToken) {\n addCredentialDiagnostic(\n state,\n [...rawPath, 'token'],\n ['targets', index, 'output', 'publish', 'password'],\n 'Fern PyPI token is not an exact raw environment expression',\n );\n return {};\n }\n\n return {\n ...optional(\n 'username',\n mapCredentialExpression(\n rawPublication,\n resolvedPublication,\n 'username',\n rawPath,\n state,\n index,\n ),\n ),\n ...optional(\n 'password',\n mapCredentialExpression(\n rawPublication,\n resolvedPublication,\n 'password',\n rawPath,\n state,\n index,\n ),\n ),\n };\n}\n\nfunction mapMavenSignatureExpressions(\n rawValue: unknown,\n resolvedValue: unknown,\n rawPath: (string | number)[],\n state: MappingState,\n index: number,\n): { keyId: string; password: string; secretKey: string } | undefined {\n if (isObject(rawValue)) {\n const yamlValues = [rawValue['key-id'], rawValue.password, rawValue['secret-key']];\n const projectedValues = [rawValue.keyId, rawValue.password, rawValue.secretKey];\n const values = yamlValues.every(isEnvironmentExpression)\n ? yamlValues\n : projectedValues.every(isEnvironmentExpression)\n ? projectedValues\n : undefined;\n if (values) {\n const [keyId, password, secretKey] = values as [string, string, string];\n return { keyId, password, secretKey };\n }\n }\n if (rawValue !== undefined || isObject(resolvedValue)) {\n addCredentialDiagnostic(\n state,\n rawPath,\n ['targets', index, 'output', 'publish', 'signature'],\n 'Maven signing credentials are incomplete or not exact environment expressions',\n );\n }\n return undefined;\n}\n\nfunction warnForUnrepresentableCredentials(\n rawPublication: JsonObject | undefined,\n resolvedPublication: JsonObject,\n rawPath: (string | number)[],\n state: MappingState,\n index: number,\n): void {\n const rawHasCredential =\n ['username', 'password', 'token', 'apiKey'].some(\n (field) => rawPublication?.[field] !== undefined,\n ) || rawPublication?.signature !== undefined;\n if (rawHasCredential || hasAnyResolvedCredential(resolvedPublication)) {\n addCredentialDiagnostic(\n state,\n rawPath,\n ['targets', index, 'output', 'publish'],\n 'This registry does not support credentials in public SDK Config v1',\n );\n }\n}\n\nfunction warnForUnexpectedCredentialFields(\n rawPublication: JsonObject | undefined,\n resolvedPublication: JsonObject,\n allowedFields: readonly string[],\n rawPath: (string | number)[],\n state: MappingState,\n index: number,\n allowSignature = false,\n): void {\n const credentialFields = ['username', 'password', 'token', 'apiKey'];\n const unexpectedFields = credentialFields.filter(\n (field) =>\n !allowedFields.includes(field) &&\n (rawPublication?.[field] !== undefined || hasResolvedCredential(resolvedPublication, field)),\n );\n const hasUnexpectedSignature =\n !allowSignature &&\n (rawPublication?.signature !== undefined || resolvedPublication.signature !== undefined);\n if (unexpectedFields.length > 0 || hasUnexpectedSignature) {\n addCredentialDiagnostic(\n state,\n rawPath,\n ['targets', index, 'output', 'publish'],\n 'Fern publishing credentials or signing material include fields unsupported by this registry',\n );\n }\n}\n\nfunction hasResolvedCredential(value: JsonObject, field: string): boolean {\n return resolvedCredentialValue(value, field) !== undefined;\n}\n\nfunction resolvedCredentialValue(value: JsonObject, field: string): string | undefined {\n return (\n stringValue(value[field]) ??\n (isObject(value.credentials) ? stringValue(value.credentials[field]) : undefined)\n );\n}\n\nfunction hasAnyResolvedCredential(value: JsonObject): boolean {\n return (\n ['username', 'password', 'token', 'apiKey'].some((field) =>\n hasResolvedCredential(value, field),\n ) || value.signature !== undefined\n );\n}\n\nfunction isEnvironmentExpression(value: unknown): value is string {\n return typeof value === 'string' && /^\\$\\{[A-Za-z_][A-Za-z0-9_]*\\}$/.test(value);\n}\n\nfunction addCredentialDiagnostic(\n state: MappingState,\n path: (string | number)[],\n sdkConfigPath: (string | number)[],\n reason: string,\n): void {\n state.credentialDiagnostics?.push({\n code: 'FERN_OUTPUT_CREDENTIAL_OMITTED',\n severity: 'warning',\n path,\n reason,\n sdkConfigPath,\n suggestedAction: `Configure ${sdkConfigPath.join('.')} with an environment expression such as \\${CREDENTIAL_ENV_VAR}.`,\n });\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 language: FernLanguage,\n): OutputMapping {\n const downloadSnippets = mapDownloadSnippets(outputMode, sourcePath, state, language, index);\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 ...optional(\n 'docs',\n downloadSnippets === undefined ? undefined : { snippets: { enabled: downloadSnippets } },\n ),\n unsupportedFields: [\n ...(state.credentialDiagnostics ?? []),\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 mapDownloadSnippets(\n value: unknown,\n sourcePath: (string | number)[],\n state: MappingState,\n language: FernLanguage,\n index: number,\n): boolean | undefined {\n if (!isObject(value)) return undefined;\n const candidates: Array<{ value: JsonObject; path: (string | number)[] }> = [];\n switch (value.type) {\n case 'downloadFiles':\n case 'github':\n candidates.push({ value, path: sourcePath });\n break;\n case 'githubV2':\n if (isObject(value.githubV2)) {\n candidates.push({ value: value.githubV2, path: [...sourcePath, 'githubV2'] });\n }\n break;\n case 'publishV2':\n if (isObject(value.publishV2)) {\n candidates.push({ value: value.publishV2, path: [...sourcePath, 'publishV2'] });\n }\n break;\n case 'publish':\n if (isObject(value.registryOverrides)) {\n const registry = defaultRegistry(language, [...sourcePath, 'registryOverrides'], index);\n const override = value.registryOverrides[registry];\n if (isObject(override)) {\n candidates.push({\n value: override,\n path: [...sourcePath, 'registryOverrides', registry],\n });\n }\n }\n break;\n }\n\n let enabled: boolean | undefined;\n for (const candidate of candidates) {\n if (typeof candidate.value.downloadSnippets !== 'boolean') continue;\n consume(state, [...candidate.path, 'downloadSnippets']);\n enabled = enabled === true || candidate.value.downloadSnippets;\n }\n return enabled;\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 generateFullProject: {\n suggestedAction:\n 'Preserve this packaging setting on the generation request; it is not customer-authored SDK configuration.',\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 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';\nimport {\n canonicalLicenseType,\n consume,\n isObject,\n locate,\n stableJson,\n stringArrayValue,\n stringValue,\n} from './fern-config-mapper-helpers';\nimport type {\n FernConfigMappingDiagnostic,\n FernResolvedGeneratorInput,\n JsonObject,\n MappingState,\n PackageFallback,\n} from './fern-config-mapper-types';\nimport { sdkConfigV1PackageConfigSchema, type SdkConfigV1PackageConfig } from './package';\n\ntype Path = (string | number)[];\ntype Author = NonNullable<SdkConfigV1PackageConfig['authors']>[number];\ntype License = NonNullable<SdkConfigV1PackageConfig['license']>;\n\nconst emailSchema = z.email();\n\n/** The CLI generator writes these `packageIdentity` keys into the Cargo manifest. */\nexport function mapCliPackageIdentity(\n identity: { value: JsonObject; path: Path },\n state: MappingState,\n targetIndex: number,\n): void {\n mapIdentityField(identity, 'homepage', stringValue, state);\n mapIdentityField(identity, 'keywords', (value) => stringArrayValue(value)?.slice(), state);\n mapCargoAuthors(identity, state, targetIndex);\n mapIdentityField(identity, 'license', licenseValue, state);\n}\n\nfunction mapIdentityField<Field extends 'homepage' | 'keywords' | 'license'>(\n identity: { value: JsonObject; path: Path },\n field: Field,\n read: (value: unknown) => NonNullable<SdkConfigV1PackageConfig[Field]> | undefined,\n state: MappingState,\n): void {\n const located = locate(identity.value, [field], identity.path);\n const value = located && read(located.value);\n if (located && value !== undefined) addPackageFallback(state, field, value, located.path);\n}\n\nexport function mapLicenseFallback(\n config: JsonObject,\n aliases: string[],\n state: MappingState,\n basePath: Path,\n): void {\n const located = locate(config, aliases, basePath);\n const license = located && licenseValue(located.value);\n if (located && license) addPackageFallback(state, 'license', license, located.path);\n}\n\n/**\n * Applies legacy package metadata to a target package that already holds every mapped value.\n * Fallbacks only fill fields that are still empty; a differing value is reported, not overwritten.\n */\nexport function resolveTargetPackage(\n targetPackage: SdkConfigV1PackageConfig,\n fallbacks: readonly PackageFallback[],\n generator: FernResolvedGeneratorInput,\n delivery: string,\n index: number,\n): FernConfigMappingDiagnostic[] {\n const diagnostics: FernConfigMappingDiagnostic[] = [];\n for (const fallback of fallbacks) {\n applyFallback(targetPackage, fallback, index, diagnostics);\n }\n // A GitHub output already carries metadata.license, which Fern resolves into the output license.\n if (delivery !== 'github') {\n applyMetadataLicense(targetPackage, generator.raw, index, diagnostics);\n }\n return diagnostics;\n}\n\nfunction applyFallback(\n targetPackage: SdkConfigV1PackageConfig,\n { field, value, path }: PackageFallback,\n index: number,\n diagnostics: FernConfigMappingDiagnostic[],\n): void {\n const existing = targetPackage[field];\n if (existing === undefined) {\n (targetPackage as JsonObject)[field] = value;\n } else if (stableJson(existing) !== stableJson(value)) {\n diagnostics.push({\n code: 'FERN_PACKAGE_VALUE_CONFLICT',\n severity: 'warning',\n path,\n reason: `Fern value conflicts with the package.${field} already migrated for this target, which is kept`,\n sdkConfigPath: ['targets', index, 'package', field],\n suggestedAction: `Choose the intended value and set targets.${index}.package.${field} manually.`,\n });\n }\n}\n\n/** Custom license files stay manual: their path is relative to generators.yml, not SDK Config. */\nfunction applyMetadataLicense(\n targetPackage: SdkConfigV1PackageConfig,\n raw: unknown,\n index: number,\n diagnostics: FernConfigMappingDiagnostic[],\n): void {\n const metadata = isObject(raw) && isObject(raw.metadata) ? raw.metadata : undefined;\n if (metadata?.license === undefined || metadata.license === null) return;\n const path = ['group', 'generators', index, 'metadata', 'license'];\n const license = licenseValue(metadata.license);\n if (license) {\n applyFallback(targetPackage, { field: 'license', value: license, path }, index, diagnostics);\n return;\n }\n diagnostics.push({\n code: 'FERN_CONFIG_FIELD_UNSUPPORTED',\n severity: 'warning',\n path,\n reason: isObject(metadata.license)\n ? 'A custom license file cannot be migrated automatically'\n : 'metadata.license is not a license identifier',\n sdkConfigPath: ['targets', index, 'package', 'license'],\n suggestedAction: `Set targets.${index}.package.license manually.`,\n });\n}\n\n/** Cargo `authors` entries are `\"Name <email>\"` or a bare name; any invalid entry blocks all. */\nfunction mapCargoAuthors(\n identity: { value: JsonObject; path: Path },\n state: MappingState,\n targetIndex: number,\n): void {\n const located = locate(identity.value, ['authors'], identity.path);\n const entries = located && stringArrayValue(located.value);\n if (!located || !entries) return;\n consume(state, located.path);\n const authors = entries.map(parseCargoAuthor);\n const parsed = sdkConfigV1PackageConfigSchema.shape.authors.safeParse(authors);\n const invalid = parsed.success\n ? []\n : [...new Set(parsed.error.issues.map((issue) => issue.path[0]))].filter(\n (index): index is number => typeof index === 'number',\n );\n if (invalid.length === 0) {\n addPackageFallback(state, 'authors', authors, located.path);\n return;\n }\n const authorsPath = ['targets', targetIndex, 'package', 'authors'];\n (state.valueDiagnostics ??= []).push(\n ...invalid.map((entry) => ({\n code: 'FERN_CONFIG_VALUE_INVALID',\n severity: 'warning' as const,\n path: [...located.path, entry],\n reason:\n 'CLI packageIdentity.authors was not migrated because this entry is not \"Name\" or \"Name <email>\" with a valid email',\n sdkConfigPath: authorsPath,\n suggestedAction: `Correct the entry, then set ${authorsPath.join('.')} manually.`,\n })),\n );\n}\n\n/**\n * A bracketed suffix is an email only when it parses as one; otherwise the whole entry is a bare\n * name, since Cargo authors are free-form. An entry with no name before the brackets stays invalid.\n */\nfunction parseCargoAuthor(entry: string): Author {\n const trimmed = entry.trim();\n const match = /^(.*?)\\s*<([^<>]*)>$/.exec(trimmed);\n if (!match) return { name: trimmed };\n const [, name = '', email = ''] = match;\n if (name !== '' && !emailSchema.safeParse(email).success) return { name: trimmed };\n return { name, email };\n}\n\nfunction licenseValue(value: unknown): License | undefined {\n const license = stringValue(value)?.trim();\n return license ? { type: canonicalLicenseType(license) ?? license } : undefined;\n}\n\nfunction addPackageFallback<Field extends keyof SdkConfigV1PackageConfig>(\n state: MappingState,\n field: Field,\n value: NonNullable<SdkConfigV1PackageConfig[Field]>,\n path: Path,\n): void {\n consume(state, path);\n (state.packageFallbacks ??= []).push({ field, value, path } as PackageFallback);\n}\n","import { z } from 'zod';\n\ninterface JsonSchema {\n $defs?: Record<string, JsonSchema>;\n $ref?: string;\n type?: string | string[];\n properties?: Record<string, JsonSchema>;\n additionalProperties?: boolean | JsonSchema;\n items?: JsonSchema;\n oneOf?: JsonSchema[];\n anyOf?: JsonSchema[];\n const?: unknown;\n enum?: unknown[];\n default?: unknown;\n}\n\nconst OMIT = Symbol('omit');\n\nexport function inputJsonSchema(schema: z.ZodType): JsonSchema {\n return z.toJSONSchema(schema, {\n io: 'input',\n unrepresentable: 'any',\n }) as JsonSchema;\n}\n\n/**\n * Removes object properties that are unknown to the supplied schema while preserving record keys.\n * This is deliberately separate from the strict authoring schema: transport consumers may accept\n * additive fields without making misspelled customer configuration valid.\n */\nexport function stripUnknownProperties(value: unknown, schema: JsonSchema): unknown {\n return project(value, schema, schema, false);\n}\n\n/** Projects a parsed value into its canonical wire shape, omitting schema defaults. */\nexport function omitSchemaDefaults(value: unknown, schema: JsonSchema): unknown {\n const projected = project(value, schema, schema, true);\n return projected === OMIT ? undefined : projected;\n}\n\nfunction project(\n value: unknown,\n candidateSchema: JsonSchema,\n rootSchema: JsonSchema,\n omitDefaults: boolean,\n): unknown | typeof OMIT {\n const resolvedCandidate = resolveSchema(candidateSchema, rootSchema);\n if (\n omitDefaults &&\n Object.hasOwn(resolvedCandidate, 'default') &&\n deepEqual(value, resolvedCandidate.default)\n ) {\n return OMIT;\n }\n const schema = selectSchema(value, resolvedCandidate, rootSchema);\n if (\n omitDefaults &&\n schema !== resolvedCandidate &&\n Object.hasOwn(schema, 'default') &&\n deepEqual(value, schema.default)\n ) {\n return OMIT;\n }\n\n if (Array.isArray(value)) {\n if (!schema.items) return value;\n return value.map((item) => {\n const projected = project(item, schema.items!, rootSchema, omitDefaults);\n // Array elements are positional. A default-valued item must not shift later indices.\n return projected === OMIT ? item : projected;\n });\n }\n\n if (!isRecord(value) || schema.type !== 'object') return value;\n\n const entries: [string, unknown][] = [];\n const properties = schema.properties ?? {};\n const unionProperties = omitDefaults\n ? properties\n : collectAlternativeProperties(resolvedCandidate, rootSchema);\n for (const [key, propertySchema] of Object.entries(properties)) {\n if (!Object.hasOwn(value, key)) continue;\n const projected = project(value[key], propertySchema, rootSchema, omitDefaults);\n if (projected !== OMIT) entries.push([key, projected]);\n }\n\n for (const [key, fieldValue] of Object.entries(value)) {\n if (Object.hasOwn(properties, key)) continue;\n // A property belonging to another known union variant is invalid, not forward-compatible.\n // Preserve it so the strict parser reports the variant mismatch instead of silently dropping it.\n if (Object.hasOwn(unionProperties, key)) {\n entries.push([key, fieldValue]);\n continue;\n }\n if (schema.additionalProperties !== false) {\n const projected =\n typeof schema.additionalProperties === 'object'\n ? project(fieldValue, schema.additionalProperties, rootSchema, omitDefaults)\n : fieldValue;\n if (projected !== OMIT) entries.push([key, projected]);\n } else if (omitDefaults) {\n throw new Error(`Cannot serialize property unknown to the wire schema: ${key}`);\n }\n }\n\n return Object.fromEntries(entries);\n}\n\nfunction collectAlternativeProperties(\n schema: JsonSchema,\n rootSchema: JsonSchema,\n): Record<string, JsonSchema> {\n const alternatives = schema.oneOf ?? schema.anyOf;\n if (!alternatives) return schema.properties ?? {};\n\n return Object.assign(\n {},\n ...alternatives.map((alternative) => resolveSchema(alternative, rootSchema).properties ?? {}),\n ) as Record<string, JsonSchema>;\n}\n\nfunction selectSchema(value: unknown, schema: JsonSchema, rootSchema: JsonSchema): JsonSchema {\n const alternatives = schema.oneOf ?? schema.anyOf;\n if (!alternatives || alternatives.length === 0) return schema;\n\n const best = alternatives\n .map((alternative, index) => {\n const resolved = resolveSchema(alternative, rootSchema);\n return { index, schema: resolved, score: schemaMatchScore(value, resolved) };\n })\n .sort((left, right) => right.score - left.score || left.index - right.index)[0]!;\n\n // Preserve an invalid union value intact so the strict parser reports its original error.\n return best.score === Number.NEGATIVE_INFINITY ? schema : best.schema;\n}\n\nfunction schemaMatchScore(value: unknown, schema: JsonSchema): number {\n if (Object.hasOwn(schema, 'const') && !deepEqual(value, schema.const)) {\n return Number.NEGATIVE_INFINITY;\n }\n if (schema.enum && !schema.enum.some((candidate) => deepEqual(value, candidate))) {\n return Number.NEGATIVE_INFINITY;\n }\n\n if (schema.type === 'object') {\n if (!isRecord(value)) return Number.NEGATIVE_INFINITY;\n const properties = schema.properties ?? {};\n for (const [key, propertySchema] of Object.entries(properties)) {\n if (!Object.hasOwn(value, key)) continue;\n if (Object.hasOwn(propertySchema, 'const') && !deepEqual(value[key], propertySchema.const)) {\n return Number.NEGATIVE_INFINITY;\n }\n }\n return Object.keys(value).filter((key) => Object.hasOwn(properties, key)).length;\n }\n\n if (schema.type === 'array') return Array.isArray(value) ? 1 : Number.NEGATIVE_INFINITY;\n if (schema.type === 'string') return typeof value === 'string' ? 1 : Number.NEGATIVE_INFINITY;\n if (schema.type === 'number' || schema.type === 'integer') {\n return typeof value === 'number' ? 1 : Number.NEGATIVE_INFINITY;\n }\n if (schema.type === 'boolean') return typeof value === 'boolean' ? 1 : Number.NEGATIVE_INFINITY;\n if (schema.type === 'null') return value === null ? 1 : Number.NEGATIVE_INFINITY;\n return 0;\n}\n\nfunction resolveSchema(schema: JsonSchema, rootSchema: JsonSchema): JsonSchema {\n if (!schema.$ref) return schema;\n if (!schema.$ref.startsWith('#/$defs/')) return schema;\n const name = schema.$ref.slice('#/$defs/'.length).replaceAll('~1', '/').replaceAll('~0', '~');\n return rootSchema.$defs?.[name] ?? schema;\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return value !== null && typeof value === 'object' && !Array.isArray(value);\n}\n\nfunction deepEqual(left: unknown, right: unknown): boolean {\n if (Object.is(left, right)) return true;\n if (Array.isArray(left) && Array.isArray(right)) {\n return (\n left.length === right.length && left.every((value, index) => deepEqual(value, right[index]))\n );\n }\n if (isRecord(left) && isRecord(right)) {\n const leftKeys = Object.keys(left);\n const rightKeys = Object.keys(right);\n return (\n leftKeys.length === rightKeys.length &&\n leftKeys.every((key) => Object.hasOwn(right, key) && deepEqual(left[key], right[key]))\n );\n }\n return false;\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().describe('The generated client class name.'),\n exportedClientName: nonEmptyStringSchema\n .optional()\n .describe('The client name exported from the generated package.'),\n environmentTypeName: nonEmptyStringSchema\n .optional()\n .describe('The generated type name for API environments.'),\n apiErrorName: nonEmptyStringSchema.optional().describe('The generated API error class name.'),\n baseErrorName: nonEmptyStringSchema.optional().describe('The generated base error class name.'),\n pagerName: nonEmptyStringSchema.optional().describe('The generated pagination helper name.'),\n /** Apply Fern's initialism-aware casing rules when deriving generated identifiers. */\n smartCasing: z\n .boolean()\n .optional()\n .describe('Whether generated identifiers use initialism-aware casing.'),\n /** Preserve a word boundary after digits when Fern smart casing is enabled. */\n smartCasingDigitWordBoundary: z\n .boolean()\n .optional()\n .describe('Whether smart casing preserves a word boundary after digits.'),\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({\n type: z.literal('path').describe('Loads the generation asset from a relative path.'),\n location: sdkConfigV1RelativePathSchema.describe('The relative path to the generation asset.'),\n }),\n z.strictObject({\n type: z.literal('url').describe('Loads the generation asset from a URL.'),\n location: sdkConfigV1NonEmptyStringSchema.describe('The URL of the generation asset.'),\n }),\n]);\n\nconst customCodeConfigSchema = z.strictObject({\n enabled: z.boolean().describe('Whether customer-authored code is merged into generated output.'),\n source: customerGenerationAssetSchema\n .optional()\n .describe('The source containing customer-authored code.'),\n conflictStrategy: z\n .enum(['mark', 'ours', 'theirs'])\n .optional()\n .describe('How merge conflicts between generated and custom code are handled.'),\n trackChanges: z\n .boolean()\n .optional()\n .describe('Whether custom-code changes are tracked between builds.'),\n protectedFiles: z\n .array(sdkConfigV1NonEmptyStringSchema)\n .optional()\n .describe('Generated file paths that custom-code merging must not overwrite.'),\n});\n\nconst analyticsHeaderSchema = z.strictObject({\n name: sdkConfigV1NonEmptyStringSchema.describe('The exported telemetry header name.'),\n value: z.string().describe('The literal telemetry header value.'),\n});\n\nconst analyticsConfigSchema = z\n .strictObject({\n enabled: z.boolean().describe('Whether generated clients export usage telemetry.'),\n endpoint: sdkConfigV1NonEmptyStringSchema.optional().describe('The telemetry export endpoint.'),\n exporter: z\n .enum(['otlp-http', 'console'])\n .optional()\n .describe('The telemetry exporter implementation.'),\n headers: z\n .array(analyticsHeaderSchema)\n .optional()\n .describe('Headers sent by the telemetry exporter.'),\n batchSize: z\n .number()\n .int()\n .positive()\n .optional()\n .describe('The maximum spans in each export batch.'),\n scheduledDelayMs: z\n .number()\n .nonnegative()\n .optional()\n .describe('The delay between scheduled exports, in milliseconds.'),\n exportTimeoutMs: z\n .number()\n .nonnegative()\n .optional()\n .describe('The maximum time allowed for an export, in milliseconds.'),\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().describe('Whether wire-level request and response tests are generated.'),\n exclusions: z\n .array(sdkConfigV1NonEmptyStringSchema)\n .optional()\n .describe('Operations excluded from wire tests.'),\n fallbackToGeneratedErrorExamples: z\n .boolean()\n .optional()\n .describe('Whether missing error fixtures are synthesized from generated examples.'),\n fixtureSource: z\n .enum(['synthetic', 'recorded', 'auto'])\n .optional()\n .describe('Where wire-test fixtures are obtained.'),\n});\n\nconst unitTestsSchema = z.strictObject({\n enabled: z.boolean().describe('Whether SDK unit tests are generated.'),\n exclusions: z\n .array(sdkConfigV1NonEmptyStringSchema)\n .optional()\n .describe('Operations excluded from unit tests.'),\n});\n\nconst streamsSchema = z.strictObject({\n enabled: z.boolean().describe('Whether generated clients expose streaming response APIs.'),\n responseType: z\n .enum(['wrapper', 'native', 'web'])\n .optional()\n .describe('The streaming response abstraction exposed by generated clients.'),\n fileResponseType: z\n .enum(['stream', 'binary-response'])\n .optional()\n .describe('The response type used for file downloads.'),\n defaultChunkSizeBytes: z\n .number()\n .int()\n .positive()\n .optional()\n .describe('The default number of bytes yielded by streaming iterators.'),\n});\n\nconst layoutConfigSchema = z.strictObject({\n outputDirectory: z\n .enum(['project-root', 'source-root'])\n .optional()\n .describe('Whether generated source is rooted at the project or its source directory.'),\n packagePath: sdkConfigV1NonEmptyStringSchema\n .optional()\n .describe('The package-relative path for generated source files.'),\n});\n\nconst serializationConfigSchema = z.strictObject({\n enumRepresentation: z\n .enum(['enum', 'union', 'literal', 'forward-compatible-enum', 'language-default'])\n .optional()\n .describe('How schema enums are represented in generated code.'),\n additionalProperties: z\n .enum(['allow', 'forbid', 'ignore', 'language-default'])\n .optional()\n .describe('How undeclared object properties are handled.'),\n inlineTypes: z\n .boolean()\n .optional()\n .describe('Whether inline schemas remain nested under their parent types.'),\n omitUndefined: z\n .boolean()\n .optional()\n .describe('Whether undefined properties are omitted during serialization.'),\n});\n\nconst generationConfigOverrideShape = {\n includeOptionalSnippetParameters: z\n .boolean()\n .optional()\n .describe('Whether usage snippets include optional request parameters.'),\n buildAllModels: z\n .boolean()\n .optional()\n .describe('Whether models not referenced by operations are also generated.'),\n inferServiceNames: z\n .boolean()\n .optional()\n .describe('Whether service names are inferred from API structure.'),\n includeDeprecatedOperations: z\n .boolean()\n .optional()\n .describe('Whether deprecated API operations are generated.'),\n multipleResponses: z\n .boolean()\n .optional()\n .describe('Whether operations model multiple successful response types.'),\n devContainer: z\n .boolean()\n .optional()\n .describe('Whether development-container configuration is generated.'),\n allowMockClient: z\n .boolean()\n .optional()\n .describe('Whether a mock API client is included in the generated SDK.'),\n ignoreFiles: z\n .array(sdkConfigV1NonEmptyStringSchema)\n .optional()\n .describe('Generated paths excluded from the final output.'),\n reservedKeywords: z\n .array(sdkConfigV1NonEmptyStringSchema)\n .optional()\n .describe('Additional identifiers treated as reserved words.'),\n customCode: customCodeConfigSchema\n .optional()\n .describe('Customer-authored code merge configuration.'),\n customQueryPaths: z\n .array(sdkConfigV1RelativePathSchema)\n .optional()\n .describe('Relative paths to custom query definitions.'),\n analytics: analyticsConfigSchema.optional().describe('Generated client telemetry configuration.'),\n wireTests: wireTestsSchema\n .optional()\n .describe('Wire-level request and response test generation.'),\n unitTests: unitTestsSchema.optional().describe('SDK unit-test generation.'),\n webSockets: z\n .boolean()\n .optional()\n .describe('Whether WebSocket clients are generated for supported channels.'),\n streams: streamsSchema.optional().describe('Streaming response generation behavior.'),\n naming: namingConfigSchema.optional().describe('Names and casing used by generated code.'),\n layout: layoutConfigSchema.optional().describe('Generated project and source layout.'),\n serialization: serializationConfigSchema\n .optional()\n .describe('Generated model serialization behavior.'),\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 buildAllModels: z\n .boolean()\n .default(false)\n .describe('Whether models not referenced by operations are also generated.'),\n inferServiceNames: z\n .boolean()\n .default(false)\n .describe('Whether service names are inferred from API structure.'),\n includeDeprecatedOperations: z\n .boolean()\n .default(true)\n .describe('Whether deprecated API operations are generated.'),\n multipleResponses: z\n .boolean()\n .default(false)\n .describe('Whether operations model multiple successful response types.'),\n devContainer: z\n .boolean()\n .default(false)\n .describe('Whether development-container configuration is generated.'),\n allowMockClient: z\n .boolean()\n .default(false)\n .describe('Whether a mock API client is included in the generated SDK.'),\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, type RefinementCtx } from 'zod';\nimport {\n CLI_DISTRIBUTION_REQUIRES_GITHUB_DELIVERY_MESSAGE,\n cliDistributionConfigSchema,\n} from '../../sdk-config-domain/v1/distribution';\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 mavenSignatureSchema = z.strictObject({\n keyId: sdkConfigV1NonEmptyStringSchema.describe(\n 'The signing key identifier, or an environment expression that resolves to it.',\n ),\n password: sdkConfigV1NonEmptyStringSchema.describe(\n 'The signing key password, or an environment expression that resolves to it.',\n ),\n secretKey: sdkConfigV1NonEmptyStringSchema.describe(\n 'The armored secret key, or an environment expression that resolves to it.',\n ),\n});\n\n/**\n * A NuGet or RubyGems `api-key` in Fern's config names the repository secret the generated release\n * workflow reads the key from, so only an exact environment expression is accepted here and a\n * literal key can never be written to an SDK Config document.\n */\nfunction apiKeySecretSchema(registry: string, example: string) {\n return sdkConfigV1NonEmptyStringSchema.regex(\n /^\\$\\{[A-Za-z_][A-Za-z0-9_]*\\}$/,\n `${registry} apiKey must be an environment expression naming a secret, such as ${example}`,\n );\n}\n\nfunction apiKeySecretDescription(registry: string, example: string): string {\n return `An environment expression naming the repository secret that the generated release workflow reads the ${registry} API key from, such as ${example}. This is a secret name, never the key itself.`;\n}\n\n/**\n * Trusted publishing authenticates the release workflow with a short-lived OIDC token the registry\n * verifies against the repository, so there is no API key secret to name. The two are therefore\n * mutually exclusive.\n */\nfunction trustedPublishingSchema(registry: string) {\n return z\n .boolean()\n .optional()\n .describe(\n `Whether ${registry} publication uses trusted publishing (OIDC) instead of an API key secret.`,\n );\n}\n\nfunction refineApiKeyAgainstTrustedPublishing(\n publish: { apiKey?: string | undefined; trustedPublishing?: boolean | undefined },\n context: z.RefinementCtx,\n): void {\n if (publish.trustedPublishing === true && publish.apiKey !== undefined) {\n context.addIssue({\n code: 'custom',\n message: 'apiKey must be omitted when trustedPublishing is true',\n path: ['apiKey'],\n });\n }\n}\n\nconst commonPublishShape = {\n url: sdkConfigV1NonEmptyStringSchema.optional().describe('A custom package registry URL.'),\n releaseBranch: sdkConfigV1NonEmptyStringSchema\n .optional()\n .describe('The branch used by generated package release workflows.'),\n tolerateRepublish: z\n .boolean()\n .optional()\n .describe('Whether an already-published package version is treated as non-fatal.'),\n};\n\nexport const sdkConfigV1PublishConfigSchema = z.discriminatedUnion('registry', [\n z\n .strictObject({\n registry: z.literal('npm').describe('Publishes the package to an npm-compatible registry.'),\n token: sdkConfigV1NonEmptyStringSchema\n .optional()\n .describe('The npm registry token, or an environment expression that resolves to it.'),\n trustedPublishing: z\n .boolean()\n .optional()\n .describe('Whether npm publication uses trusted publishing (OIDC) instead of a token.'),\n ...commonPublishShape,\n })\n .superRefine((publish, context) => {\n if (publish.trustedPublishing === true && publish.token !== undefined) {\n context.addIssue({\n code: 'custom',\n message: 'token must be omitted when trustedPublishing is true',\n path: ['token'],\n });\n }\n }),\n z.strictObject({\n registry: z.literal('pypi').describe('Publishes the package to a PyPI-compatible registry.'),\n username: sdkConfigV1NonEmptyStringSchema\n .optional()\n .describe('The PyPI username, or an environment expression that resolves to it.'),\n password: sdkConfigV1NonEmptyStringSchema\n .optional()\n .describe('The PyPI password or token, or an environment expression that resolves to it.'),\n ...commonPublishShape,\n }),\n z.strictObject({\n registry: z\n .literal('maven')\n .describe('Publishes the package to a Maven-compatible repository.'),\n username: sdkConfigV1NonEmptyStringSchema\n .optional()\n .describe('The Maven username, or an environment expression that resolves to it.'),\n password: sdkConfigV1NonEmptyStringSchema\n .optional()\n .describe('The Maven password, or an environment expression that resolves to it.'),\n signature: mavenSignatureSchema\n .optional()\n .describe('Credentials used to sign Maven artifacts.'),\n ...commonPublishShape,\n }),\n z\n .strictObject({\n registry: z\n .literal('nuget')\n .describe('Publishes the package to a NuGet-compatible registry.'),\n apiKey: apiKeySecretSchema('NuGet', '${NUGET_API_KEY}')\n .optional()\n .describe(apiKeySecretDescription('NuGet', '${NUGET_API_KEY}')),\n trustedPublishing: trustedPublishingSchema('NuGet'),\n ...commonPublishShape,\n })\n .superRefine(refineApiKeyAgainstTrustedPublishing),\n z\n .strictObject({\n registry: z\n .literal('rubygems')\n .describe('Publishes the package to a RubyGems-compatible registry.'),\n apiKey: apiKeySecretSchema('RubyGems', '${RUBYGEMS_API_KEY}')\n .optional()\n .describe(apiKeySecretDescription('RubyGems', '${RUBYGEMS_API_KEY}')),\n trustedPublishing: trustedPublishingSchema('RubyGems'),\n ...commonPublishShape,\n })\n .superRefine(refineApiKeyAgainstTrustedPublishing),\n z.strictObject({\n registry: z.literal('crates').describe('Publishes the crate to a Cargo-compatible registry.'),\n token: sdkConfigV1NonEmptyStringSchema\n .optional()\n .describe('The Cargo registry token, or an environment expression that resolves to it.'),\n ...commonPublishShape,\n }),\n z.strictObject({\n registry: z.literal('go').describe('Publishes the SDK as a Go module.'),\n ...commonPublishShape,\n }),\n z.strictObject({\n registry: z\n .literal('composer')\n .describe('Publishes the package to a Composer-compatible registry.'),\n ...commonPublishShape,\n }),\n]);\n\nconst reviewersSchema = z.strictObject({\n teams: z\n .array(sdkConfigV1NonEmptyStringSchema)\n .optional()\n .describe('GitHub teams requested as reviewers.'),\n users: z\n .array(sdkConfigV1NonEmptyStringSchema)\n .optional()\n .describe('GitHub users requested as reviewers.'),\n});\n\nconst githubCredentialsSchema = z.strictObject({\n username: sdkConfigV1NonEmptyStringSchema\n .optional()\n .describe('The username used to authenticate with the GitHub host.'),\n password: sdkConfigV1NonEmptyStringSchema\n .optional()\n .describe('The password used to authenticate with the GitHub host.'),\n token: sdkConfigV1NonEmptyStringSchema\n .optional()\n .describe('A token used to authenticate with the GitHub host.'),\n apiKey: sdkConfigV1NonEmptyStringSchema\n .optional()\n .describe('An API key used to authenticate with the GitHub host.'),\n});\n\nconst githubOutputSchema = z.strictObject({\n repository: sdkConfigV1NonEmptyStringSchema.describe(\n 'The GitHub repository that receives generated files.',\n ),\n host: sdkConfigV1NonEmptyStringSchema\n .optional()\n .describe('The GitHub host for enterprise installations.'),\n branch: sdkConfigV1NonEmptyStringSchema\n .optional()\n .describe('The target branch for generated changes.'),\n mode: z\n .enum(['release', 'pull-request', 'push', 'commit', 'commit-and-release'])\n .optional()\n .describe('How generated changes are delivered to the repository.'),\n reviewers: reviewersSchema\n .optional()\n .describe('Reviewers requested for generated pull requests.'),\n credentials: githubCredentialsSchema\n .optional()\n .describe('Credentials used to authenticate GitHub delivery.'),\n privateRepository: z\n .boolean()\n .optional()\n .describe('Whether the destination repository is private.'),\n workflows: z\n .boolean()\n .optional()\n .describe(\n 'Whether generated .github/workflows files are delivered. Defaults to true. When false, newly generated workflow files are skipped and existing ones in the repository are left untouched.',\n ),\n});\n\nconst filesOutputSchema = z.strictObject({\n delivery: z.literal('files').describe('Writes the generated SDK to a directory.'),\n path: sdkConfigV1NonEmptyStringSchema\n .optional()\n .describe('The destination directory for generated files.'),\n publish: sdkConfigV1PublishConfigSchema\n .optional()\n .describe('Optional package registry publication.'),\n});\n\nconst zipOutputSchema = z.strictObject({\n delivery: z.literal('zip').describe('Packages the generated SDK as a ZIP archive.'),\n fileName: sdkConfigV1NonEmptyStringSchema\n .optional()\n .describe('The generated ZIP archive file name.'),\n publish: sdkConfigV1PublishConfigSchema\n .optional()\n .describe('Optional package registry publication.'),\n});\n\nconst githubDeliverySchema = z.strictObject({\n delivery: z.literal('github').describe('Delivers the generated SDK to GitHub.'),\n github: githubOutputSchema.describe('GitHub repository delivery settings.'),\n publish: sdkConfigV1PublishConfigSchema\n .optional()\n .describe('Optional package registry publication.'),\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\nconst cliDistributionShape = {\n distribution: cliDistributionConfigSchema\n .optional()\n .describe(\n 'CLI release channels and build attestation settings for the generated release workflow; credentials are GitHub Actions secret names.',\n ),\n};\n\nfunction rejectDistributionWithoutGithub(\n output: { distribution?: unknown },\n context: RefinementCtx,\n): void {\n if (output.distribution !== undefined) {\n context.addIssue({\n code: 'custom',\n message: CLI_DISTRIBUTION_REQUIRES_GITHUB_DELIVERY_MESSAGE,\n path: ['distribution'],\n });\n }\n}\n\n// `distribution` is accepted on every delivery so files/zip get an actionable error instead of a\n// generic unrecognized-key error.\nexport const sdkConfigV1CliOutputConfigSchema = z.discriminatedUnion(\n 'delivery',\n [\n filesOutputSchema.extend(cliDistributionShape).superRefine(rejectDistributionWithoutGithub),\n zipOutputSchema.extend(cliDistributionShape).superRefine(rejectDistributionWithoutGithub),\n githubDeliverySchema.extend(cliDistributionShape),\n ],\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>;\nexport type SdkConfigV1CliOutputConfig = z.infer<typeof sdkConfigV1CliOutputConfigSchema>;\n","import { z } from 'zod';\n\n/** Replay behavior for generation requests. */\nexport const sdkConfigV1ReplayConfigSchema = z.strictObject({\n enabled: z\n .boolean()\n .describe('Whether regeneration reapplies customer-authored repository changes.'),\n});\n\nexport type SdkConfigV1ReplayConfig = z.infer<typeof sdkConfigV1ReplayConfigSchema>;\n","import { z } from 'zod';\n\nexport const apiImportSettingsSchema = z.strictObject({\n respectNullableSchemas: z\n .boolean()\n .optional()\n .describe('Whether nullable schemas remain nullable in generated types.'),\n titleAsSchemaName: z\n .boolean()\n .optional()\n .describe('Whether a schema title can determine the generated type name.'),\n coerceEnumsToLiterals: z\n .boolean()\n .optional()\n .describe('Whether single-value enums are imported as literal values.'),\n idiomaticRequestNames: z\n .boolean()\n .optional()\n .describe('Whether request types use concise, idiomatic generated names.'),\n wrapReferencesToNullableInOptional: z\n .boolean()\n .optional()\n .describe('Whether nullable schema references are also treated as optional.'),\n coerceOptionalSchemasToNullable: z\n .boolean()\n .optional()\n .describe('Whether optional properties are represented as nullable required properties.'),\n pathParameterOrder: z\n .enum(['url-order', 'spec-order'])\n .optional()\n .describe('Whether path parameters follow their URL order or specification order.'),\n onlyIncludeReferencedSchemas: z\n .boolean()\n .optional()\n .describe('Whether unreferenced schemas are omitted from the generated SDK.'),\n objectQueryParameters: z\n .boolean()\n .optional()\n .describe('Whether object-valued query parameters are preserved as objects.'),\n typeDatesAsStrings: z\n .boolean()\n .optional()\n .describe('Whether date and date-time schemas are generated as strings.'),\n groupMultiApiEnvironments: z\n .boolean()\n .optional()\n .describe(\n 'Whether environments from multiple API sources are merged into shared named groups.',\n ),\n ignoreTags: z\n .boolean()\n .optional()\n .describe('Whether API tags are ignored when organizing generated resources.'),\n disambiguateRequestNames: z\n .boolean()\n .optional()\n .describe('Whether colliding request type names are automatically disambiguated.'),\n respectReadonlySchemas: z\n .boolean()\n .optional()\n .describe(\n 'Whether read-only properties are modeled separately for request and response types.',\n ),\n discriminatedUnionV2: z\n .boolean()\n .optional()\n .describe('Whether oneOf and anyOf schemas use the newer discriminator inference rules.'),\n undiscriminatedUnionsWithLiterals: z\n .boolean()\n .optional()\n .describe('Whether literal-bearing unions remain undiscriminated during import.'),\n inlineAllOfSchemas: z\n .boolean()\n .optional()\n .describe('Whether schemas composed with allOf are inlined when possible.'),\n inferDiscriminatedUnionBaseProperties: z\n .boolean()\n .optional()\n .describe(\n 'Whether properties every discriminated-union variant shares are lifted onto the union.',\n ),\n resolveSchemaCollisions: z\n .boolean()\n .optional()\n .describe('Whether colliding imported schema names are resolved automatically.'),\n asyncApiMessageNaming: z\n .enum(['v1', 'v2'])\n .optional()\n .describe('The naming strategy used for messages imported from AsyncAPI.'),\n defaultIntegerFormat: z\n .enum(['int32', 'int64', 'uint32', 'uint64'])\n .optional()\n .describe('The integer format used when a schema does not declare one.'),\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.describe('A unique identifier for this API source.'),\n type: sourceSpecTypeSchema.describe('The API description format of this source.'),\n name: sdkConfigV1NonEmptyStringSchema\n .optional()\n .describe('A human-readable name for this API source.'),\n namespace: sdkConfigV1NonEmptyStringSchema\n .optional()\n .describe('A namespace used to isolate this source in a multi-source SDK.'),\n apiImportSettings: apiImportSettingsSchema\n .optional()\n .describe('Import behavior that overrides the source-level defaults for this spec.'),\n overlays: z\n .array(sdkConfigV1RelativePathSchema)\n .optional()\n .describe('Relative paths to overlays applied to this source in order.'),\n overrides: z\n .array(sdkConfigV1RelativePathSchema)\n .optional()\n .describe('Relative paths to source override files applied in order.'),\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({\n ...sourceSpecShape,\n path: sdkConfigV1RelativePathSchema.describe('The relative path to the API source file.'),\n }),\n z.strictObject({\n ...sourceSpecShape,\n url: z\n .url({ protocol: /^https?$/ })\n .describe('The HTTP or HTTPS URL of the API source file.'),\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 .describe('API source files in authoritative processing order.'),\n apiImportSettings: apiImportSettingsSchema\n .optional()\n .describe('Default import behavior shared by every source spec.'),\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';\n\nexport const csharpGenerationConfigSchema = z.strictObject({\n useOptionalWrapper: z\n .boolean()\n .optional()\n .describe('Whether optional values use an explicit Optional wrapper.'),\n simplifyObjectDictionaries: z\n .boolean()\n .optional()\n .describe('Whether object schemas with arbitrary values use simplified dictionary types.'),\n explicitNamespaces: z\n .boolean()\n .optional()\n .describe('Whether generated resource groups use explicit nested namespaces.'),\n rootNamespaceForCoreClasses: z\n .boolean()\n .optional()\n .describe('Whether shared client classes are emitted in the root namespace.'),\n includeExceptionHandler: z\n .boolean()\n .optional()\n .describe('Whether generated client operations use a configurable exception handler.'),\n experimentalExplicitNullableOptional: z\n .boolean()\n .optional()\n .describe(\n 'Whether optional nullable properties distinguish omitted values from explicit nulls.',\n ),\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\n .boolean()\n .optional()\n .describe('Whether complex models use the legacy Go representation.'),\n /** Uppercase common initialisms in generated names (`UserID` rather than `UserId`). */\n smartCasing: z\n .boolean()\n .optional()\n .describe('Whether generated Go names capitalize common initialisms.'),\n /** Overrides the fern root-client constructor independently from the client type name. */\n clientConstructorName: nonEmptyStringSchema\n .optional()\n .describe('The generated root-client constructor name.'),\n unionVersion: z\n .enum(['v0', 'v1'])\n .optional()\n .describe('The representation used for generated Go unions.'),\n includeLegacyClientOptions: z\n .boolean()\n .optional()\n .describe('Whether the client retains legacy constructor option helpers.'),\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\n .enum(['flat', 'nested'])\n .optional()\n .describe('Whether generated JVM packages use a flat or nested resource layout.'),\n useLocalDateForDates: z\n .boolean()\n .optional()\n .describe('Whether date-only values use LocalDate instead of OffsetDateTime.'),\n collapseOptionalNullable: z\n .boolean()\n .optional()\n .describe('Whether optional nullable values collapse into a single nullable representation.'),\n gradleDistributionUrl: z\n .string()\n .min(1)\n .optional()\n .describe('The Gradle distribution URL written to the generated wrapper.'),\n gradlePluginManagement: z\n .string()\n .optional()\n .describe('Plugin management configuration added to the generated Gradle settings.'),\n gradleCentralDependencyManagement: z\n .boolean()\n .optional()\n .describe('Whether dependency versions are managed centrally in the Gradle project.'),\n /** Selects co-located async methods or a separate async client surface. */\n asyncStyle: z\n .enum(['dedicated-client', 'twin-methods'])\n .optional()\n .describe('Whether asynchronous operations use a separate client or co-located methods.'),\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\n .boolean()\n .optional()\n .describe('Whether Java SDK documentation includes Kotlin usage snippets.'),\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 { jsonObjectSchema, nonEmptyStringSchema } from '../common';\n\nconst compilerOptionsSchema = z.strictObject({\n target: nonEmptyStringSchema\n .optional()\n .describe('The JavaScript language target passed to TypeScript.'),\n module: nonEmptyStringSchema.optional().describe('The module format passed to TypeScript.'),\n lib: z\n .array(nonEmptyStringSchema)\n .optional()\n .describe('The runtime library definitions passed to TypeScript.'),\n});\n\nconst packageScriptSchema = z.strictObject({\n name: nonEmptyStringSchema.describe('The package script name.'),\n command: nonEmptyStringSchema.describe('The command executed by the package script.'),\n});\n\nconst httpClientSchema = z.strictObject({\n name: z\n .enum(['axios', 'fetch', 'node-fetch'])\n .describe('The HTTP client used by generated TypeScript code.'),\n});\n\nexport const typescriptGenerationConfigSchema = z.strictObject({\n typescriptVersion: nonEmptyStringSchema\n .optional()\n .describe('The TypeScript version used by the generated project.'),\n zodVersion: nonEmptyStringSchema\n .optional()\n .describe('The Zod version used by generated runtime schemas.'),\n compilerOptions: compilerOptionsSchema\n .optional()\n .describe('TypeScript compiler options for the generated project.'),\n httpClient: httpClientSchema\n .optional()\n .describe('The HTTP client used by generated TypeScript code.'),\n packageManager: z\n .enum(['pnpm', 'yarn'])\n .optional()\n .describe('The package manager used by the generated project.'),\n packageManagerVersion: nonEmptyStringSchema\n .optional()\n .describe('The package manager version used by the generated project.'),\n testFramework: z\n .enum(['jest', 'vitest'])\n .optional()\n .describe('The test framework used by generated tests.'),\n namingStrategy: z\n .enum(['base', 'originalPropertyNames'])\n .optional()\n .describe('How schema property names are converted into TypeScript identifiers.'),\n bundle: z.boolean().optional().describe('Whether the generated package includes bundled output.'),\n exportClassDefault: z\n .boolean()\n .optional()\n .describe('Whether the client class is also exported as the default export.'),\n /** Name of the top-level namespace export emitted by Fern-compatible TypeScript SDKs. */\n namespaceExportName: nonEmptyStringSchema\n .optional()\n .describe('The top-level namespace export name.'),\n consolidateTypeFiles: z\n .boolean()\n .optional()\n .describe('Whether generated types are consolidated into fewer source files.'),\n formDataSupport: z\n .enum(['Node16', 'Node18'])\n .optional()\n .describe(\n 'The multipart form-data implementation: Node16 uses the form-data packages, Node18 uses the platform FormData.',\n ),\n allowExtraFields: z\n .boolean()\n .optional()\n .describe(\n 'Whether response parsing keeps unrecognized object keys and accepts unrecognized union members and enum values.',\n ),\n generateSubpackageExports: z\n .boolean()\n .optional()\n .describe(\n 'Whether the package manifest exports each subpackage client as its own entry point.',\n ),\n exportAllRequestsAtRoot: z\n .boolean()\n .optional()\n .describe('Whether every request type is also exported from the package root.'),\n generateEndpointMetadata: z\n .boolean()\n .optional()\n .describe('Whether generated clients expose metadata for each endpoint.'),\n outputEsm: z\n .boolean()\n .optional()\n .describe(\n 'Whether the package is marked as an ES module while still shipping its CommonJS build.',\n ),\n neverThrowErrors: z\n .boolean()\n .optional()\n .describe(\n 'Whether client methods return a wrapped response instead of throwing on a non-2xx status.',\n ),\n includeOtherInUnionTypes: z\n .boolean()\n .optional()\n .describe('Whether union types gain a member for variants the SDK does not recognize.'),\n includeUtilsOnUnionMembers: z\n .boolean()\n .optional()\n .describe('Whether helper utilities are generated on each member of a union type.'),\n omitFernHeaders: z\n .boolean()\n .optional()\n .describe('Whether requests omit the SDK identification headers and the User-Agent header.'),\n linter: z\n .enum(['biome', 'oxlint', 'none'])\n .optional()\n .describe('The linter configured in the generated project.'),\n formatter: z\n .enum(['prettier', 'biome', 'oxfmt', 'none'])\n .optional()\n .describe('The formatter configured in the generated project.'),\n exports: jsonObjectSchema\n .optional()\n .describe(\n 'package.json exports entries, keyed by subpath, applied over the generated exports. Each subpath replaces the generated one.',\n ),\n files: z\n .array(nonEmptyStringSchema)\n .optional()\n .describe('package.json files entries, listed ahead of the generated ones.'),\n engines: z\n .record(nonEmptyStringSchema, nonEmptyStringSchema)\n .optional()\n .describe('package.json engines version ranges, keyed by engine name such as node.'),\n lintStaged: z\n .record(nonEmptyStringSchema, z.array(nonEmptyStringSchema).min(1))\n .optional()\n .describe('lint-staged commands to run, keyed by file glob.'),\n browser: z\n .record(nonEmptyStringSchema, z.union([z.boolean(), nonEmptyStringSchema]))\n .optional()\n .describe(\n 'package.json browser field: a module or file is excluded (false) or replaced by another path.',\n ),\n allowCustomFetcher: z\n .boolean()\n .optional()\n .describe('Whether callers can supply a custom fetch implementation.'),\n useBrandedStringAliases: z\n .boolean()\n .optional()\n .describe('Whether string aliases are emitted as distinct branded types.'),\n useLegacyExports: z\n .boolean()\n .optional()\n .describe('Whether the package emits the legacy export layout.'),\n useBigInt: z\n .boolean()\n .optional()\n .describe('Whether 64-bit integer values are represented with bigint.'),\n serdeLayer: z\n .boolean()\n .optional()\n .describe('Whether generated models use Fern serialization and deserialization helpers.'),\n /** Ship only the ESM build (drops CJS) to avoid the Node dual-package hazard. */\n esmOnly: z.boolean().optional().describe('Whether the package emits only ECMAScript modules.'),\n scripts: z\n .array(packageScriptSchema)\n .optional()\n .describe('Additional scripts added to the generated package manifest.'),\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\n .array(nonEmptyStringSchema)\n .optional()\n .describe('Operations explicitly included as MCP tools.'),\n exclude: z\n .array(nonEmptyStringSchema)\n .optional()\n .describe('Operations explicitly excluded from MCP tools.'),\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\n .optional()\n .describe('The name advertised by the generated MCP server.'),\n serverDescription: nonEmptyStringSchema\n .optional()\n .describe('The description advertised by the generated MCP server.'),\n excludeAvailability: z\n .array(z.enum(mcpAvailabilityStatuses))\n .optional()\n .describe('Operation availability statuses excluded from MCP tool generation.'),\n tools: mcpToolFilterSchema\n .optional()\n .describe('Global operation filters for generated MCP tools.'),\n toolsets: z\n .record(mcpToolsetNameSchema, mcpToolFilterSchema)\n .optional()\n .describe('Named MCP toolsets and the operation filters for each toolset.'),\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\n .enum(['public', 'private'])\n .optional()\n .describe('The visibility of generated PHP model properties.'),\n generateClientInterfaces: z\n .boolean()\n .optional()\n .describe('Whether interfaces are generated for PHP client classes.'),\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().describe('The source file name for the Python client.'),\n exportedFileName: nonEmptyStringSchema\n .optional()\n .describe('The file name used when exporting the Python client.'),\n});\n\nconst pydanticConfigSchema = z.strictObject({\n versionCompatibility: z\n .enum(['v1', 'v2', 'both', 'v1-on-v2'])\n .optional()\n .describe('The Pydantic major versions supported by generated models.'),\n frozen: z.boolean().optional().describe('Whether generated Pydantic models are immutable.'),\n requireOptionalFields: z\n .boolean()\n .optional()\n .describe('Whether Optional fields remain required unless they declare a default.'),\n unionNaming: z\n .enum(['v0', 'v1'])\n .optional()\n .describe('The naming strategy for generated union types.'),\n useFieldAliases: z\n .boolean()\n .optional()\n .describe('Whether Pydantic field aliases preserve wire names.'),\n});\n\nconst additionalInitExportSchema = z.strictObject({\n from: nonEmptyStringSchema.describe('The module from which names are re-exported.'),\n imports: z.array(nonEmptyStringSchema).min(1).describe('Names re-exported from the module.'),\n});\n\nexport const pythonGenerationConfigSchema = z.strictObject({\n pythonVersion: nonEmptyStringSchema\n .optional()\n .describe('The Python version targeted by the generated project.'),\n pydanticVersion: nonEmptyStringSchema\n .optional()\n .describe('The Pydantic dependency version requirement.'),\n pydantic: pydanticConfigSchema.optional().describe('Pydantic model-generation behavior.'),\n client: pythonClientSchema.optional().describe('Python client file naming.'),\n /** Default followed by generated sync and async HTTP clients when the caller does not override it. */\n followRedirectsByDefault: z\n .boolean()\n .optional()\n .describe('Whether generated HTTP clients follow redirects by default.'),\n /** Chunk size passed to Python byte-stream iterators. */\n defaultBytesStreamChunkSize: z\n .number()\n .int()\n .positive()\n .optional()\n .describe('The default byte-stream iterator chunk size.'),\n /** Python interpreter recursion limit installed by the generated package at import time. */\n recursionLimit: z\n .number()\n .int()\n .gt(1_000)\n .optional()\n .describe('The Python recursion limit installed when the generated package is imported.'),\n /** Published Python extras, keyed by extra name with package dependency names as values. */\n extras: z\n .record(nonEmptyStringSchema, z.array(nonEmptyStringSchema))\n .optional()\n .describe('Published Python extras and their dependency names.'),\n alwaysInitializeOptionals: z\n .boolean()\n .optional()\n .describe('Whether optional model fields are initialized even when omitted.'),\n useTypedDictRequests: z\n .boolean()\n .optional()\n .describe('Whether request bodies are generated as TypedDict types.'),\n additionalInitExports: z\n .array(additionalInitExportSchema)\n .optional()\n .describe('Additional names re-exported from the package initializer.'),\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\n .array(nonEmptyStringSchema)\n .optional()\n .describe('Files the generated entry file loads with `require`.'),\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\n .enum(['offset', 'utc'])\n .optional()\n .describe('Whether datetime values preserve their offset or normalize to UTC.'),\n /** Uppercase common initialisms in generated names (`UserID` rather than `UserId`). */\n capitalizeInitialisms: z\n .boolean()\n .optional()\n .describe('Whether generated Rust names capitalize common initialisms.'),\n /** Cargo features, mapping a feature name to the dependencies or features it enables. */\n features: z\n .record(z.string(), z.array(nonEmptyStringSchema))\n .optional()\n .describe('Cargo features and the dependencies or features each enables.'),\n /** Overrides which features make up Cargo's `default` feature set. */\n defaultFeatures: z\n .array(nonEmptyStringSchema)\n .optional()\n .describe('Cargo features included in the crate default feature set.'),\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\n .optional()\n .describe('The Swift module name for the generated package.'),\n nullableAsOptional: z\n .boolean()\n .optional()\n .describe('Whether nullable values are represented as Swift optionals.'),\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({\n enabled: z.literal(true).describe('Enables custom Terraform plan modifiers.'),\n sourceDir: nonEmptyStringSchema.describe(\n 'The directory containing custom plan modifier source files.',\n ),\n }),\n z.strictObject({\n enabled: z.literal(false).describe('Disables custom Terraform plan modifiers.'),\n }),\n]);\n\nconst planModifiersSchema = z.strictObject({\n resources: planModifierSourceSchema.describe('Custom plan modifiers for generated resources.'),\n attributes: planModifierSourceSchema.describe('Custom plan modifiers for generated attributes.'),\n});\n\n/** Names of the provider-level attributes the generated provider exposes for host and credentials. */\nconst providerSchemaSchema = z.strictObject({\n addressKey: nonEmptyStringSchema.describe(\n 'The provider attribute used to configure the API address.',\n ),\n authTokenKey: nonEmptyStringSchema.describe(\n 'The provider attribute used to configure the authentication token.',\n ),\n});\n\nexport const terraformGenerationConfigSchema = z.strictObject({\n providerName: nonEmptyStringSchema.optional().describe('The Terraform provider name.'),\n providerVersion: nonEmptyStringSchema\n .optional()\n .describe('The generated Terraform provider version.'),\n providerModulePath: goModulePathSchema\n .optional()\n .describe('The Go module path for the generated provider.'),\n mockAcceptance: z\n .boolean()\n .optional()\n .describe('Whether acceptance tests use a mock API server.'),\n hideComputedDiff: z\n .boolean()\n .optional()\n .describe('Whether computed-only changes are hidden from Terraform plans.'),\n providerSchema: providerSchemaSchema\n .optional()\n .describe('Names of provider-level configuration attributes.'),\n planModifiers: planModifiersSchema\n .optional()\n .describe('Custom plan modifier source configuration.'),\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 { sdkConfigV1CliOutputConfigSchema, sdkConfigV1OutputConfigSchema } from './output';\nimport { sdkConfigV1PackageConfigSchema } from './package';\n\nconst targetOverrideShape = {\n generatorVersion: sdkConfigV1ExactSemverSchema\n .optional()\n .describe('The exact generator version used for this target.'),\n sdkName: sdkConfigV1NonEmptyStringSchema\n .optional()\n .describe('An SDK name that overrides the root value for this target.'),\n sdkVersion: sdkConfigV1NonEmptyStringSchema\n .optional()\n .describe('An SDK version that overrides the root value for this target.'),\n client: sdkConfigV1ClientConfigOverrideSchema\n .optional()\n .describe('Client settings that override root client configuration for this target.'),\n docs: sdkConfigV1DocsConfigSchema\n .optional()\n .describe('Documentation settings that override root documentation for this target.'),\n package: sdkConfigV1PackageConfigSchema\n .optional()\n .describe('Package metadata that overrides root package configuration for this target.'),\n output: sdkConfigV1OutputConfigSchema\n .optional()\n .describe('Output configuration that replaces the root output for this target.'),\n};\n\nexport const sdkConfigV1TargetSchema = z.discriminatedUnion('language', [\n z.strictObject({\n language: z.literal('typescript').describe('Generates a TypeScript SDK.'),\n generation: sdkConfigV1GenerationConfigOverrideSchema\n .extend(sdkConfigV1TypescriptGenerationConfigSchema.shape)\n .optional()\n .describe('Common and TypeScript-specific generation settings for this target.'),\n ...targetOverrideShape,\n }),\n z.strictObject({\n language: z.literal('python').describe('Generates a Python SDK.'),\n generation: sdkConfigV1GenerationConfigOverrideSchema\n .extend(sdkConfigV1PythonGenerationConfigSchema.shape)\n .optional()\n .describe('Common and Python-specific generation settings for this target.'),\n ...targetOverrideShape,\n }),\n z.strictObject({\n language: z.literal('java').describe('Generates a Java SDK.'),\n generation: sdkConfigV1GenerationConfigOverrideSchema\n .extend(sdkConfigV1JavaGenerationConfigSchema.shape)\n .optional()\n .describe('Common and Java-specific generation settings for this target.'),\n ...targetOverrideShape,\n }),\n z.strictObject({\n language: z.literal('kotlin').describe('Generates a Kotlin SDK.'),\n generation: sdkConfigV1GenerationConfigOverrideSchema\n .extend(sdkConfigV1KotlinGenerationConfigSchema.shape)\n .optional()\n .describe('Common and Kotlin-specific generation settings for this target.'),\n ...targetOverrideShape,\n }),\n z.strictObject({\n language: z.literal('go').describe('Generates a Go SDK.'),\n generation: sdkConfigV1GenerationConfigOverrideSchema\n .extend(sdkConfigV1GoGenerationConfigSchema.shape)\n .optional()\n .describe('Common and Go-specific generation settings for this target.'),\n ...targetOverrideShape,\n }),\n z.strictObject({\n language: z.literal('csharp').describe('Generates a C# SDK.'),\n generation: sdkConfigV1GenerationConfigOverrideSchema\n .extend(sdkConfigV1CsharpGenerationConfigSchema.shape)\n .optional()\n .describe('Common and C#-specific generation settings for this target.'),\n ...targetOverrideShape,\n }),\n z.strictObject({\n language: z.literal('php').describe('Generates a PHP SDK.'),\n generation: sdkConfigV1GenerationConfigOverrideSchema\n .extend(sdkConfigV1PhpGenerationConfigSchema.shape)\n .optional()\n .describe('Common and PHP-specific generation settings for this target.'),\n ...targetOverrideShape,\n }),\n z.strictObject({\n language: z.literal('ruby').describe('Generates a Ruby SDK.'),\n generation: sdkConfigV1GenerationConfigOverrideSchema\n .extend(sdkConfigV1RubyGenerationConfigSchema.shape)\n .optional()\n .describe('Common and Ruby-specific generation settings for this target.'),\n ...targetOverrideShape,\n }),\n z.strictObject({\n language: z.literal('rust').describe('Generates a Rust SDK.'),\n generation: sdkConfigV1GenerationConfigOverrideSchema\n .extend(sdkConfigV1RustGenerationConfigSchema.shape)\n .optional()\n .describe('Common and Rust-specific generation settings for this target.'),\n ...targetOverrideShape,\n }),\n z.strictObject({\n language: z.literal('swift').describe('Generates a Swift SDK.'),\n generation: sdkConfigV1GenerationConfigOverrideSchema\n .extend(sdkConfigV1SwiftGenerationConfigSchema.shape)\n .optional()\n .describe('Common and Swift-specific generation settings for this target.'),\n ...targetOverrideShape,\n }),\n z.strictObject({\n language: z.literal('cli').describe('Generates a command-line interface.'),\n generation: sdkConfigV1GenerationConfigOverrideSchema\n .extend(sdkConfigV1CliGenerationConfigSchema.shape)\n .optional()\n .describe('Common and CLI-specific generation settings for this target.'),\n ...targetOverrideShape,\n output: sdkConfigV1CliOutputConfigSchema\n .optional()\n .describe(\n 'Output configuration, including optional CLI distribution channels, that replaces the root output for this target.',\n ),\n }),\n z.strictObject({\n language: z.literal('mcp').describe('Generates an MCP server.'),\n generation: sdkConfigV1GenerationConfigOverrideSchema\n .extend(sdkConfigV1McpGenerationConfigSchema.shape)\n .optional()\n .describe('Common and MCP-specific generation settings for this target.'),\n ...targetOverrideShape,\n }),\n z.strictObject({\n language: z.literal('terraform').describe('Generates a Terraform provider.'),\n generation: sdkConfigV1GenerationConfigOverrideSchema\n .extend(sdkConfigV1TerraformGenerationConfigSchema.shape)\n .optional()\n .describe('Common and Terraform-specific generation settings for this target.'),\n ...targetOverrideShape,\n }),\n]);\n\nexport type SdkConfigV1Target = z.infer<typeof sdkConfigV1TargetSchema>;\n","import { z, type RefinementCtx } from 'zod';\nimport { inputJsonSchema, stripUnknownProperties } from '../../schema/forward-compatible';\nimport { CLI_PUBLISH_REQUIRES_GITHUB_DELIVERY_MESSAGE } from '../../sdk-config-domain/v1/distribution';\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 { sdkConfigV1ReplayConfigSchema } from './replay';\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', 'cli'],\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 if (target.language === 'cli' && output.delivery !== 'github') {\n context.addIssue({\n code: 'custom',\n message: CLI_PUBLISH_REQUIRES_GITHUB_DELIVERY_MESSAGE,\n path: target.output ? ['targets', targetIndex, 'output', 'delivery'] : ['output', 'delivery'],\n });\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\n .literal(SDK_CONFIG_V1_SCHEMA_VERSION)\n .describe('The version of the customer-facing SDK Config schema.'),\n sdkName: sdkConfigV1NonEmptyStringSchema.describe('The default name used for generated SDKs.'),\n sdkVersion: sdkConfigV1NonEmptyStringSchema\n .default('1.0.0')\n .describe('The default version assigned to generated SDKs.'),\n apiVersion: sdkConfigV1NonEmptyStringSchema\n .optional()\n .describe('The version of the API represented by the generated SDKs.'),\n source: sdkConfigV1SourceConfigSchema.describe(\n 'The API descriptions used to generate the SDKs.',\n ),\n api: sdkConfigV1ApiConfigSchema.prefault({}).describe('Shared API behavior for every target.'),\n client: sdkConfigV1ClientConfigSchema\n .prefault({})\n .describe('Shared generated-client behavior for every target.'),\n package: sdkConfigV1PackageConfigSchema\n .prefault({})\n .describe('Package metadata inherited by every target.'),\n output: sdkConfigV1OutputConfigSchema\n .optional()\n .describe('The default output delivery and publication configuration.'),\n replay: sdkConfigV1ReplayConfigSchema\n .optional()\n .describe('Generation replay behavior shared by every target.'),\n docs: sdkConfigV1DocsConfigSchema\n .prefault({})\n .describe('Documentation settings inherited by every target.'),\n generation: sdkConfigV1GenerationConfigSchema\n .prefault({})\n .describe('Generation settings inherited by every target.'),\n targets: z\n .array(sdkConfigV1TargetSchema)\n .min(1)\n .describe('Language targets to generate; each language may appear once.'),\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\nconst sdkConfigV1InputJsonSchema = inputJsonSchema(sdkConfigV1Schema);\n\n/**\n * Parses a service-to-service SDK Config v1 document while ignoring additive object fields unknown\n * to this package version. Customer-authored documents should continue to use the strict parser or\n * validator so misspellings are reported.\n */\nexport function parseSdkConfigV1ForConsumption(value: unknown): SdkConfigV1 {\n return parseSdkConfigV1(stripUnknownProperties(value, sdkConfigV1InputJsonSchema));\n}\n","import { sdkConfigV1ExactSemverSchema } from './common';\nimport { jsonObjectSchema } from '../../sdk-config-domain/v1/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 { mapCliGeneration } from './fern-config-mapper-cli';\nimport { applyCliDistribution, mapCliDistribution } from './fern-config-mapper-cli-distribution';\nimport { mapOutput } from './fern-config-mapper-output';\nimport {\n mapCliPackageIdentity,\n mapLicenseFallback,\n resolveTargetPackage,\n} from './fern-config-mapper-package';\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 type PackageFallback,\n type PendingCliDistribution,\n} from './fern-config-mapper-types';\nimport type { SdkConfigV1GenerationConfigInput } from './generation';\nimport type { SdkConfigV1OutputConfig } from './output';\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\ntype LocatedObject = { value: JsonObject; path: (string | number)[] };\n\ninterface InvocationMapping {\n client: SdkConfigV1ClientConfigInput;\n docs: SdkConfigV1DocsConfig;\n generation: SdkConfigV1GenerationConfigInput;\n package: SdkConfigV1PackageConfig;\n packageFallbacks: PackageFallback[];\n cliDistribution?: PendingCliDistribution;\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 = mapOutput(generator, language, index);\n return {\n generator,\n language,\n invocation,\n ...outputMapping,\n docs: { ...invocation.docs, ...outputMapping.docs },\n };\n });\n\n const clients = partitionSharedBlock(mapped.map(({ invocation }) => invocation.client));\n const docs = partitionSharedBlock(mapped.map(({ docs }) => 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 (\n {\n generator,\n invocation,\n language,\n output,\n package: outputPackage,\n generation: outputGeneration,\n },\n index,\n ) => {\n const distribution = applyCliDistribution(output, invocation.cliDistribution, index);\n invocation.unsupportedFields.push(...distribution.diagnostics);\n const target: JsonObject = {\n language,\n output: distribution.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 const mappedPackage = { ...invocation.package, ...outputPackage, ...generator.package };\n invocation.unsupportedFields.push(\n ...resolveTargetPackage(\n mappedPackage,\n invocation.packageFallbacks,\n generator,\n output.delivery,\n index,\n ),\n );\n const targetPackage = withRustCratesPublishDefaults(mappedPackage, {\n language,\n output,\n generator,\n });\n if (Object.keys(targetPackage).length > 0 || outputPackage || generator.package) {\n target.package = targetPackage;\n }\n const targetGeneration = {\n ...generations.targetOverrides[index],\n ...outputGeneration,\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 ...optional('replay', input.replay),\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\n/**\n * The Fern Rust generator wrote a default description and an `MIT` license into `Cargo.toml` itself.\n * crates.io publication through sdk-gen-api requires both in SDK Config, so a migrated target that\n * publishes to crates keeps the same defaults. A configured value, or a custom license file, wins.\n */\nfunction withRustCratesPublishDefaults(\n packageConfig: SdkConfigV1PackageConfig,\n { language, output, generator }: RustCratesDefaultsContext,\n): SdkConfigV1PackageConfig {\n if (language !== 'rust' || !('publish' in output) || output.publish?.registry !== 'crates') {\n return packageConfig;\n }\n const { packageName } = packageConfig;\n return {\n ...(packageName ? { description: `Rust SDK for ${packageName} generated by Fern` } : {}),\n ...(usesCustomLicenseFile(generator) ? {} : { license: { type: 'MIT' } }),\n ...packageConfig,\n };\n}\n\nfunction usesCustomLicenseFile({ config, raw }: FernResolvedGeneratorInput): boolean {\n const metadata = isObject(raw) && isObject(raw.metadata) ? raw.metadata : undefined;\n return (\n (isObject(config) && typeof config.packageLicenseFile === 'string') ||\n isObject(metadata?.license)\n );\n}\n\ninterface RustCratesDefaultsContext {\n language: FernLanguage;\n output: SdkConfigV1OutputConfig;\n generator: FernResolvedGeneratorInput;\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 // The API-wide `api.settings.auto-generate-idempotency-key`; a generator's own config wins.\n const apiWideIdempotency = idempotencyKeyGenerationFrom(\n generator.idempotencyKeyGenerationConfig,\n [...prefix, 'idempotencyKeyGenerationConfig'],\n state,\n );\n if (apiWideIdempotency && client.idempotencyKeyGeneration === undefined) {\n client.idempotencyKeyGeneration = apiWideIdempotency;\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(\n language,\n config,\n state,\n packageConfig,\n [...prefix, 'config'],\n index,\n );\n mapPublishMetadata(generator.publishMetadata, packageConfig);\n if (generator.keywords?.length) {\n generation.reservedKeywords = [...generator.keywords];\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 if (language === 'typescript') {\n const includeApiReference = takeBoolean(config, ['includeApiReference'], state, [\n ...prefix,\n 'config',\n ]);\n if (includeApiReference !== undefined) docs.includeApiReference = includeApiReference;\n }\n const unsupportedFields = [\n ...(state.valueDiagnostics ?? []),\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, apiWideIdempotency !== undefined),\n ];\n return {\n client,\n docs,\n generation,\n package: packageConfig,\n packageFallbacks: state.packageFallbacks ?? [],\n ...optional('cliDistribution', state.cliDistribution),\n targetGeneration,\n unsupportedFields,\n };\n}\n\nfunction unsupportedResolvedFields(\n generator: FernResolvedGeneratorInput,\n index: number,\n idempotencyMapped: boolean,\n): FernConfigMappingDiagnostic[] {\n const values: [string, unknown][] = [\n ['automation', isDefaultAutomation(generator.automation) ? undefined : generator.automation],\n ['containerImage', generator.containerImage],\n ['irVersionOverride', generator.irVersionOverride],\n [\n 'idempotencyKeyGenerationConfig',\n idempotencyMapped ? undefined : generator.idempotencyKeyGenerationConfig,\n ],\n ['absolutePathToLocalSnippets', generator.absolutePathToLocalSnippets],\n [\n 'disableExamples',\n generator.disableExamples === false ? undefined : generator.disableExamples,\n ],\n ['generateFullProject', generator.generateFullProject],\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 sdkConfigPath: ['client', 'idempotencyKeyGeneration'],\n suggestedAction:\n 'Use true, false, or an object with header-name and methods, or set client.idempotencyKeyGeneration manually.',\n };\n }\n if (field === 'generateFullProject') {\n return {\n suggestedAction:\n 'Preserve this packaging setting on the generation request; it is not customer-authored SDK configuration.',\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\nconst HTTP_METHODS = ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS'] as const;\n\n/**\n * Fern's `auto-generate-idempotency-key`, from generator config or the API-wide setting: `true` or\n * `false`, or an object customizing `header-name` and `methods`, which enables it. An object with\n * any key or value this cannot read maps to nothing, so the whole setting is reported rather than\n * silently enabled with defaults the customer did not choose.\n */\nfunction idempotencyKeyGenerationFrom(\n value: unknown,\n path: (string | number)[],\n state: MappingState,\n): NonNullable<SdkConfigV1ClientConfigInput['idempotencyKeyGeneration']> | undefined {\n if (typeof value === 'boolean') {\n consume(state, path);\n return { enabled: value };\n }\n if (!isObject(value)) return undefined;\n const probe: MappingState = { consumedPaths: new Set<string>() };\n const headerName = takeString(value, ['headerName'], probe, path);\n const methods = takeEnumArray(value, ['methods'], HTTP_METHODS, probe, path);\n if (probe.consumedPaths.size !== Object.keys(value).length) return undefined;\n consume(state, path);\n return { enabled: true, ...optional('headerName', headerName), ...optional('methods', methods) };\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 idempotency = locate(config, ['autoGenerateIdempotencyKey'], basePath);\n const idempotencyKeyGeneration =\n idempotency && idempotencyKeyGenerationFrom(idempotency.value, idempotency.path, state);\n if (idempotencyKeyGeneration) client.idempotencyKeyGeneration = idempotencyKeyGeneration;\n\n const userAgent = compact({\n template: takeString(config, ['userAgent'], state, basePath),\n includePlatformInfo: takeBoolean(config, ['includePlatformHeaders'], state, basePath),\n allowAppInfo: takeBoolean(config, ['allowUserAgentAppInfo'], state, basePath),\n });\n if (Object.keys(userAgent).length) client.userAgent = userAgent;\n\n const offsetSemantics = takeEnum(\n config,\n ['offsetSemantics'],\n ['item-index', 'page-index'],\n state,\n basePath,\n );\n if (offsetSemantics !== undefined) client.offsetSemantics = offsetSemantics;\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 pythonClient =\n language === 'python' ? takeObject(config, ['client'], state, basePath) : undefined;\n // TypeScript's real generator config nests all root-naming overrides under one `naming` object\n // (`naming.namespace`/`naming.client`/`naming.environment`, confirmed against Fern's published\n // TypeScript generator docs) instead of the flat `clientClassName`/`environmentClassName`-style\n // keys other languages use — `mcp` shares the same generator config shape as `typescript`.\n const typescriptNaming =\n language === 'typescript' || language === 'mcp'\n ? takeObject(config, ['naming'], state, basePath)\n : undefined;\n // Fern's Ruby generator ignores `clientClassName` (the root client is always `<Module>::Client`,\n // or `<Module>::<clientModuleName>`), so Ruby leaves it unconsumed and it is reported unsupported.\n const directClientName = takeString(\n config,\n language === 'ruby' ? ['clientName'] : ['clientName', 'clientClassName'],\n state,\n basePath,\n );\n const nestedClientName = pythonClient\n ? takeString(pythonClient.value, ['className'], state, pythonClient.path)\n : typescriptNaming\n ? takeString(typescriptNaming.value, ['client'], state, typescriptNaming.path)\n : language === 'ruby'\n ? // Fern's Ruby generator renames the root client class (`Auth0::Management`) with it.\n takeString(config, ['clientModuleName'], state, basePath)\n : undefined;\n const directExportedClientName = takeString(\n config,\n ['exportedClientName', 'exportedClientClassName'],\n state,\n basePath,\n );\n const nestedExportedClientName = pythonClient\n ? takeString(pythonClient.value, ['exportedClassName'], state, pythonClient.path)\n : typescriptNaming\n ? // TypeScript's `naming.namespace` is the base every other naming.* field defaults from\n // (Fern's docs: `client` defaults to `${PascalCase(namespace)}Client`, same for\n // `environment`/`error`/etc.) — the same role `exportedClientName` already plays for every\n // other language's `clientPrefix` derivation.\n takeString(typescriptNaming.value, ['namespace'], state, typescriptNaming.path)\n : undefined;\n const nestedEnvironmentTypeName = typescriptNaming\n ? takeString(typescriptNaming.value, ['environment'], state, typescriptNaming.path)\n : undefined;\n const naming = compact({\n pagerName: takeString(\n config,\n ['customPagerName', 'customPagerClassname', 'customPagerClassName'],\n state,\n basePath,\n ),\n clientName: directClientName ?? nestedClientName,\n exportedClientName: directExportedClientName ?? nestedExportedClientName,\n environmentTypeName:\n takeString(config, ['environmentClassName', 'environmentEnumName'], state, basePath) ??\n nestedEnvironmentTypeName,\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 // Only the TypeScript generator declares this key. Fern generates wire tests unless told not\n // to, so a lone fallback setting implies `enabled: true` (the same way `streams` below does).\n const wireTestsFallback =\n language === 'typescript'\n ? takeBoolean(config, ['wireTestsFallbackToAutoGeneratedErrorExamples'], state, basePath)\n : undefined;\n if (wireTests !== undefined || wireTestsFallback !== undefined) {\n generation.wireTests = { enabled: wireTests ?? true };\n if (wireTestsFallback !== undefined) {\n generation.wireTests.fallbackToGeneratedErrorExamples = wireTestsFallback;\n }\n }\n const webSockets = takeBoolean(\n config,\n ['generateWebSocketClients', 'shouldGenerateWebsocketClients', 'enableWebsockets'],\n state,\n basePath,\n );\n if (webSockets !== undefined) generation.webSockets = webSockets;\n\n // Deliberately TS-only, unlike the shared `naming` block above: streamType/fileResponseType\n // are real keys in Fern's TypeScript generator config, but mcp has no equivalent (confirmed by\n // the sibling \"does not map fileResponseType for fernapi/fern-mcp-server\" test).\n if (language === 'typescript') {\n const streams = mapTypescriptStreams(config, state, basePath);\n if (streams) generation.streams = streams;\n }\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 mapPeerDependenciesMeta(config, state, packageConfig, basePath);\n}\n\nfunction mapTypescriptStreams(\n config: JsonObject,\n state: MappingState,\n basePath: (string | number)[],\n): SdkConfigV1GenerationConfigInput['streams'] {\n const responseType = takeEnum(config, ['streamType'], ['wrapper', 'web'], state, basePath);\n const fileResponseType = takeEnum(\n config,\n ['fileResponseType'],\n ['stream', 'binary-response'],\n state,\n basePath,\n );\n if (responseType === undefined && fileResponseType === undefined) return undefined;\n return { enabled: true, ...compact({ responseType, fileResponseType }) };\n}\n\nfunction mapLanguageConfig(\n language: FernLanguage,\n config: JsonObject,\n state: MappingState,\n packageConfig: SdkConfigV1PackageConfig,\n basePath: (string | number)[],\n targetIndex: number,\n): JsonObject {\n switch (language) {\n case 'typescript':\n return mapTypescript(config, state, packageConfig, basePath, true);\n case 'mcp':\n return {\n ...mapTypescript(config, state, packageConfig, basePath, false),\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 mapSwift(config, state, basePath);\n case 'cli':\n return mapCli(config, state, packageConfig, basePath, targetIndex);\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 sdkTarget: boolean,\n): JsonObject {\n const packageJsonManifest = mapPackageManifest(\n config,\n ['packageJson'],\n state,\n packageConfig,\n basePath,\n );\n // mapPackageManifest doesn't lift packageManager, so read its version here.\n const packageJsonPackageManager = packageJsonManifest\n ? takeString(packageJsonManifest.value, ['packageManager'], state, packageJsonManifest.path)\n : undefined;\n // corepack allows an integrity suffix (`yarn@1.22.22+sha224.<hash>`) — strip it, and treat a\n // trailing bare `@` (empty version) as unset rather than an empty string. Split on the FIRST\n // `@` after a leading scope marker (not the last) — a scoped specifier like `@acme/pm@1.0.0`\n // would otherwise mis-parse under `lastIndexOf`.\n const packageManagerAtIndex = packageJsonPackageManager\n ? packageJsonPackageManager.indexOf('@', packageJsonPackageManager.startsWith('@') ? 1 : 0)\n : -1;\n const packageManagerVersionPart =\n packageManagerAtIndex >= 0\n ? packageJsonPackageManager?.slice(packageManagerAtIndex + 1).split('+')[0]\n : undefined;\n const packageManagerVersion = packageManagerVersionPart || undefined;\n // Must run after `mapCommonConfig` (which reads the `extra*` options): the `packageJson` entries\n // replace same-named ones, and running first would let the `extra*` options overwrite them.\n if (packageJsonManifest) liftPackageJsonDependencies(packageJsonManifest, state, packageConfig);\n const manifestOptions =\n sdkTarget && packageJsonManifest\n ? mapPackageManifestOptions(packageJsonManifest, state, packageConfig)\n : {};\n const serdeLayer = takeBoolean(config, ['serdeLayer'], state, basePath);\n const noSerdeLayer = takeBoolean(config, ['noSerdeLayer'], state, basePath);\n const fetchSupport = takeEnum(\n config,\n ['fetchSupport'],\n sdkTarget ? ['native', 'node-fetch'] : ['native'],\n state,\n basePath,\n );\n // `naming.namespace` is read again here (mapCommonConfig already reads it for the shared\n // `generation.naming.exportedClientName`) — this is the TypeScript-specific namespace EXPORT\n // name itself (`export * as X`), a separate field from the shared naming block. Re-reading the\n // same path is harmless: `takeString`/`takeObject` just mark it consumed again.\n const namingObject = takeObject(config, ['naming'], state, basePath);\n const nestedNamespace = namingObject\n ? takeString(namingObject.value, ['namespace'], state, namingObject.path)\n : undefined;\n // The MCP generator keeps the TypeScript options its converter already shared; the options in\n // `sdkOnlyOptions` are only read for the TypeScript SDK, so an MCP config still reports them.\n const sdkOnlyOptions = sdkTarget\n ? {\n formDataSupport: takeEnum(\n config,\n ['formDataSupport'],\n ['Node16', 'Node18'],\n state,\n basePath,\n ),\n allowExtraFields: takeBoolean(config, ['allowExtraFields'], state, basePath),\n generateSubpackageExports: takeBoolean(\n config,\n ['generateSubpackageExports'],\n state,\n basePath,\n ),\n exportAllRequestsAtRoot: takeBoolean(config, ['exportAllRequestsAtRoot'], state, basePath),\n generateEndpointMetadata: takeBoolean(\n config,\n ['generateEndpointMetadata'],\n state,\n basePath,\n ),\n outputEsm: takeBoolean(config, ['outputEsm'], state, basePath),\n neverThrowErrors: takeBoolean(config, ['neverThrowErrors'], state, basePath),\n includeOtherInUnionTypes: takeBoolean(\n config,\n ['includeOtherInUnionTypes'],\n state,\n basePath,\n ),\n includeUtilsOnUnionMembers: takeBoolean(\n config,\n ['includeUtilsOnUnionMembers'],\n state,\n basePath,\n ),\n omitFernHeaders: takeBoolean(config, ['omitFernHeaders'], state, basePath),\n linter: takeEnum(config, ['linter'], ['biome', 'oxlint', 'none'], state, basePath),\n formatter: takeEnum(\n config,\n ['formatter'],\n ['prettier', 'biome', 'oxfmt', 'none'],\n state,\n basePath,\n ),\n }\n : {};\n return compact({\n ...sdkOnlyOptions,\n // Only the manifest writes these keys; nothing in sdkOnlyOptions or below shares a name.\n ...manifestOptions,\n typescriptVersion: takeString(config, ['typescriptVersion'], state, basePath),\n zodVersion: takeString(config, ['zodVersion'], state, basePath),\n packageManager: takeEnum(config, ['packageManager'], ['pnpm', 'yarn'], state, basePath),\n packageManagerVersion,\n testFramework: takeEnum(config, ['testFramework'], ['jest', 'vitest'], state, basePath),\n httpClient:\n fetchSupport === undefined\n ? undefined\n : { name: fetchSupport === 'native' ? 'fetch' : 'node-fetch' },\n bundle: takeBoolean(config, ['bundle'], state, basePath),\n exportClassDefault: takeBoolean(config, ['exportClassDefault'], state, basePath),\n namespaceExportName:\n takeString(config, ['namespaceExportName', 'namespaceExport'], state, basePath) ??\n nestedNamespace,\n consolidateTypeFiles: takeBoolean(config, ['consolidateTypeFiles'], state, basePath),\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 esmOnly: takeBoolean(config, ['esmOnly'], state, basePath),\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 const client = takeObject(config, ['client'], state, basePath);\n const directFileName = takeString(config, ['clientFilename'], state, basePath);\n const nestedFileName = client\n ? takeString(client.value, ['filename'], state, client.path)\n : undefined;\n const exportedFileName = client\n ? takeString(client.value, ['exportedFilename'], state, client.path)\n : undefined;\n return compact({\n pythonVersion: takeString(config, ['pythonVersion', 'pyprojectPythonVersion'], state, basePath),\n pydanticVersion: takeString(config, ['pydanticVersion'], state, basePath),\n ...optionalObject(\n 'client',\n compact({ fileName: directFileName ?? nestedFileName, exportedFileName }),\n ),\n followRedirectsByDefault: takeBoolean(config, ['followRedirectsByDefault'], state, basePath),\n defaultBytesStreamChunkSize: takeNumber(\n config,\n ['defaultBytesStreamChunkSize'],\n state,\n basePath,\n 1,\n ),\n recursionLimit: takeNumber(config, ['recursionLimit'], state, basePath, 1_001),\n extras: takeStringArrayRecord(config, ['extras'], 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 // fern-java-sdk reads only `package-prefix`; it ignores `packageName`.\n const namespaceAliases =\n language === 'java' ? ['packagePrefix'] : ['packageName', 'packagePrefix'];\n const namespace = takeString(config, namespaceAliases, 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 manifest = mapPackageManifest(config, ['composerJson'], state, packageConfig, basePath);\n if (manifest) mapComposerRequirements(manifest, state, packageConfig);\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 mapComposerRequirements(\n manifest: LocatedObject,\n state: MappingState,\n packageConfig: SdkConfigV1PackageConfig,\n): void {\n const fields = [\n ['require', 'extraDependencies'],\n ['require-dev', 'extraDevDependencies'],\n ] as const;\n for (const [composerField, packageField] of fields) {\n const located = takeObject(manifest.value, [composerField], state, manifest.path);\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[packageField] = dependencies;\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 // Fern names the gem from `config.package-name` when the output sets none; an output\n // `package-name` still wins, because the target package spreads the output package last.\n const packageName = takeString(config, ['package-name'], state, basePath);\n if (packageName !== undefined) packageConfig.packageName = packageName;\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 mapLicenseFallback(config, ['packageLicense'], state, basePath);\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 mapSwift(\n config: JsonObject,\n state: MappingState,\n basePath: (string | number)[],\n): JsonObject {\n return compact({\n moduleName: takeString(config, ['moduleName'], state, basePath),\n nullableAsOptional: takeBoolean(config, ['nullableAsOptional'], state, basePath),\n });\n}\n\nfunction mapCli(\n config: JsonObject,\n state: MappingState,\n packageConfig: SdkConfigV1PackageConfig,\n basePath: (string | number)[],\n targetIndex: 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 mapCliPackageIdentity(identity, state, targetIndex);\n }\n mapCliDistribution(config, state, basePath, targetIndex);\n return compact({\n paginationParameters: takeStringArray(config, ['paginationParameters'], state, basePath),\n skills: takeBoolean(config, ['skills'], state, basePath),\n ...mapCliGeneration(config, state, basePath, targetIndex),\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\n/**\n * Fern merges the `packageJson` option over the generated and `extra*` dependencies, one key at a\n * time, so a name it lists wins and the rest stay. The extra lists are where this contract already\n * keeps those maps, so its entries go in last and replace a same-named one in place.\n */\nfunction liftPackageJsonDependencies(\n manifest: LocatedObject,\n state: MappingState,\n packageConfig: SdkConfigV1PackageConfig,\n): void {\n for (const [field, target] of [\n ['dependencies', 'extraDependencies'],\n ['devDependencies', 'extraDevDependencies'],\n ['peerDependencies', 'extraPeerDependencies'],\n ] as const) {\n const located = takeObject(manifest.value, [field], state, manifest.path);\n if (!located) continue;\n const lifted = Object.entries(located.value).flatMap(([name, dependency]) =>\n mapDependency(name, dependency, state, [...located.path, name]),\n );\n if (lifted.length) packageConfig[target] = overrideByName(packageConfig[target] ?? [], lifted);\n }\n const meta = takeObject(manifest.value, ['peerDependenciesMeta'], state, manifest.path);\n if (!meta) return;\n const entries = peerDependenciesMetaEntries(meta, state);\n if (entries.length) {\n packageConfig.extraPeerDependenciesMeta = {\n ...packageConfig.extraPeerDependenciesMeta,\n ...Object.fromEntries(entries),\n };\n }\n}\n\nfunction overrideByName(\n existing: SdkConfigV1Dependency[],\n overrides: SdkConfigV1Dependency[],\n): SdkConfigV1Dependency[] {\n const byName = new Map(existing.map((dependency) => [dependency.name, dependency]));\n overrides.forEach((dependency) => byName.set(dependency.name, dependency));\n return [...byName.values()];\n}\n\nfunction mapPeerDependenciesMeta(\n config: JsonObject,\n state: MappingState,\n packageConfig: SdkConfigV1PackageConfig,\n basePath: (string | number)[],\n): void {\n const located = takeObject(config, ['extraPeerDependenciesMeta'], state, basePath);\n if (!located) return;\n const entries = peerDependenciesMetaEntries(located, state);\n if (entries.length) packageConfig.extraPeerDependenciesMeta = Object.fromEntries(entries);\n}\n\ntype PeerDependencyMeta = NonNullable<\n SdkConfigV1PackageConfig['extraPeerDependenciesMeta']\n>[string];\n\n/** An entry that is not an object stays unconsumed, so it is reported as unsupported. */\nfunction peerDependenciesMetaEntries(\n located: LocatedObject,\n state: MappingState,\n): (readonly [string, PeerDependencyMeta])[] {\n return Object.entries(located.value).flatMap(([name, value]) => {\n const parsed = jsonObjectSchema.safeParse(value);\n if (!parsed.success) return [];\n consume(state, [...located.path, name]);\n return [[name, parsed.data] as const];\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 source = takeDependencySource(value, state, path);\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\n/** Cargo pins a Git dependency with `rev` or `branch`; only one of `git`, `path`, `registry` applies. */\nfunction takeDependencySource(\n value: JsonObject,\n state: MappingState,\n path: (string | number)[],\n): SdkConfigV1Dependency['source'] {\n const gitUrl = takeString(value, ['git'], state, path);\n if (gitUrl) {\n const ref = takeString(value, ['ref', 'rev', 'branch'], state, path);\n return { type: 'git', url: gitUrl, ...optional('ref', ref) };\n }\n const localPath = takeString(value, ['path'], state, path);\n if (localPath) return { type: 'path', path: localPath };\n const registry = takeString(value, ['registry'], state, path);\n return registry ? { type: 'registry', registry } : undefined;\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): LocatedObject | undefined {\n const manifest = takeObject(config, aliases, state, basePath);\n if (!manifest) return undefined;\n const packageName = takeString(manifest.value, ['name'], state, manifest.path);\n const description = takeString(manifest.value, ['description'], state, manifest.path);\n const keywords = takeStringArray(manifest.value, ['keywords'], 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 : []),\n ...takeManifestAuthors(manifest, state),\n ];\n Object.assign(\n packageConfig,\n compact({\n packageName,\n description,\n homepage: takeString(manifest.value, ['homepage'], state, manifest.path),\n keywords,\n authors: authors.length ? authors : undefined,\n license: license ? { type: license } : undefined,\n }),\n );\n return manifest;\n}\n\n/**\n * Lifts the package.json keys that have a typed home. `bugs` and `repository` go to the package\n * block; the rest become TypeScript generation options. Values that do not have the declared shape\n * stay unconsumed, so they are reported as unsupported.\n */\nfunction mapPackageManifestOptions(\n manifest: LocatedObject,\n state: MappingState,\n packageConfig: SdkConfigV1PackageConfig,\n) {\n const bugs = takeManifestBugs(manifest, state);\n if (bugs) packageConfig.bugs = bugs;\n const repository = takeManifestRepository(manifest, state);\n if (repository !== undefined && packageConfig.repository === undefined) {\n packageConfig.repository = repository;\n }\n const exports = takeObject(manifest.value, ['exports'], state, manifest.path);\n if (exports) consume(state, exports.path);\n return compact({\n exports: exports?.value,\n scripts: takeManifestScripts(manifest, state),\n files: takeStringArray(manifest.value, ['files'], state, manifest.path),\n engines: takeManifestStringRecord(manifest, 'engines', state),\n lintStaged: takeManifestLintStaged(manifest, state),\n browser: takeManifestBrowser(manifest, state),\n });\n}\n\nfunction takeManifestBugs(manifest: LocatedObject, state: MappingState) {\n const text = takeString(manifest.value, ['bugs'], state, manifest.path);\n if (text !== undefined) return { url: text };\n const located = takeObject(manifest.value, ['bugs'], state, manifest.path);\n if (!located) return undefined;\n const url = takeString(located.value, ['url'], state, located.path);\n const email = takeString(located.value, ['email'], state, located.path);\n return url === undefined && email === undefined ? undefined : compact({ url, email });\n}\n\nfunction takeManifestRepository(manifest: LocatedObject, state: MappingState) {\n const text = takeString(manifest.value, ['repository'], state, manifest.path);\n if (text !== undefined) return text;\n const located = takeObject(manifest.value, ['repository'], state, manifest.path);\n if (!located) return undefined;\n const url = takeString(located.value, ['url'], state, located.path);\n // Consume a recognized `git` type so it is not reported; any other type stays reported.\n if (url !== undefined) void takeEnum(located.value, ['type'], ['git'], state, located.path);\n return url;\n}\n\nfunction takeManifestScripts(manifest: LocatedObject, state: MappingState) {\n const located = takeObject(manifest.value, ['scripts'], state, manifest.path);\n if (!located) return undefined;\n const scripts = Object.entries(located.value).flatMap(([name, command]) => {\n if (typeof command !== 'string' || !command) return [];\n consume(state, [...located.path, name]);\n return [{ name, command }];\n });\n return scripts.length ? scripts : undefined;\n}\n\nfunction takeManifestStringRecord(manifest: LocatedObject, key: string, state: MappingState) {\n const located = takeObject(manifest.value, [key], state, manifest.path);\n if (!located) return undefined;\n const entries = Object.entries(located.value).flatMap(([name, value]) => {\n if (typeof value !== 'string' || !value) return [];\n consume(state, [...located.path, name]);\n return [[name, value] as const];\n });\n return entries.length ? Object.fromEntries(entries) : undefined;\n}\n\nfunction takeManifestLintStaged(manifest: LocatedObject, state: MappingState) {\n const located = takeObject(manifest.value, ['lint-staged'], state, manifest.path);\n if (!located) return undefined;\n const entries = Object.entries(located.value).flatMap(([glob, commands]) => {\n const list = typeof commands === 'string' ? [commands] : stringArrayValue(commands);\n if (!list?.length || list.some((command) => !command)) return [];\n consume(state, [...located.path, glob]);\n return [[glob, list] as const];\n });\n return entries.length ? Object.fromEntries(entries) : undefined;\n}\n\nfunction takeManifestBrowser(manifest: LocatedObject, state: MappingState) {\n const located = takeObject(manifest.value, ['browser'], state, manifest.path);\n if (!located) return undefined;\n const entries = Object.entries(located.value).flatMap(([name, value]) => {\n if (typeof value !== 'boolean' && (typeof value !== 'string' || !value)) return [];\n consume(state, [...located.path, name]);\n return [[name, value] as const];\n });\n return entries.length ? Object.fromEntries(entries) : undefined;\n}\n\nfunction takeManifestAuthors(manifest: LocatedObject, state: MappingState) {\n const located = locate(manifest.value, ['authors'], manifest.path);\n if (!located || !Array.isArray(located.value)) return [];\n return located.value.flatMap((entry, index) => {\n if (!isObject(entry)) return [];\n const path = [...located.path, index];\n const name = takeString(entry, ['name'], state, path);\n if (!name) return [];\n return [\n compact({\n name,\n email: takeString(entry, ['email'], state, path),\n url: takeString(entry, ['url'], state, path),\n }),\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"]}