Releases: timostamm/protobuf-ts
v2.1.0
New features:
- Add keep_enum_prefix plugin option #187 (thanks, @be9)
- json: Small performance improvement when encoding to JSON, see #191 (thanks, @doochik)
Note: Going forward, protobuf-ts will bump the major version for all
releases that add features. Minor releases will be used for releases
that only contain bug fixes.
This release is available on the BSR.
v2.0.7
v2.0.6
v2.0.5
v2.0.4
New features:
- Do not unnecessarily copy read data in BinaryReader, see #148
Note that it is now strictly necessary to respect the offset of the underlying buffer
of byte fields. - Add
force_exclude_all_options
plugin option, see #126
Thanks to @optiman for the suggestion.
Bug fixes:
- The new symbol property
MESSAGE_TYPE
broke user unit tests. The property was set to non-enumerable.
Thanks to @jcready for the feedback.
v2.0.4-alpha.0
New features:
- Do not unnecessarily copy read data in BinaryReader, see #148
Note that it is now strictly necessary to respect the offset of the underlying buffer
of byte fields. - Add
force_exclude_all_options
plugin option, see #126
Thanks to @optiman for the suggestion.
Bug fixes:
- The new symbol property
MESSAGE_TYPE
broke user unit tests. The property was set to non-enumerable.
Thanks to @jcready for the feedback.
v2.0.3
New features:
-
All messages created with
create()
now have a symbol propertyMESSAGE_TYPE
that provides access to the messages type. UsecontainsMessageType(yourMessage)
to check if a message contains its type and access it withyourMessage[MESSAGE_TYPE]
.Note that this is an experimental feature - it is here to stay, but implementation
details may change without notice.Many thanks to @odashevskii-plaid for the contribution.
Bug fixes:
-
Generated
create()
method for speed optimized code got left behind in #55
Thanks to @odashevskii-plaid for the find! -
Infinite recursion on compile step when using custom option on message used as custom option #141
Thanks to @doochik for bringing it up.
v2.0.2
v2.0.1
v2.0.0
New features
-
gRPC server support for @grpc/grpc-js (see #52)
Thanks to @badsyntax for inspiration -
gRPC client support for @grpc/grpc-js (see #57)
-
Experimental generic server support (see #56)
-
gRPC transport (see #45)
-
Add oneof accessor / mutator functions, see #129
-
More convenience method to read custom options, see #36
-
runtime: Message options are now available in reflection
information, see #35. -
runtime: BinaryReader.skip() supports WireType.StartGroup now.
-
plugin: Groups (deprecated proto2 feature) are now completely
ignored, but should still be treated properly as unknown fields. -
The Twirp and gRPC-web transports let you pass options to fetch() now.
See #95, #105.
Thanks to @jamesbirtles for the PR! -
Compatibility with Angular 11
No code changes, just relaxed peer dependency constraints. -
Compatibility with svelte (type imports), see #94
Thanks to @frederikhors for the detailed reports. -
protoc: prefer protoc from $PATH (see #60)
-
File option to exclude custom options (see #7)
-
Add long_type_number and long_type_bigint plugin options (see #13, thanks @vicb)
Bug fixes
-
@protobuf-ts/grpc-transport & @grpc/grpc-js dependency, see #136.
Thanks to @hugebdu for the report. -
Fix protoc error message "Plugin output is unparseable" for certain
plugin output sizes, see #134.
Thanks to @fenos for the investigation and fix! -
Fix memory leak in @protobuf-ts/grpc-transport, see #107
Thanks to @dddenis for the PR! -
twirp-transport is now a bit more compatible with polyfills for
the fetch API that are incomplete. -
Fix protoc arch detection on Apple Silicon #108
Thanks to @lqs for the PR! -
Fixed grpcweb-transport to handle responses with HTTP error status
and missing content-type header, see #102.
Thanks to @frederikhors for the bug report. -
fix wrong grpc status code INTERNAL for aborted server streaming method (see #86)
-
Added workaround for unhandled promise rejection (see #86)
-
Improve support for the
node-fetch
polyfill (see #81) -
The
generate_dependencies
parameter doesn't work (see #59)
Thanks to @jcready for the report and fix. -
grpc-transport does not pass along provided deadline option (see #77)
-
grpcweb-transport: Recognize "application/grpc-web-text+proto".
-
Fixed conversion of gRPC metadata to our metadata (grpc-transport, grpc-backend)
-
Support grpc-web-text format with envoy (see #54)
Thanks to @DiogoMaMartins for the bug report. -
Fix windows import path #41
-
Proto fields with
[jstype = JS_NUMBER]
were documented as* @generated from protobuf field: [...] [jstype = JS_STRING];
. (See #27) -
Proto fields with
[jstype = JS_NORMAL]
were generated asstring
when thelong_type_string
plugin parameter was used. (See #27)
Breaking changes
-
RpcOptions
takes atimeout
property now.deadline
property
has been removed. See #138 for details. -
The "response" property of ServerStreamingCall and BidiStreamingCall has been renamed "responses".
-
The "request" property of ClientStreamingCall and BidiStreamingCall has been renamed "requests".
-
plugin option "disable_service_client" was renamed to "force_client_none"
-
clients are generated into separate files (see #55)
-
The
cancel
method of RPC was removed, see #9
As a replacement, you can pass anAbortSignal
in the call options instead.
Breaking changes in non-user-facing code
-
runtime: The MessageInfo interface requires the new "options"
property. -
plugin-framework: IDescriptorInfo.isMessageField() no longer
returns true for GROUP field type. -
grpcweb-transport: The function
readGrpcWebResponseHeader()
no longer
returns the format. -
grpcweb-transport: The function
readGrpcWebResponseBody()
no longer takes
the format as an argument. Instead, it now takes the content-type response
header value and determines the format on its own. -
The function
mergeExtendedRpcOptions
was renamed tomergeRpcOptions
. -
RpcOutputStream callback
onNext
is now called withcomplete = false
on error. -
the methods
stackUnaryInterceptors
,stackServerStreamingInterceptors
,
stackClientStreamingInterceptors
,stackDuplexStreamingInterceptors
are
now deprecated. UsestackIntercept
instead.