3.43.1

(fix): Fix bug where ts-morph would generate incorrect code when Accept: */* header would be defined as a parameter in OpenAPI. The old generated code would generate broken JSDoc comments with invalid syntax.

(chore): Optimize generated SDK code by eliminating unnecessary .toString() calls on primitive types in headers and query parameters. The generator now only stringifies types that require it (dates/datetimes) while using primitives like strings, numbers, booleans, and UUIDs directly.

(fix): Add createNumericLiteralSafe utility to properly handle negative numbers in generated code examples, ensuring compatibility with newer TypeScript/ts-morph versions that require prefix unary expressions.

(fix): Add support for nullable types in query parameter type resolution, properly unwrapping both optional and nullable containers when determining primitive and object types.

(chore): Simplify header and query parameter types from verbose union types to Record<string, unknown> for more flexible and less complex type signatures in generated SDKs.


3.43.0

(feat): Add support for endpoint-level security configuration via new endpoint-security auth requirement type. This allows APIs to specify different authentication schemes per endpoint, enabling fine-grained control over which endpoints accept which auth methods (e.g., some endpoints use Bearer, others use API Key).

(feat): Add RoutingAuthProvider that dynamically routes authentication requests based on endpoint metadata. When auth: endpoint-security is configured, the SDK uses endpoint metadata to determine which auth provider to use for each request. AnyAuthProvider remains the default for auth: any configurations.

(chore): Refactor all auth providers to use factory pattern with static createInstance methods. This enables type-safe provider instantiation, conditional provider creation based on available credentials, and better error messages with scheme-specific context.

(feat): Add conditional wrapper properties for auth options to prevent naming conflicts when multiple auth schemes are configured (e.g., options.bearer.token vs options.oauth.token).

(chore): Make endpointMetadata parameter optional in EndpointSupplier.get() to allow auth providers to handle endpoints without metadata gracefully while maintaining backward compatibility.


3.42.8

(fix): Fix wire test generation for paginated endpoints. The test generator now correctly uses wire format (snake_case) when checking JSON examples for pagination results, and properly handles examples with null or missing cursor fields by skipping hasNextPage() assertions.

3.42.7

(chore): Add sdkVersion as a top-level field in the generated metadata.json file.


3.42.6

(fix): Fix wire test generation for OAuth endpoints with reference request bodies.

3.42.5

(fix): Add fallback OAuth credentials for wire tests when examples don’t include explicit auth values.


3.42.4

(fix): Fix bug where request wrapper was set as body when the body property inside the request wrapper should’ve been used. This only affects a specific combination of feature flags:

  • inline-path-parameters: true on the API spec settings
  • inlinePathParameters: false on the generator config

3.42.3

(fix): Fix wire test generation: filter out headers with null/undefined values to prevent invalid assertions, and allow empty form body in mock server when expected body is empty.

3.42.2

(fix): Fix property access for file upload request parameters with hyphenated or special character names by using bracket notation instead of dot notation.

3.42.1

(fix): Fix OAuth token handling for optional expires_in field with default fallback.

3.42.0

(feat): Add normalized client options and request options as a parameter to custom pagination. This allows SDK authors to access the client options (including auth provider) when implementing custom pagination logic.



3.40.0

(feat): Run npm pkg fix after saving package.json to disk to normalize the package.json file. This is enabled by default and can be disabled by setting skipNpmPkgFix: true in the generator config.

3.39.3

(fix): Fix missing information in generated package.json.


3.39.2

(fix): Fix reference.md generation for APIs with multiple root-level endpoints. Previously, only the last root endpoint appeared in the reference documentation because addRootSection() was called inside the endpoint loop, replacing the root section each time. The fix moves section creation before the endpoint loop, ensuring all root endpoints are included and removing the empty ## section header that was being generated.

3.39.1

(fix): Fix wire tests for paginated endpoints to expect an empty array [] instead of undefined when response.data is not present. This aligns with the paginator’s behavior which uses ?? [] to return an empty array when the data property is undefined.


3.39.0

(feat): Add support for custom pagination with a dedicated CustomPager class, similar to the C# SDK generator. The CustomPager class provides:

  • A CustomPagerParser callback type that SDK authors implement to define pagination logic
  • Support for both forward (getNextPage) and backward (getPreviousPage) pagination
  • AsyncIterable implementation for ergonomic consumption with for await...of
  • Access to raw response data via response and rawResponse properties

The generated endpoint returns a CustomPager with a default parser that extracts items from the configured results property and sets hasNextPage/hasPreviousPage to false. SDK authors who need custom pagination logic can create their own wrapper/factory that calls CustomPager.create() with their own CustomPagerParser implementation.

3.38.3

(chore): Sort imports and exports in generated TypeScript SDK files for consistent, deterministic output. This eliminates the need to rely on formatters like prettier, biome, or oxfmt to order imports and exports.

3.38.2

(chore): Pre format and lint as is files and core utilities.

3.38.1

(fix): hasNextPage employs the default for the step attribute on offset-based pagination endpoints if it’s set.

3.38.0

(feat): The oauthTokenOverride feature flag has been removed and is now always enabled. OAuth token override allows users to skip the OAuth flow by providing a pre-generated bearer token directly. This feature is now the default behavior and no longer requires configuration.


3.37.4

(chore): The README now demonstrates how to pass custom headers to both the client constructor and individual endpoint invocations.

3.37.3

(chore): Update generator-cli to 0.5.0.

3.37.2

(chore): Update oxfmt to 0.17.0, oxlint to 1.32.0, and oxlint-tsgolint to 0.8.4.

3.37.1

(fix): Fixed a possible type issue in Fetcher.test.ts.