3.44.1
(fix): Fix optional query parameters with date/datetime types throwing serialization errors when
undefined. Previously, optional query parameters that were named types aliasing Date (like
before?: Before where Before = Date) would call jsonOrThrow unconditionally, causing
“Expected Date object. Received undefined” errors when the parameter was omitted. Now the
generator adds a null check for optional date/datetime query parameters, matching the
behavior already used for object-type query parameters.
3.44.0
(feat): Enable forward compatible enums when the serde layer is enabled. Previously, the
enableForwardCompatibleEnums option only worked when noSerdeLayer was true.
Now enum types include | string regardless of the serde layer setting when
enableForwardCompatibleEnums is enabled, allowing TypeScript SDKs to accept
unrecognized enum values from APIs.
3.43.13
(fix): Fix nullable enum query parameters to be dropped when undefined is passed instead of being
sent as null. Previously, nullable query parameters like role: nullable<UserRole> would
generate code that converted undefined to null, causing the parameter to be included in the
request as an empty value. Now undefined values remain undefined and are properly dropped
from the query string.
3.43.12
(fix): Fix passthrough() function to only include truly unknown/extra properties in the result.
Previously, when a type had additionalProperties: true and used property name mapping
(e.g., snake_case to camelCase), the passthrough would spread both the original raw object
and the transformed value, resulting in duplicate properties with both naming conventions.
Now the passthrough correctly filters out known properties before spreading, ensuring only
extra properties that aren’t part of the schema definition are included.
3.43.11
(chore): Update linters and formatters to latest versions.
3.43.10
(chore): Update Dockerfile to only pre-cache for the default configuration options to reduce image size from 1.45GB to 823MB.
The following dependencies are no longer pre-cached:
- jest
- @types/jest
- node-fetch
- @types/node-fetch
- qs
- @types/qs
- readable-stream
- @types/readable-stream
- form-data
- formdata-node
- jest-environment-jsdom
- prettier
- oxfmt
- oxlint
- oxlint-tsgolint
- ts-jest
- form-data-encoder
- fetch-mock-jest
Additionally, the Dockerfile only pre-caches using pnpm, removing duplicate yarn cache.
3.43.9
(chore): Update Dockerfile to use the latest generator-cli with improve reference.md generation.
3.43.8
(fix): Fix wire test mock server to ignore cursor mismatches in pagination tests.
When pagination tests call getNextPage(), the SDK correctly sends the cursor from the response,
but the mock server was rejecting the request because the cursor didn’t match the original request.
The mock server now accepts an ignoredFields option to specify which fields to ignore during
request body matching. The test generator extracts pagination cursor field names from the IR
and passes them to the mock server at code generation time.
3.43.7
(fix): Support bytes argument type and custom method names for websocket messages.
3.43.6
(fix): Fix fetcher tests to use .trim() for platform-agnostic line ending comparisons.
This resolves test failures on Windows where files have CRLF line endings instead of LF.
3.43.5
(fix): Fix GitHub repository URL format in package.json to use git+https:// format,
ensuring local generation output matches remote generation.
3.43.4
(fix): Fix export of inline enum const values from request types. Previously, request types with inline enums
(defined directly in OpenAPI schemas) were exported using export type { ... } which only exports the
type, not the runtime const values. SDK consumers couldn’t access enum values like ConvertRequest.Resource.Auto
at runtime. Now request types are exported using export { ... } which exports both the type and the const.
3.43.3
(fix): Fix repository URL format in package.json for self-hosted GitHub configurations to use full https URL
format matching Fiddle’s output.
3.43.2
(chore): Simplify optional query parameter handling by removing unnecessary null/undefined checks.
Query parameters can now be assigned directly without wrapping in if-statements, as it’s
safe to pass null or undefined values to query string parameters.
(chore): Use optional chaining (?.) for optional query parameters that require method calls like
toISOString() for dates, instead of ternary expressions.
(chore): Skip unnecessary .map() calls for list query parameters when the item type doesn’t need
transformation (e.g., string arrays). Also skip the Array.isArray check entirely when
both scalar and array branches would produce identical code.
(chore): Refactor query parameter generation to use object initializers instead of sequential
property assignments. This produces cleaner, more idiomatic TypeScript code where all
query parameters are defined in a single object literal.
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.