2.3.1
(chore): Migrate template engine from lodash to Eta for consistency with other generators.
2.3.0
(feat): Add maxRetries custom config option to override the default maximum
number of retries for failed requests. The default remains 2 when not
specified.
2.3.2-rc.0
(feat): Upgrade to IR v66 which compresses the IR Name type, reducing IR size and increasing performance.
2.2.6
(fix): Support multiple Basic Auth schemes with AuthSchemesRequirement.Any.
When an API defines more than one basic auth scheme (e.g.,
accountId/authToken and apiKey/apiKeySecret), the generated client now
produces conditional if/else if blocks that check which credential pair
was provided and sets the Authorization header accordingly. Previously,
only the first basic auth scheme was used.
2.2.5
(fix): Wire Basic Auth credentials into the Authorization header. Previously,
the generated client accepted username/password constructor parameters
but never set the Authorization: Basic <base64> header on outgoing
requests. The constructor now encodes the credentials and adds the
header automatically.
2.2.4
(fix): Thread endpoint ID through dynamic snippet generator to differentiate
generated snippets by endpoint.
2.2.3
(fix): Fix 204 No Content handling for endpoints with a JSON response type.
Previously, endpoints returning an empty body (e.g. 204) would throw a
BrevoException even on a successful response. Now all JSON response
return types are nullable (?Type) and the generated code returns null
instead of throwing when the response body is empty.
2.2.2
(fix): Fix JSON deserialization error when API returns an empty response body for
endpoints with a declared JSON response type. Previously, a JsonException: Syntax error was thrown because the SDK attempted to JSON-decode an empty
string. Now the generated code checks for an empty response body before
attempting deserialization and returns null gracefully.
2.2.1
(fix): Fix Wire test files to read WIREMOCK_URL environment variable instead of
hardcoding http://localhost:8080. The setUp() method now declares a
$wiremockUrl variable that reads from the environment with a fallback,
enabling tests to work with dynamically assigned Docker ports in local
development and CI/CD environments.
2.2.0
(feat): Add omitFernHeaders configuration option. When enabled, Fern platform headers
(X-Fern-Language, X-Fern-SDK-Name, X-Fern-SDK-Version, User-Agent) are omitted
from generated SDK requests.
2.1.12
(fix): Fix WireMock datetime mismatch in wire tests. The mock-utils package generates datetime
query parameter values with milliseconds (e.g., 2022-01-02T00:00:00.000Z) via
Date.toISOString(), but PHP’s DateTimeInterface::RFC3339 format omits fractional
seconds (e.g., 2022-01-02T00:00:00Z). Since WireMock’s equalTo is an exact-match,
the stubs never fired. Now strips zero milliseconds from WireMock datetime query
parameter values to match the PHP SDK’s serialization format.
2.1.11
(chore): Add concurrency configuration to generated CI workflow with cancel-in-progress: false
to prevent stacked runs from being cancelled when a newer run starts.
2.1.10
(fix): Fix serialization and deserialization of boolean values in union types.
(Matches existing fix for floats.)
2.1.9
(fix): Re-throw errors after logging for README.md and reference.md generation failures.
Documentation generation errors now break the generation flow so they are treated
as important to fix.
2.1.8
(fix): Fix dynamic snippets to include global headers in generated code examples.
Previously, required global headers (e.g., X-Organization-ID) configured via
x-fern-global-headers were missing from dynamic snippet output. Also fixes
header value lookup to use wire values instead of a non-existent property.