# Changelog - @typespec/emitter-framework

## 0.17.0

### Features

- [#7993](https://github.com/microsoft/typespec/pull/7993) [csharp] Add new `ExtensibleEnumDeclaration` component allowing an unbound enum representation using a c# `struct`

### Bump dependencies

- [#9838](https://github.com/microsoft/typespec/pull/9838) Upgrade dependencies

### Bug Fixes

- [#9879](https://github.com/microsoft/typespec/pull/9879) Add the missing export in index for extensible-enum in csharp


## 0.16.0

### Bump dependencies

- [#9446](https://github.com/microsoft/typespec/pull/9446) Upgrade dependencies


## 0.15.0

### Features

- [#9141](https://github.com/microsoft/typespec/pull/9141) Add an SCCSet class which incrementally calculates strongly connected components from types added to it and updates reactive arrays with the topologically ordered types and components.
- [#8966](https://github.com/microsoft/typespec/pull/8966) Add Python Emitter Framework implementation

### Bump dependencies

- [#9202](https://github.com/microsoft/typespec/pull/9202) Update to alloy 0.22
- [#9223](https://github.com/microsoft/typespec/pull/9223) Upgrade dependencies


## 0.14.0

No changes, version bump only.

## 0.13.0

### Features

- [#8415](https://github.com/microsoft/typespec/pull/8415) [c#] Support encode when generating csharp property.

### Bump dependencies

- [#8823](https://github.com/microsoft/typespec/pull/8823) Upgrade dependencies

## 0.12.0

### Features

- [#8686](https://github.com/microsoft/typespec/pull/8686) Make C# and TypeScript TypeExpression overridable for unsupported types.

### Bump dependencies

- [#8437](https://github.com/microsoft/typespec/pull/8437) Upgrade dependencies

### Bug Fixes

- [#8474](https://github.com/microsoft/typespec/pull/8474) Remove development exports from published package

## 0.11.0

### Features

- [#8351](https://github.com/microsoft/typespec/pull/8351) [c#] Generate base class and 'virtual'/'new' keywords for property according to the baseType defined in typespec
- [#8145](https://github.com/microsoft/typespec/pull/8145) Enable component overrides for extensibility
- [#8224](https://github.com/microsoft/typespec/pull/8224) Support literal types and nullable union in TypeExpression of csharp
  - Properties with "void" type will be ignored when generating csharp class
  - Literal type will be mapped to string, int, double, bool in general
  - Union contains 'null' or 'void' will be unwrapped to '{other non-nullable union variances}?'
- [#8282](https://github.com/microsoft/typespec/pull/8282) `writeOutput` now uses async render, which enables usage of alloy's resource APIs and templating components.

### Bump dependencies

- [#8317](https://github.com/microsoft/typespec/pull/8317) Upgrade dependencies

### Bug Fixes

- [#8371](https://github.com/microsoft/typespec/pull/8371) [c#] Always separate properties with blank lines
- [#8274](https://github.com/microsoft/typespec/pull/8274) Optional TypeSpec properties emit as nullable in csharp.
- [#8302](https://github.com/microsoft/typespec/pull/8302) [c#] Avoid generating double '?' after property name when the property is nullable union and it's prop.optional is true in the meantime
- [#8362](https://github.com/microsoft/typespec/pull/8362) Upgrade alloy to 0.20

## 0.10.0

### Bump dependencies

- [#8050](https://github.com/microsoft/typespec/pull/8050) Upgrade alloy 0.19
- [#7978](https://github.com/microsoft/typespec/pull/7978) Upgrade dependencies

## 0.9.0

### Features

- [#7566](https://github.com/microsoft/typespec/pull/7566) Add csharp support: class, enum
- [#7815](https://github.com/microsoft/typespec/pull/7815) Migrate the scenario tester to use the new tester framework(Remove explicit relation with http/rest libraries in scenario framework)
- [#7655](https://github.com/microsoft/typespec/pull/7655) [C#] Add support for JsonPropertyName attributes on properties
- [#7655](https://github.com/microsoft/typespec/pull/7655) [C#] Add support for nullable properties

### Bump dependencies

- [#7655](https://github.com/microsoft/typespec/pull/7655) Upgrade to alloy 0.18.0

### Bug Fixes

- [#7650](https://github.com/microsoft/typespec/pull/7650) Adds subpath export for csharp emitter-framework components

## 0.8.0

### Features

- [#7409](https://github.com/microsoft/typespec/pull/7409) Emit TypeSpec comments as JSDoc in TypeScript components

### Bump dependencies

- [#7605](https://github.com/microsoft/typespec/pull/7605) Updates alloy to 0.17

### Bug Fixes

- [#7369](https://github.com/microsoft/typespec/pull/7369) Render discriminated unions correctly

## 0.7.1

### Bump dependencies

- [#7363](https://github.com/microsoft/typespec/pull/7363) Upgrade alloy 16

### Bug Fixes

- [#7321](https://github.com/microsoft/typespec/pull/7321) Use wasm version of tree sitter for snippet extractor

## 0.7.0

### Bump dependencies

- [#7186](https://github.com/microsoft/typespec/pull/7186) Upgrade to alloy 15

## 0.6.0

### Features

- [#7017](https://github.com/microsoft/typespec/pull/7017) [TypeScript] Add various function-related components - FunctionType, FunctionExpression, ArrowFunction, and InterfaceMethod.
- [#6972](https://github.com/microsoft/typespec/pull/6972) Add support for rendering a Value Expression
- [#7018](https://github.com/microsoft/typespec/pull/7018) Adds the `TspContextProvider` and `useTsp()` hook for providing and accessing TypeSpec context and the Typekit APIs (e.g. `# Changelog - @typespec/emitter-framework). Adds a new `Output`component that accepts a TypeSpec`Program`and automatically wraps children components with the`TspContextProvider`.

### Bump dependencies

- [#7017](https://github.com/microsoft/typespec/pull/7017) Alloy 0.11

### Bug Fixes

- [#6951](https://github.com/microsoft/typespec/pull/6951) InterfaceMember should use Alloy

## 0.5.0

### Features

- [#6875](https://github.com/microsoft/typespec/pull/6875) Upgrade to alloy 0.10.0

## 0.4.0

### Bump dependencies

- [#6595](https://github.com/microsoft/typespec/pull/6595) Upgrade dependencies

## 0.3.0

### Bump dependencies

- [#6266](https://github.com/microsoft/typespec/pull/6266) Update dependencies

### Bug Fixes

- [#6178](https://github.com/microsoft/typespec/pull/6178) Improvements on the TestHarness
- [#6460](https://github.com/microsoft/typespec/pull/6460) Update dependency structure for EmitterFramework, HttpClient and JS Emitter

## 0.2.0

### Features

- [#5996](https://github.com/microsoft/typespec/pull/5996) Adding Emitter Framework and Http Client packages
