Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: add .js suffix to proto cross-reference imports #602

Merged
merged 1 commit into from
Jul 2, 2022

Conversation

paralin
Copy link
Collaborator

@paralin paralin commented Jun 29, 2022

When importing a cross-referenced file, a line like this is generated:

import { MyMessage } from '../myother/myother'

.. assuming there's a proto at ../myother/myother.proto

But if we add the suffix '.pb.ts' to the generated files:

import { MyMessage } from '../myother/myother.pb'

Is not recognized as a TypeScript import by tsc because of the .pb suffix.

To fix this, we can just add .js, and the TypeScript compiler recognizes that we actually mean the .ts file:

import { MyMessage } from '../myother/myother.pb.js'

Fixes #601

@paralin paralin force-pushed the fix-suffix-imports branch from bd9f6cc to 5fb9994 Compare June 29, 2022 04:00
src/utils.ts Outdated
@@ -203,6 +203,6 @@ export function impProto(options: Options, module: string, type: string): Import
if (options.onlyTypes) {
return imp('t:' + importString);
} else {
return imp(importString);
return imp(importString + '.js');
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Huh! I didn't know that if you have a file called foo.ts, you're allowed to import it as foo.js.

That makes sense, I guess, since it will all wash out to *.js files in the end / post-compilation.

I dunno, that said, does it work to make this .ts?

Personally I think that'd be less surprising to the reader, since they would normally be reading the files as pre-tsc TS code. And I assume tsc will make all of the foo.ts imports into foo.js in the output anyway (?).

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

does it work to make this .ts?

No, this returns an error from the compiler (counter-intuitively)

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also huh!

Wdyt about doing a s,\./_/ on the file names, so that your myother.pb.ts files end up as myother_bs and imports like like:

import { MyMessage } from '../myother/myother_pb'

It seems like this would be less disruptive to existing users that aren't use the .pb naming convention.

Granted, it sounds like file extensions are becoming defacto required in ESM, but hopefully/surely they've fixed/allow .ts extensions by then.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm very interested in using .pb.js since I'm using .pb.go - and with this patch it's working correctly.

We're going to have to use the .js suffix for all non-package imports with ESM anyway - (for example protobufjs/minimal.js) so eventually this will be required. And already the TypeScript compiler ignores the .js suffix and finds the .ts file, so it shouldn't be backwards incompatible, right?

If it causes an issue I guess it could be another option (to add .js as the suffix everywhere we try to import a ts file).

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, totally get/agree we'll need it with ESM, albeit I'm ~80% sure that *.ts suffixes will be/are kosher with that tsconfig (I've only seen the TS release notes go by, haven't personally used it yet).

Maybe do a conditional here, like if importString has a . in it, add the .js export?

I'm just thinking, while this makes a ton of sense for you, for the other pre-ESM users of ts-proto, they might read the imports and just do an raised eyebrow about "why is that there?", even if I agree it won't break anything for them.

If the conditional-if-.-in-importString fixes your .pb.js use case, let's do that? But if not, yeah, I'm good with always having it.

Copy link
Collaborator Author

@paralin paralin Jun 29, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've tried importing with the .ts suffix and it was straight-up not allowed by the compiler. I suggest you give it a try and see for yourself. It throws errors as far as I know.

Ideally I'd love to move to using esm soon. Currently the only reason I'm still using the "module": legacy setting is ts-proto.

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh damn, you're right. I had read this part of the release notes:

To overlay the way TypeScript works in this system, .ts and .tsx files now work the same way. 

As ".ts files work in the same way" --> "can be imported with .ts/.tsx file extensions".

But you're right, further down:

As a result, it will have to be rewritten to use the extension of the _output_ of foo.ts – so bar.ts will instead have to import from ./foo.js.

Weird. Okay, yeah, this is the future 🤷 , so sgtm.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree it's confusing and at first when I saw the .js imports in files I was like.. wat?

But like you said, it's the way the TypeScript developers decided to go for this, and I guess it's slightly less ambiguous than guessing to add the .ts suffix.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

With regards to importing with '.ts' suffix: microsoft/TypeScript#37582

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice! Thanks for the link to the TS issue re .ts imports.

@paralin paralin force-pushed the fix-suffix-imports branch from 5fb9994 to 74737c5 Compare June 29, 2022 19:09
@paralin
Copy link
Collaborator Author

paralin commented Jun 29, 2022

Probably can be done in a separate PR but this is also necessary if ESM is enabled:

import * as _m0 from 'protobufjs/minimal.js';

@paralin
Copy link
Collaborator Author

paralin commented Jun 29, 2022

#603 (merged)

@paralin paralin force-pushed the fix-suffix-imports branch from 74737c5 to 8c9d41c Compare July 1, 2022 21:32
paralin added a commit to paralin/ts-poet that referenced this pull request Jul 1, 2022
The TypeScript compiler will recognize that an import to foo.js is actually an
import to foo.ts, if the .ts file exists and the .js file does not.

If two import paths are the same, ignoring a ".js" or ".ts" or ".jsx" suffix,
treat them as belonging to the same module.

Related to: stephenh/ts-proto#602

Signed-off-by: Christian Stewart <christian@paral.in>
paralin added a commit to paralin/ts-poet that referenced this pull request Jul 1, 2022
The TypeScript compiler will recognize that an import to foo.js is actually an
import to foo.ts, if the .ts file exists and the .js file does not.

If two import paths are the same, ignoring a ".js" or ".ts" or ".jsx" suffix,
treat them as belonging to the same module.

Related to: stephenh/ts-proto#602

Signed-off-by: Christian Stewart <christian@paral.in>
stephenh pushed a commit to stephenh/ts-poet that referenced this pull request Jul 1, 2022
* chore(npmignore): add .circleci and .idea

Signed-off-by: Christian Stewart <christian@paral.in>

* chore(gitignore): add .log dir

Signed-off-by: Christian Stewart <christian@paral.in>

* fix: imports to .js and .ts are resolved to the same file

The TypeScript compiler will recognize that an import to foo.js is actually an
import to foo.ts, if the .ts file exists and the .js file does not.

If two import paths are the same, ignoring a ".js" or ".ts" or ".jsx" suffix,
treat them as belonging to the same module.

Related to: stephenh/ts-proto#602

Signed-off-by: Christian Stewart <christian@paral.in>
paralin added a commit to paralin/ts-poet that referenced this pull request Jul 1, 2022
The TypeScript compiler will recognize that an import to foo.js is actually an
import to foo.ts, if the .ts file exists and the .js file does not.

If two import paths are the same, ignoring a ".js" or ".ts" or ".jsx" suffix,
treat them as belonging to the same module.

Related to: stephenh/ts-proto#602

Signed-off-by: Christian Stewart <christian@paral.in>
@paralin paralin force-pushed the fix-suffix-imports branch 3 times, most recently from 1361c99 to 1a965ec Compare July 1, 2022 22:59
@paralin
Copy link
Collaborator Author

paralin commented Jul 1, 2022

@stephenh Fixed.

Ts-jest doesn't support the .js import alias yet, so it required adding resolver: 'jest-ts-webcompat-resolver' to the jest.config.js.

@paralin paralin force-pushed the fix-suffix-imports branch from 1a965ec to 420cd12 Compare July 1, 2022 23:00
When importing a cross-referenced file, a line like this is generated:

  import { MyMessage } from '../myother/myother'

.. assuming there's a proto at ../myother/myother.proto

But if we add the suffix '.pb.ts' to the generated files:

  import { MyMessage } from '../myother/myother.pb'

Is not recognized as a TypeScript import by tsc because of the .pb suffix.

To fix this, we can just add .js, and the TypeScript compiler recognizes that we actually mean the .ts file:

  import { MyMessage } from '../myother/myother.pb.js'

Fixes stephenh#601

Fix the resolution in ts-jest with the jest-ts-webcompat-resolver:
See: kulshekhar/ts-jest#1057 (comment)

Signed-off-by: Christian Stewart <christian@paral.in>
@paralin paralin force-pushed the fix-suffix-imports branch from 420cd12 to 4db66bf Compare July 1, 2022 23:01
@paralin
Copy link
Collaborator Author

paralin commented Jul 1, 2022

Okay, I think it's good to go now 👍🏽

@stephenh stephenh merged commit 8dc38af into stephenh:main Jul 2, 2022
stephenh pushed a commit that referenced this pull request Jul 2, 2022
## [1.116.1](v1.116.0...v1.116.1) (2022-07-02)

### Bug Fixes

* add .js suffix to proto cross-reference imports ([#602](#602)) ([8dc38af](8dc38af)), closes [#601](#601) [/github.com/kulshekhar/ts-jest/issues/1057#issuecomment-481406624](https://github.com//github.com/kulshekhar/ts-jest/issues/1057/issues/issuecomment-481406624)
@stephenh
Copy link
Owner

stephenh commented Jul 2, 2022

🎉 This PR is included in version 1.116.1 🎉

The release is available on:

Your semantic-release bot 📦🚀

@paralin paralin deleted the fix-suffix-imports branch July 2, 2022 19:58
paralin added a commit to aperturerobotics/starpc that referenced this pull request Jul 2, 2022
Upstream PR was merged:

stephenh/ts-proto#602

Signed-off-by: Christian Stewart <christian@paral.in>
@zsmatrix62
Copy link

zsmatrix62 commented Jul 4, 2022

I think this change is making my error like below today: " Module not found: Error: Can't resolve '.xxxx.js' in ...

image

Are there any options to control the output just remove .js extension? .. im reverting the versions to use old libs...

@paralin
Copy link
Collaborator Author

paralin commented Jul 4, 2022

@zsmatrix62 if you use typescript 4.7 or later, it will correctly resolve the .js to the .ts

@zsmatrix62
Copy link

@zsmatrix62 if you use typescript 4.7 or later, it will correctly resolve the .js to the .ts

I'm using Angular13 which runs on ts 4.4 and only.

nonamich pushed a commit to nonamich/ts-proto that referenced this pull request Feb 3, 2025
# 1.0.0 (2025-02-03)

### Bug Fixes

* `outputSchema=true` when `onlyTypes=true` ([#1039](https://github.com/nonamich/ts-proto/issues/1039)) ([064665f](https://github.com/nonamich/ts-proto/commit/064665f064e072f9d530f84e45f605fd4b5a749c))
* add .js suffix to proto cross-reference imports ([#602](https://github.com/nonamich/ts-proto/issues/602)) ([8dc38af](https://github.com/nonamich/ts-proto/commit/8dc38af40e68262cd53469ce3dc4dcac670365da)), closes [#601](https://github.com/nonamich/ts-proto/issues/601) [/github.com/kulshekhar/ts-jest/issues/1057#issuecomment-481406624](https://github.com//github.com/kulshekhar/ts-jest/issues/1057/issues/issuecomment-481406624)
* Add 'as any' in create ([#895](https://github.com/nonamich/ts-proto/issues/895)) ([4214d5a](https://github.com/nonamich/ts-proto/commit/4214d5af98817f317760298b1b2e03a8e956329c)), closes [#838](https://github.com/nonamich/ts-proto/issues/838)
* add callback close condition ([#837](https://github.com/nonamich/ts-proto/issues/837)) ([2071c67](https://github.com/nonamich/ts-proto/commit/2071c67650a3ac80ec9b5845fec3227ee47841d0))
* Add check for lower bound with forceLong=number ([#1057](https://github.com/nonamich/ts-proto/issues/1057)) ([01ef3c3](https://github.com/nonamich/ts-proto/commit/01ef3c3bb2a6ebb5b15fe8acfdc73f50b19a5a38))
* add deprecated comment when there are not other comments ([#189](https://github.com/nonamich/ts-proto/issues/189)) ([5b6148b](https://github.com/nonamich/ts-proto/commit/5b6148bea45b06fd475493a09f12e625b87d27c3))
* Add functionality for grpc camel case to respect splitting by word ([#721](https://github.com/nonamich/ts-proto/issues/721)) ([4af040c](https://github.com/nonamich/ts-proto/commit/4af040c233792862db85c07d01d1b210a13cae2c)), closes [#722](https://github.com/nonamich/ts-proto/issues/722)
* Add long dep to ts-proto-descriptors. ([#275](https://github.com/nonamich/ts-proto/issues/275)) ([0d20827](https://github.com/nonamich/ts-proto/commit/0d20827dbae5195d30a3094c4ea5e98833909daa))
* Add M1/ARM support for the test suite ([#516](https://github.com/nonamich/ts-proto/issues/516)) ([7cf5625](https://github.com/nonamich/ts-proto/commit/7cf56251726d149eebd015367476f36e4edb48aa))
* add missing `boolean` to `DeepPartial` ([#287](https://github.com/nonamich/ts-proto/issues/287)) ([ba18380](https://github.com/nonamich/ts-proto/commit/ba1838069c6119516ceb1bfa5bc0242724e2b520))
* Add missing defaults to fromPartial if options.oneof is UNIONS ([#375](https://github.com/nonamich/ts-proto/issues/375)) ([21781e9](https://github.com/nonamich/ts-proto/commit/21781e98bb6117b540be8c3f2c38ac3ad5cbbb44))
* Add missing globalThis prefixes. ([#988](https://github.com/nonamich/ts-proto/issues/988)) ([86aca54](https://github.com/nonamich/ts-proto/commit/86aca54afdcda88bc77b77c9c363f422e0f66be7)), closes [#987](https://github.com/nonamich/ts-proto/issues/987)
* Add service to the client constructor. ([#455](https://github.com/nonamich/ts-proto/issues/455)) ([8c32104](https://github.com/nonamich/ts-proto/commit/8c32104a8522cfe2febcf2338d51710021d837ff))
* add serviceName to grpc-js client constructor type ([#980](https://github.com/nonamich/ts-proto/issues/980)) ([2c6682d](https://github.com/nonamich/ts-proto/commit/2c6682df400a5b1e4bcb9c5bc233dbd7a65df987))
* add support of importSuffix=.js for index files ([#986](https://github.com/nonamich/ts-proto/issues/986)) ([183cf03](https://github.com/nonamich/ts-proto/commit/183cf039895184edd365e6cb7bb9751426ac56f4))
* Added null propagation and guard ([#1127](https://github.com/nonamich/ts-proto/issues/1127)) ([86637fa](https://github.com/nonamich/ts-proto/commit/86637fa6c39ddcc09cab3c486c34b7a52adaf694))
* Adding a failing regression test for wrapper types ([#689](https://github.com/nonamich/ts-proto/issues/689)) ([bde2e28](https://github.com/nonamich/ts-proto/commit/bde2e28ad70bf05ebb21effcdb1caad7217c8291))
* Additional fix for structs with useMapType. ([#743](https://github.com/nonamich/ts-proto/issues/743)) ([3264b0f](https://github.com/nonamich/ts-proto/commit/3264b0f4a98f3e00b262ce8af7927b0bc0375160))
* Allow other services with nestJs. ([#982](https://github.com/nonamich/ts-proto/issues/982)) ([45bba3c](https://github.com/nonamich/ts-proto/commit/45bba3ce7ce723682a6ba2e2104d43ab3fd6978c))
* always use Map for int64 keys ([#708](https://github.com/nonamich/ts-proto/issues/708)) ([#905](https://github.com/nonamich/ts-proto/issues/905)) ([cf2fb59](https://github.com/nonamich/ts-proto/commit/cf2fb59de20f8a60ead23294439dacbdbe6dfc14))
* Avoid namespace conflict on globalThis. ([#735](https://github.com/nonamich/ts-proto/issues/735)) ([71e919e](https://github.com/nonamich/ts-proto/commit/71e919e7de4a2482e9389a5cbfd76853a1db73fb)), closes [#732](https://github.com/nonamich/ts-proto/issues/732)
* Build before releasing, fixes [#267](https://github.com/nonamich/ts-proto/issues/267). ([#269](https://github.com/nonamich/ts-proto/issues/269)) ([1f1bcfe](https://github.com/nonamich/ts-proto/commit/1f1bcfeca329e36c41c069b791e803ceb7cb975c))
* Bump descriptors. ([#883](https://github.com/nonamich/ts-proto/issues/883)) ([e2cf184](https://github.com/nonamich/ts-proto/commit/e2cf1848c1c70a8bbe73756e1cf530c5d70f5ce2))
* Bump node in ts-proto.Dockerfile. ([42f3cea](https://github.com/nonamich/ts-proto/commit/42f3ceac5323056b1b845b51919ecddaa32bf258))
* Bump protobufjs. ([#585](https://github.com/nonamich/ts-proto/issues/585)) ([ba6b85d](https://github.com/nonamich/ts-proto/commit/ba6b85d9d5b7ce191dce898c462cf164a6b1e308))
* Bump ts-poet to use @dprint/typescript. ([#662](https://github.com/nonamich/ts-proto/issues/662)) ([84b64f4](https://github.com/nonamich/ts-proto/commit/84b64f4219f96199e8722678354430fbf00cebba))
* Bump ts-proto-descriptors to restore any-less _unknownFields. ([#810](https://github.com/nonamich/ts-proto/issues/810)) ([de9c307](https://github.com/nonamich/ts-proto/commit/de9c3079210caed1d0d3da782a4d0f2e54f52652))
* Bump ts-proto-descriptors w/long back. ([#880](https://github.com/nonamich/ts-proto/issues/880)) ([d27e19c](https://github.com/nonamich/ts-proto/commit/d27e19c84420d46dff0fc1914ce724ec15f86185))
* Bump ts-proto-descriptors. ([#1102](https://github.com/nonamich/ts-proto/issues/1102)) ([3d1cd61](https://github.com/nonamich/ts-proto/commit/3d1cd61ed7bbac4d6dc7353c49d0732aad22a504)), closes [#1101](https://github.com/nonamich/ts-proto/issues/1101)
* Bump ts-proto-descriptors. ([#876](https://github.com/nonamich/ts-proto/issues/876)) ([ad57819](https://github.com/nonamich/ts-proto/commit/ad57819a16b5f3886bde3c8f63231dc70f84d250))
* camelToSnake to respect uppercase words, such as "GetAPIValue" -> "GET_API_VALUE" ([#1046](https://github.com/nonamich/ts-proto/issues/1046)) ([d2e75cd](https://github.com/nonamich/ts-proto/commit/d2e75cd14cdf3bc0c35f59bf8e8a095c57e9c040))
* close server stream on observer unsubscribe ([#309](https://github.com/nonamich/ts-proto/issues/309)) ([4b72563](https://github.com/nonamich/ts-proto/commit/4b7256381c3b2ff2d4d5190e878de6903cd0d53a))
* code generation for int64 map values in fromPartial and fromJson ([#395](https://github.com/nonamich/ts-proto/issues/395)) ([d3ea8eb](https://github.com/nonamich/ts-proto/commit/d3ea8eb69e19a5e45fcc1766c4af1194b17e48fc))
* code-generation for Services with Struct response types ([#407](https://github.com/nonamich/ts-proto/issues/407)) ([f041fa1](https://github.com/nonamich/ts-proto/commit/f041fa1047816748c366bcb81895b6b917eb328d))
* Compilation error for nested repeated fields with `useOptionals=all` ([#1113](https://github.com/nonamich/ts-proto/issues/1113)) ([e89fc51](https://github.com/nonamich/ts-proto/commit/e89fc51fcc3ba494a81884cc136779202d3f1e16)), closes [#1112](https://github.com/nonamich/ts-proto/issues/1112)
* conditional export ([#1003](https://github.com/nonamich/ts-proto/issues/1003)) ([4a15839](https://github.com/nonamich/ts-proto/commit/4a15839943b501af750b9d142dba2cb3889b4617))
* Consistently apply lowerCaseServiceMethods=true ([#332](https://github.com/nonamich/ts-proto/issues/332)) ([57f2473](https://github.com/nonamich/ts-proto/commit/57f24739f425ec05eabd8c8d6959d4b1b14623a1))
* Depend specifically on long 5.2.3. ([#892](https://github.com/nonamich/ts-proto/issues/892)) ([2b976f2](https://github.com/nonamich/ts-proto/commit/2b976f295fc1fbab6d0fb5ad86cfad26ed722c8a))
* deprecated grpc and replace with @grpc/grpc-js ([#362](https://github.com/nonamich/ts-proto/issues/362)) ([1a11b97](https://github.com/nonamich/ts-proto/commit/1a11b97e9b5e92e79fdd4e22d3e8ea4536af243b))
* do not mention :local scripts ([#974](https://github.com/nonamich/ts-proto/issues/974)) ([ef30da5](https://github.com/nonamich/ts-proto/commit/ef30da58d60b9098eb50b7e27489ac8ef854022e))
* Don't close client if we've already aborted ([#968](https://github.com/nonamich/ts-proto/issues/968)) ([7ee1507](https://github.com/nonamich/ts-proto/commit/7ee15075b2f35fac92790885c02f5a0edba9a76a))
* Don't fail on Function message names ([#1119](https://github.com/nonamich/ts-proto/issues/1119)) ([da048a1](https://github.com/nonamich/ts-proto/commit/da048a1e78cdc1baa228700c40a944652998d2a1)), closes [#1110](https://github.com/nonamich/ts-proto/issues/1110)
* don't generate transitively imported files for mapped imports ([#854](https://github.com/nonamich/ts-proto/issues/854)) ([edd9044](https://github.com/nonamich/ts-proto/commit/edd9044568739b089f1ec66b53d0cc36d540610b))
* don't reference globalThis.Buffer when env=browser ([#967](https://github.com/nonamich/ts-proto/issues/967)) ([#999](https://github.com/nonamich/ts-proto/issues/999)) ([0d34612](https://github.com/nonamich/ts-proto/commit/0d34612ce8878b1dccbeb001686ef4051080e043))
* ensure default service streaming methods compile when middleware methods are enabled ([#996](https://github.com/nonamich/ts-proto/issues/996)) ([a9e975b](https://github.com/nonamich/ts-proto/commit/a9e975b41b760970da264a48cc3fb4ecc4b57a1d))
* ensure docker-compose platform is amd64 ([#990](https://github.com/nonamich/ts-proto/issues/990)) ([bdf4710](https://github.com/nonamich/ts-proto/commit/bdf4710b76aafc3fde47aa77a5786387e2236242))
* ensure generated fromTimestamp works when useOptionals=all ([#832](https://github.com/nonamich/ts-proto/issues/832)) ([1f82445](https://github.com/nonamich/ts-proto/commit/1f8244569de87ad99ed3676244e51291af9b3323))
* enum default value when remove-enum-prefix and string-enum both on ([#902](https://github.com/nonamich/ts-proto/issues/902)) ([594b137](https://github.com/nonamich/ts-proto/commit/594b137cdffbf6256b9d0ee6bb82822ce22c7b94))
* enum type returns 'UNRECOGNIZED' or '-1' in xxxToJSON/xxxToNumber ([#566](https://github.com/nonamich/ts-proto/issues/566)) ([19911a1](https://github.com/nonamich/ts-proto/commit/19911a1c62e3fe5c8a0eb0a795489340512898da))
* error handling on non-Error type errors ([#983](https://github.com/nonamich/ts-proto/issues/983)) ([8c567fc](https://github.com/nonamich/ts-proto/commit/8c567fc6e4cefdf96a2e021e8ca72d6ee45cc26e))
* esModuleInterop not working for object-hash and dataloader imports ([#794](https://github.com/nonamich/ts-proto/issues/794)) ([9fc9632](https://github.com/nonamich/ts-proto/commit/9fc9632e03a18f7a2d6e95a72ff959be93199981))
* Extend `global.Error` to avoid import collisions with Error proto msgs ([#699](https://github.com/nonamich/ts-proto/issues/699)) ([e9d8f91](https://github.com/nonamich/ts-proto/commit/e9d8f9123b7b3c5e274035fa3f2644b370915181))
* Field starting with '_' generates an interface property starting with 'undefined' ([#344](https://github.com/nonamich/ts-proto/issues/344)) ([fab354f](https://github.com/nonamich/ts-proto/commit/fab354f3f8f3aae51bb0377f98138bc80a1113e3))
* Fix bad grpc.Metadata import. Fixes [#188](https://github.com/nonamich/ts-proto/issues/188). ([#259](https://github.com/nonamich/ts-proto/issues/259)) ([cd83733](https://github.com/nonamich/ts-proto/commit/cd83733bfe64ba637633282c3170011051dec41e))
* Fix buf publishing with yarn v3. ([#726](https://github.com/nonamich/ts-proto/issues/726)) ([e125d2b](https://github.com/nonamich/ts-proto/commit/e125d2bad21acfb27579b1ce252151678a91f2bc))
* Fix build from typescript bump. ([3ecd498](https://github.com/nonamich/ts-proto/commit/3ecd4986063952ae06c6136fbd9ae0cfc75212d8))
* Fix codegen for google.protobuf.Struct with useMapType=true ([#740](https://github.com/nonamich/ts-proto/issues/740)) ([0647151](https://github.com/nonamich/ts-proto/commit/0647151b356d7b22f8baf72b70f5a0353259b404))
* fix codegen for maps with wrapper value type ([#370](https://github.com/nonamich/ts-proto/issues/370)) ([dd2481d](https://github.com/nonamich/ts-proto/commit/dd2481df0835faafc561aad4a4d0c9c2ff9d868a))
* Fix encode wrap types ([#303](https://github.com/nonamich/ts-proto/issues/303)) ([533c0e0](https://github.com/nonamich/ts-proto/commit/533c0e0959943562a59de5f456b83ab0b0b6abed))
* Fix generating wrong web-rpc implementation for wrapper-type method arg ([#978](https://github.com/nonamich/ts-proto/issues/978)) ([063fd29](https://github.com/nonamich/ts-proto/commit/063fd29974e0e917ad69cd5a158ee233edb5e019))
* Fix integration test codegen script ([#291](https://github.com/nonamich/ts-proto/issues/291)) ([a51eee5](https://github.com/nonamich/ts-proto/commit/a51eee55d07c43b4b7cbe1ad2eb010f33c216a29))
* Fix invocation error. ([f4e26bd](https://github.com/nonamich/ts-proto/commit/f4e26bd44f6882318defab1fccd0d6a833823fc0))
* Fix push_to_buf_registry check. ([22ac914](https://github.com/nonamich/ts-proto/commit/22ac914cd8626258ceb35fd435b899a819518988))
* Fix running yarn:test locally. ([#1097](https://github.com/nonamich/ts-proto/issues/1097)) ([30385ed](https://github.com/nonamich/ts-proto/commit/30385edd565d873d550df765dac9570c125bef2c))
* Fix snake casing numbers. ([#1052](https://github.com/nonamich/ts-proto/issues/1052)) ([f85a2f1](https://github.com/nonamich/ts-proto/commit/f85a2f1ed4e04143b96d6eaa3a589b16944d3239)), closes [#1048](https://github.com/nonamich/ts-proto/issues/1048)
* Fix snakeToCamel single value parsing. ([#513](https://github.com/nonamich/ts-proto/issues/513)) ([e1ad866](https://github.com/nonamich/ts-proto/commit/e1ad866c95751c37ed13f02f4da2dc9076ab4758))
* Fix ts-poet typo in package.json. ([#589](https://github.com/nonamich/ts-proto/issues/589)) ([5211347](https://github.com/nonamich/ts-proto/commit/5211347cb21ac7d117349a32a87c0d017999c44a))
* Fix TypeScript errors when compiling with `noUncheckedIndexedAccess` ([#297](https://github.com/nonamich/ts-proto/issues/297)) ([f865e43](https://github.com/nonamich/ts-proto/commit/f865e431c2613a1cfe9dc1d87fba6a9e4bcd3b16))
* Fix version loading in new dist layout. ([#1091](https://github.com/nonamich/ts-proto/issues/1091)) ([f1c23d2](https://github.com/nonamich/ts-proto/commit/f1c23d2eab096b7c6b2decd9f0886b5300c52712))
* Fix version number for Buf plugin. ([dc1fb7e](https://github.com/nonamich/ts-proto/commit/dc1fb7e766ed4115d026e7ff0e9a9480c1e42380))
* fixed addGrpcMetadata option ([#761](https://github.com/nonamich/ts-proto/issues/761)) ([cb2b573](https://github.com/nonamich/ts-proto/commit/cb2b5733ddd71589a00a4960906c65869303706b))
* fixing exportCommonSymbols in nestjs ([#916](https://github.com/nonamich/ts-proto/issues/916)) ([daf41f7](https://github.com/nonamich/ts-proto/commit/daf41f7c2654e801994c0791fb3f9f178b5d8ad8))
* generate canonical JSON encoding for FieldMasks ([#510](https://github.com/nonamich/ts-proto/issues/510)) ([0ec4e97](https://github.com/nonamich/ts-proto/commit/0ec4e97a2649dc15af1c925f8a2ff6adf1e17d9b))
* generate different MessageType when using static-only ([#863](https://github.com/nonamich/ts-proto/issues/863)) ([477e5f5](https://github.com/nonamich/ts-proto/commit/477e5f5bc0aaf70a92d7231f4a9e746d13b2bbcf)), closes [#861](https://github.com/nonamich/ts-proto/issues/861)
* generate modules for empty files with esModuleInterop ([#992](https://github.com/nonamich/ts-proto/issues/992)) ([f0629ab](https://github.com/nonamich/ts-proto/commit/f0629ab0e9e0eded12142f363858d3dd8e292acd))
* google protobuf timestamps don't properly get suffixed when useDate=false and prefix/suffix ([#1146](https://github.com/nonamich/ts-proto/issues/1146)) ([53f799e](https://github.com/nonamich/ts-proto/commit/53f799e34b75940aeafec0fafa50f3bd5849dcad))
* grpc-js support for nestjs ([#307](https://github.com/nonamich/ts-proto/issues/307)) ([d11c8c2](https://github.com/nonamich/ts-proto/commit/d11c8c2bc041c2e8a25ebf7f1c68c901c18ee0ca))
* grpc-js timestamp conversion ([#755](https://github.com/nonamich/ts-proto/issues/755)) ([9d24bd3](https://github.com/nonamich/ts-proto/commit/9d24bd39d0fbebf636ba4aaf6567988bc177a413)), closes [#754](https://github.com/nonamich/ts-proto/issues/754)
* **Grpc-Web:** Fix compilation failure when a service definition contains a client streaming call. ([#535](https://github.com/nonamich/ts-proto/issues/535)) ([0c83892](https://github.com/nonamich/ts-proto/commit/0c83892693d5755c9fe848b442b5e666192103ab))
* Handle empty package ([#285](https://github.com/nonamich/ts-proto/issues/285)) ([5eadf92](https://github.com/nonamich/ts-proto/commit/5eadf9271fd9b00180593f3771266f3796a157bb))
* Have snakeToCamel leave existing mixed case. ([#482](https://github.com/nonamich/ts-proto/issues/482)) ([c0bf0fc](https://github.com/nonamich/ts-proto/commit/c0bf0fc13da70e2bde923cd1746119d2e7ac4b2f)), closes [#478](https://github.com/nonamich/ts-proto/issues/478)
* ignore `$type` field in `DeepPartial` ([#282](https://github.com/nonamich/ts-proto/issues/282)) ([6c5087e](https://github.com/nonamich/ts-proto/commit/6c5087ed489283bf7293a2cdbee71dd83484c68e))
* implement abort grpc web ([#785](https://github.com/nonamich/ts-proto/issues/785)) ([6a40d72](https://github.com/nonamich/ts-proto/commit/6a40d72d6a41d91264366d238dafd08291eba0b7))
* import fails when folder name overlaps with file name ([#1000](https://github.com/nonamich/ts-proto/issues/1000)) ([1e68e6f](https://github.com/nonamich/ts-proto/commit/1e68e6f0b2ca6fbffc51c0abe9b0f127350dd766))
* import Observable as a type ([#826](https://github.com/nonamich/ts-proto/issues/826)) ([52e84ba](https://github.com/nonamich/ts-proto/commit/52e84ba7ee8826cf3b33455b38bacfd0c68884ea))
* import protobufjs/minimal with importSuffix ([#616](https://github.com/nonamich/ts-proto/issues/616)) ([b86291c](https://github.com/nonamich/ts-proto/commit/b86291c58b1cb9d4064944a6371e928b564aef7f))
* Incorrect message names in the generated code for repeated fields ([#1073](https://github.com/nonamich/ts-proto/issues/1073)) ([8a95d8e](https://github.com/nonamich/ts-proto/commit/8a95d8e0983a38e604b6990461e726db566ff311)), closes [#1072](https://github.com/nonamich/ts-proto/issues/1072)
* initialize undefined optional fields upon use ([#802](https://github.com/nonamich/ts-proto/issues/802)) ([ee52e06](https://github.com/nonamich/ts-proto/commit/ee52e06a95d7790d1252831f1bb01344c94f16a4))
* Leave mixed case in all words. ([#488](https://github.com/nonamich/ts-proto/issues/488)) ([8a26c9c](https://github.com/nonamich/ts-proto/commit/8a26c9cba4c9897700aafe1a7f59d0b0f537764b))
* make struct types play well with type registry ([#503](https://github.com/nonamich/ts-proto/issues/503)) ([d62f854](https://github.com/nonamich/ts-proto/commit/d62f85478011c7eb3dbca196f79b452895406ece))
* Move dataloader to a devDependency. ([#877](https://github.com/nonamich/ts-proto/issues/877)) ([dbe1a96](https://github.com/nonamich/ts-proto/commit/dbe1a967ced7863492f82a977d6e5d34f4f034a6))
* **nestjs:** fixes grpc controller decorator ([#68](https://github.com/nonamich/ts-proto/issues/68)) ([fc67a32](https://github.com/nonamich/ts-proto/commit/fc67a32b7a66f56144b37d0a0a2904a6af6f5289))
* noImplicitReturns error in Value.unwrap ([#436](https://github.com/nonamich/ts-proto/issues/436)) ([2d7a5d0](https://github.com/nonamich/ts-proto/commit/2d7a5d04c72ace58fa3a6745c3857f6cc0468543)), closes [#432](https://github.com/nonamich/ts-proto/issues/432)
* oneof=union breaks wrapper types [#458](https://github.com/nonamich/ts-proto/issues/458) ([#462](https://github.com/nonamich/ts-proto/issues/462)) ([dd16992](https://github.com/nonamich/ts-proto/commit/dd16992a409f24e88e3a142830cd0745f50dbd10))
* Only check file dependencies once/file. ([#901](https://github.com/nonamich/ts-proto/issues/901)) ([8d61980](https://github.com/nonamich/ts-proto/commit/8d6198020a5ec775b0dbaf7e08924f4bdcc677f8)), closes [#900](https://github.com/nonamich/ts-proto/issues/900)
* **options:** initializes M opt to empty object ([#673](https://github.com/nonamich/ts-proto/issues/673)) ([cb76c5e](https://github.com/nonamich/ts-proto/commit/cb76c5ea565081d610be08451e452269c5d3837c))
* Pin ts-proto-descriptors to 1.3.1. ([#481](https://github.com/nonamich/ts-proto/issues/481)) ([6f362bf](https://github.com/nonamich/ts-proto/commit/6f362bfd3517a6bcb440d65e7ac63cd2b0bcc293)), closes [#480](https://github.com/nonamich/ts-proto/issues/480)
* prefix and suffixes were not being applied to to/fromTimestamp resulting in compile error ([#1118](https://github.com/nonamich/ts-proto/issues/1118)) ([22c2905](https://github.com/nonamich/ts-proto/commit/22c2905ca53c88bdb2802386d414d584a451aa4c))
* problem with verbatimModuleSyntax for grpc-js ([#1132](https://github.com/nonamich/ts-proto/issues/1132)) ([bedfa31](https://github.com/nonamich/ts-proto/commit/bedfa317e7b115d10ee3de897eae2490b5eccdc9))
* regression in being able to return a Date as a GRPC return value ([#534](https://github.com/nonamich/ts-proto/issues/534)) ([22b76ec](https://github.com/nonamich/ts-proto/commit/22b76eccfc0d26309aab9e454de31ef020595be8))
* remove Long import statement when Long was unused ([#599](https://github.com/nonamich/ts-proto/issues/599)) ([58dc10c](https://github.com/nonamich/ts-proto/commit/58dc10c61ec5a76d4b54ba9eddf34021979dd4aa))
* remove Record word conflict ([#638](https://github.com/nonamich/ts-proto/issues/638)) ([5664d09](https://github.com/nonamich/ts-proto/commit/5664d097ac33da423b0f4e79f962fd71912358a0))
* remove-enum-prefix for nested enums ([#903](https://github.com/nonamich/ts-proto/issues/903)) ([efdbf47](https://github.com/nonamich/ts-proto/commit/efdbf476b26c49c1bc56f9404f49667f2acc1f8b))
* repeated uint64 fields do not encode properly with bigint option ([#751](https://github.com/nonamich/ts-proto/issues/751)) ([dcdd7e2](https://github.com/nonamich/ts-proto/commit/dcdd7e23479721d127138eeda8b143c100a0730a))
* resolve import collisions for enums ([#339](https://github.com/nonamich/ts-proto/issues/339)) ([8118748](https://github.com/nonamich/ts-proto/commit/81187488edbbe7b1c8e7028e0bc8f3a8005a97c8))
* resolve import collisions for enums ([#341](https://github.com/nonamich/ts-proto/issues/341)) ([50fe34e](https://github.com/nonamich/ts-proto/commit/50fe34ecc66877bead1f0ae55afe28b88e5eda10))
* resolve import collisions for interfaces ([#300](https://github.com/nonamich/ts-proto/issues/300)) ([773d866](https://github.com/nonamich/ts-proto/commit/773d86686c15e9e831ad1c22405dee8d7251072e)), closes [#298](https://github.com/nonamich/ts-proto/issues/298)
* resolve import collisions for services ([#651](https://github.com/nonamich/ts-proto/issues/651)) ([ee0296f](https://github.com/nonamich/ts-proto/commit/ee0296ffe087665b54bac714e964e7243010fb22))
* respect generateClientImpl=false in grpc-js ([#471](https://github.com/nonamich/ts-proto/issues/471)) ([#472](https://github.com/nonamich/ts-proto/issues/472)) ([2f389f2](https://github.com/nonamich/ts-proto/commit/2f389f243ef11d8d58c32ce37c371aba2cdf294e))
* Respect stringEnums option in wrap function ([#420](https://github.com/nonamich/ts-proto/issues/420)) ([7adf90c](https://github.com/nonamich/ts-proto/commit/7adf90c23c46950bcf457b317764393ff4af2bf2))
* return grpc-web response without toObject method ([#728](https://github.com/nonamich/ts-proto/issues/728)) ([7431aa8](https://github.com/nonamich/ts-proto/commit/7431aa8e5718ad8a8fe48651798f203995bf705b)), closes [stephenh/ts-proto#636](https://github.com/stephenh/ts-proto/issues/636)
* return types and optional chaining in field masks when `useOptionals=all` ([#957](https://github.com/nonamich/ts-proto/issues/957)) ([a3d7bd4](https://github.com/nonamich/ts-proto/commit/a3d7bd4eaf0b25cd8d7991cc85893ce3d8ab7937))
* Revert "feat: support grpc-web client straming ([#617](https://github.com/nonamich/ts-proto/issues/617))" ([#632](https://github.com/nonamich/ts-proto/issues/632)) ([2f4ecc7](https://github.com/nonamich/ts-proto/commit/2f4ecc7434df6b8f2ff08b929f9032170b04e858))
* revert useDate=false behaviour; add useJsonTimestamp option ([#969](https://github.com/nonamich/ts-proto/issues/969)) ([15ae516](https://github.com/nonamich/ts-proto/commit/15ae516ae09b27d5adf41b5e85fe509792c5854e))
* **Schema generation:** ensure Buffer api is only used when in nodejs environment ([#1134](https://github.com/nonamich/ts-proto/issues/1134)) ([49035a4](https://github.com/nonamich/ts-proto/commit/49035a47e1d859563c631267ea7e1724cbf2c4a8))
* simplify handling useJsonWireFormat=true and fix onlyTypes=true ([#583](https://github.com/nonamich/ts-proto/issues/583)) ([6e7f938](https://github.com/nonamich/ts-proto/commit/6e7f9387d144f506ded982604f32981ac5e327de))
* Simplify safe key handling. ([#950](https://github.com/nonamich/ts-proto/issues/950)) ([5e0e6ca](https://github.com/nonamich/ts-proto/commit/5e0e6ca1d76f5c9aaef5f40a9cc685538251a5f9))
* standalone dockerized protoc alias ([#438](https://github.com/nonamich/ts-proto/issues/438)) ([466f7d9](https://github.com/nonamich/ts-proto/commit/466f7d91551c6297fc1b9677f7a5839f8cdba0c6))
* Struct wrap/unwrap snake case [#579](https://github.com/nonamich/ts-proto/issues/579) ([#588](https://github.com/nonamich/ts-proto/issues/588)) ([33f89bf](https://github.com/nonamich/ts-proto/commit/33f89bfcf0d5d9e64a6fd360eaefc140055e9291))
* support json_name containing hyphen on all field types ([#521](https://github.com/nonamich/ts-proto/issues/521)) ([8d9e78e](https://github.com/nonamich/ts-proto/commit/8d9e78eb39c460f6727458f6a2dd149deb983668))
* support mutliple options in snakeToCamel flag  ([#429](https://github.com/nonamich/ts-proto/issues/429)) ([cff6674](https://github.com/nonamich/ts-proto/commit/cff667406cba21676546fd91b04cf2cbc571ed7d)), closes [#423](https://github.com/nonamich/ts-proto/issues/423)
* Support repeated string enums. ([#284](https://github.com/nonamich/ts-proto/issues/284)) ([be9ecf7](https://github.com/nonamich/ts-proto/commit/be9ecf785952ab7515155cb495e8e0da76b93a38))
* Support using messages called String/Boolean/Number/Array ([#934](https://github.com/nonamich/ts-proto/issues/934)) ([f75159b](https://github.com/nonamich/ts-proto/commit/f75159bde85c8d85a2be938c6e3db78c77318890)), closes [#927](https://github.com/nonamich/ts-proto/issues/927)
* Temporarily put anys back to release. ([c6f189e](https://github.com/nonamich/ts-proto/commit/c6f189e62605553707534a86bf1964ad178dbd73))
* toJSON Function with `removeEnumPrefix=true` and `unrecognizedEnumValue=0` Options ([#1089](https://github.com/nonamich/ts-proto/issues/1089)) ([2401490](https://github.com/nonamich/ts-proto/commit/24014908f814e2720b9c2b9bd2ae1773be880a16)), closes [#1086](https://github.com/nonamich/ts-proto/issues/1086) [#1086](https://github.com/nonamich/ts-proto/issues/1086)
* toJSON methods don't respect useDate=false ([#935](https://github.com/nonamich/ts-proto/issues/935)) ([#937](https://github.com/nonamich/ts-proto/issues/937)) ([acdfb0a](https://github.com/nonamich/ts-proto/commit/acdfb0a100c9de1d51cb1710cc3fb40566d16706))
* Try combined workflow. ([c293c1f](https://github.com/nonamich/ts-proto/commit/c293c1f379cb69635c968d5b8094135931bcea54))
* Try fixing the Buf publish step. ([47ef176](https://github.com/nonamich/ts-proto/commit/47ef176056108bba8fb553f0d7b53d11e139bfbc))
* Type Error when map contains string enums [#382](https://github.com/nonamich/ts-proto/issues/382) ([#529](https://github.com/nonamich/ts-proto/issues/529)) ([c2107b9](https://github.com/nonamich/ts-proto/commit/c2107b96b494a500a4773ac04900a1acd13c507a))
* typescript errors for struct with optional=all ([#1008](https://github.com/nonamich/ts-proto/issues/1008)) ([e838e38](https://github.com/nonamich/ts-proto/commit/e838e3801e0ef5e8b5a14ead7d7dfc0ad3532cf1)), closes [#578](https://github.com/nonamich/ts-proto/issues/578)
* Unbreak a use case for [#1110](https://github.com/nonamich/ts-proto/issues/1110) / fix for [#1121](https://github.com/nonamich/ts-proto/issues/1121) ([#1123](https://github.com/nonamich/ts-proto/issues/1123)) ([476e99b](https://github.com/nonamich/ts-proto/commit/476e99bcbc651cec1946d0dbad09dc9aea3224ff))
* Unwrap google.protobuf.BytesValue to Buffer when env=node ([#439](https://github.com/nonamich/ts-proto/issues/439)) ([73aa836](https://github.com/nonamich/ts-proto/commit/73aa8368300818068f3cddc5f046d990c66ab4f2))
* update basic grpc implementation ([#1153](https://github.com/nonamich/ts-proto/issues/1153)) ([6ec7909](https://github.com/nonamich/ts-proto/commit/6ec7909f65c87c01c51468f1df898b33dad9fd8e))
* update codegen for `nice-grpc` ([#561](https://github.com/nonamich/ts-proto/issues/561)) ([d503f67](https://github.com/nonamich/ts-proto/commit/d503f677922402e880b5d8502b3d8bc099b7f39d))
* Update type imports syntax on gRPC generation ([#921](https://github.com/nonamich/ts-proto/issues/921)) ([b10ab31](https://github.com/nonamich/ts-proto/commit/b10ab31a479420413998840eab866ab51f72285d))
* Use a Map when map keys are boolean. ([#933](https://github.com/nonamich/ts-proto/issues/933)) ([c1253a3](https://github.com/nonamich/ts-proto/commit/c1253a3761405d7a2ffe4d15f4c3ffb364697a02)), closes [#926](https://github.com/nonamich/ts-proto/issues/926)
* Use a module star import for protobuf types. ([#540](https://github.com/nonamich/ts-proto/issues/540)) ([f5b7700](https://github.com/nonamich/ts-proto/commit/f5b770083dffe72338beb4a09432a2a917760eae))
* Use as any on globalThis.Buffer check for bytesFromBase64 ([#1005](https://github.com/nonamich/ts-proto/issues/1005)) ([bae741c](https://github.com/nonamich/ts-proto/commit/bae741cba9c22d08118e25619ba3e427e1c7bf9d)), closes [#1004](https://github.com/nonamich/ts-proto/issues/1004) [#967](https://github.com/nonamich/ts-proto/issues/967)
* Use as any on globalThis.Buffer check. ([#1004](https://github.com/nonamich/ts-proto/issues/1004)) ([11d06b4](https://github.com/nonamich/ts-proto/commit/11d06b4455a1f27793bfe172fffaf05b7a3400db)), closes [#967](https://github.com/nonamich/ts-proto/issues/967)
* use correct imports for optional fields ([#904](https://github.com/nonamich/ts-proto/issues/904)) ([fa13ec7](https://github.com/nonamich/ts-proto/commit/fa13ec752c6564af045081548f5fc5cabb687151))
* Use env prefix for Buf plugin. ([ea42caa](https://github.com/nonamich/ts-proto/commit/ea42caacbd919f9a8b6a9e3138d8a48e80ac86d9))
* Use globalThis for Array/String/Boolean ([#930](https://github.com/nonamich/ts-proto/issues/930)) ([9a252c3](https://github.com/nonamich/ts-proto/commit/9a252c3d4cf988496f6de17cc378dbb09a1baf92))
* Use jsonName even with snakeToCamel=false. ([#653](https://github.com/nonamich/ts-proto/issues/653)) ([1144886](https://github.com/nonamich/ts-proto/commit/1144886ef43eaf97b780c7aafb2c123fd49b3fe5)), closes [#635](https://github.com/nonamich/ts-proto/issues/635)
* use Long.fromValue instead of Long.fromString ([#562](https://github.com/nonamich/ts-proto/issues/562)) ([c99891e](https://github.com/nonamich/ts-proto/commit/c99891e0fec6d9b7225025eb0c5bd7393e80af36))
* use Long.fromValue instead of Long.fromString for improved robustness regarding already parsed objects ([#405](https://github.com/nonamich/ts-proto/issues/405)) ([7bdc3ee](https://github.com/nonamich/ts-proto/commit/7bdc3eee05ed1318e18e27aa7d5bb2680060f8b6))
* use optional chaining when both `forceLong=long` and `useOptionals=all` options are set in the generated fromTimestamp function ([#949](https://github.com/nonamich/ts-proto/issues/949)) ([b00db6f](https://github.com/nonamich/ts-proto/commit/b00db6fa42d511b9bef602a231a1f093664cd40c))
* Use outputs for Buf plugin workflow. ([7017d4c](https://github.com/nonamich/ts-proto/commit/7017d4c1f5eb2a8619dd03cc4f7a27c1dcf6c918))
* Use the npm environment. ([0103443](https://github.com/nonamich/ts-proto/commit/01034430c25461c0e5a46e2b9fd757ef4e0c91b1))
* Use the right Metadata for grpc-web. Fixes [#270](https://github.com/nonamich/ts-proto/issues/270). ([#271](https://github.com/nonamich/ts-proto/issues/271)) ([640e645](https://github.com/nonamich/ts-proto/commit/640e645dd93cd0e04abac17de9899aa6a172ac37))
* Use Uint8Array.forEach in base64FromBytes ([#544](https://github.com/nonamich/ts-proto/issues/544)) ([c7641ce](https://github.com/nonamich/ts-proto/commit/c7641ceb6a1c9da234245b9d808b2ded899dbbbc))
* Use underscore separator in snakeToCamel. ([#648](https://github.com/nonamich/ts-proto/issues/648)) ([b374910](https://github.com/nonamich/ts-proto/commit/b374910a8fb1d0efe6c5c5322f8788cc3cc1ca6c))
* use-readonly-types for oneof unions ([#706](https://github.com/nonamich/ts-proto/issues/706)) ([bc854ba](https://github.com/nonamich/ts-proto/commit/bc854bac083b8818d5fad77bc2e7995cfb01798e))
* various fixes ([#812](https://github.com/nonamich/ts-proto/issues/812)) ([ca18495](https://github.com/nonamich/ts-proto/commit/ca184958957b2c546e9a84173bc1c73425e33bc5))

### Features

*  Add support for 'json_name' annotation ([#408](https://github.com/nonamich/ts-proto/issues/408)) ([b519717](https://github.com/nonamich/ts-proto/commit/b5197174bcaacb8f163cd197d52ab9c645d21d4c))
* `enumsAsLiterals` option ([#450](https://github.com/nonamich/ts-proto/issues/450)) ([fcaade2](https://github.com/nonamich/ts-proto/commit/fcaade2855ae28ea3553a365556ccb92a9644d70))
* `no-file-descriptor` setting for outputSchema option ([#1047](https://github.com/nonamich/ts-proto/issues/1047)) ([c54f06c](https://github.com/nonamich/ts-proto/commit/c54f06c4a7dd766abf3f91932b1e4cdf38b7f346))
* `removeEnumPrefix` option ([#779](https://github.com/nonamich/ts-proto/issues/779)) ([53733e6](https://github.com/nonamich/ts-proto/commit/53733e61232f19ffb4f30abecd55a63899e2310c))
* add [@deprecated](https://github.com/deprecated) to JSDoc for deprecated fields ([eb25e2c](https://github.com/nonamich/ts-proto/commit/eb25e2c1efc96ffe2c705983fa0a2e6b67013daa))
* add an option to disable Exact types ([#456](https://github.com/nonamich/ts-proto/issues/456)) ([9c53d7e](https://github.com/nonamich/ts-proto/commit/9c53d7efb0252c7ea0af85a5d161ff94bcd69760))
* add before and after request methods to base service ([#961](https://github.com/nonamich/ts-proto/issues/961)) ([19ba6a5](https://github.com/nonamich/ts-proto/commit/19ba6a50c6fd4f574e20315e1ec721c5e04dab25))
* add bigint input validation ([#938](https://github.com/nonamich/ts-proto/issues/938)) ([0f9b6b1](https://github.com/nonamich/ts-proto/commit/0f9b6b1c5982427f77b111466a11c18e57b070bd))
* add create utility function to message defintions ([#760](https://github.com/nonamich/ts-proto/issues/760)) ([44fc7b2](https://github.com/nonamich/ts-proto/commit/44fc7b23ae72ec9c4fca86bee9a9774be097c058))
* add dynamic upStreamCodes option ([#618](https://github.com/nonamich/ts-proto/issues/618)) ([3091023](https://github.com/nonamich/ts-proto/commit/309102313273e09aef3a8480f4b46360ad82adaa))
* add error handler to rpc interface ([#965](https://github.com/nonamich/ts-proto/issues/965)) ([47cd16e](https://github.com/nonamich/ts-proto/commit/47cd16e048e19ebc0b8673bccffdade678cc0363))
* add generated code comments ([#1037](https://github.com/nonamich/ts-proto/issues/1037)) ([cdd4a76](https://github.com/nonamich/ts-proto/commit/cdd4a76238e292cb00d6a09d84e6b393ddde8204))
* Add generic metadata parameter to the generic service definition interface. ([#530](https://github.com/nonamich/ts-proto/issues/530)) ([0f5525a](https://github.com/nonamich/ts-proto/commit/0f5525ade80e7b69889dfd091a458e21bb14a265))
* Add globalThisPolyfill, defaults false. ([#931](https://github.com/nonamich/ts-proto/issues/931)) ([085fa21](https://github.com/nonamich/ts-proto/commit/085fa21603a74544af192f404289c2e62ecfd8f6))
* add importSuffix option and remove default .js suffix ([#612](https://github.com/nonamich/ts-proto/issues/612)) ([63a8895](https://github.com/nonamich/ts-proto/commit/63a8895f5a3a38fa3d5c0868f44e950e137fb697))
* Add interface for static message methods ([#1104](https://github.com/nonamich/ts-proto/issues/1104)) ([faa33b6](https://github.com/nonamich/ts-proto/commit/faa33b6f5170cabe4010c95d5f0a68b9f04f686b))
* Add js type support ([#1030](https://github.com/nonamich/ts-proto/issues/1030)) ([0dd951b](https://github.com/nonamich/ts-proto/commit/0dd951bf4d1a4c48f3d261c85cfa03586d20c13c)), closes [#958](https://github.com/nonamich/ts-proto/issues/958)
* add meta-data to stream error ([#620](https://github.com/nonamich/ts-proto/issues/620)) ([b68f301](https://github.com/nonamich/ts-proto/commit/b68f301b5fb4222a3fce676a7e5036cf00e77e11))
* Add nestJsRequiredSubMessage option ([1e69e46](https://github.com/nonamich/ts-proto/commit/1e69e4671d0261fe24ad1696b42ff5f64cfc2c18))
* add option `noDefaultsForOptionals` ([#1051](https://github.com/nonamich/ts-proto/issues/1051)) ([41d1020](https://github.com/nonamich/ts-proto/commit/41d10205bf68468c37cf69e58dc4c4fdbfffcf5b))
* add option to remove UNRECOGNIZED enum value ([#149](https://github.com/nonamich/ts-proto/issues/149)) ([19e8cf7](https://github.com/nonamich/ts-proto/commit/19e8cf77ead36962e01ff6419e07b7ccc4068fe8))
* add option to use async iterables ([#605](https://github.com/nonamich/ts-proto/issues/605)) ([ca8ea8d](https://github.com/nonamich/ts-proto/commit/ca8ea8d761c02d3ca4da6eaa156acff35d88c510)), closes [#600](https://github.com/nonamich/ts-proto/issues/600)
* Add options to limit generation of encode and decode methods to only specific message types ([#1085](https://github.com/nonamich/ts-proto/issues/1085)) ([c7372fa](https://github.com/nonamich/ts-proto/commit/c7372fab20cdac0199b79fd861e6b08113aba145)), closes [#1084](https://github.com/nonamich/ts-proto/issues/1084)
* add options to schema output ([#437](https://github.com/nonamich/ts-proto/issues/437)) ([e8e4e39](https://github.com/nonamich/ts-proto/commit/e8e4e3937292e07280f5154b584e60124118f093))
* Add static-only variant to to outputTypeAnnotations option ([#858](https://github.com/nonamich/ts-proto/issues/858)) ([d7c4af7](https://github.com/nonamich/ts-proto/commit/d7c4af7e068200b30cf773703ef906595aec6042))
* Add support for @grpc/grpc-js ([#252](https://github.com/nonamich/ts-proto/issues/252)) ([99a3d92](https://github.com/nonamich/ts-proto/commit/99a3d9218093c9aa1726f0c0b403cb0e95aac82e))
* add support for comments on union fields in generateOneofProperty ([#1136](https://github.com/nonamich/ts-proto/issues/1136)) ([c933c9c](https://github.com/nonamich/ts-proto/commit/c933c9c46dbaa278b33b16270bab51063ccb513c)), closes [#1122](https://github.com/nonamich/ts-proto/issues/1122)
* add support for generating `nice-grpc` server and client stubs ([#555](https://github.com/nonamich/ts-proto/issues/555)) ([8c19361](https://github.com/nonamich/ts-proto/commit/8c19361ede9a7a039acf3a1375913d012b0fcb7d)), closes [#545](https://github.com/nonamich/ts-proto/issues/545)
* add support for Struct in NestJS ([#762](https://github.com/nonamich/ts-proto/issues/762)) ([e8c6d8b](https://github.com/nonamich/ts-proto/commit/e8c6d8ba7bee902dbbda0c36dd9f6accfd222542))
* add support for unknown fields ([#473](https://github.com/nonamich/ts-proto/issues/473)) ([3bb9472](https://github.com/nonamich/ts-proto/commit/3bb9472943cf2e698b013487c7370a76576b68b6))
* Add support for useDate=string ([#221](https://github.com/nonamich/ts-proto/issues/221)) ([d967a9a](https://github.com/nonamich/ts-proto/commit/d967a9afd6cf63fc7b156d506b8683b2f8fd6569))
* Add type annotations flag ([#786](https://github.com/nonamich/ts-proto/issues/786)) ([b565ff5](https://github.com/nonamich/ts-proto/commit/b565ff57c0a64a3869ba7475c2b53f46504169d0))
* add unrecognizedEnumName and unrecognizedEnumValue options ([#946](https://github.com/nonamich/ts-proto/issues/946)) ([cd61e90](https://github.com/nonamich/ts-proto/commit/cd61e90e59844795fb5d7d86ec99bd37d2fdf21b))
* Add use-numeric-enum-json option. ([#625](https://github.com/nonamich/ts-proto/issues/625)) ([cd53d8c](https://github.com/nonamich/ts-proto/commit/cd53d8cacd6b4b8fa6517242020b216dd18eebdf))
* add useDate=string-nano option ([#981](https://github.com/nonamich/ts-proto/issues/981)) ([dc84098](https://github.com/nonamich/ts-proto/commit/dc840985d2afdd85e0b311c55aa831bac5da8ce4))
* Add useOptionals=all to enable non-field members to be optional. ([#402](https://github.com/nonamich/ts-proto/issues/402)) ([e7b70cb](https://github.com/nonamich/ts-proto/commit/e7b70cbd7b9bd43bf9e6e54e25bc48c527718317))
* add usePrototypeForDefaults option ([#484](https://github.com/nonamich/ts-proto/issues/484)) ([8e8c810](https://github.com/nonamich/ts-proto/commit/8e8c81016968e7d772dfac5ed54800898f039cbe))
* added bigint force long option ([#742](https://github.com/nonamich/ts-proto/issues/742)) ([3964e57](https://github.com/nonamich/ts-proto/commit/3964e575a6bdf90bbde937bcc71ac1f0255831b3))
* added nestJsTimestampTypeWrapper ([#567](https://github.com/nonamich/ts-proto/issues/567)) ([59d451e](https://github.com/nonamich/ts-proto/commit/59d451e2857856ff54a3afe03ae115a1824df66f))
* added option 'useJsonWireFormat' ([#576](https://github.com/nonamich/ts-proto/issues/576)) ([a71b145](https://github.com/nonamich/ts-proto/commit/a71b145c81136b8d8e3681b6753146d3ceeff179)), closes [#571](https://github.com/nonamich/ts-proto/issues/571)
* added the "typePrefix" and "typeSuffix" options. ([#1069](https://github.com/nonamich/ts-proto/issues/1069)) ([ab515cd](https://github.com/nonamich/ts-proto/commit/ab515cda322baeb94c7588117e4bb5bee6281874)), closes [#1033](https://github.com/nonamich/ts-proto/issues/1033)
* added useNullAsOptional option ([#1017](https://github.com/nonamich/ts-proto/issues/1017)) ([573f63e](https://github.com/nonamich/ts-proto/commit/573f63e761beef3981539cfbe29f786374186923)), closes [#869](https://github.com/nonamich/ts-proto/issues/869)
* adds support for emitting default scalar values in json ([#919](https://github.com/nonamich/ts-proto/issues/919)) ([01f529f](https://github.com/nonamich/ts-proto/commit/01f529f2b0eed486356ff6add9a43aabde3d1d0d))
* allow `$type` to be optional ([#1013](https://github.com/nonamich/ts-proto/issues/1013)) ([f285557](https://github.com/nonamich/ts-proto/commit/f285557a4f77d4b75327de2c13cf0917b0361f14))
* Allow comments to be omitted ([#989](https://github.com/nonamich/ts-proto/issues/989)) ([cb7eef7](https://github.com/nonamich/ts-proto/commit/cb7eef73f425251f6d09c90710fb8e5c93f56bdf))
* Allow optional suffix for generated files ([#431](https://github.com/nonamich/ts-proto/issues/431)) ([d826966](https://github.com/nonamich/ts-proto/commit/d826966f22830920444963b3894ffc0be9b7c319))
* Allow simultaneous services and generic service definitions ([#512](https://github.com/nonamich/ts-proto/issues/512)) ([680831e](https://github.com/nonamich/ts-proto/commit/680831e76f1a4ceb4337442a157d7e702cb14bfc))
* Avoid adding empty trailing comments to oneof unions ([#1140](https://github.com/nonamich/ts-proto/issues/1140)) ([5359e8d](https://github.com/nonamich/ts-proto/commit/5359e8d4b08ad114080f04ec8327bb2379dddd86)), closes [#1136](https://github.com/nonamich/ts-proto/issues/1136)
* bigIntLiteral option for using BigInt literals ([#1063](https://github.com/nonamich/ts-proto/issues/1063)) ([b89fbcb](https://github.com/nonamich/ts-proto/commit/b89fbcb1f99ccfcd1f06551286c2459e44a3bac2)), closes [#928](https://github.com/nonamich/ts-proto/issues/928) [#932](https://github.com/nonamich/ts-proto/issues/932)
* Bind service methods to class ([#290](https://github.com/nonamich/ts-proto/issues/290)) ([84060e2](https://github.com/nonamich/ts-proto/commit/84060e204d0e42688b8da85d434fe3d24788813b))
* Bump ts poet for dprint perf increase ([#668](https://github.com/nonamich/ts-proto/issues/668)) ([961d388](https://github.com/nonamich/ts-proto/commit/961d388fa7dc7cb25fbe700526cbd481f3a48ae1))
* Bump ts poet for perf increase ([#714](https://github.com/nonamich/ts-proto/issues/714)) ([0068dc8](https://github.com/nonamich/ts-proto/commit/0068dc8c8c34263ac4a7bc5866408453fc2c8b11))
* Bump ts-poet for dprint, also use tsx ([#660](https://github.com/nonamich/ts-proto/issues/660)) ([348a465](https://github.com/nonamich/ts-proto/commit/348a4651b42d5ff64fd07e36ef9ca7d7e76f4277))
* Bump ts-proto-descriptors to latest ts-proto. ([#1043](https://github.com/nonamich/ts-proto/issues/1043)) ([0b06554](https://github.com/nonamich/ts-proto/commit/0b065540d8fb4a3c1254a876d2be0dd48ac3ba66)), closes [#1042](https://github.com/nonamich/ts-proto/issues/1042)
* Bump ts-proto-descriptors. ([#489](https://github.com/nonamich/ts-proto/issues/489)) ([d454448](https://github.com/nonamich/ts-proto/commit/d454448b1889b1576c1ebcc6964a55a03af7d921)), closes [#493](https://github.com/nonamich/ts-proto/issues/493)
* change channel options to client options in generate grpc/js ([#704](https://github.com/nonamich/ts-proto/issues/704)) ([c4ac8ac](https://github.com/nonamich/ts-proto/commit/c4ac8ac12aaee0c897985f944ffe3f122e28eba9))
* **client:** allow overriding the service identifier ([#683](https://github.com/nonamich/ts-proto/issues/683)) ([10c7c99](https://github.com/nonamich/ts-proto/commit/10c7c99b1f43705d640ab1e602a7c1799e31ac08))
* conditionally add "Service" to nice-grpc's generated service interface name ([#710](https://github.com/nonamich/ts-proto/issues/710)) ([7c39cc0](https://github.com/nonamich/ts-proto/commit/7c39cc0729403dcb63ef353357fae3548b5a6667))
* enable prototype for defaults for ts-proto-descriptors ([#487](https://github.com/nonamich/ts-proto/issues/487)) ([2b5640f](https://github.com/nonamich/ts-proto/commit/2b5640f582e6adb4e81797a9cec217896061aadb))
* enable unknown fields for descriptor protos ([#479](https://github.com/nonamich/ts-proto/issues/479)) ([824c996](https://github.com/nonamich/ts-proto/commit/824c9962cd98dc0f9093e8909e3028d900094c54))
* Ensure strict(er) TS compliance for the generated code ([#868](https://github.com/nonamich/ts-proto/issues/868)) ([1405d4b](https://github.com/nonamich/ts-proto/commit/1405d4bcc866343605946ac4a0b30e7de9c75e71))
* enum decoding ([#910](https://github.com/nonamich/ts-proto/issues/910)) ([9e0a0b5](https://github.com/nonamich/ts-proto/commit/9e0a0b5c86004313f65eae88b8dc5e63deaaf251)), closes [ts-proto-#859](https://github.com/ts-proto-/issues/859) [ts-proto#859](https://github.com/ts-proto/issues/859) [ts-proto#859](https://github.com/ts-proto/issues/859) [ts-proto-#859](https://github.com/ts-proto-/issues/859) [#909](https://github.com/nonamich/ts-proto/issues/909)
* export options types ([#1027](https://github.com/nonamich/ts-proto/issues/1027)) ([9652586](https://github.com/nonamich/ts-proto/commit/965258656efaa07cc8b72feb8c6b8e202a000940))
* expose service name as a separate exported constant ([#851](https://github.com/nonamich/ts-proto/issues/851)) ([84a4ed6](https://github.com/nonamich/ts-proto/commit/84a4ed610089363e3ee7a6a29581d8e0ef695f0d))
* extensions ([#808](https://github.com/nonamich/ts-proto/issues/808)) ([f956128](https://github.com/nonamich/ts-proto/commit/f956128ad830f4538452d65dccedca3e08d6c871))
* framework-agnostic service definitions ([#316](https://github.com/nonamich/ts-proto/issues/316)) ([3d89282](https://github.com/nonamich/ts-proto/commit/3d89282176f8f16a33eea5042df0439c3f23b038))
* Generate Index Files ([#821](https://github.com/nonamich/ts-proto/issues/821)) ([85bf206](https://github.com/nonamich/ts-proto/commit/85bf206ca8c1052849aea3e39522ad4918e0d736))
* generate type namespaces for enums as literals ([#960](https://github.com/nonamich/ts-proto/issues/960)) ([e2619f6](https://github.com/nonamich/ts-proto/commit/e2619f6191e8bfb1deaf8474c26ea386c5c34e63))
* group encoding and decoding support ([#799](https://github.com/nonamich/ts-proto/issues/799)) ([5ebe3c0](https://github.com/nonamich/ts-proto/commit/5ebe3c07f5039db4f9b40e4e237d02d03c85a4e5))
* **Grpc-Web:** Add & export GrpcWebError type ([#593](https://github.com/nonamich/ts-proto/issues/593)) ([645987d](https://github.com/nonamich/ts-proto/commit/645987d023e666290e87086f5a0770c34e2fe978))
* implementation of useAbortSignal option for grpc-web ([#777](https://github.com/nonamich/ts-proto/issues/777)) ([7a3d429](https://github.com/nonamich/ts-proto/commit/7a3d4291806568a938e88f53a55683633f26ec4a))
* implemented emitImportedFiles flag ([#302](https://github.com/nonamich/ts-proto/issues/302)) ([16b4aca](https://github.com/nonamich/ts-proto/commit/16b4aca98aa9f0266734421314baaa5259e3f4e2)), closes [#294](https://github.com/nonamich/ts-proto/issues/294) [#283](https://github.com/nonamich/ts-proto/issues/283) [#283](https://github.com/nonamich/ts-proto/issues/283)
* Import CallContext and CallOptions as type ([#684](https://github.com/nonamich/ts-proto/issues/684)) ([8b388f6](https://github.com/nonamich/ts-proto/commit/8b388f6c9f57dac34ca5836a4313d8247bb0fceb)), closes [#677](https://github.com/nonamich/ts-proto/issues/677)
* import proto as type import if onlyTypes is set ([25d8e8b](https://github.com/nonamich/ts-proto/commit/25d8e8b9042142f1032feadc8a799b7a01115cc2))
* Improve map reading (fromJSON/fromPartial) ([#410](https://github.com/nonamich/ts-proto/issues/410)) ([057d438](https://github.com/nonamich/ts-proto/commit/057d438548d95c354331f7d2d767ccff952ad5c6))
* include _unknownFields as a field ([#806](https://github.com/nonamich/ts-proto/issues/806)) ([6b4ba39](https://github.com/nonamich/ts-proto/commit/6b4ba39a0651a2352db2ac70eb91d21138ccf887))
* Include dockerized protoc ([#404](https://github.com/nonamich/ts-proto/issues/404)) ([7564a78](https://github.com/nonamich/ts-proto/commit/7564a7887ccd0bb80cac19d313ee9bd8daae778d))
* include service and definition types with implementations ([#552](https://github.com/nonamich/ts-proto/issues/552)) ([6b896f4](https://github.com/nonamich/ts-proto/commit/6b896f4b7f4ba0f0d97730767421786171646aea))
* Initialize lists with map ([#387](https://github.com/nonamich/ts-proto/issues/387)) ([200e674](https://github.com/nonamich/ts-proto/commit/200e674e4baf2640d67720ad535fe042d291d4a0))
* Make sure all types support prefix/suffix ([#1148](https://github.com/nonamich/ts-proto/issues/1148)) ([ddf2122](https://github.com/nonamich/ts-proto/commit/ddf21224d76f63e28e915889aa931c170cde4734))
* Normalize `toJSON` output by omitting fields set to their default values ([#878](https://github.com/nonamich/ts-proto/issues/878)) ([50958d6](https://github.com/nonamich/ts-proto/commit/50958d639435a32a76d59fc57565e3677f5be39e))
* Official Buf Plugin ([#573](https://github.com/nonamich/ts-proto/issues/573)) ([e6272c4](https://github.com/nonamich/ts-proto/commit/e6272c487f73ff96afb4146a7998a892c4b43f14))
* omit optional fields in base instance ([#669](https://github.com/nonamich/ts-proto/issues/669)) ([47b60aa](https://github.com/nonamich/ts-proto/commit/47b60aab95533542cf762f152138f7ab4234de88))
* oneof=unions-value to use the same field name for oneof cases ([#1062](https://github.com/nonamich/ts-proto/issues/1062)) ([7493090](https://github.com/nonamich/ts-proto/commit/74930908cc8e5292577a793b7ae06c3721225ac3)), closes [#1060](https://github.com/nonamich/ts-proto/issues/1060)
* option to declare schema as const ([#1096](https://github.com/nonamich/ts-proto/issues/1096)) ([4cc1a1e](https://github.com/nonamich/ts-proto/commit/4cc1a1e4238cf628591414c02d39bd76dc75fb3a))
* option useSnakeTypeName ([#694](https://github.com/nonamich/ts-proto/issues/694)) ([ad73ff9](https://github.com/nonamich/ts-proto/commit/ad73ff9341d0d593156d10b5d96c4a47afdc802d))
* optional one of properties ([#705](https://github.com/nonamich/ts-proto/issues/705)) ([4c6cbb0](https://github.com/nonamich/ts-proto/commit/4c6cbb0ff71e053c634732e295ed812901d368ae))
* optionally output versions used to generate files ([#1040](https://github.com/nonamich/ts-proto/issues/1040)) ([53d6799](https://github.com/nonamich/ts-proto/commit/53d67995526770213ecf91c15645b9c74e7e5bd4))
* **options:** adds protoc-gen-go-like M option ([#672](https://github.com/nonamich/ts-proto/issues/672)) ([9304e5d](https://github.com/nonamich/ts-proto/commit/9304e5db7172db53530fb08fe0486f56b2a17181)), closes [#596](https://github.com/nonamich/ts-proto/issues/596)
* output-encode-only methods ([#787](https://github.com/nonamich/ts-proto/issues/787)) ([3594410](https://github.com/nonamich/ts-proto/commit/3594410cc18fecc9c6f76f8abf7bdf9fdd178acd))
* Reduce code size by using nullish coalescing operator in fromPartial ([#376](https://github.com/nonamich/ts-proto/issues/376)) ([19d2ded](https://github.com/nonamich/ts-proto/commit/19d2deda2cf7c47b1b56bfc65cf58653291dba4a))
* represent field masks as `string[]` ([#525](https://github.com/nonamich/ts-proto/issues/525)) ([903b216](https://github.com/nonamich/ts-proto/commit/903b216238db025e24ec3cfb2d20063aec1a40ed))
* Round numbers in toJSON. ([#444](https://github.com/nonamich/ts-proto/issues/444)) ([bd2df7b](https://github.com/nonamich/ts-proto/commit/bd2df7b7176e961955ed1dcacb3602384e13ee45))
* RPC: add useAbortSignal option ([#731](https://github.com/nonamich/ts-proto/issues/731)) ([69313a7](https://github.com/nonamich/ts-proto/commit/69313a7a0f19c41c61824081e12ed680fda32b74)), closes [#730](https://github.com/nonamich/ts-proto/issues/730)
* Service generation option ([#357](https://github.com/nonamich/ts-proto/issues/357)) ([7a2cf83](https://github.com/nonamich/ts-proto/commit/7a2cf831c3768e5afd76dea37f3165df4886136e))
* service options unknown methods ([#801](https://github.com/nonamich/ts-proto/issues/801)) ([994d0d0](https://github.com/nonamich/ts-proto/commit/994d0d0ac54b3e22cb27fa4c5b8a5b1d17b62521))
* Streaming support ([#373](https://github.com/nonamich/ts-proto/issues/373)) ([459b94f](https://github.com/nonamich/ts-proto/commit/459b94f5b2988d58d186461332e888c3e511603a))
* support `json_name` defined in a proto file ([#943](https://github.com/nonamich/ts-proto/issues/943)) ([de989af](https://github.com/nonamich/ts-proto/commit/de989af0d9bf9910dc3c047a18d97f289bffe2ee))
* support `useMapType` option ([#686](https://github.com/nonamich/ts-proto/issues/686)) ([f2e80ab](https://github.com/nonamich/ts-proto/commit/f2e80ab3ecc3a438ecbd88b2170b8119ebadfcd3))
* support `useReadonlyTypes` option ([#691](https://github.com/nonamich/ts-proto/issues/691)) ([4b87334](https://github.com/nonamich/ts-proto/commit/4b8733452fb59cea3b9fb4721159b97e6df59854))
* support deprecatedOnly option to make deprecated fields optional ([#1010](https://github.com/nonamich/ts-proto/issues/1010)) ([db23004](https://github.com/nonamich/ts-proto/commit/db230041f69fa6a7ff17db55595e7b8805e655ba))
* Support for Google.Protobuf.Value, ListValue and Struct ([#396](https://github.com/nonamich/ts-proto/issues/396)) ([7dd9c16](https://github.com/nonamich/ts-proto/commit/7dd9c16ffdec4d9ea296fbdc30d390fe44192c42))
* support grpc-web client straming ([#617](https://github.com/nonamich/ts-proto/issues/617)) ([d3e7f1f](https://github.com/nonamich/ts-proto/commit/d3e7f1f4aac12db87c54d6357e557a351c96a2ca))
* Support json names containing non-alphanumeric characters ([#520](https://github.com/nonamich/ts-proto/issues/520)) ([ce44668](https://github.com/nonamich/ts-proto/commit/ce44668b8fe01b14f50ac3c5c950f73db769fa76))
* support lib: es6 ([#850](https://github.com/nonamich/ts-proto/issues/850)) ([6280677](https://github.com/nonamich/ts-proto/commit/62806776beacb1e2b0ee921e4212f1e61ce5191e))
* support mapping ObjectId message as mongodb.ObjectId ([#467](https://github.com/nonamich/ts-proto/issues/467)) ([8b23897](https://github.com/nonamich/ts-proto/commit/8b2389715ecfd5d51b1b24f5a9332e4ff9f09a27))
* support proto2 optional and default value fields ([#1007](https://github.com/nonamich/ts-proto/issues/1007)) ([1fa1e61](https://github.com/nonamich/ts-proto/commit/1fa1e61b0a0ff22949a1acadb38630f6f5bf6179)), closes [#973](https://github.com/nonamich/ts-proto/issues/973)
* **ts-proto-#859:** added encode-only options to toJSON methods ([#886](https://github.com/nonamich/ts-proto/issues/886)) ([d0cf57d](https://github.com/nonamich/ts-proto/commit/d0cf57d9a1aebdec3bec67585658362b1a38d6a3)), closes [ts-proto-#859](https://github.com/ts-proto-/issues/859) [ts-proto-#859](https://github.com/ts-proto-/issues/859) [ts-proto#859](https://github.com/ts-proto/issues/859) [ts-proto#859](https://github.com/ts-proto/issues/859) [ts-proto-#859](https://github.com/ts-proto-/issues/859)
* Update fromPartial and fromJson to respect initializeFieldsAsUndefined ([#811](https://github.com/nonamich/ts-proto/issues/811)) ([1615ae0](https://github.com/nonamich/ts-proto/commit/1615ae0b136bc8909e206b44f3bd6ec568a760e6))
* Update protobufjs (and peer dependencies) to ^7 ([#874](https://github.com/nonamich/ts-proto/issues/874)) ([7f979a7](https://github.com/nonamich/ts-proto/commit/7f979a70af2e42c8c429ae5f65787e0b43ccb706))
* Upgrade to long 5.0.0. ([#882](https://github.com/nonamich/ts-proto/issues/882)) ([4c1e7a6](https://github.com/nonamich/ts-proto/commit/4c1e7a6e02f974f193063a83ce7a472b14f2d2d0))
* Use exact types for fromPartial ([#412](https://github.com/nonamich/ts-proto/issues/412)) ([808f8a7](https://github.com/nonamich/ts-proto/commit/808f8a7a77d56f65dd4a4643dd66158f106ab755)), closes [#156](https://github.com/nonamich/ts-proto/issues/156)
* Use ternary operator for conditional assignments ([#394](https://github.com/nonamich/ts-proto/issues/394)) ([d84c084](https://github.com/nonamich/ts-proto/commit/d84c084fb56c958c184f8971479979b8bfb17ccc))
* watch for changed integration test files ([#464](https://github.com/nonamich/ts-proto/issues/464)) ([988cd7e](https://github.com/nonamich/ts-proto/commit/988cd7eb84bc3b8b72d6b4d59c38aa794c16c638))
* yarn watch updates (specified) tests when source files change ([#465](https://github.com/nonamich/ts-proto/issues/465)) ([275d0e7](https://github.com/nonamich/ts-proto/commit/275d0e7c61f3acb2b1fd670b1974e64dd49d6ff4))

### Performance Improvements

* Faster base64FromBytes & bytesFromBase64 on Node.JS ([#649](https://github.com/nonamich/ts-proto/issues/649)) ([82ab341](https://github.com/nonamich/ts-proto/commit/82ab341557fba1a4933c4613d5c20dbf897905fa))
* fromJSON returns object literal to allow v8 optimizations ([#463](https://github.com/nonamich/ts-proto/issues/463)) ([5fcd05b](https://github.com/nonamich/ts-proto/commit/5fcd05b79e7c02547c4b6db46fae7a7202f97629))
* generate switch statement for oneof union encode ([#767](https://github.com/nonamich/ts-proto/issues/767)) ([c3fd1e3](https://github.com/nonamich/ts-proto/commit/c3fd1e3e487d1da3e8c792354d6491cadb067ff4))
* Generating "else if" where applicable ([#1141](https://github.com/nonamich/ts-proto/issues/1141)) ([4a8018c](https://github.com/nonamich/ts-proto/commit/4a8018c915dabbc83629f021a2899ade55b6c8de))
* optimize object creation in `decode`, `fromJSON` and `fromPartial` ([#457](https://github.com/nonamich/ts-proto/issues/457)) ([70832d3](https://github.com/nonamich/ts-proto/commit/70832d33bae82ecb3c5f87845d14e992a13437e4))
* Replacing "else if" with a "switch case" statement to improve Typescript performance ([#1142](https://github.com/nonamich/ts-proto/issues/1142)) ([de1a616](https://github.com/nonamich/ts-proto/commit/de1a616d24a90ef7b281c9e8966556adfa156ebb)), closes [#1135](https://github.com/nonamich/ts-proto/issues/1135) [#1141](https://github.com/nonamich/ts-proto/issues/1141)
* use array.push to prevent reallocation on every field ([#804](https://github.com/nonamich/ts-proto/issues/804)) ([a6aea2c](https://github.com/nonamich/ts-proto/commit/a6aea2ca9e61611cf22417d23eb71a5d6e4f2164))
* use Reader.create ([#800](https://github.com/nonamich/ts-proto/issues/800)) ([869e448](https://github.com/nonamich/ts-proto/commit/869e44876c88ccfb82cb4a48731b340a0fb2c025))
nonamich pushed a commit to nonamich/ts-proto that referenced this pull request Feb 3, 2025
# 1.0.0 (2025-02-03)

### Bug Fixes

* `outputSchema=true` when `onlyTypes=true` ([#1039](https://github.com/nonamich/ts-proto/issues/1039)) ([064665f](https://github.com/nonamich/ts-proto/commit/064665f064e072f9d530f84e45f605fd4b5a749c))
* add .js suffix to proto cross-reference imports ([#602](https://github.com/nonamich/ts-proto/issues/602)) ([8dc38af](https://github.com/nonamich/ts-proto/commit/8dc38af40e68262cd53469ce3dc4dcac670365da)), closes [#601](https://github.com/nonamich/ts-proto/issues/601) [/github.com/kulshekhar/ts-jest/issues/1057#issuecomment-481406624](https://github.com//github.com/kulshekhar/ts-jest/issues/1057/issues/issuecomment-481406624)
* Add 'as any' in create ([#895](https://github.com/nonamich/ts-proto/issues/895)) ([4214d5a](https://github.com/nonamich/ts-proto/commit/4214d5af98817f317760298b1b2e03a8e956329c)), closes [#838](https://github.com/nonamich/ts-proto/issues/838)
* add callback close condition ([#837](https://github.com/nonamich/ts-proto/issues/837)) ([2071c67](https://github.com/nonamich/ts-proto/commit/2071c67650a3ac80ec9b5845fec3227ee47841d0))
* Add check for lower bound with forceLong=number ([#1057](https://github.com/nonamich/ts-proto/issues/1057)) ([01ef3c3](https://github.com/nonamich/ts-proto/commit/01ef3c3bb2a6ebb5b15fe8acfdc73f50b19a5a38))
* add deprecated comment when there are not other comments ([#189](https://github.com/nonamich/ts-proto/issues/189)) ([5b6148b](https://github.com/nonamich/ts-proto/commit/5b6148bea45b06fd475493a09f12e625b87d27c3))
* Add functionality for grpc camel case to respect splitting by word ([#721](https://github.com/nonamich/ts-proto/issues/721)) ([4af040c](https://github.com/nonamich/ts-proto/commit/4af040c233792862db85c07d01d1b210a13cae2c)), closes [#722](https://github.com/nonamich/ts-proto/issues/722)
* Add long dep to ts-proto-descriptors. ([#275](https://github.com/nonamich/ts-proto/issues/275)) ([0d20827](https://github.com/nonamich/ts-proto/commit/0d20827dbae5195d30a3094c4ea5e98833909daa))
* Add M1/ARM support for the test suite ([#516](https://github.com/nonamich/ts-proto/issues/516)) ([7cf5625](https://github.com/nonamich/ts-proto/commit/7cf56251726d149eebd015367476f36e4edb48aa))
* add missing `boolean` to `DeepPartial` ([#287](https://github.com/nonamich/ts-proto/issues/287)) ([ba18380](https://github.com/nonamich/ts-proto/commit/ba1838069c6119516ceb1bfa5bc0242724e2b520))
* Add missing defaults to fromPartial if options.oneof is UNIONS ([#375](https://github.com/nonamich/ts-proto/issues/375)) ([21781e9](https://github.com/nonamich/ts-proto/commit/21781e98bb6117b540be8c3f2c38ac3ad5cbbb44))
* Add missing globalThis prefixes. ([#988](https://github.com/nonamich/ts-proto/issues/988)) ([86aca54](https://github.com/nonamich/ts-proto/commit/86aca54afdcda88bc77b77c9c363f422e0f66be7)), closes [#987](https://github.com/nonamich/ts-proto/issues/987)
* Add service to the client constructor. ([#455](https://github.com/nonamich/ts-proto/issues/455)) ([8c32104](https://github.com/nonamich/ts-proto/commit/8c32104a8522cfe2febcf2338d51710021d837ff))
* add serviceName to grpc-js client constructor type ([#980](https://github.com/nonamich/ts-proto/issues/980)) ([2c6682d](https://github.com/nonamich/ts-proto/commit/2c6682df400a5b1e4bcb9c5bc233dbd7a65df987))
* add support of importSuffix=.js for index files ([#986](https://github.com/nonamich/ts-proto/issues/986)) ([183cf03](https://github.com/nonamich/ts-proto/commit/183cf039895184edd365e6cb7bb9751426ac56f4))
* Added null propagation and guard ([#1127](https://github.com/nonamich/ts-proto/issues/1127)) ([86637fa](https://github.com/nonamich/ts-proto/commit/86637fa6c39ddcc09cab3c486c34b7a52adaf694))
* Adding a failing regression test for wrapper types ([#689](https://github.com/nonamich/ts-proto/issues/689)) ([bde2e28](https://github.com/nonamich/ts-proto/commit/bde2e28ad70bf05ebb21effcdb1caad7217c8291))
* Additional fix for structs with useMapType. ([#743](https://github.com/nonamich/ts-proto/issues/743)) ([3264b0f](https://github.com/nonamich/ts-proto/commit/3264b0f4a98f3e00b262ce8af7927b0bc0375160))
* Allow other services with nestJs. ([#982](https://github.com/nonamich/ts-proto/issues/982)) ([45bba3c](https://github.com/nonamich/ts-proto/commit/45bba3ce7ce723682a6ba2e2104d43ab3fd6978c))
* always use Map for int64 keys ([#708](https://github.com/nonamich/ts-proto/issues/708)) ([#905](https://github.com/nonamich/ts-proto/issues/905)) ([cf2fb59](https://github.com/nonamich/ts-proto/commit/cf2fb59de20f8a60ead23294439dacbdbe6dfc14))
* Avoid namespace conflict on globalThis. ([#735](https://github.com/nonamich/ts-proto/issues/735)) ([71e919e](https://github.com/nonamich/ts-proto/commit/71e919e7de4a2482e9389a5cbfd76853a1db73fb)), closes [#732](https://github.com/nonamich/ts-proto/issues/732)
* Build before releasing, fixes [#267](https://github.com/nonamich/ts-proto/issues/267). ([#269](https://github.com/nonamich/ts-proto/issues/269)) ([1f1bcfe](https://github.com/nonamich/ts-proto/commit/1f1bcfeca329e36c41c069b791e803ceb7cb975c))
* Bump descriptors. ([#883](https://github.com/nonamich/ts-proto/issues/883)) ([e2cf184](https://github.com/nonamich/ts-proto/commit/e2cf1848c1c70a8bbe73756e1cf530c5d70f5ce2))
* Bump node in ts-proto.Dockerfile. ([42f3cea](https://github.com/nonamich/ts-proto/commit/42f3ceac5323056b1b845b51919ecddaa32bf258))
* Bump protobufjs. ([#585](https://github.com/nonamich/ts-proto/issues/585)) ([ba6b85d](https://github.com/nonamich/ts-proto/commit/ba6b85d9d5b7ce191dce898c462cf164a6b1e308))
* Bump ts-poet to use @dprint/typescript. ([#662](https://github.com/nonamich/ts-proto/issues/662)) ([84b64f4](https://github.com/nonamich/ts-proto/commit/84b64f4219f96199e8722678354430fbf00cebba))
* Bump ts-proto-descriptors to restore any-less _unknownFields. ([#810](https://github.com/nonamich/ts-proto/issues/810)) ([de9c307](https://github.com/nonamich/ts-proto/commit/de9c3079210caed1d0d3da782a4d0f2e54f52652))
* Bump ts-proto-descriptors w/long back. ([#880](https://github.com/nonamich/ts-proto/issues/880)) ([d27e19c](https://github.com/nonamich/ts-proto/commit/d27e19c84420d46dff0fc1914ce724ec15f86185))
* Bump ts-proto-descriptors. ([#1102](https://github.com/nonamich/ts-proto/issues/1102)) ([3d1cd61](https://github.com/nonamich/ts-proto/commit/3d1cd61ed7bbac4d6dc7353c49d0732aad22a504)), closes [#1101](https://github.com/nonamich/ts-proto/issues/1101)
* Bump ts-proto-descriptors. ([#876](https://github.com/nonamich/ts-proto/issues/876)) ([ad57819](https://github.com/nonamich/ts-proto/commit/ad57819a16b5f3886bde3c8f63231dc70f84d250))
* camelToSnake to respect uppercase words, such as "GetAPIValue" -> "GET_API_VALUE" ([#1046](https://github.com/nonamich/ts-proto/issues/1046)) ([d2e75cd](https://github.com/nonamich/ts-proto/commit/d2e75cd14cdf3bc0c35f59bf8e8a095c57e9c040))
* close server stream on observer unsubscribe ([#309](https://github.com/nonamich/ts-proto/issues/309)) ([4b72563](https://github.com/nonamich/ts-proto/commit/4b7256381c3b2ff2d4d5190e878de6903cd0d53a))
* code generation for int64 map values in fromPartial and fromJson ([#395](https://github.com/nonamich/ts-proto/issues/395)) ([d3ea8eb](https://github.com/nonamich/ts-proto/commit/d3ea8eb69e19a5e45fcc1766c4af1194b17e48fc))
* code-generation for Services with Struct response types ([#407](https://github.com/nonamich/ts-proto/issues/407)) ([f041fa1](https://github.com/nonamich/ts-proto/commit/f041fa1047816748c366bcb81895b6b917eb328d))
* Compilation error for nested repeated fields with `useOptionals=all` ([#1113](https://github.com/nonamich/ts-proto/issues/1113)) ([e89fc51](https://github.com/nonamich/ts-proto/commit/e89fc51fcc3ba494a81884cc136779202d3f1e16)), closes [#1112](https://github.com/nonamich/ts-proto/issues/1112)
* conditional export ([#1003](https://github.com/nonamich/ts-proto/issues/1003)) ([4a15839](https://github.com/nonamich/ts-proto/commit/4a15839943b501af750b9d142dba2cb3889b4617))
* Consistently apply lowerCaseServiceMethods=true ([#332](https://github.com/nonamich/ts-proto/issues/332)) ([57f2473](https://github.com/nonamich/ts-proto/commit/57f24739f425ec05eabd8c8d6959d4b1b14623a1))
* Depend specifically on long 5.2.3. ([#892](https://github.com/nonamich/ts-proto/issues/892)) ([2b976f2](https://github.com/nonamich/ts-proto/commit/2b976f295fc1fbab6d0fb5ad86cfad26ed722c8a))
* deprecated grpc and replace with @grpc/grpc-js ([#362](https://github.com/nonamich/ts-proto/issues/362)) ([1a11b97](https://github.com/nonamich/ts-proto/commit/1a11b97e9b5e92e79fdd4e22d3e8ea4536af243b))
* do not mention :local scripts ([#974](https://github.com/nonamich/ts-proto/issues/974)) ([ef30da5](https://github.com/nonamich/ts-proto/commit/ef30da58d60b9098eb50b7e27489ac8ef854022e))
* Don't close client if we've already aborted ([#968](https://github.com/nonamich/ts-proto/issues/968)) ([7ee1507](https://github.com/nonamich/ts-proto/commit/7ee15075b2f35fac92790885c02f5a0edba9a76a))
* Don't fail on Function message names ([#1119](https://github.com/nonamich/ts-proto/issues/1119)) ([da048a1](https://github.com/nonamich/ts-proto/commit/da048a1e78cdc1baa228700c40a944652998d2a1)), closes [#1110](https://github.com/nonamich/ts-proto/issues/1110)
* don't generate transitively imported files for mapped imports ([#854](https://github.com/nonamich/ts-proto/issues/854)) ([edd9044](https://github.com/nonamich/ts-proto/commit/edd9044568739b089f1ec66b53d0cc36d540610b))
* don't reference globalThis.Buffer when env=browser ([#967](https://github.com/nonamich/ts-proto/issues/967)) ([#999](https://github.com/nonamich/ts-proto/issues/999)) ([0d34612](https://github.com/nonamich/ts-proto/commit/0d34612ce8878b1dccbeb001686ef4051080e043))
* ensure default service streaming methods compile when middleware methods are enabled ([#996](https://github.com/nonamich/ts-proto/issues/996)) ([a9e975b](https://github.com/nonamich/ts-proto/commit/a9e975b41b760970da264a48cc3fb4ecc4b57a1d))
* ensure docker-compose platform is amd64 ([#990](https://github.com/nonamich/ts-proto/issues/990)) ([bdf4710](https://github.com/nonamich/ts-proto/commit/bdf4710b76aafc3fde47aa77a5786387e2236242))
* ensure generated fromTimestamp works when useOptionals=all ([#832](https://github.com/nonamich/ts-proto/issues/832)) ([1f82445](https://github.com/nonamich/ts-proto/commit/1f8244569de87ad99ed3676244e51291af9b3323))
* enum default value when remove-enum-prefix and string-enum both on ([#902](https://github.com/nonamich/ts-proto/issues/902)) ([594b137](https://github.com/nonamich/ts-proto/commit/594b137cdffbf6256b9d0ee6bb82822ce22c7b94))
* enum type returns 'UNRECOGNIZED' or '-1' in xxxToJSON/xxxToNumber ([#566](https://github.com/nonamich/ts-proto/issues/566)) ([19911a1](https://github.com/nonamich/ts-proto/commit/19911a1c62e3fe5c8a0eb0a795489340512898da))
* error handling on non-Error type errors ([#983](https://github.com/nonamich/ts-proto/issues/983)) ([8c567fc](https://github.com/nonamich/ts-proto/commit/8c567fc6e4cefdf96a2e021e8ca72d6ee45cc26e))
* esModuleInterop not working for object-hash and dataloader imports ([#794](https://github.com/nonamich/ts-proto/issues/794)) ([9fc9632](https://github.com/nonamich/ts-proto/commit/9fc9632e03a18f7a2d6e95a72ff959be93199981))
* Extend `global.Error` to avoid import collisions with Error proto msgs ([#699](https://github.com/nonamich/ts-proto/issues/699)) ([e9d8f91](https://github.com/nonamich/ts-proto/commit/e9d8f9123b7b3c5e274035fa3f2644b370915181))
* Field starting with '_' generates an interface property starting with 'undefined' ([#344](https://github.com/nonamich/ts-proto/issues/344)) ([fab354f](https://github.com/nonamich/ts-proto/commit/fab354f3f8f3aae51bb0377f98138bc80a1113e3))
* Fix bad grpc.Metadata import. Fixes [#188](https://github.com/nonamich/ts-proto/issues/188). ([#259](https://github.com/nonamich/ts-proto/issues/259)) ([cd83733](https://github.com/nonamich/ts-proto/commit/cd83733bfe64ba637633282c3170011051dec41e))
* Fix buf publishing with yarn v3. ([#726](https://github.com/nonamich/ts-proto/issues/726)) ([e125d2b](https://github.com/nonamich/ts-proto/commit/e125d2bad21acfb27579b1ce252151678a91f2bc))
* Fix build from typescript bump. ([3ecd498](https://github.com/nonamich/ts-proto/commit/3ecd4986063952ae06c6136fbd9ae0cfc75212d8))
* Fix codegen for google.protobuf.Struct with useMapType=true ([#740](https://github.com/nonamich/ts-proto/issues/740)) ([0647151](https://github.com/nonamich/ts-proto/commit/0647151b356d7b22f8baf72b70f5a0353259b404))
* fix codegen for maps with wrapper value type ([#370](https://github.com/nonamich/ts-proto/issues/370)) ([dd2481d](https://github.com/nonamich/ts-proto/commit/dd2481df0835faafc561aad4a4d0c9c2ff9d868a))
* Fix encode wrap types ([#303](https://github.com/nonamich/ts-proto/issues/303)) ([533c0e0](https://github.com/nonamich/ts-proto/commit/533c0e0959943562a59de5f456b83ab0b0b6abed))
* Fix generating wrong web-rpc implementation for wrapper-type method arg ([#978](https://github.com/nonamich/ts-proto/issues/978)) ([063fd29](https://github.com/nonamich/ts-proto/commit/063fd29974e0e917ad69cd5a158ee233edb5e019))
* Fix integration test codegen script ([#291](https://github.com/nonamich/ts-proto/issues/291)) ([a51eee5](https://github.com/nonamich/ts-proto/commit/a51eee55d07c43b4b7cbe1ad2eb010f33c216a29))
* Fix invocation error. ([f4e26bd](https://github.com/nonamich/ts-proto/commit/f4e26bd44f6882318defab1fccd0d6a833823fc0))
* Fix push_to_buf_registry check. ([22ac914](https://github.com/nonamich/ts-proto/commit/22ac914cd8626258ceb35fd435b899a819518988))
* Fix running yarn:test locally. ([#1097](https://github.com/nonamich/ts-proto/issues/1097)) ([30385ed](https://github.com/nonamich/ts-proto/commit/30385edd565d873d550df765dac9570c125bef2c))
* Fix snake casing numbers. ([#1052](https://github.com/nonamich/ts-proto/issues/1052)) ([f85a2f1](https://github.com/nonamich/ts-proto/commit/f85a2f1ed4e04143b96d6eaa3a589b16944d3239)), closes [#1048](https://github.com/nonamich/ts-proto/issues/1048)
* Fix snakeToCamel single value parsing. ([#513](https://github.com/nonamich/ts-proto/issues/513)) ([e1ad866](https://github.com/nonamich/ts-proto/commit/e1ad866c95751c37ed13f02f4da2dc9076ab4758))
* Fix ts-poet typo in package.json. ([#589](https://github.com/nonamich/ts-proto/issues/589)) ([5211347](https://github.com/nonamich/ts-proto/commit/5211347cb21ac7d117349a32a87c0d017999c44a))
* Fix TypeScript errors when compiling with `noUncheckedIndexedAccess` ([#297](https://github.com/nonamich/ts-proto/issues/297)) ([f865e43](https://github.com/nonamich/ts-proto/commit/f865e431c2613a1cfe9dc1d87fba6a9e4bcd3b16))
* Fix version loading in new dist layout. ([#1091](https://github.com/nonamich/ts-proto/issues/1091)) ([f1c23d2](https://github.com/nonamich/ts-proto/commit/f1c23d2eab096b7c6b2decd9f0886b5300c52712))
* Fix version number for Buf plugin. ([dc1fb7e](https://github.com/nonamich/ts-proto/commit/dc1fb7e766ed4115d026e7ff0e9a9480c1e42380))
* fixed addGrpcMetadata option ([#761](https://github.com/nonamich/ts-proto/issues/761)) ([cb2b573](https://github.com/nonamich/ts-proto/commit/cb2b5733ddd71589a00a4960906c65869303706b))
* fixing exportCommonSymbols in nestjs ([#916](https://github.com/nonamich/ts-proto/issues/916)) ([daf41f7](https://github.com/nonamich/ts-proto/commit/daf41f7c2654e801994c0791fb3f9f178b5d8ad8))
* generate canonical JSON encoding for FieldMasks ([#510](https://github.com/nonamich/ts-proto/issues/510)) ([0ec4e97](https://github.com/nonamich/ts-proto/commit/0ec4e97a2649dc15af1c925f8a2ff6adf1e17d9b))
* generate different MessageType when using static-only ([#863](https://github.com/nonamich/ts-proto/issues/863)) ([477e5f5](https://github.com/nonamich/ts-proto/commit/477e5f5bc0aaf70a92d7231f4a9e746d13b2bbcf)), closes [#861](https://github.com/nonamich/ts-proto/issues/861)
* generate modules for empty files with esModuleInterop ([#992](https://github.com/nonamich/ts-proto/issues/992)) ([f0629ab](https://github.com/nonamich/ts-proto/commit/f0629ab0e9e0eded12142f363858d3dd8e292acd))
* google protobuf timestamps don't properly get suffixed when useDate=false and prefix/suffix ([#1146](https://github.com/nonamich/ts-proto/issues/1146)) ([53f799e](https://github.com/nonamich/ts-proto/commit/53f799e34b75940aeafec0fafa50f3bd5849dcad))
* grpc-js support for nestjs ([#307](https://github.com/nonamich/ts-proto/issues/307)) ([d11c8c2](https://github.com/nonamich/ts-proto/commit/d11c8c2bc041c2e8a25ebf7f1c68c901c18ee0ca))
* grpc-js timestamp conversion ([#755](https://github.com/nonamich/ts-proto/issues/755)) ([9d24bd3](https://github.com/nonamich/ts-proto/commit/9d24bd39d0fbebf636ba4aaf6567988bc177a413)), closes [#754](https://github.com/nonamich/ts-proto/issues/754)
* **Grpc-Web:** Fix compilation failure when a service definition contains a client streaming call. ([#535](https://github.com/nonamich/ts-proto/issues/535)) ([0c83892](https://github.com/nonamich/ts-proto/commit/0c83892693d5755c9fe848b442b5e666192103ab))
* Handle empty package ([#285](https://github.com/nonamich/ts-proto/issues/285)) ([5eadf92](https://github.com/nonamich/ts-proto/commit/5eadf9271fd9b00180593f3771266f3796a157bb))
* Have snakeToCamel leave existing mixed case. ([#482](https://github.com/nonamich/ts-proto/issues/482)) ([c0bf0fc](https://github.com/nonamich/ts-proto/commit/c0bf0fc13da70e2bde923cd1746119d2e7ac4b2f)), closes [#478](https://github.com/nonamich/ts-proto/issues/478)
* ignore `$type` field in `DeepPartial` ([#282](https://github.com/nonamich/ts-proto/issues/282)) ([6c5087e](https://github.com/nonamich/ts-proto/commit/6c5087ed489283bf7293a2cdbee71dd83484c68e))
* implement abort grpc web ([#785](https://github.com/nonamich/ts-proto/issues/785)) ([6a40d72](https://github.com/nonamich/ts-proto/commit/6a40d72d6a41d91264366d238dafd08291eba0b7))
* import fails when folder name overlaps with file name ([#1000](https://github.com/nonamich/ts-proto/issues/1000)) ([1e68e6f](https://github.com/nonamich/ts-proto/commit/1e68e6f0b2ca6fbffc51c0abe9b0f127350dd766))
* import Observable as a type ([#826](https://github.com/nonamich/ts-proto/issues/826)) ([52e84ba](https://github.com/nonamich/ts-proto/commit/52e84ba7ee8826cf3b33455b38bacfd0c68884ea))
* import protobufjs/minimal with importSuffix ([#616](https://github.com/nonamich/ts-proto/issues/616)) ([b86291c](https://github.com/nonamich/ts-proto/commit/b86291c58b1cb9d4064944a6371e928b564aef7f))
* Incorrect message names in the generated code for repeated fields ([#1073](https://github.com/nonamich/ts-proto/issues/1073)) ([8a95d8e](https://github.com/nonamich/ts-proto/commit/8a95d8e0983a38e604b6990461e726db566ff311)), closes [#1072](https://github.com/nonamich/ts-proto/issues/1072)
* initialize undefined optional fields upon use ([#802](https://github.com/nonamich/ts-proto/issues/802)) ([ee52e06](https://github.com/nonamich/ts-proto/commit/ee52e06a95d7790d1252831f1bb01344c94f16a4))
* Leave mixed case in all words. ([#488](https://github.com/nonamich/ts-proto/issues/488)) ([8a26c9c](https://github.com/nonamich/ts-proto/commit/8a26c9cba4c9897700aafe1a7f59d0b0f537764b))
* make struct types play well with type registry ([#503](https://github.com/nonamich/ts-proto/issues/503)) ([d62f854](https://github.com/nonamich/ts-proto/commit/d62f85478011c7eb3dbca196f79b452895406ece))
* Move dataloader to a devDependency. ([#877](https://github.com/nonamich/ts-proto/issues/877)) ([dbe1a96](https://github.com/nonamich/ts-proto/commit/dbe1a967ced7863492f82a977d6e5d34f4f034a6))
* **nestjs:** fixes grpc controller decorator ([#68](https://github.com/nonamich/ts-proto/issues/68)) ([fc67a32](https://github.com/nonamich/ts-proto/commit/fc67a32b7a66f56144b37d0a0a2904a6af6f5289))
* noImplicitReturns error in Value.unwrap ([#436](https://github.com/nonamich/ts-proto/issues/436)) ([2d7a5d0](https://github.com/nonamich/ts-proto/commit/2d7a5d04c72ace58fa3a6745c3857f6cc0468543)), closes [#432](https://github.com/nonamich/ts-proto/issues/432)
* oneof=union breaks wrapper types [#458](https://github.com/nonamich/ts-proto/issues/458) ([#462](https://github.com/nonamich/ts-proto/issues/462)) ([dd16992](https://github.com/nonamich/ts-proto/commit/dd16992a409f24e88e3a142830cd0745f50dbd10))
* Only check file dependencies once/file. ([#901](https://github.com/nonamich/ts-proto/issues/901)) ([8d61980](https://github.com/nonamich/ts-proto/commit/8d6198020a5ec775b0dbaf7e08924f4bdcc677f8)), closes [#900](https://github.com/nonamich/ts-proto/issues/900)
* **options:** initializes M opt to empty object ([#673](https://github.com/nonamich/ts-proto/issues/673)) ([cb76c5e](https://github.com/nonamich/ts-proto/commit/cb76c5ea565081d610be08451e452269c5d3837c))
* Pin ts-proto-descriptors to 1.3.1. ([#481](https://github.com/nonamich/ts-proto/issues/481)) ([6f362bf](https://github.com/nonamich/ts-proto/commit/6f362bfd3517a6bcb440d65e7ac63cd2b0bcc293)), closes [#480](https://github.com/nonamich/ts-proto/issues/480)
* prefix and suffixes were not being applied to to/fromTimestamp resulting in compile error ([#1118](https://github.com/nonamich/ts-proto/issues/1118)) ([22c2905](https://github.com/nonamich/ts-proto/commit/22c2905ca53c88bdb2802386d414d584a451aa4c))
* problem with verbatimModuleSyntax for grpc-js ([#1132](https://github.com/nonamich/ts-proto/issues/1132)) ([bedfa31](https://github.com/nonamich/ts-proto/commit/bedfa317e7b115d10ee3de897eae2490b5eccdc9))
* regression in being able to return a Date as a GRPC return value ([#534](https://github.com/nonamich/ts-proto/issues/534)) ([22b76ec](https://github.com/nonamich/ts-proto/commit/22b76eccfc0d26309aab9e454de31ef020595be8))
* remove Long import statement when Long was unused ([#599](https://github.com/nonamich/ts-proto/issues/599)) ([58dc10c](https://github.com/nonamich/ts-proto/commit/58dc10c61ec5a76d4b54ba9eddf34021979dd4aa))
* remove Record word conflict ([#638](https://github.com/nonamich/ts-proto/issues/638)) ([5664d09](https://github.com/nonamich/ts-proto/commit/5664d097ac33da423b0f4e79f962fd71912358a0))
* remove-enum-prefix for nested enums ([#903](https://github.com/nonamich/ts-proto/issues/903)) ([efdbf47](https://github.com/nonamich/ts-proto/commit/efdbf476b26c49c1bc56f9404f49667f2acc1f8b))
* repeated uint64 fields do not encode properly with bigint option ([#751](https://github.com/nonamich/ts-proto/issues/751)) ([dcdd7e2](https://github.com/nonamich/ts-proto/commit/dcdd7e23479721d127138eeda8b143c100a0730a))
* resolve import collisions for enums ([#339](https://github.com/nonamich/ts-proto/issues/339)) ([8118748](https://github.com/nonamich/ts-proto/commit/81187488edbbe7b1c8e7028e0bc8f3a8005a97c8))
* resolve import collisions for enums ([#341](https://github.com/nonamich/ts-proto/issues/341)) ([50fe34e](https://github.com/nonamich/ts-proto/commit/50fe34ecc66877bead1f0ae55afe28b88e5eda10))
* resolve import collisions for interfaces ([#300](https://github.com/nonamich/ts-proto/issues/300)) ([773d866](https://github.com/nonamich/ts-proto/commit/773d86686c15e9e831ad1c22405dee8d7251072e)), closes [#298](https://github.com/nonamich/ts-proto/issues/298)
* resolve import collisions for services ([#651](https://github.com/nonamich/ts-proto/issues/651)) ([ee0296f](https://github.com/nonamich/ts-proto/commit/ee0296ffe087665b54bac714e964e7243010fb22))
* respect generateClientImpl=false in grpc-js ([#471](https://github.com/nonamich/ts-proto/issues/471)) ([#472](https://github.com/nonamich/ts-proto/issues/472)) ([2f389f2](https://github.com/nonamich/ts-proto/commit/2f389f243ef11d8d58c32ce37c371aba2cdf294e))
* Respect stringEnums option in wrap function ([#420](https://github.com/nonamich/ts-proto/issues/420)) ([7adf90c](https://github.com/nonamich/ts-proto/commit/7adf90c23c46950bcf457b317764393ff4af2bf2))
* return grpc-web response without toObject method ([#728](https://github.com/nonamich/ts-proto/issues/728)) ([7431aa8](https://github.com/nonamich/ts-proto/commit/7431aa8e5718ad8a8fe48651798f203995bf705b)), closes [stephenh/ts-proto#636](https://github.com/stephenh/ts-proto/issues/636)
* return types and optional chaining in field masks when `useOptionals=all` ([#957](https://github.com/nonamich/ts-proto/issues/957)) ([a3d7bd4](https://github.com/nonamich/ts-proto/commit/a3d7bd4eaf0b25cd8d7991cc85893ce3d8ab7937))
* Revert "feat: support grpc-web client straming ([#617](https://github.com/nonamich/ts-proto/issues/617))" ([#632](https://github.com/nonamich/ts-proto/issues/632)) ([2f4ecc7](https://github.com/nonamich/ts-proto/commit/2f4ecc7434df6b8f2ff08b929f9032170b04e858))
* revert useDate=false behaviour; add useJsonTimestamp option ([#969](https://github.com/nonamich/ts-proto/issues/969)) ([15ae516](https://github.com/nonamich/ts-proto/commit/15ae516ae09b27d5adf41b5e85fe509792c5854e))
* **Schema generation:** ensure Buffer api is only used when in nodejs environment ([#1134](https://github.com/nonamich/ts-proto/issues/1134)) ([49035a4](https://github.com/nonamich/ts-proto/commit/49035a47e1d859563c631267ea7e1724cbf2c4a8))
* simplify handling useJsonWireFormat=true and fix onlyTypes=true ([#583](https://github.com/nonamich/ts-proto/issues/583)) ([6e7f938](https://github.com/nonamich/ts-proto/commit/6e7f9387d144f506ded982604f32981ac5e327de))
* Simplify safe key handling. ([#950](https://github.com/nonamich/ts-proto/issues/950)) ([5e0e6ca](https://github.com/nonamich/ts-proto/commit/5e0e6ca1d76f5c9aaef5f40a9cc685538251a5f9))
* standalone dockerized protoc alias ([#438](https://github.com/nonamich/ts-proto/issues/438)) ([466f7d9](https://github.com/nonamich/ts-proto/commit/466f7d91551c6297fc1b9677f7a5839f8cdba0c6))
* Struct wrap/unwrap snake case [#579](https://github.com/nonamich/ts-proto/issues/579) ([#588](https://github.com/nonamich/ts-proto/issues/588)) ([33f89bf](https://github.com/nonamich/ts-proto/commit/33f89bfcf0d5d9e64a6fd360eaefc140055e9291))
* support json_name containing hyphen on all field types ([#521](https://github.com/nonamich/ts-proto/issues/521)) ([8d9e78e](https://github.com/nonamich/ts-proto/commit/8d9e78eb39c460f6727458f6a2dd149deb983668))
* support mutliple options in snakeToCamel flag  ([#429](https://github.com/nonamich/ts-proto/issues/429)) ([cff6674](https://github.com/nonamich/ts-proto/commit/cff667406cba21676546fd91b04cf2cbc571ed7d)), closes [#423](https://github.com/nonamich/ts-proto/issues/423)
* Support repeated string enums. ([#284](https://github.com/nonamich/ts-proto/issues/284)) ([be9ecf7](https://github.com/nonamich/ts-proto/commit/be9ecf785952ab7515155cb495e8e0da76b93a38))
* Support using messages called String/Boolean/Number/Array ([#934](https://github.com/nonamich/ts-proto/issues/934)) ([f75159b](https://github.com/nonamich/ts-proto/commit/f75159bde85c8d85a2be938c6e3db78c77318890)), closes [#927](https://github.com/nonamich/ts-proto/issues/927)
* Temporarily put anys back to release. ([c6f189e](https://github.com/nonamich/ts-proto/commit/c6f189e62605553707534a86bf1964ad178dbd73))
* toJSON Function with `removeEnumPrefix=true` and `unrecognizedEnumValue=0` Options ([#1089](https://github.com/nonamich/ts-proto/issues/1089)) ([2401490](https://github.com/nonamich/ts-proto/commit/24014908f814e2720b9c2b9bd2ae1773be880a16)), closes [#1086](https://github.com/nonamich/ts-proto/issues/1086) [#1086](https://github.com/nonamich/ts-proto/issues/1086)
* toJSON methods don't respect useDate=false ([#935](https://github.com/nonamich/ts-proto/issues/935)) ([#937](https://github.com/nonamich/ts-proto/issues/937)) ([acdfb0a](https://github.com/nonamich/ts-proto/commit/acdfb0a100c9de1d51cb1710cc3fb40566d16706))
* Try combined workflow. ([c293c1f](https://github.com/nonamich/ts-proto/commit/c293c1f379cb69635c968d5b8094135931bcea54))
* Try fixing the Buf publish step. ([47ef176](https://github.com/nonamich/ts-proto/commit/47ef176056108bba8fb553f0d7b53d11e139bfbc))
* Type Error when map contains string enums [#382](https://github.com/nonamich/ts-proto/issues/382) ([#529](https://github.com/nonamich/ts-proto/issues/529)) ([c2107b9](https://github.com/nonamich/ts-proto/commit/c2107b96b494a500a4773ac04900a1acd13c507a))
* typescript errors for struct with optional=all ([#1008](https://github.com/nonamich/ts-proto/issues/1008)) ([e838e38](https://github.com/nonamich/ts-proto/commit/e838e3801e0ef5e8b5a14ead7d7dfc0ad3532cf1)), closes [#578](https://github.com/nonamich/ts-proto/issues/578)
* Unbreak a use case for [#1110](https://github.com/nonamich/ts-proto/issues/1110) / fix for [#1121](https://github.com/nonamich/ts-proto/issues/1121) ([#1123](https://github.com/nonamich/ts-proto/issues/1123)) ([476e99b](https://github.com/nonamich/ts-proto/commit/476e99bcbc651cec1946d0dbad09dc9aea3224ff))
* Unwrap google.protobuf.BytesValue to Buffer when env=node ([#439](https://github.com/nonamich/ts-proto/issues/439)) ([73aa836](https://github.com/nonamich/ts-proto/commit/73aa8368300818068f3cddc5f046d990c66ab4f2))
* update basic grpc implementation ([#1153](https://github.com/nonamich/ts-proto/issues/1153)) ([6ec7909](https://github.com/nonamich/ts-proto/commit/6ec7909f65c87c01c51468f1df898b33dad9fd8e))
* update codegen for `nice-grpc` ([#561](https://github.com/nonamich/ts-proto/issues/561)) ([d503f67](https://github.com/nonamich/ts-proto/commit/d503f677922402e880b5d8502b3d8bc099b7f39d))
* Update type imports syntax on gRPC generation ([#921](https://github.com/nonamich/ts-proto/issues/921)) ([b10ab31](https://github.com/nonamich/ts-proto/commit/b10ab31a479420413998840eab866ab51f72285d))
* Use a Map when map keys are boolean. ([#933](https://github.com/nonamich/ts-proto/issues/933)) ([c1253a3](https://github.com/nonamich/ts-proto/commit/c1253a3761405d7a2ffe4d15f4c3ffb364697a02)), closes [#926](https://github.com/nonamich/ts-proto/issues/926)
* Use a module star import for protobuf types. ([#540](https://github.com/nonamich/ts-proto/issues/540)) ([f5b7700](https://github.com/nonamich/ts-proto/commit/f5b770083dffe72338beb4a09432a2a917760eae))
* Use as any on globalThis.Buffer check for bytesFromBase64 ([#1005](https://github.com/nonamich/ts-proto/issues/1005)) ([bae741c](https://github.com/nonamich/ts-proto/commit/bae741cba9c22d08118e25619ba3e427e1c7bf9d)), closes [#1004](https://github.com/nonamich/ts-proto/issues/1004) [#967](https://github.com/nonamich/ts-proto/issues/967)
* Use as any on globalThis.Buffer check. ([#1004](https://github.com/nonamich/ts-proto/issues/1004)) ([11d06b4](https://github.com/nonamich/ts-proto/commit/11d06b4455a1f27793bfe172fffaf05b7a3400db)), closes [#967](https://github.com/nonamich/ts-proto/issues/967)
* use correct imports for optional fields ([#904](https://github.com/nonamich/ts-proto/issues/904)) ([fa13ec7](https://github.com/nonamich/ts-proto/commit/fa13ec752c6564af045081548f5fc5cabb687151))
* Use env prefix for Buf plugin. ([ea42caa](https://github.com/nonamich/ts-proto/commit/ea42caacbd919f9a8b6a9e3138d8a48e80ac86d9))
* Use globalThis for Array/String/Boolean ([#930](https://github.com/nonamich/ts-proto/issues/930)) ([9a252c3](https://github.com/nonamich/ts-proto/commit/9a252c3d4cf988496f6de17cc378dbb09a1baf92))
* Use jsonName even with snakeToCamel=false. ([#653](https://github.com/nonamich/ts-proto/issues/653)) ([1144886](https://github.com/nonamich/ts-proto/commit/1144886ef43eaf97b780c7aafb2c123fd49b3fe5)), closes [#635](https://github.com/nonamich/ts-proto/issues/635)
* use Long.fromValue instead of Long.fromString ([#562](https://github.com/nonamich/ts-proto/issues/562)) ([c99891e](https://github.com/nonamich/ts-proto/commit/c99891e0fec6d9b7225025eb0c5bd7393e80af36))
* use Long.fromValue instead of Long.fromString for improved robustness regarding already parsed objects ([#405](https://github.com/nonamich/ts-proto/issues/405)) ([7bdc3ee](https://github.com/nonamich/ts-proto/commit/7bdc3eee05ed1318e18e27aa7d5bb2680060f8b6))
* use optional chaining when both `forceLong=long` and `useOptionals=all` options are set in the generated fromTimestamp function ([#949](https://github.com/nonamich/ts-proto/issues/949)) ([b00db6f](https://github.com/nonamich/ts-proto/commit/b00db6fa42d511b9bef602a231a1f093664cd40c))
* Use outputs for Buf plugin workflow. ([7017d4c](https://github.com/nonamich/ts-proto/commit/7017d4c1f5eb2a8619dd03cc4f7a27c1dcf6c918))
* Use the npm environment. ([0103443](https://github.com/nonamich/ts-proto/commit/01034430c25461c0e5a46e2b9fd757ef4e0c91b1))
* Use the right Metadata for grpc-web. Fixes [#270](https://github.com/nonamich/ts-proto/issues/270). ([#271](https://github.com/nonamich/ts-proto/issues/271)) ([640e645](https://github.com/nonamich/ts-proto/commit/640e645dd93cd0e04abac17de9899aa6a172ac37))
* Use Uint8Array.forEach in base64FromBytes ([#544](https://github.com/nonamich/ts-proto/issues/544)) ([c7641ce](https://github.com/nonamich/ts-proto/commit/c7641ceb6a1c9da234245b9d808b2ded899dbbbc))
* Use underscore separator in snakeToCamel. ([#648](https://github.com/nonamich/ts-proto/issues/648)) ([b374910](https://github.com/nonamich/ts-proto/commit/b374910a8fb1d0efe6c5c5322f8788cc3cc1ca6c))
* use-readonly-types for oneof unions ([#706](https://github.com/nonamich/ts-proto/issues/706)) ([bc854ba](https://github.com/nonamich/ts-proto/commit/bc854bac083b8818d5fad77bc2e7995cfb01798e))
* various fixes ([#812](https://github.com/nonamich/ts-proto/issues/812)) ([ca18495](https://github.com/nonamich/ts-proto/commit/ca184958957b2c546e9a84173bc1c73425e33bc5))

### Features

*  Add support for 'json_name' annotation ([#408](https://github.com/nonamich/ts-proto/issues/408)) ([b519717](https://github.com/nonamich/ts-proto/commit/b5197174bcaacb8f163cd197d52ab9c645d21d4c))
* `enumsAsLiterals` option ([#450](https://github.com/nonamich/ts-proto/issues/450)) ([fcaade2](https://github.com/nonamich/ts-proto/commit/fcaade2855ae28ea3553a365556ccb92a9644d70))
* `no-file-descriptor` setting for outputSchema option ([#1047](https://github.com/nonamich/ts-proto/issues/1047)) ([c54f06c](https://github.com/nonamich/ts-proto/commit/c54f06c4a7dd766abf3f91932b1e4cdf38b7f346))
* `removeEnumPrefix` option ([#779](https://github.com/nonamich/ts-proto/issues/779)) ([53733e6](https://github.com/nonamich/ts-proto/commit/53733e61232f19ffb4f30abecd55a63899e2310c))
* add [@deprecated](https://github.com/deprecated) to JSDoc for deprecated fields ([eb25e2c](https://github.com/nonamich/ts-proto/commit/eb25e2c1efc96ffe2c705983fa0a2e6b67013daa))
* add an option to disable Exact types ([#456](https://github.com/nonamich/ts-proto/issues/456)) ([9c53d7e](https://github.com/nonamich/ts-proto/commit/9c53d7efb0252c7ea0af85a5d161ff94bcd69760))
* add before and after request methods to base service ([#961](https://github.com/nonamich/ts-proto/issues/961)) ([19ba6a5](https://github.com/nonamich/ts-proto/commit/19ba6a50c6fd4f574e20315e1ec721c5e04dab25))
* add bigint input validation ([#938](https://github.com/nonamich/ts-proto/issues/938)) ([0f9b6b1](https://github.com/nonamich/ts-proto/commit/0f9b6b1c5982427f77b111466a11c18e57b070bd))
* add create utility function to message defintions ([#760](https://github.com/nonamich/ts-proto/issues/760)) ([44fc7b2](https://github.com/nonamich/ts-proto/commit/44fc7b23ae72ec9c4fca86bee9a9774be097c058))
* add dynamic upStreamCodes option ([#618](https://github.com/nonamich/ts-proto/issues/618)) ([3091023](https://github.com/nonamich/ts-proto/commit/309102313273e09aef3a8480f4b46360ad82adaa))
* add error handler to rpc interface ([#965](https://github.com/nonamich/ts-proto/issues/965)) ([47cd16e](https://github.com/nonamich/ts-proto/commit/47cd16e048e19ebc0b8673bccffdade678cc0363))
* add generated code comments ([#1037](https://github.com/nonamich/ts-proto/issues/1037)) ([cdd4a76](https://github.com/nonamich/ts-proto/commit/cdd4a76238e292cb00d6a09d84e6b393ddde8204))
* Add generic metadata parameter to the generic service definition interface. ([#530](https://github.com/nonamich/ts-proto/issues/530)) ([0f5525a](https://github.com/nonamich/ts-proto/commit/0f5525ade80e7b69889dfd091a458e21bb14a265))
* Add globalThisPolyfill, defaults false. ([#931](https://github.com/nonamich/ts-proto/issues/931)) ([085fa21](https://github.com/nonamich/ts-proto/commit/085fa21603a74544af192f404289c2e62ecfd8f6))
* add importSuffix option and remove default .js suffix ([#612](https://github.com/nonamich/ts-proto/issues/612)) ([63a8895](https://github.com/nonamich/ts-proto/commit/63a8895f5a3a38fa3d5c0868f44e950e137fb697))
* Add interface for static message methods ([#1104](https://github.com/nonamich/ts-proto/issues/1104)) ([faa33b6](https://github.com/nonamich/ts-proto/commit/faa33b6f5170cabe4010c95d5f0a68b9f04f686b))
* Add js type support ([#1030](https://github.com/nonamich/ts-proto/issues/1030)) ([0dd951b](https://github.com/nonamich/ts-proto/commit/0dd951bf4d1a4c48f3d261c85cfa03586d20c13c)), closes [#958](https://github.com/nonamich/ts-proto/issues/958)
* add meta-data to stream error ([#620](https://github.com/nonamich/ts-proto/issues/620)) ([b68f301](https://github.com/nonamich/ts-proto/commit/b68f301b5fb4222a3fce676a7e5036cf00e77e11))
* Add nestJsRequiredSubMessage option ([1e69e46](https://github.com/nonamich/ts-proto/commit/1e69e4671d0261fe24ad1696b42ff5f64cfc2c18))
* add option `noDefaultsForOptionals` ([#1051](https://github.com/nonamich/ts-proto/issues/1051)) ([41d1020](https://github.com/nonamich/ts-proto/commit/41d10205bf68468c37cf69e58dc4c4fdbfffcf5b))
* add option to remove UNRECOGNIZED enum value ([#149](https://github.com/nonamich/ts-proto/issues/149)) ([19e8cf7](https://github.com/nonamich/ts-proto/commit/19e8cf77ead36962e01ff6419e07b7ccc4068fe8))
* add option to use async iterables ([#605](https://github.com/nonamich/ts-proto/issues/605)) ([ca8ea8d](https://github.com/nonamich/ts-proto/commit/ca8ea8d761c02d3ca4da6eaa156acff35d88c510)), closes [#600](https://github.com/nonamich/ts-proto/issues/600)
* Add options to limit generation of encode and decode methods to only specific message types ([#1085](https://github.com/nonamich/ts-proto/issues/1085)) ([c7372fa](https://github.com/nonamich/ts-proto/commit/c7372fab20cdac0199b79fd861e6b08113aba145)), closes [#1084](https://github.com/nonamich/ts-proto/issues/1084)
* add options to schema output ([#437](https://github.com/nonamich/ts-proto/issues/437)) ([e8e4e39](https://github.com/nonamich/ts-proto/commit/e8e4e3937292e07280f5154b584e60124118f093))
* Add static-only variant to to outputTypeAnnotations option ([#858](https://github.com/nonamich/ts-proto/issues/858)) ([d7c4af7](https://github.com/nonamich/ts-proto/commit/d7c4af7e068200b30cf773703ef906595aec6042))
* Add support for @grpc/grpc-js ([#252](https://github.com/nonamich/ts-proto/issues/252)) ([99a3d92](https://github.com/nonamich/ts-proto/commit/99a3d9218093c9aa1726f0c0b403cb0e95aac82e))
* add support for comments on union fields in generateOneofProperty ([#1136](https://github.com/nonamich/ts-proto/issues/1136)) ([c933c9c](https://github.com/nonamich/ts-proto/commit/c933c9c46dbaa278b33b16270bab51063ccb513c)), closes [#1122](https://github.com/nonamich/ts-proto/issues/1122)
* add support for generating `nice-grpc` server and client stubs ([#555](https://github.com/nonamich/ts-proto/issues/555)) ([8c19361](https://github.com/nonamich/ts-proto/commit/8c19361ede9a7a039acf3a1375913d012b0fcb7d)), closes [#545](https://github.com/nonamich/ts-proto/issues/545)
* add support for Struct in NestJS ([#762](https://github.com/nonamich/ts-proto/issues/762)) ([e8c6d8b](https://github.com/nonamich/ts-proto/commit/e8c6d8ba7bee902dbbda0c36dd9f6accfd222542))
* add support for unknown fields ([#473](https://github.com/nonamich/ts-proto/issues/473)) ([3bb9472](https://github.com/nonamich/ts-proto/commit/3bb9472943cf2e698b013487c7370a76576b68b6))
* Add support for useDate=string ([#221](https://github.com/nonamich/ts-proto/issues/221)) ([d967a9a](https://github.com/nonamich/ts-proto/commit/d967a9afd6cf63fc7b156d506b8683b2f8fd6569))
* Add type annotations flag ([#786](https://github.com/nonamich/ts-proto/issues/786)) ([b565ff5](https://github.com/nonamich/ts-proto/commit/b565ff57c0a64a3869ba7475c2b53f46504169d0))
* add unrecognizedEnumName and unrecognizedEnumValue options ([#946](https://github.com/nonamich/ts-proto/issues/946)) ([cd61e90](https://github.com/nonamich/ts-proto/commit/cd61e90e59844795fb5d7d86ec99bd37d2fdf21b))
* Add use-numeric-enum-json option. ([#625](https://github.com/nonamich/ts-proto/issues/625)) ([cd53d8c](https://github.com/nonamich/ts-proto/commit/cd53d8cacd6b4b8fa6517242020b216dd18eebdf))
* add useDate=string-nano option ([#981](https://github.com/nonamich/ts-proto/issues/981)) ([dc84098](https://github.com/nonamich/ts-proto/commit/dc840985d2afdd85e0b311c55aa831bac5da8ce4))
* Add useOptionals=all to enable non-field members to be optional. ([#402](https://github.com/nonamich/ts-proto/issues/402)) ([e7b70cb](https://github.com/nonamich/ts-proto/commit/e7b70cbd7b9bd43bf9e6e54e25bc48c527718317))
* add usePrototypeForDefaults option ([#484](https://github.com/nonamich/ts-proto/issues/484)) ([8e8c810](https://github.com/nonamich/ts-proto/commit/8e8c81016968e7d772dfac5ed54800898f039cbe))
* added bigint force long option ([#742](https://github.com/nonamich/ts-proto/issues/742)) ([3964e57](https://github.com/nonamich/ts-proto/commit/3964e575a6bdf90bbde937bcc71ac1f0255831b3))
* added nestJsTimestampTypeWrapper ([#567](https://github.com/nonamich/ts-proto/issues/567)) ([59d451e](https://github.com/nonamich/ts-proto/commit/59d451e2857856ff54a3afe03ae115a1824df66f))
* added option 'useJsonWireFormat' ([#576](https://github.com/nonamich/ts-proto/issues/576)) ([a71b145](https://github.com/nonamich/ts-proto/commit/a71b145c81136b8d8e3681b6753146d3ceeff179)), closes [#571](https://github.com/nonamich/ts-proto/issues/571)
* added the "typePrefix" and "typeSuffix" options. ([#1069](https://github.com/nonamich/ts-proto/issues/1069)) ([ab515cd](https://github.com/nonamich/ts-proto/commit/ab515cda322baeb94c7588117e4bb5bee6281874)), closes [#1033](https://github.com/nonamich/ts-proto/issues/1033)
* added useNullAsOptional option ([#1017](https://github.com/nonamich/ts-proto/issues/1017)) ([573f63e](https://github.com/nonamich/ts-proto/commit/573f63e761beef3981539cfbe29f786374186923)), closes [#869](https://github.com/nonamich/ts-proto/issues/869)
* adds support for emitting default scalar values in json ([#919](https://github.com/nonamich/ts-proto/issues/919)) ([01f529f](https://github.com/nonamich/ts-proto/commit/01f529f2b0eed486356ff6add9a43aabde3d1d0d))
* allow `$type` to be optional ([#1013](https://github.com/nonamich/ts-proto/issues/1013)) ([f285557](https://github.com/nonamich/ts-proto/commit/f285557a4f77d4b75327de2c13cf0917b0361f14))
* Allow comments to be omitted ([#989](https://github.com/nonamich/ts-proto/issues/989)) ([cb7eef7](https://github.com/nonamich/ts-proto/commit/cb7eef73f425251f6d09c90710fb8e5c93f56bdf))
* Allow optional suffix for generated files ([#431](https://github.com/nonamich/ts-proto/issues/431)) ([d826966](https://github.com/nonamich/ts-proto/commit/d826966f22830920444963b3894ffc0be9b7c319))
* Allow simultaneous services and generic service definitions ([#512](https://github.com/nonamich/ts-proto/issues/512)) ([680831e](https://github.com/nonamich/ts-proto/commit/680831e76f1a4ceb4337442a157d7e702cb14bfc))
* Avoid adding empty trailing comments to oneof unions ([#1140](https://github.com/nonamich/ts-proto/issues/1140)) ([5359e8d](https://github.com/nonamich/ts-proto/commit/5359e8d4b08ad114080f04ec8327bb2379dddd86)), closes [#1136](https://github.com/nonamich/ts-proto/issues/1136)
* bigIntLiteral option for using BigInt literals ([#1063](https://github.com/nonamich/ts-proto/issues/1063)) ([b89fbcb](https://github.com/nonamich/ts-proto/commit/b89fbcb1f99ccfcd1f06551286c2459e44a3bac2)), closes [#928](https://github.com/nonamich/ts-proto/issues/928) [#932](https://github.com/nonamich/ts-proto/issues/932)
* Bind service methods to class ([#290](https://github.com/nonamich/ts-proto/issues/290)) ([84060e2](https://github.com/nonamich/ts-proto/commit/84060e204d0e42688b8da85d434fe3d24788813b))
* Bump ts poet for dprint perf increase ([#668](https://github.com/nonamich/ts-proto/issues/668)) ([961d388](https://github.com/nonamich/ts-proto/commit/961d388fa7dc7cb25fbe700526cbd481f3a48ae1))
* Bump ts poet for perf increase ([#714](https://github.com/nonamich/ts-proto/issues/714)) ([0068dc8](https://github.com/nonamich/ts-proto/commit/0068dc8c8c34263ac4a7bc5866408453fc2c8b11))
* Bump ts-poet for dprint, also use tsx ([#660](https://github.com/nonamich/ts-proto/issues/660)) ([348a465](https://github.com/nonamich/ts-proto/commit/348a4651b42d5ff64fd07e36ef9ca7d7e76f4277))
* Bump ts-proto-descriptors to latest ts-proto. ([#1043](https://github.com/nonamich/ts-proto/issues/1043)) ([0b06554](https://github.com/nonamich/ts-proto/commit/0b065540d8fb4a3c1254a876d2be0dd48ac3ba66)), closes [#1042](https://github.com/nonamich/ts-proto/issues/1042)
* Bump ts-proto-descriptors. ([#489](https://github.com/nonamich/ts-proto/issues/489)) ([d454448](https://github.com/nonamich/ts-proto/commit/d454448b1889b1576c1ebcc6964a55a03af7d921)), closes [#493](https://github.com/nonamich/ts-proto/issues/493)
* change channel options to client options in generate grpc/js ([#704](https://github.com/nonamich/ts-proto/issues/704)) ([c4ac8ac](https://github.com/nonamich/ts-proto/commit/c4ac8ac12aaee0c897985f944ffe3f122e28eba9))
* **client:** allow overriding the service identifier ([#683](https://github.com/nonamich/ts-proto/issues/683)) ([10c7c99](https://github.com/nonamich/ts-proto/commit/10c7c99b1f43705d640ab1e602a7c1799e31ac08))
* conditionally add "Service" to nice-grpc's generated service interface name ([#710](https://github.com/nonamich/ts-proto/issues/710)) ([7c39cc0](https://github.com/nonamich/ts-proto/commit/7c39cc0729403dcb63ef353357fae3548b5a6667))
* enable prototype for defaults for ts-proto-descriptors ([#487](https://github.com/nonamich/ts-proto/issues/487)) ([2b5640f](https://github.com/nonamich/ts-proto/commit/2b5640f582e6adb4e81797a9cec217896061aadb))
* enable unknown fields for descriptor protos ([#479](https://github.com/nonamich/ts-proto/issues/479)) ([824c996](https://github.com/nonamich/ts-proto/commit/824c9962cd98dc0f9093e8909e3028d900094c54))
* Ensure strict(er) TS compliance for the generated code ([#868](https://github.com/nonamich/ts-proto/issues/868)) ([1405d4b](https://github.com/nonamich/ts-proto/commit/1405d4bcc866343605946ac4a0b30e7de9c75e71))
* enum decoding ([#910](https://github.com/nonamich/ts-proto/issues/910)) ([9e0a0b5](https://github.com/nonamich/ts-proto/commit/9e0a0b5c86004313f65eae88b8dc5e63deaaf251)), closes [ts-proto-#859](https://github.com/ts-proto-/issues/859) [ts-proto#859](https://github.com/ts-proto/issues/859) [ts-proto#859](https://github.com/ts-proto/issues/859) [ts-proto-#859](https://github.com/ts-proto-/issues/859) [#909](https://github.com/nonamich/ts-proto/issues/909)
* export options types ([#1027](https://github.com/nonamich/ts-proto/issues/1027)) ([9652586](https://github.com/nonamich/ts-proto/commit/965258656efaa07cc8b72feb8c6b8e202a000940))
* expose service name as a separate exported constant ([#851](https://github.com/nonamich/ts-proto/issues/851)) ([84a4ed6](https://github.com/nonamich/ts-proto/commit/84a4ed610089363e3ee7a6a29581d8e0ef695f0d))
* extensions ([#808](https://github.com/nonamich/ts-proto/issues/808)) ([f956128](https://github.com/nonamich/ts-proto/commit/f956128ad830f4538452d65dccedca3e08d6c871))
* framework-agnostic service definitions ([#316](https://github.com/nonamich/ts-proto/issues/316)) ([3d89282](https://github.com/nonamich/ts-proto/commit/3d89282176f8f16a33eea5042df0439c3f23b038))
* Generate Index Files ([#821](https://github.com/nonamich/ts-proto/issues/821)) ([85bf206](https://github.com/nonamich/ts-proto/commit/85bf206ca8c1052849aea3e39522ad4918e0d736))
* generate type namespaces for enums as literals ([#960](https://github.com/nonamich/ts-proto/issues/960)) ([e2619f6](https://github.com/nonamich/ts-proto/commit/e2619f6191e8bfb1deaf8474c26ea386c5c34e63))
* group encoding and decoding support ([#799](https://github.com/nonamich/ts-proto/issues/799)) ([5ebe3c0](https://github.com/nonamich/ts-proto/commit/5ebe3c07f5039db4f9b40e4e237d02d03c85a4e5))
* **Grpc-Web:** Add & export GrpcWebError type ([#593](https://github.com/nonamich/ts-proto/issues/593)) ([645987d](https://github.com/nonamich/ts-proto/commit/645987d023e666290e87086f5a0770c34e2fe978))
* implementation of useAbortSignal option for grpc-web ([#777](https://github.com/nonamich/ts-proto/issues/777)) ([7a3d429](https://github.com/nonamich/ts-proto/commit/7a3d4291806568a938e88f53a55683633f26ec4a))
* implemented emitImportedFiles flag ([#302](https://github.com/nonamich/ts-proto/issues/302)) ([16b4aca](https://github.com/nonamich/ts-proto/commit/16b4aca98aa9f0266734421314baaa5259e3f4e2)), closes [#294](https://github.com/nonamich/ts-proto/issues/294) [#283](https://github.com/nonamich/ts-proto/issues/283) [#283](https://github.com/nonamich/ts-proto/issues/283)
* Import CallContext and CallOptions as type ([#684](https://github.com/nonamich/ts-proto/issues/684)) ([8b388f6](https://github.com/nonamich/ts-proto/commit/8b388f6c9f57dac34ca5836a4313d8247bb0fceb)), closes [#677](https://github.com/nonamich/ts-proto/issues/677)
* import proto as type import if onlyTypes is set ([25d8e8b](https://github.com/nonamich/ts-proto/commit/25d8e8b9042142f1032feadc8a799b7a01115cc2))
* Improve map reading (fromJSON/fromPartial) ([#410](https://github.com/nonamich/ts-proto/issues/410)) ([057d438](https://github.com/nonamich/ts-proto/commit/057d438548d95c354331f7d2d767ccff952ad5c6))
* include _unknownFields as a field ([#806](https://github.com/nonamich/ts-proto/issues/806)) ([6b4ba39](https://github.com/nonamich/ts-proto/commit/6b4ba39a0651a2352db2ac70eb91d21138ccf887))
* Include dockerized protoc ([#404](https://github.com/nonamich/ts-proto/issues/404)) ([7564a78](https://github.com/nonamich/ts-proto/commit/7564a7887ccd0bb80cac19d313ee9bd8daae778d))
* include service and definition types with implementations ([#552](https://github.com/nonamich/ts-proto/issues/552)) ([6b896f4](https://github.com/nonamich/ts-proto/commit/6b896f4b7f4ba0f0d97730767421786171646aea))
* Initialize lists with map ([#387](https://github.com/nonamich/ts-proto/issues/387)) ([200e674](https://github.com/nonamich/ts-proto/commit/200e674e4baf2640d67720ad535fe042d291d4a0))
* Make sure all types support prefix/suffix ([#1148](https://github.com/nonamich/ts-proto/issues/1148)) ([ddf2122](https://github.com/nonamich/ts-proto/commit/ddf21224d76f63e28e915889aa931c170cde4734))
* Normalize `toJSON` output by omitting fields set to their default values ([#878](https://github.com/nonamich/ts-proto/issues/878)) ([50958d6](https://github.com/nonamich/ts-proto/commit/50958d639435a32a76d59fc57565e3677f5be39e))
* Official Buf Plugin ([#573](https://github.com/nonamich/ts-proto/issues/573)) ([e6272c4](https://github.com/nonamich/ts-proto/commit/e6272c487f73ff96afb4146a7998a892c4b43f14))
* omit optional fields in base instance ([#669](https://github.com/nonamich/ts-proto/issues/669)) ([47b60aa](https://github.com/nonamich/ts-proto/commit/47b60aab95533542cf762f152138f7ab4234de88))
* oneof=unions-value to use the same field name for oneof cases ([#1062](https://github.com/nonamich/ts-proto/issues/1062)) ([7493090](https://github.com/nonamich/ts-proto/commit/74930908cc8e5292577a793b7ae06c3721225ac3)), closes [#1060](https://github.com/nonamich/ts-proto/issues/1060)
* option to declare schema as const ([#1096](https://github.com/nonamich/ts-proto/issues/1096)) ([4cc1a1e](https://github.com/nonamich/ts-proto/commit/4cc1a1e4238cf628591414c02d39bd76dc75fb3a))
* option useSnakeTypeName ([#694](https://github.com/nonamich/ts-proto/issues/694)) ([ad73ff9](https://github.com/nonamich/ts-proto/commit/ad73ff9341d0d593156d10b5d96c4a47afdc802d))
* optional one of properties ([#705](https://github.com/nonamich/ts-proto/issues/705)) ([4c6cbb0](https://github.com/nonamich/ts-proto/commit/4c6cbb0ff71e053c634732e295ed812901d368ae))
* optionally output versions used to generate files ([#1040](https://github.com/nonamich/ts-proto/issues/1040)) ([53d6799](https://github.com/nonamich/ts-proto/commit/53d67995526770213ecf91c15645b9c74e7e5bd4))
* **options:** adds protoc-gen-go-like M option ([#672](https://github.com/nonamich/ts-proto/issues/672)) ([9304e5d](https://github.com/nonamich/ts-proto/commit/9304e5db7172db53530fb08fe0486f56b2a17181)), closes [#596](https://github.com/nonamich/ts-proto/issues/596)
* output-encode-only methods ([#787](https://github.com/nonamich/ts-proto/issues/787)) ([3594410](https://github.com/nonamich/ts-proto/commit/3594410cc18fecc9c6f76f8abf7bdf9fdd178acd))
* Reduce code size by using nullish coalescing operator in fromPartial ([#376](https://github.com/nonamich/ts-proto/issues/376)) ([19d2ded](https://github.com/nonamich/ts-proto/commit/19d2deda2cf7c47b1b56bfc65cf58653291dba4a))
* represent field masks as `string[]` ([#525](https://github.com/nonamich/ts-proto/issues/525)) ([903b216](https://github.com/nonamich/ts-proto/commit/903b216238db025e24ec3cfb2d20063aec1a40ed))
* Round numbers in toJSON. ([#444](https://github.com/nonamich/ts-proto/issues/444)) ([bd2df7b](https://github.com/nonamich/ts-proto/commit/bd2df7b7176e961955ed1dcacb3602384e13ee45))
* RPC: add useAbortSignal option ([#731](https://github.com/nonamich/ts-proto/issues/731)) ([69313a7](https://github.com/nonamich/ts-proto/commit/69313a7a0f19c41c61824081e12ed680fda32b74)), closes [#730](https://github.com/nonamich/ts-proto/issues/730)
* Service generation option ([#357](https://github.com/nonamich/ts-proto/issues/357)) ([7a2cf83](https://github.com/nonamich/ts-proto/commit/7a2cf831c3768e5afd76dea37f3165df4886136e))
* service options unknown methods ([#801](https://github.com/nonamich/ts-proto/issues/801)) ([994d0d0](https://github.com/nonamich/ts-proto/commit/994d0d0ac54b3e22cb27fa4c5b8a5b1d17b62521))
* Streaming support ([#373](https://github.com/nonamich/ts-proto/issues/373)) ([459b94f](https://github.com/nonamich/ts-proto/commit/459b94f5b2988d58d186461332e888c3e511603a))
* support `json_name` defined in a proto file ([#943](https://github.com/nonamich/ts-proto/issues/943)) ([de989af](https://github.com/nonamich/ts-proto/commit/de989af0d9bf9910dc3c047a18d97f289bffe2ee))
* support `useMapType` option ([#686](https://github.com/nonamich/ts-proto/issues/686)) ([f2e80ab](https://github.com/nonamich/ts-proto/commit/f2e80ab3ecc3a438ecbd88b2170b8119ebadfcd3))
* support `useReadonlyTypes` option ([#691](https://github.com/nonamich/ts-proto/issues/691)) ([4b87334](https://github.com/nonamich/ts-proto/commit/4b8733452fb59cea3b9fb4721159b97e6df59854))
* support deprecatedOnly option to make deprecated fields optional ([#1010](https://github.com/nonamich/ts-proto/issues/1010)) ([db23004](https://github.com/nonamich/ts-proto/commit/db230041f69fa6a7ff17db55595e7b8805e655ba))
* Support for Google.Protobuf.Value, ListValue and Struct ([#396](https://github.com/nonamich/ts-proto/issues/396)) ([7dd9c16](https://github.com/nonamich/ts-proto/commit/7dd9c16ffdec4d9ea296fbdc30d390fe44192c42))
* support grpc-web client straming ([#617](https://github.com/nonamich/ts-proto/issues/617)) ([d3e7f1f](https://github.com/nonamich/ts-proto/commit/d3e7f1f4aac12db87c54d6357e557a351c96a2ca))
* Support json names containing non-alphanumeric characters ([#520](https://github.com/nonamich/ts-proto/issues/520)) ([ce44668](https://github.com/nonamich/ts-proto/commit/ce44668b8fe01b14f50ac3c5c950f73db769fa76))
* support lib: es6 ([#850](https://github.com/nonamich/ts-proto/issues/850)) ([6280677](https://github.com/nonamich/ts-proto/commit/62806776beacb1e2b0ee921e4212f1e61ce5191e))
* support mapping ObjectId message as mongodb.ObjectId ([#467](https://github.com/nonamich/ts-proto/issues/467)) ([8b23897](https://github.com/nonamich/ts-proto/commit/8b2389715ecfd5d51b1b24f5a9332e4ff9f09a27))
* support proto2 optional and default value fields ([#1007](https://github.com/nonamich/ts-proto/issues/1007)) ([1fa1e61](https://github.com/nonamich/ts-proto/commit/1fa1e61b0a0ff22949a1acadb38630f6f5bf6179)), closes [#973](https://github.com/nonamich/ts-proto/issues/973)
* **ts-proto-#859:** added encode-only options to toJSON methods ([#886](https://github.com/nonamich/ts-proto/issues/886)) ([d0cf57d](https://github.com/nonamich/ts-proto/commit/d0cf57d9a1aebdec3bec67585658362b1a38d6a3)), closes [ts-proto-#859](https://github.com/ts-proto-/issues/859) [ts-proto-#859](https://github.com/ts-proto-/issues/859) [ts-proto#859](https://github.com/ts-proto/issues/859) [ts-proto#859](https://github.com/ts-proto/issues/859) [ts-proto-#859](https://github.com/ts-proto-/issues/859)
* Update fromPartial and fromJson to respect initializeFieldsAsUndefined ([#811](https://github.com/nonamich/ts-proto/issues/811)) ([1615ae0](https://github.com/nonamich/ts-proto/commit/1615ae0b136bc8909e206b44f3bd6ec568a760e6))
* Update protobufjs (and peer dependencies) to ^7 ([#874](https://github.com/nonamich/ts-proto/issues/874)) ([7f979a7](https://github.com/nonamich/ts-proto/commit/7f979a70af2e42c8c429ae5f65787e0b43ccb706))
* Upgrade to long 5.0.0. ([#882](https://github.com/nonamich/ts-proto/issues/882)) ([4c1e7a6](https://github.com/nonamich/ts-proto/commit/4c1e7a6e02f974f193063a83ce7a472b14f2d2d0))
* Use exact types for fromPartial ([#412](https://github.com/nonamich/ts-proto/issues/412)) ([808f8a7](https://github.com/nonamich/ts-proto/commit/808f8a7a77d56f65dd4a4643dd66158f106ab755)), closes [#156](https://github.com/nonamich/ts-proto/issues/156)
* Use ternary operator for conditional assignments ([#394](https://github.com/nonamich/ts-proto/issues/394)) ([d84c084](https://github.com/nonamich/ts-proto/commit/d84c084fb56c958c184f8971479979b8bfb17ccc))
* watch for changed integration test files ([#464](https://github.com/nonamich/ts-proto/issues/464)) ([988cd7e](https://github.com/nonamich/ts-proto/commit/988cd7eb84bc3b8b72d6b4d59c38aa794c16c638))
* yarn watch updates (specified) tests when source files change ([#465](https://github.com/nonamich/ts-proto/issues/465)) ([275d0e7](https://github.com/nonamich/ts-proto/commit/275d0e7c61f3acb2b1fd670b1974e64dd49d6ff4))

### Performance Improvements

* Faster base64FromBytes & bytesFromBase64 on Node.JS ([#649](https://github.com/nonamich/ts-proto/issues/649)) ([82ab341](https://github.com/nonamich/ts-proto/commit/82ab341557fba1a4933c4613d5c20dbf897905fa))
* fromJSON returns object literal to allow v8 optimizations ([#463](https://github.com/nonamich/ts-proto/issues/463)) ([5fcd05b](https://github.com/nonamich/ts-proto/commit/5fcd05b79e7c02547c4b6db46fae7a7202f97629))
* generate switch statement for oneof union encode ([#767](https://github.com/nonamich/ts-proto/issues/767)) ([c3fd1e3](https://github.com/nonamich/ts-proto/commit/c3fd1e3e487d1da3e8c792354d6491cadb067ff4))
* Generating "else if" where applicable ([#1141](https://github.com/nonamich/ts-proto/issues/1141)) ([4a8018c](https://github.com/nonamich/ts-proto/commit/4a8018c915dabbc83629f021a2899ade55b6c8de))
* optimize object creation in `decode`, `fromJSON` and `fromPartial` ([#457](https://github.com/nonamich/ts-proto/issues/457)) ([70832d3](https://github.com/nonamich/ts-proto/commit/70832d33bae82ecb3c5f87845d14e992a13437e4))
* Replacing "else if" with a "switch case" statement to improve Typescript performance ([#1142](https://github.com/nonamich/ts-proto/issues/1142)) ([de1a616](https://github.com/nonamich/ts-proto/commit/de1a616d24a90ef7b281c9e8966556adfa156ebb)), closes [#1135](https://github.com/nonamich/ts-proto/issues/1135) [#1141](https://github.com/nonamich/ts-proto/issues/1141)
* use array.push to prevent reallocation on every field ([#804](https://github.com/nonamich/ts-proto/issues/804)) ([a6aea2c](https://github.com/nonamich/ts-proto/commit/a6aea2ca9e61611cf22417d23eb71a5d6e4f2164))
* use Reader.create ([#800](https://github.com/nonamich/ts-proto/issues/800)) ([869e448](https://github.com/nonamich/ts-proto/commit/869e44876c88ccfb82cb4a48731b340a0fb2c025))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add .js suffix to imports
3 participants