0.35.4
(chore): Bump generator container Node.js base image to node:22.22-alpine3.23 and
apply latest Alpine package security updates at build time.
0.35.3
(fix): Fix Swift wire-test runtime equality failures when a response body contains
a map (Dictionary<String, T>) whose value is an explicit-null nullable, or
an Optional<Nullable<T>> field whose example is explicit-null. Previously
the generator embedded the IR’s jsonExample for the response body, which
silently dropped keys whose value resolved to JS undefined (e.g. an
unresolved nullable<T>), and the expected-struct generator filtered
optional properties using the same jsonExample === undefined check, which
matched both “truly absent” and “explicit-null nullable” examples. The wire-
test JSON body is now built by walking the typed example shape directly,
and the expected-struct generator skips a property only when the typed
optional container is genuinely empty — so an explicit-null nullable
inside an optional now renders as Optional(.null) in both the embedded
JSON body and the expected struct.
0.35.2
(chore): Update the Swift SDK generator container base image from
node:22.12-alpine3.20 to node:22.22-alpine3.22 to address 92
container vulnerabilities (3 Critical, 48 High, 30 Medium, 11 Low)
reported by Grype. The bump pulls in newer Alpine packages
(libcrypto3/libssl3, musl, busybox, zlib), Node.js 22.22.x, and the
bundled npm transitive dependencies (cross-spawn, minimatch, glob,
tar, brace-expansion, ip-address, diff).
0.35.1
(fix): Apply canonical “all user-specified examples, else first autogenerated” selection
in the Swift SDK snippet output path. README examples now use the user-specified
example value (when one exists) instead of the autogenerated placeholder, matching
TS-v1 / Python-v1 behavior.
0.35.0
(feat): Generate CONTRIBUTING.md for Swift SDKs.
0.34.2
(fix): Emit wire-test response bodies as Swift raw multi-line string literals
(#"""..."""#) so that JSON escape sequences such as \n survive
verbatim into the runtime String and reach JSONDecoder as valid
JSON. The previous regular triple-quoted literal caused Swift to
unescape \n into real newline characters at runtime, which
produced invalid JSON (RFC 8259 disallows raw control characters
inside JSON string values) and made JSONDecoder reject the body
with dataCorrupted("The given data was not valid JSON.").
0.34.1
(fix): Properly escape control characters, real newlines, real backslashes, and
real double quotes when emitting Swift string literals that wrap raw user
data (example values, dynamic snippet inputs, JSON wire test fixtures).
Previously, an example value containing a real newline (e.g. a multi-line
iCalendar string) caused the generated SDK to fail Swift compilation with
error: unterminated string literal.
0.34.0
(feat): Add retryStatusCodes configuration option ("legacy" | "recommended").
Legacy (default) preserves existing behavior (408, 429, >= 500).
Recommended retries only transient codes (408, 429, 502, 503, 504), excluding
500 Internal Server Error to avoid retrying non-idempotent failures.
0.33.1
(fix): Fix dynamic snippet generation for endpoints whose body $refs a top-level
schema. The snippet now passes the referenced type directly instead of
wrapping it in a non-existent .init(body:) on the request wrapper struct.
0.33.0
(feat): Show explicit auth parameters in README snippets (errors, custom networking,
environments sections) instead of eliding with (...). Uses IR placeholder
fields when configured, with sensible defaults.
0.32.2
(chore): Bump @fern-api/generator-cli to 0.9.11. The GitHub pipeline step now creates
signed commits via the GitHub REST API (matching fiddle’s legacy InMemoryGitRepo
push path), restoring verified fern-api[bot] commits on replay-enabled orgs.
0.32.1
(chore): Add crash reporting via Sentry to the generator runtime, and classify
thrown errors using the new shared GeneratorError taxonomy so user-facing
failures (config, validation, auth, network, environment) are kept distinct
from internal Fern bugs — only the latter are forwarded to Sentry. No
change to generated output.
0.32.0
(chore): Bump @fern-api/generator-cli to 0.9.8. Changelog URLs in generated PRs
now use the commit SHA instead of the PR branch name, keeping the link
valid after the branch is deleted or squash-merged.