3.20.0
(fix): Update vulnerable dependencies.
3.19.0
(feat): Add wire test support for OAuth APIs and multi-URL environments. Wire tests now:
- Properly mock OAuth token endpoints with per-test token enqueuing
- Use
.clientId()/.clientSecret()for OAuth-authenticated APIs - Support custom OAuth headers (e.g.,
apiKey) required by token endpoints - Configure
Environment.custom()builder for multi-URL environment APIs - Handle flexible JSON comparison allowing extra default fields in responses
3.18.13
(fix): Skip wire test generation for OAuth and multi-URL environment APIs temporarily.
3.18.12
(fix): Fix Java dynamic snippets for query parameters with allow-multiple: true and optional types. Snippets now generate List<T> instead of List<Optional<T>>, which matches the SDK builder’s convenience overload.
3.18.11
(fix): Fix dynamic snippets to preserve schema parameter order for staged builders.
3.18.10
(fix): Fix Java dynamic snippets when use-local-date-for-dates is enabled. Snippets for date fields now generate LocalDate.parse(…) instead of string literals, matching SDKs configured to use LocalDate for dates. This fixes compilation errors in generated dynamic snippets for Java v2 when the use-local-date-for-dates flag is true.
3.18.9
(fix): Fix wire test generation to use OptionalNullable when collapse-optional-nullable is enabled. Wire tests now correctly generate OptionalNullable.absent() and OptionalNullable.of() instead of Optional.empty() and Optional.of() for optional request bodies and method arguments when collapse-optional-nullable: true is configured. This includes support for nested optional/nullable types which collapse into a single OptionalNullable<T>.
3.18.8
(fix): Skip InputStream overload generation for file upload endpoints with inline path parameters. This prevents compilation errors where InputStream methods would reference non-existent request parameters when path parameters are inlined.
3.18.7
(fix): Skip InputStream overload generation for file upload endpoints with query parameters. This prevents compilation errors where InputStream methods would reference non-existent request parameters when accessing query parameters.
3.18.6
(fix): Fix compilation errors in raw clients when inlinePathParameters is enabled. Raw client methods now correctly use path parameters directly instead of attempting to access non-existent request objects.
3.18.5
(fix): Remove using generator-cli to push to GitHub for self-hosted SDKs; this is now handled in the local workspace runner.
3.18.4
(fix): Fix missing @JsonInclude header on certain instances of OptionalNullable<>.
3.18.3
(fix): Fix OptionalNullable compilation errors when collapse-optional-nullable is enabled. Corrected type witness syntax to generate OptionalNullable.<Type>absent() and prevented double-wrapping of OptionalNullable types.
3.18.2
(fix): Fix bugs in 3.17.0’s addition of InputStream-based method overloads.
3.18.1
(fix): Fix bytes response support and snippet generation. Bytes responses now return byte[] instead of throwing exceptions. Empty bytes request bodies in snippets now generate valid default arguments.
3.18.0
(feat): Add support for custom bidirectional pagination. APIs using custom pagination (e.g., HATEOAS links) can configure a custom pager name and receive skeleton classes with bidirectional navigation methods (nextPage(), previousPage(), hasNext(), hasPrevious()).
Configuration:
3.17.1
(chore): Bump generator CLI version to publish new Docker image.
3.17.0
(feat): Add InputStream-based method overloads for file upload endpoints. For each single-file upload endpoint, the generator now creates 4 additional overloads that accept InputStream + filename instead of File objects:
- method(InputStream stream, String filename)
- method(InputStream stream, String filename, MediaType mediaType)
- method(InputStream stream, String filename, RequestOptions requestOptions)
- method(InputStream stream, String filename, MediaType mediaType, RequestOptions requestOptions)
This enables streaming file uploads without requiring files to be written to disk first. The implementation uses the existing FileStream wrapper class and InputStreamRequestBody for OkHttp integration. Note: Okio automatically closes the stream after upload, but users should still use try-with-resources for proper resource management.
3.16.1
(fix): Fix OAuth client credentials token supplier to support custom properties and headers. OAuth token endpoints can now include custom headers (e.g., x-api-key) and custom body properties (e.g., entity_id) in addition to standard OAuth fields (client_id, client_secret, scopes). This enables authentication with non-standard OAuth implementations that require additional parameters.
3.16.0
(feat): Add opt-in use-local-date-for-dates config flag to generate java.time.LocalDate instead of String for Fern date types.
3.15.1
(fix): Fix SDK generation failures for endpoints with custom pagination. Endpoints using x-fern-pagination: type: custom now generate successfully, returning the raw response type without automatic pagination wrappers.