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
CustomPagerParsercallback type that SDK authors implement to define pagination logic - Support for both forward (
getNextPage) and backward (getPreviousPage) pagination AsyncIterableimplementation for ergonomic consumption withfor await...of- Access to raw response data via
responseandrawResponseproperties
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.
3.36.0
(feat): Refactor auth options to be defined in individual AuthProvider classes instead of directly in BaseClientOptions.
BaseClientOptions is now a type alias that intersects with the auth provider’s AuthOptions interface.
This improves code organization and makes auth options more discoverable.
3.37.0
(feat): Add support for OAuth token override, allowing users to skip the OAuth flow by providing a pre-generated bearer token directly.
This is useful when users already have a valid token and don’t need to go through the OAuth client credentials flow.
To enable this feature, add the oauthTokenOverride configuration to your generators.yml file:
Users can then instantiate the client with either OAuth credentials or a pre-generated token:
3.35.9
(fix): Fix generated error classes to correctly set the prototype chain, capture stack traces, and set the error name so instanceof checks behave as expected.
Error classes now use new.target.prototype instead of the static class name for Object.setPrototypeOf,
conditionally call Error.captureStackTrace for V8 environments, and set this.name dynamically.
3.35.8
(chore): Added writeUnitTests config option to control unit test generation. Both writeUnitTests and generateWireTests now default to true and operate independently.
3.35.7
(fix): Wire tests are now controlled entirely by the generateWireTests custom config option,
no longer falling back to the CLI’s writeUnitTests flag.
3.35.6
(chore): Remove noisy IR services log from inferred auth provider generation.
3.35.5
(fix): Fix WebSocket client to only generate auth code when the channel has auth: true.
Previously, auth code was generated whenever the API had auth schemes defined, even if the WebSocket channel didn’t require auth.
This caused a mismatch where the client used NormalizedClientOptions but the connect method tried to access authProvider.
3.35.4
(fix): Centralize non-status code error handling to a single reusable function in the generated SDK.
This will reduce the amount of duplicated code and make it easier to maintain consistent error handling across all endpoints.
3.35.3
(fix): Fix WebSocket client ConnectArgs interface to correctly handle allow-multiple: true query parameters.
Previously, query parameters with allow-multiple: true were typed as T | undefined instead of T | T[] | undefined.
3.35.2
(chore): * Add —frozen-lockfile flag to pnpm and yarn install commands in generated ci.yml workflow.
- Update actions/checkout to v6 and actions/setup-node to v6 in generated ci.yml workflow.
3.35.1
(fix): Fix WebSocket query parameter destructuring for property names that are not valid JavaScript identifiers (e.g., language-code).
The generated code now correctly uses renaming syntax in destructuring (e.g., const { "language-code": languageCode } = args;).
3.34.3
(fix): Improve React Native compatibility in the SDK runtime and fetcher:
- Move React Native detection before Node.js detection since React Native may have a process polyfill
- Use
ReturnType<typeof setTimeout>instead ofNodeJS.Timeoutfor better cross-platform compatibility - Remove
ResponseWithBodytype guard that incorrectly failed in React Native environments whereresponse.bodymay be null - Update
BinaryResponsetype to use Response types directly for better compatibility - Add structured error responses with
body-is-nullreason for SSE and streaming endpoints whenresponse.bodyis unavailable - Simplify JSON parsing error handling to return consistent error structure with
non-jsonreason
3.34.2
(fix): Avoid infinite recursion when an auth client is incorrectly configured to use itself for authentication.
To circumvent the infinite recursion, auth providers receive a no-op auth provider when constructing themselves.
3.34.1
(fix): Remove error on null config in README generation.