0.63 - December 2024
Notable changes
Experimental: Improve Realm, Mutator, and Typekit implementations
The compiler strongly binds a Realm and Typekit together, and changes mutators so that new types are cloned within the mutator’s realm. The default Typekit now creates a default typekit realm for the current program, and a Typekit can be easily created to work in a specific Program or Realm as needed.
Enum-driven Visibility
A new mechanism for visibility that defines valid visibility values in enums and provides tools for filtering types by visibility. A new LifecycleVisibility
enum defines standard protocol-agnostic visibility values for operations that manage the lifecycle (creation, update, deletion) of a resource. More details on visibility enums are available in website documentation
Features
@typespec/compiler
-
#4937 Add mutateSubgraphWithNamespace as a separate API
-
#4837 Allow trailing delimiter in array values, tuple, decorator declaration, scalar initializer, etc.
-
#5149 Experimental: Improve Realm, Mutator, and Typekit implementations.
-
#4825 Adds support for enum-driven visibility in the compiler core.
@typespec/openapi3
- #5029 Add support for
#deprecated
for OpenAPI3Parameter
Bug Fixes
@typespec/compiler
- #5252 Added RegEx validation for @pattern and will throw warning for invalid RegEx string
@typespec/http
- #5016 Uri template attributes were not extracted when parameter was explicitly mark with
@path
or@query
as well
@typespec/http-server-csharp
- #4308 Process sub-namespaces of a service
- #4998 Handle void returnType
- #5000 Handle tuple literals
- #5001 Skip envelope types withpout properties
- #5024 Literal type is not properly generated
- #5124 Skip uninstantiated templates
- #5125 Process operations outside interfaces
- Handle nullable types and anonymous typesin all contexts
- Add server-side numeric constraints for safeInt
@typespec/http-server-javascript
- Add an additional check for the presence of a property before performing a bounds check on integer properties constrained to a range.
- 5185 Add logic to handle invalid identifier names (#5185)
@typespec/versioning
- #5262 Fixes diagnostics for @typeChangedFrom to properly detect when an incompatible version is referenced inside of a template, union, or tuple.
@typespec/openapi3
@typespec/json-schema
- #5189 Fixes crash that occurred when a template instantiation’s template argument was a union that references a declaration.