Releases: microsoft/typespec
[email protected]
Bump dependencies
- #3401 Update dependencies - May 2024
@typespec/[email protected]
Bump dependencies
- #3401 Update dependencies - May 2024
@typespec/[email protected]
@typespec/[email protected]
Bump dependencies
- #3401 Update dependencies - May 2024
[email protected]
@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
[email protected]
Bump dependencies
- #3169 Update dependencies
@typespec/[email protected]
Bump dependencies
- #3169 Update dependencies
@typespec/[email protected]
@typespec/[email protected]
Bump dependencies
- #3169 Update dependencies
[email protected]
@typespec/compiler
Bug Fixes
- #3018 Grammar: Fix comments in template params not tokenized
- #3052 Fix: Union template declaration were incorrectly being finished in projection
- #2983 Warnings converted to error with
warn-as-error
do not prevent compilation from moving to the next stage like regular warnings - #3041 Improve relability of application of codefixes in IDE, often it would not do anything
- #3069 TmLanguage: Fix tokenization of escaped identifiers, enums and unions
Bump dependencies
- #3027 Update dependencies
Features
- #2992 Enable the use of
@encode
for model properties that have a union type. This supports cases like@encode("rfc3339") prop: utcDateTime | null
- #3053 Experimental projection: Add support for scalars
Deprecations
- #3094 Deprecate
@knownValues
decorator. Use a named union of string literal with a string variant to achieve the same result without a decorator
Example:
-enum FooKV { a, b, c}
-@knownValues(FooKV)
-scalar foo extends string;
+union Foo { "a", "b", "c", string }
- #2910 Deprecate
@projectedName
decorator.@encodedName
should be used instead.
Example:
-@projectedName("json", "exp")
+@encodedName("application/json", "exp")
@typespec/http
Bump dependencies
- #3027 Update dependencies
@typespec/versioning
Bump dependencies
- #3027 Update dependencies
Features
- #3053 Add support for versioning of scalars(Added, removed, renamed)
@typespec/rest
Bump dependencies
- #3027 Update dependencies
@typespec/openapi
Bump dependencies
- #3027 Update dependencies
@typespec/openapi3
Bug Fixes
- #3077 Do not crash if using an unsupported intrinsic type
- #2967 Fix crash: emit
{nullable: true}
when trying to emitnull
in openapi3 - #3013 Fix: OpenAPI3 not marking part of bytes or something else as
format: binary
- #3090 Fix: Literal unions with the same variants keep adding duplicate entries
- #3049 Fix visibility naming conflict when a model used with
extends
was used in different visibility.
Bump dependencies
- #3027 Update dependencies
@typespec/protobuf
Bump dependencies
- #3027 Update dependencies
@typespec/prettier-plugin-typespec
Bump dependencies
- #3027 Update dependencies
@typespec/eslint-config-typespec
Bug Fixes
- #2122 Ignore
generated-defs
folder
Bump dependencies
- #3027 Update dependencies
@typespec/eslint-plugin
Bump dependencies
- #3027 Update dependencies
@typespec/html-program-viewer
Bump dependencies
- #3027 Update dependencies
@typespec/json-schema
Bump dependencies
- #3027 Update dependencies
@typespec/internal-build-utils
Bump dependencies
- #3027 Update dependencies
typespec-vs
No changes, version bump only.
typespec-vscode
Bump dependencies
- #3027 Update dependencies
@typespec/library-linter
Bump dependencies
- #3027 Update dependencies