# January 16, 2025

## 0.48.3

**`(fix):`** The SDK now supports reading the basic auth username and password values from environment variables.

## 0.48.2

**`(fix):`** This updates the retrier logic to stop retrying on HTTP conflict (409). This was an oversight that we've meant to remove for a while (similar to other Fern SDKs).

## 0.48.1

**`(fix):`** Record types with `null` values are now correctly serialized.

## 0.48.0

**`(feat):`** When `useBigInt` SDK configuration is set to `true`, a customized JSON serializer & deserializer is used that will preserve the precision of `bigint`'s, as opposed to the native `JSON.stringify` and `JSON.parse` function which converts `bigint`'s to `number`'s losing precision.

When combining `useBigInt` with our serialization layer (`no-serde: false` (default)), both the request and response properties that are marked as `long` and `bigint` in OpenAPI/Fern spec, will consistently be `bigint`'s.
However, when disabling the serialization layer (`no-serde: true`), they will be typed as `number | bigint`.

Here's an overview of what to expect from the generated types when combining `useBigInt` and `noSerde` with the following Fern definition:

**Fern definition**

```yml
types:
  ObjectWithOptionalField:
    properties:
      longProp: long
      bigIntProp: bigint
```

**TypeScript output**

```typescript
// useBigInt: true
// noSerde: false
interface ObjectWithLongAndBigInt {
  longProp: bigint;
  bigIntProp: bigint;
}

// useBigInt: true
// noSerde: true
interface ObjectWithLongAndBigInt {
  longProp: bigint | number;
  bigIntProp: bigint | number;
}

// useBigInt: false
// noSerde: false
interface ObjectWithLongAndBigInt {
  longProp: number;
  bigIntProp: string;
}

// useBigInt: false
// noSerde: true
interface ObjectWithLongAndBigInt {
  longProp: number;
  bigIntProp: string;
}
```