none
New features:
- json: Ignore unknown enum values #170
Thanks to @whs for the contribution.
Bug fixes:
- Update parseTrailer function to support empty trailers & trailers with colon in content #168
Thanks to @wielski for the contribution.
Bug fixes:
- Naming collisions with message named Object #161
Thanks to @joeflatt for the report.
- Use Symbol.for() to define MESSAGE_TYPE, see #151
Thanks to @be9 for the contribution.
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.
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.
Bug fixes:
- Revert TypeScript
peerDependency
in @protobuf-ts/plugin to support yarn 2, see #144 - Change
UnknownMessage
from type to interface, see #143
New features:
- @protobuf-ts/plugin expresses TypeScript compatibility with
a
peerDependency
>=3.8.3
. Thanks to @ghaiklor-wix for the suggestion.
-
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)
-
@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)
-
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.
-
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.
Breaking changes:
RpcOptions
takes atimeout
property now.deadline
property has been removed. See #138 for details.
Bug fixes:
- @protobuf-ts/grpc-transport & @grpc/grpc-js dependency, see #136.
Thanks to @hugebdu for the report.
Bug fixes:
- Fix protoc error message "Plugin output is unparseable" for certain
plugin output sizes, see #134.
Thanks to @fenos for the investigation and fix!
New features:
- Add oneof accessor / mutator functions, see #129
Cleanup:
- Rename plugin parameters to "plugin options".
The code generator request only accepts a single parameter string, but this should be considered an implementation detail.protoc
uses--ts_opt
, so we should speak of options, not parameters.
Bug fixes:
- Fix memory leak in @protobuf-ts/grpc-transport, see #107
Thanks to @dddenis for the PR!
Bug fixes:
- twirp-transport is now a bit more compatible with polyfills for the fetch API that are incomplete.
Bug fixes:
- Fix protoc arch detection on Apple Silicon #108
Thanks to @lqs for the PR!
New feature:
- More convenience method to read custom options, see #36
New feature:
- runtime: Message options are now available in reflection information, see #35.
- plugin: Groups (deprecated proto2 feature) are now completely ignored, but should still be treated properly as unknown fields.
- runtime: BinaryReader.skip() supports WireType.StartGroup now.
Breaking changes:
- runtime: The MessageInfo interface requires the new "options" property.
- plugin-framework: IDescriptorInfo.isMessageField() no longer returns true for GROUP field type.
New features:
- The Twirp and gRPC-web transports let you pass options to fetch() now.
See #95, #105.
Thanks to @jamesbirtles for the PR!
New features:
- Compatibility with Angular 11
No code changes, just relaxed peer dependency constraints.
Bug Fixes:
- Fixed grpcweb-transport to handle responses with HTTP error status
and missing content-type header, see #102.
Thanks to @frederikhors for the bug report.
Breaking changes:
-
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.
v2.0.0-alpha.18 was accidentally published in the "latest" channel. This release is identical with v1.0.12, it just fixes the "latest" NPM release.
New features:
- Compatibility with svelte (type imports), see #94
Thanks to @frederikhors for the detailed reports.
This release was accidentally published in the "latest" channel as v2.0.0-alpha.18
Please disregard.
Breaking changes:
-
The "response" property of ServerStreamingCall and BidiStreamingCall has been renamed "responses".
-
The "request" property of ClientStreamingCall and BidiStreamingCall has been renamed "requests".
Breaking changes:
-
"client styles" have been removed to keep the plugin simple.
-
plugin parameter "client_call" has been renamed to "client_generic".
-
service option
(ts.client) = CALL_CLIENT
has been renamed(ts.client) = GENERIC_CLIENT
.
Bug Fixes:
- fix wrong grpc status code INTERNAL for aborted server streaming method (see #86)
Bug Fixes:
- Added workaround for unhandled promise rejection (see #86)
Breaking changes:
- grpcweb-transport deadline option is used as a timeout, but should be used as a timestamp (see #80)
Bug Fixes:
- Improve support for the
node-fetch
polyfill (see #81)
Breaking changes:
- Use package version in GRPC_SERVER and RX_CLIENT (see #65)
Bug Fixes:
-
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)
Security Fixes:
- Bump socket.io from 2.3.0 to 2.4.1 (see #68)
Package is only used for development.
Bug Fixes:
- grpcweb-transport: Recognize "application/grpc-web-text+proto".
New features:
- protoc: prefer protoc from $PATH (see #60)
New features:
- support client cancel in generic servers / grpc-backend (see #56)
Bug Fixes:
- Fixed conversion of gRPC metadata to our metadata (grpc-transport, grpc-backend)
- Fixed service binding to work with class instances (grpc-backend)
- Fixed isServiceError failure (grpc-transport, grpc-backend)
New features:
- Generic server support (see #56)
Breaking changes:
- clients are generated into separate files (see #55)
- option values for (ts.client) have changed (see #55)
- ClientStyle enum is no longer exported from @protobuf-ts/runtime-rpc (see #55)
New features:
- gRPC server support for @grpc/grpc-js (see #52)
Thanks to @badsyntax for inspiration
Bug Fixes:
- Support grpc-web-text format with envoy (see #54)
Thanks to @DiogoMaMartins for the bug report.
Bug Fixes:
- fix missing true values for clientStreaming and serverStreaming properties of generated service info
New features:
- server streaming and client streaming added to experimental gRPC transport (see #45)
This patch removes source mappings and declaration mappings from the npm packages. See #40.
Thanks to @johnsoncodehk and @tlstyer for the reports.
New features:
- Experimental gRPC transport (see #45)
Breaking changes:
- The function
mergeExtendedRpcOptions
was renamed tomergeRpcOptions
.
- Fix windows import path #41
This patch fixes generated import path on windows platform.
Thanks to @SyedAsimAliSE for bringing this issue up.
- Do not output source mappings and declaration mappings #40
New features:
- RPC client styles (see #10)
- Option to exclude custom options (see #7)
- Add long_type_number and long_type_bigint parameters (see #13, thanks @vicb)
Bug Fixes:
- 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:
- The
cancel
method of RPC was removed, see #9
As a replacement, you can pass anAbortSignal
in the call options instead. - plugin option "disable_service_client" was renamed to "force_client_none"
- RpcOutputStream callback
onNext
is now called withcomplete = false
on error.
Deprecations:
- the methods
stackUnaryInterceptors
,stackServerStreamingInterceptors
,stackClientStreamingInterceptors
,stackDuplexStreamingInterceptors
are now deprecated. UsestackIntercept
instead.
This patch fixes a bug in the plugin: The field option jstype = JS_STRING would generate invalid code for optimized speed.
The problem only surfaces if the plugin parameter long_type_string is not set and code is optimized for speed (instead of for code size). See PR #29
This patch fixes a bug in the plugin: The field option jstype = JS_STRING
would still generate an interface with a bigint property. The problem only
surfaces if the plugin parameter long_type_string is not set.
See PR #28
This patch fixes issue #24
Thanks to @pedelman and @pzeinlinger for the bug reports!
This patch fixes a bug in the method google.protobuf.Timestamp.fromDate(). See issue #22
This patch fixes issue #16.
Thanks to @Caffeinix for bringing the issue up.
This patch fixes a bug in the speed-optimized generated code. The generated code for a message named "Error" would not compile.
Thanks to @pedelman for the contribution!
Previous releases were using const enums. They are incompatible with the compiler option "isolatedModules" used by react.
This release:
- changes all const enum declarations to plain enum
- updates generated reflection information to numerical literal with a comment to keep code size small
- activates compiler option "isolatedModules" for the "test-generated" package to cover regressions
Thanks to @pedelman for bringing this issue up!
This patch fixes issue #2
This release adds automatic installation of the protocol buffer compiler.
Installation is managed by the new package @protobuf-ts/protoc and is tested on macos, linux and windows.
This patch fixes issue #1
This is the first public release of protobuf-ts.