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.