@typespec/compiler
Bug Fixes
- #3170
--nostdlib
flag will now work by only applying to optional standard library types - #3212 Fix: augmenting template model property could result in sending invalid argument to decorator
- #3188 Fix: Do not crash when trying to access member of aliased expressions
- #3185 Fix tsp init hanging when done due to unclosed connection
- #3151 IDE: Fix completion of statement keywords
- #3287 Templated interface extending another templated interface shouldn't run decorator on their operations
- #3290 Model with an optional property should not satisfy a constraint with that property required. (
{foo?: string}
cannot be assigned to a constraint of{foo: string}
) - #3163 Fix: Model with spread indexer shouldn't validate explicit properties
- #3227 Stop running decorators on partially instantiated operations(When interface is instantiated but not the operation)
- #3180 Fix issue where directives were not parsed to the leaf node in multi-segment Namespace segments.
- #3243 Fix calling
tsp install
on windows due to recent NodeJS breaking change to fix vulnerability. - #3216 Fix compiler crash when using an invalid
is
target in an interface operation template - #3246 Internals: Use node built-in
fetch
API that is now stable since node18.13.0
Bump dependencies
- #3169 Update dependencies
Features
- #3035
getEncode
returns the fully qualified enum member name if using a custom enum. - #3183 Show template parameters when hovering on an operation template
- #3191 [API] Add new
sourceModels
property to model
@typespec/http
Bug Fixes
- #3196 Fix password flow defining
authorizationUrl
instead oftokenUrl
- #3190 Fix
@path
param mapping when spreading a record in operation parameters - #3218 Fix:
@path
property shouldn't be applicableMetadata if the visibility containsRead
Bump dependencies
- #3169 Update dependencies
Breaking Changes
-
#2945 Empty model after removing metadata and applying visibility always results in "void"
This means the following case have changed from returning{}
to no bodyop b1(): {}; op b2(): {@visibility("none") prop: string}; op b3(): {@added(Versions.v2) prop: string};
Workaround: Use explicit
@body
op b1(): {@body _: {}}; op b2(): {@body _: {@visibility("none") prop: string}}; op b3(): {@body _: {@added(Versions.v2) prop: string}};
-
#2945 Implicit status code always 200 except if response is explicitly
void
op c1(): {@header foo: string}; // status code 200 (used to be 204)
Solution: Add explicit
@statusCode
op c1(): {@header foo: string, @statusCode _: 204}; op c1(): {@header foo: string, ...NoContent}; // or spread common model
-
#2945
@body
means this is the bodyThis change makes using
@body
mean this is the exact body and everything underneath will be included, including metadata properties. If metadata properties are present on the body, a warning will be logged.op a1(): {@body _: {@header foo: string, other: string} }; ^ warning header in a body, it will not be included as a header.
Use
@bodyRoot
if you want to only change where to resolve the body from.op a1(): {@bodyRoot _: {@header foo: string, other: string} };
-
#2945 Properties are not automatically omitted if everything was removed from metadata or visibility
op d1(): {headers: {@header foo: string}}; // body will be {headers: {}}
Solution: use
@bodyIgnore
op d1(): {@bodyIgnore headers: {@header foo: string}}; // body will be {headers: {}}
@typespec/versioning
Bug Fixes
- #3264 Fix crash when
@service
appears inside a versioned namespace
Bump dependencies
- #3169 Update dependencies
@typespec/rest
Bump dependencies
- #3169 Update dependencies
Features
- #2945 Add support for new
@bodyRoot
and@body
distinction
@typespec/openapi
Bump dependencies
- #3169 Update dependencies
@typespec/openapi3
Bug Fixes
- #3218 Fix:
@path
property should be included in unreachable models
Bump dependencies
- #3169 Update dependencies
Features
- #2945 Add support for new
@bodyRoot
and@body
distinction
@typespec/protobuf
Bump dependencies
- #3169 Update dependencies
@typespec/prettier-plugin-typespec
Bump dependencies
- #3169 Update dependencies
@typespec/eslint-plugin
Bump dependencies
- #3169 Update dependencies
@typespec/html-program-viewer
Bump dependencies
- #3169 Update dependencies
Features
- #3191 Add
sourceModels
property to model view
@typespec/json-schema
Bump dependencies
- #3169 Update dependencies
@typespec/internal-build-utils
Bump dependencies
- #3169 Update dependencies
typespec-vs
No changes, version bump only.
typespec-vscode
Bump dependencies
- #3169 Update dependencies
@typespec/library-linter
Bump dependencies
- #3169 Update dependencies