3.79.0
(feat): Add a defaultTimeout custom config option, expressed in milliseconds, which is idiomatic for
JavaScript/TypeScript (setTimeout, AbortSignal.timeout(ms)). Use "infinity" to disable the
timeout. The seconds-based defaultTimeoutInSeconds and timeoutInSeconds keys are now
deprecated but continue to work: their values are converted to milliseconds (× 1000). Precedence
is defaultTimeout > defaultTimeoutInSeconds > timeoutInSeconds. Generated SDK output is
unchanged for existing configs.
3.78.2
(fix): Fix a regression where | undefined was dropped from the value type of generated
Record types backed by optional map values (e.g. optional additionalProperties).
Optional map values now correctly generate Record<string, T | undefined> with
serialization record(string(), T.optional()), while unknown/any map values
keep the redundant | undefined stripped (Record<string, unknown>).
3.78.1
(fix): Fix TypeError: Cannot use 'in' operator to search for 'path' in undefined
crash when null or undefined is passed to a file upload parameter at
runtime. The error is now a clear TypeError describing the expected types
instead of a cryptic in operator failure.
3.78.0
(feat): Add an additionalBodyParameters request option that spreads additional parameters into an
endpoint’s JSON request body. Caller-supplied properties override matching keys in the endpoint
body, matching the behavior of the Python, Swift, and Ruby SDKs. Omitting the option leaves the
request body unchanged and never fabricates a body for bodyless requests.
3.77.3
(fix): Revert the automatic renaming of inlined path parameters that collide with request
body properties (introduced in 3.77.1). These collisions are now rejected at the CLI
level: fern check errors and asks the user to deconflict the names (e.g. via
x-fern-parameter-name).