3.33.0

(feat): Implement auth provider architecture for basic auth, matching the pattern established by inferred auth. Basic auth now uses a dedicated BasicAuthProvider class that implements the AuthProvider interface, replacing inline auth logic.

3.32.1

(fix): Add contents:read permission to generated publish workflow for OIDC authentication to fix actions/checkout@v4 requirements.


3.32.0

(feat): Add support for OAuth and inferred auth in generated wire tests.

(feat): Respect the auth: false at the endpoint level when generating the endpoint function.

3.31.5

(chore): Include subpackage exports in generated README.md if generateSubpackageExports is enabled.


3.31.4

(fix): Default to mock an endpoint once when using msw for wire tests.

3.31.3

(fix): Generate wire tests with maxRetries set to 0.

3.31.2

(chore): Bump generator CLI version to publish new Docker image.


3.31.1

(fix): Fix generator to not generate CONTRIBUTING.md file if config.whitelabel is true.

3.31.0

(feat): Add generateSubpackageExports configuration option to enable direct imports of subpackage clients. This allows JavaScript bundlers to tree-shake and include only the imported subpackage code, resulting in much smaller bundle sizes.

Example:

1import { BarClient } from '@acme/sdk/foo/bar';
2
3const client = new BarClient({...});

To enable this feature, add the following configuration to your generators.yml file:

1# In generators.yml
2groups:
3 generators:
4 - name: fernapi/fern-typescript-sdk
5 config:
6 generateSubpackageExports: true

3.30.0

(feat): Add offsetSemantics flag, which changes how the step attribute in x-fern-pagination is interpreted. When offsetSemantics is item-index (the default), offset is understood as an item index that increases by the number of entities fetched. When offsetSemantics is page-index, offset is understood as a page index that increases by 1 each time.


3.29.2

(fix): Improve SDK generation performance.

3.29.1

(fix): When generating hasNextPage, use Math.Floor to ensure an integer comparison against the number of entities.


3.29.0

(feat): Add parameterNaming configuration option to control how parameter names are generated in the SDK. The available options are:

  • originalName: Use the original name from the OpenAPI spec.
  • wireValue: Use the wire value from the OpenAPI spec, falling back to the original name if not present.
  • camelCase: Convert the name to camelCase.
  • snakeCase: Convert the name to snake_case.
  • default: Use the default naming strategy.

3.28.11

(fix): Do not generate a snippet-templates.json file in the generated TypeScript SDK.

3.28.12

(fix): Include more files and folders in .npmignore:

  • .mock
  • .fern
  • dist
  • scripts
  • jest.config.*
  • vitest.config.*

(fix): Only generate .npmignore when useLegacyExports: true. When useLegacyExports: false, we generate a package.json with "files" field which makes .npmignore redundant.


3.28.10

(fix): Set Accept header for JSON (application/json), text (text/plain), and other (*/*) response types. This ensures that the Accept header is set consistently across runtimes. Unlike all other runtimes, Cloudflare Workers and Vercel Edge Runtime do not set a default Accept header in their fetch implementations.

3.28.9

(fix): Fix Error._visit to pass the correct type (core.Fetcher.Error) to the _other callback.

3.28.8

(fix): Clean up imports for requestWithRetries.test.ts.


3.28.7

(fix): Fix circular type alias errors (TS2456) in undiscriminated unions containing self-recursive Record types where the value is a union of itself with null and/or undefined.