NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #506 most downloaded on npm
Protocol Buffers for JavaScript & TypeScript.
Last release 1 months ago
27 Aug 2026
Ships fairly regularly
a new release about every 2 weeks
Nearly every release is documented
notes for 58 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
14 years old
220 releases · first in 2013
cli: fix relative path to Google pb files
One column per quarter.
cli: generate static files at the granularity of proto messages
types: nested object can be a oneof
deps: patch minimatch vulnerability
repeated_value: [ "foo", "bar" ] (#1574) (f5b893c)[protobufjs-v6.11.x] Backport CVE-2026-41242: fix: filter invalid characters from the type name (#2127) by @vulgraph in https://github.com/protobufjs/…
Full Changelog: https://github.com/protobufjs/protobuf.js/compare/v6.11.5...v6.11.6
This release has no code changes, only fixing a problem reported in #2138 with the node_modules being packed into the released archive.
This release has no code changes, only fixing a problem reported in #2138 with the node_modules being packed into the released archive.
Full Changelog: https://github.com/protobufjs/protobuf.js/compare/v6.11.4...v6.11.5
Nothing published for this version
regenerated index.d.ts to fix the unintended breaking change in types.
parse.js "parent.add(oneof)“ error (@leon776)
support for proto3 optional fields (@alexander-fenster)
optional fields (@alexander-fenster) (#1584)--no-service option for pbjs (@mdouglass) (#1577)oneof members to default values, use null instead (@alexander-fenster) (#1597)@types/node to >= 13.7.0 in dependencies (@indutny) (#1575)Nothing published for this version
Nothing published for this version
make node detection a bit more forgiving
This is a pre-release for testing purposes of #1448.
This is a pre-release for testing purposes of #1448.
Install by running npm install protobufjs@next
add configurable Root.prototype.fetch
This is a pre-release for testing purposes of #1424.
This is a pre-release for testing purposes of #1424.
Install by running npm install protobufjs@next
This is a pre-release for testing purposes of #1424.
This is a pre-release for testing purposes of #1424.
Install by running npm install protobufjs@next
This is a pre-release for testing purposes of #1424.
This is a pre-release for testing purposes of #1424.
Install by running npm install protobufjs@next
add support for buffer configuration
Nothing published for this version
This is a pre-release for testing purposes of #1374.
This is a pre-release for testing purposes of #1374.
Install by running npm install protobufjs@next
Nothing published for this version
:hash: Persist recent index.d.ts changes in JSDoc
:hash: Persist recent index.d.ts changes in JSDoc<br />
:hash: Fix package browser field descriptor (#1046) :hash: Fix static codegen issues with uglifyjs3 :hash: Fix lint issues / pbts on windows :hash: Fi
:hash: Fix package browser field descriptor (#1046)<br /> :hash: Fix static codegen issues with uglifyjs3<br /> :hash: Fix lint issues / pbts on windows<br /> :hash: Fix empty 'bytes' field decoding, now using Buffer where applicable (#1020)<br /> :hash: Fix circular dependency of Namespace and Enum (#994)<br /> :hash: Ignore optional commas in aggregate options (#999)<br />
:hash: Make Message<T> have a default type param (#1086)<br /> :hash: Explicitly define service method names when generating static code, see #857<br /> :hash: Also handle services in ext/descriptor (#1001)<br />
:hash: Extend list of ignored ESLint rules for pbjs, fixes #1085<br /> :hash: Fix declared return type of pbjs/pbts callback (#1025)<br /> :hash: Added an option to pbts to allow custom imports (#1038)<br /> :hash: Get node executable path from process.execPath (#1018)<br />
:hash: Slim down CI testing and remove some not ultimately necesssary dependencies with audit issues<br /> :hash: Move global handling to util, see #995<br />
Fixes typeRefRe used in the parser (1.X-6.8.5) being vulnerable to ReDoS as reported by James Davis. Relevant where a user is allowed to provide .prot…
This is a security patch:
typeRefRe used in the parser (1.X-6.8.5) being vulnerable to ReDoS as reported by James Davis. Relevant where a user is allowed to provide .proto sources for parsing. Applications using trusted .proto definitions, JSON descriptors or static code exclusively are not affected.:hash: Preserve comments when serializing/deserializing with toJSON and fromJSON. (#983) :hash: Add more details to some frequent error messages (#962
:hash: Preserve comments when serializing/deserializing with toJSON and fromJSON. (#983)<br /> :hash: Add more details to some frequent error messages (#962)<br /> :hash: Add IParseOptions#alternateCommentMode (#968)<br /> :hash: Added field_mask to built-in common wrappers (#982)<br />
:hash: Remove code climate config in order to use 'in-app' config instead<br />
:hash: Update jsdoc dependency (pinned vulnerable marked)
:hash: Update jsdoc dependency (pinned vulnerable marked)<br />
:hash: Use correct safeProp in json-module target, see #956
:hash: Include dist files in npm package, see #955
:hash: Prevent invalid JSDoc names when generating service methods, see #870 :hash: Prevent parse errors when generating service method names, see #87
:hash: Prevent invalid JSDoc names when generating service methods, see #870<br /> :hash: Prevent parse errors when generating service method names, see #870<br /> :hash: Support parsing nested option-values with or without ':' (#951, fixes #946)<br /> :hash: Add support for reserved keyword in enums (#950, fixes #949)<br /> :hash: Unified safe property escapes and added a test for #834<br /> :hash: Fix codegen if type name starts with "Object"<br /> :hash: Fixed dependency for json-module to use "light".<br /> :hash: Basic support for URL prefixes in google.protobuf.Any types.<br /> :hash: fixed 'error is not defined linter warning when using static/static-module and es6<br /> :hash: Fixed wrong type_url for any type (no leading '.' allowed).<br /> :hash: Fixed fromObject() for google.protobuf.Any types.<br /> :hash: Handle case where 'extendee' is undefined in ext/descriptor<br />
:hash: Sanitize CR-only line endings (coming from jsdoc?)<br /> :hash: Make sure enum typings become generated (#884 didn't solve this)<br /> :hash: Remove exclude and include patterns from jsdoc config<br /> :hash: Skip defaults when generating proto3<br /> :hash: Wait for both the 'end' and 'close' event to happen before finishing in pbts, see #863<br /> :hash: Accept null for optional fields in generated static code<br /> :hash: Annotate TS classes with @implements<br /> :hash: Annotate virtual oneofs as string literal unions<br />
:hash: Also check for reserved ids and names in enums<br /> :hash: Also support 'reserved' in enum descriptors<br />
:hash: Include just relevant files in npm package, fixes #781<br /> :hash: Fix travis build<br />
Experimental decorators, a lot of general fixes and an overhaul of typings generated by pbts.
Experimental decorators, a lot of general fixes and an overhaul of typings generated by pbts.
:hash: Replaced Buffer and Long types with interfaces and removed stubs<br /> :hash: Removed Message#toObject in favor of having just the static version (unnecessary static code otherwise)<br /> :hash: Everything uses interfaces now instead of typedefs (SomethingProperties is now ISomething)<br /> :hash: ReflectionObject#toJSON properly omits explicit undefined values<br /> :hash: Initial implementation of TypeScript decorators<br /> :hash: Refactored protobuf.Class away<br /> :hash: TypeScript definitions now have (a lot of) generics<br /> :hash: Removed deprecated features<br />
:hash: Added 'undefined' besides 'null' as a valid value of an optional field, fixes #826<br /> :hash: Fixed an issue with codegen typings, see #819<br /> :hash: Ported utf8 chunking mechanism to base64 as well, fixes #800<br /> :hash: Also be more verbose when defining properties for ES6, fixes #820<br /> :hash: Generate more verbose JSDoc comments for ES6 support, fixes #820<br /> :hash: Emit a maximum of one error var when generating verifiers, fixes #786<br /> :hash: Fixed missing semicolon after 'extensions' and 'reserved' when generating proto files, fixes #810<br /> :hash: Call npm with '--no-bin-links' when installing CLI deps, fixes #823<br /> :hash: Fix Reader argument conversion in static module<br /> :hash: Use JSDoc, they said, it documents code, they said. Fixes #770<br /> :hash: parser should not confuse previous trailing line comments with comments for the next declaration, see #762<br /> :hash: Types should not clear constructor with cache (fixes decorators)<br /> :hash: Namespace#lookup should also check in nested namespaces (wtf)<br /> :hash: Reader#bytes should also support plain arrays<br /> :hash: Fix markdown for pipe in code in table<br />
:hash: Upgrade to codegen 2<br /> :hash: ext/descriptor enables interoperability between reflection and descriptor.proto (experimental), see #757<br /> :hash: Added 'json' conversion option for proto3 JSON mapping compatibility of NaN and Infinity + additional documentation of util.toJSONOptions, see #351<br />
:hash: Use protobuf/minimal when pbjs target is static-module<br /> :hash: Added closure wrapper<br /> :hash: Various improvements to statically generated JSDoc, also fixes #772<br /> :hash: Check incompatible properties for namespaces only in tsd-jsdoc<br /> :hash: Additional tsd-jsdoc handling of properties inside of namespaces and TS specific API exposure<br /> :hash: Several improvements to tsd-jsdoc emitted comments<br /> :hash: Further TypeScript definition improvements<br /> :hash: Relieved tsd files from unnecessary comments<br /> :hash: Generate TS namespaces for vars and functions with properties<br /> :hash: Prefer @tstype over @type when generating typedefs (tsd-jsdoc)<br />
:hash: Replaced nullable types with explicit type|null for better tooling compatibility, also fixes #766 and fixes 767<br /> :hash: Added more info to ext/descriptor README, see #757<br /> :hash: Additional notes on ext/descriptor<br /> :hash: Updated CHANGELOG so everyone knows what's going on (and soon, breaking)<br /> :hash: Additional docs on TS/decorators usage<br />
:hash: Updated dist files<br /> :hash: Added package-lock.json<br /> :hash: Minor formatting<br /> :hash: Generate files<br /> :hash: Remove the no-constructor arg<br /> :hash: Remove the ctor option.<br /> :hash: Add support to generate types for JSON object.<br /> :hash: aspromise performance pass<br /> :hash: codegen 2 performance pass, #653 might benefit<br /> :hash: Fixed minimal library including reflection functionality<br /> :hash: Minor compression ratio tuning<br /> :hash: Fixed failing test case + coverage<br /> :hash: Improved fromObject wrapper for google.protobuf.Any.<br /> :hash: Fixed failing tokenize test case<br /> :hash: Removed debug build, made it an extension<br /> :hash: Regenerated dist files<br /> :hash: Even more documentation and typings for ext/descriptor<br /> :hash: ext/descriptor docs<br /> :hash: Decorators coverage<br /> :hash: ext/descriptor support for various standard options, see #757<br /> :hash: ext/descriptor passes descriptor.proto test with no differences, see #757<br /> :hash: Properly remove unnecessary (packed) options from JSON descriptors<br /> :hash: Use typedefs in ext/descriptor (like everywhere else), see #757<br /> :hash: Fixed obvious issues with ext/descriptor, does not throw anymore when throwing descriptor.proto itself at it, see #757<br /> :hash: Added still missing root traversal to ext/descriptor, see #757<br /> :hash: Initial map fields support for ext/descriptor, see #757<br /> :hash: Added infrastructure for TypeScript support of extensions<br /> :hash: TypeScript generics improvements<br /> :hash: More ext/descriptor progress, see #757<br /> :hash: Just export the relevant namespace in ext/descriptor<br /> :hash: Initial descriptor.proto extension for reflection interoperability, see #757<br /> :hash: Moved custom wrappers to its own module instead, also makes the API easier to use manually, see #677<br /> :hash: Added infrastructure for custom wrapping/unwrapping of special types, see #677<br /> :hash: More decorator progress (MapField.d, optional Type.d)<br /> :hash: tsd-jsdoc now has limited generics support<br />
:hash: long, @types/long and @types/node are just dependencies, see #753
:hash: Split up NamespaceDescriptor to make nested plain namespaces a thing, see #749
:hash: Split up NamespaceDescriptor to make nested plain namespaces a thing, see #749<br />
:hash: More README<br /> :hash: Replaced 'runtime message' with 'message instance' for clarity<br /> :hash: Rephrased the Usage section around the concept of valid messages<br /> :hash: Added toolset diagram to README<br />
:hash: Touched benchmark output metrics once more<br /> :hash: Fixed failing browser test<br /> :hash: Output more human friendly metrics from benchmark<br /> :hash: Stripped down static bench code to what's necessary<br /> :hash: Revamped benchmark, now also covers Google's JS implementation<br /> :hash: Updated dependencies and dist files<br />
:hash: Made .verify behave more like .encode, see #710
:hash: Made .verify behave more like .encode, see #710<br />
:hash: With null/undefined eliminated by constructors and .create, document message fields as non-optional where applicable (ideally used with TS & strictNullChecks), see #743<br /> :hash: Renamed --strict-long/message to --force-long/message with backward compatible aliases, see #741<br /> :hash: Keep $Properties with --strict-message but require actual instances within, see #741<br /> :hash: Added --strict-message option to pbjs to strictly reference message instances instead of $Properties, see #741<br />
:hash: Restructured README<br /> :hash: Added more information on typings usage, see #744<br /> :hash: Clarified typescript example in README, see #744<br /> :hash: Clarified that the service API targets clients consuming a service, see #742<br />
:hash: Omit copying of undefined or null in constructors and .create, see #743<br />
General API cleanup and a lot of fixes, improved spec compliance, static code, typings and documentation.
General API cleanup and a lot of fixes, improved spec compliance, static code, typings and documentation.
:hash: Namespace#lookupEnum should actually look up the reflected enum and not just its values<br /> :hash: Decoder now throws if required fields are missing, see #695 / #696<br />
:hash: Added functionality to filter for multiple types at once in lookup(), used by lookupTypeOrEnum(), fixes #740<br /> :hash: Ensure that fields have been resolved when looking up js types in static target, see #731<br /> :hash: Properly copy fields array before sorting in toObject, fixes #729<br /> :hash: Actually emit TS compatible enums in static target if not aliases, see #720<br /> :hash: Hardened tokenize/parse, esp. comment parsing, see #713<br /> :hash: Exclude any fields part of some oneof when populating defaults in toObject, see #710<br /> :hash: Most of the parser is not case insensitive, see #705<br /> :hash: Retain options argument in Root#load when used with promises, see #684<br />
:hash: Created a micromodule from (currently still bundled) float support<br />
:hash: util.isset(obj, prop) can be used to test if a message property is considered to be set, see #728<br />
:hash: Implemented stubs for long.js / node buffers to be used where either one isn't wanted, see #718<br />
:hash: Simplified reusing / replacing internal constructors<br />
:hash: Constructors/.create always initialize proper mutable objects/arrays, see #700<br />
:hash: Verifiers return an error if multiple fields part of the same oneof are set, see #710<br />
:hash: Added oneofs: true to ConversionOptions, see #710<br />
:hash: Optional fields handle null just like undefined regardless of type see #709<br />
:hash: Encoders no longer examine virtual oneof properties but encode whatever is present, see #710<br />
:hash: pbjs now generates multiple exports when using ES6 syntax, see #686<br />
:hash: Sequentially serialize fields ordered by id, as of the spec.<br />
:hash: decode throws specific ProtocolError with a reference to the so far decoded message if required fields are missing + example<br />
:hash: Reader.create asserts that buffer is a valid buffer, see #695<br />
:hash: Exclude JSDoc on typedefs from generated d.ts files because typescript@next, see #737<br /> :hash: Prepare static code with estraverse instead of regular expressions, see #732<br /> :hash: Moved tsd-jsdoc to future cli package, see #716<br /> :hash: $Properties are just a type that's satisfied, not implemented, by classes, see #723<br /> :hash: More progress on decoupling the CLI<br /> :hash: Fixed computed array indexes not being renamed in static code, see #726<br /> :hash: Check upfront if key-var is required in static decoders with maps, see #726<br /> :hash: Fixed handling of stdout if callback is specified, see #724<br /> :hash: Preparations for moving the CLI to its own package, see #716<br /> :hash: Properly implement $Properties interface in JSDoc, see #723<br /> :hash: Recursively use $Properties inside of $Properties in static code, see #717<br /> :hash: Added --strict-long option to pbjs to always emit 'Long' instead of 'number|Long' (only relevant with long.js), see #718<br /> :hash: Statically emitted long type is 'Long' now instead of '$protobuf.Long', see #718<br /> :hash: Decoupled message properties as an interface in static code for TS intellisense support, see #717<br /> :hash: Static code statically resolves types[..], see #715<br />
:hash: Added type definitions for all possible JSON descriptors<br /> :hash: Explained the JSON structure in README and moved CLI specific information to the CLI package<br /> :hash: Added information on how to use the stubs to README, see #718<br /> :hash: Added 'What is a valid message' section to README<br /> :hash: Added a hint on using .create to initial example<br /> :hash: Even more usage for README<br /> :hash: Additional information on general usage (README)<br /> :hash: Restructured README to Installation, Usage and Examples sections<br /> :hash: Added a longish section on the correct use of the toolset to README<br /> :hash: Added a few additional notes on core methods to README, see #710<br /> :hash: Extended traverse-types example, see #693<br /> :hash: Better explain how .verify, .encode and .decode are connected<br /> :hash: Documented that Type#encode respectively Message.encode do not implicitly .verify, see #696 [ci-skip]<br /> :hash: Documented throwing behavior of Reader.create and Message.decode<br /> :hash: Added error handling notes to README, see #696<br />
:hash: Use @protobufjs/float<br /> :hash: Rebuilt dist files for 6.7.0<br /> :hash: Updated deps, ts fixes and regenerated dist files<br /> :hash: Manually merged gentests improvements, fixes #733<br /> :hash: Make sure that util.Long is overridden by AMD loaders only if present, see #730<br /> :hash: Coverage for util.isset and service as a namespace<br /> :hash: Shortened !== undefined && !== null to equivalent != null in static code<br /> :hash: With stubs in place, 'number|Long' return values can be just 'Long' instead, see #718<br /> :hash: Just alias as the actual ideal type when using stubs, see #718<br /> :hash: General cleanup + regenerated dist/test files<br /> :hash: Simplified camel case regex, see #714<br /> :hash: Regenerated dist files and changelog for 6.7.0<br /> :hash: Retain alias order in static code for what it's worth, see #712<br /> :hash: Everything can be block- or line-style when parsing, see #713<br /> :hash: Determine necessary aliases depending on config, see #712<br /> :hash: Use more precise types for message-like plain objects<br /> :hash: Regenerated dist files<br /> :hash: Regenerated relevant files<br /> :hash: Moved field comparer to util<br /> :hash: Updated tests to use new simplified encoder logic<br /> :hash: Updated path to tsd-jsdoc template used by pbts, see #707<br /> :hash: Additional restructuring for moving configuration files out of the root folder<br /> :hash: Added codegen support for constructor functions, see #700<br /> :hash: Attempted to fix broken custom error test<br /> :hash: Trying out a more aggressive aproach for custom error subclasses<br /> :hash: Moved a few things out of the root folder<br /> :hash: Coverage for encoder compat. / protocolerror<br /> :hash: Updated dist and generated test files<br /> :hash: Added tslint<br /> :hash: Exclude dist/ from codeclimate checks<br /> :hash: Also lint cli utilities<br /> :hash: Cache any regexp instance (perf)<br /> :hash: Use code climate badges<br /> :hash: Updated travis to pipe to codeclimate, coverage<br /> :hash: More precise linter configuration<br /> :hash: Added codeclimate<br /> :hash: Moved cli deps placeholder creation to post install script<br />
:hash: sfixed64 is not zig-zag encoded, see #692
:hash: sfixed64 is not zig-zag encoded, see #692<br />
:hash: Added a placeholder to cli deps node_modules folder to make sure node can load from it<br />
:hash: Restructured a few failing tests<br /> :hash: Traversal example + minimalistic documentation<br /> :hash: Added a custom getters/setters example for gRPC<br />
:hash: Made sure that LongBits ctor is always called with unsigned 32 bits + static codegen compat., fixes #690 :hash: Properly handle multiple ../..
:hash: Made sure that LongBits ctor is always called with unsigned 32 bits + static codegen compat., fixes #690<br /> :hash: Properly handle multiple ../.. in path.normalize, see #688<br /> :hash: Post-merge, also tackles #683 (packed option for repeated enum values)<br />
:hash: Verify accepts non-null objects only, see #685<br /> :hash: allow_alias enum option was not being honored. This case is now handled and a test case was added<br />
:hash: Added an experimental --sparse option to limit pbjs output to actually referenced types within main files<br />
:hash: Added explicit hint on Uint8Array to initial example, see #670<br />
:hash: Ranges and names support for reserved fields, see #676<br /> :hash: Updated depdendencies / rebuilt dist files<br /> :hash: Use ?: instead of |undefined in .d.ts files<br /> :hash: Mark optional fields as possibly being undefined<br /> :hash: Added a few more common google types from google/api, see #433<br /> :hash: Minor optimizations to dependencies, build process and tsd<br />
:hash: Support node 4.2.0 to 4.4.7 buffers + travis case, see #665
:hash: Support node 4.2.0 to 4.4.7 buffers + travis case, see #665<br />
:hash: Added ES6 syntax flag to pbjs, see #667<br />
:hash: Reference Buffer for BufferReader/Writer, see #668<br /> :hash: Slightly shortened README<br /> :hash: Additional notes on the distinction of different use cases / distributions, see #666<br /> :hash: Extended README with additional information on JSON format<br /> :hash: Added extended usage instructions for TypeScript and custom classes to README, see #666<br />
:hash: Updated dist files<br /> :hash: Updated test cases to use new buffer util<br /> :hash: Added fetch test cases + some test cleanup<br />
:hash: Properly replace short vars when beautifying static code, see #663 :hash: Use custom prelude in order to exclude any module loader code from so
:hash: Properly replace short vars when beautifying static code, see #663<br /> :hash: Use custom prelude in order to exclude any module loader code from source (for webpack), see #658<br /> :hash: Make sure to check optional inner messages for null when encoding, see #658<br />
:hash: Initial attempt on a backwards compatible fetch implementation with binary support, see #661<br />
:hash: Root#resolvePath skips files when returning null, see #368<br /> :hash: Changes callback on failed response decode in rpc service to pass actual error instead of 'error' string<br /> :hash: Travis should exit with the respective error when running sauce tests<br /> :hash: Moved checks whether a test case is applicable to parent case<br /> :hash: Added eventemitter tests and updated micromodule dependencies (so far)<br /> :hash: Added lib/path tests and updated a few dependencies<br /> :hash: Moved micro modules to lib so they can have their own tests etc.<br /> :hash: Updated travis<br />
:hash: Properly set up reflection when using light build
:hash: Properly set up reflection when using light build<br />
Builds are now named full, light (was noparse) and minimal (was runtime), each now with full browserify support
All details: CHANGELOG
:hash: Inlined / refactored away .testJSON, see #653<br /> :hash: Refactored util.extend away<br /> :hash: Reflected and statically generated services use common utility, now work exactly the same<br /> :hash: fromObject now throws for entirely bogus values (repeated, map and inner message fields), fixes #601<br /> :hash: Cleaned up library distributions, now is full / light / minimal with proper browserify support for each<br />
:hash: Do not randomly remove slashes from comments, fixes #656<br /> :hash: Properly parse nested textformat options, also tackles #655<br />
:hash: Relieved the requirement to call .resolveAll() on roots in order to populate static code-compatible properties, see #653<br /> :hash: Added a (highly experimental) debug build as a starting point for #653<br /> :hash: Full build depends on light build depends on minimal build, shares all relevant code<br />
:hash: Also reuse specified root in pbjs for JSON modules, see #653<br /> :hash: Reuse specified root name in pbjs to be able to split definitions over multiple files more easily, see #653<br />
:hash: Improved pbjs/pbts examples, better covers reflection with definitions for static modules<br /> :hash: Fixed centered formatting on npm<br />
:hash: Various other minor improvements / assertions refactored away, see #653<br /> :hash: Fixed some common reflection deopt sites, see #653<br /> :hash: Reflection performance pass, see #653<br /> :hash: Added TS definitions to alternative builds' index files<br /> :hash: Removed unnecessary prototype aliases, improves gzip ratio<br /> :hash: Unified behaviour of and docs on Class constructor / Class.create<br /> :hash: Statically generated services actually inherit from rpc.Service<br /> :hash: Do not try to run sauce tests for PRs<br /> :hash: Added utility to enable/disable debugging extensions to experimental debug build<br /> :hash: Fixed node 0.12 tests<br /> :hash: Fixed coverage<br /> :hash: Added a test case for #652<br />
:hash: In fromObject, check if object is already a runtime message, see #652
:hash: Added coverage reporting
:hash: Added coverage reporting<br />
:hash: Added version scheme warning to everything CLI so that we don't need this overly explicit in README<br />
:hash: Coverage progress, 100%<br /> :hash: Coverage progress<br /> :hash: Attempted to fix badges once and for all<br /> :hash: Coverage progress<br />
:hash: Reuse module paths when looking up cli dependencies, see #648 :hash: Check actual module directories to determine if cli dependencies are prese
:hash: Reuse module paths when looking up cli dependencies, see #648<br /> :hash: Check actual module directories to determine if cli dependencies are present and bootstrap semver, see #648<br />
:hash: Added a note on semver-incompatibility, see #649<br />
:hash: Coverage progress<br />
Converters are first class codegen citizens now (includes a default toJSON implementation)
Breaking:
All details: CHANGELOG
:hash: Initial upgrade of converters to real generated functions, see #620<br />
:hash: An enum's default value present as a string looks up using typeDefault, not defaultValue which is an array if repeated<br /> :hash: Use common utility for virtual oneof getters and setters in both reflection and static code, see #644<br /> :hash: Properly use Type.toObject/Message.toObject within converters, see #641<br /> :hash: Generate null/undefined assertion in fromObject if actually NOT an enum, see #620<br /> :hash: Replace ALL occurencies of types[%d].values in static code, see #641<br />
:hash: Switched to own property-aware encoders for compatibility, see #639<br /> :hash: Now also parses comments, sets them on reflected objects and re-uses them when generating static code, see #640<br />
:hash: Further improved generated static code style<br /> :hash: Removed scoping iifes from generated static code<br /> :hash: Removed even more clutter from generated static code<br /> :hash: Removed various clutter from generated static code<br /> :hash: Made sure that static target's replacement regexes don't match fields<br /> :hash: Also accept (trailing) triple-slash comments for compatibility with protoc-gen-doc, see #640<br /> :hash: Use semver to validate that CLI dependencies actually satisfy the required version, see #637<br />
:hash: Added a hint on documenting .proto files for static code<br /> :hash: Documented internally used codegen partials for what it's worth<br /> :hash: Updated converter documentation<br />
:hash: Bundler provides useful stuff to uglify and a global var without extra bloat<br /> :hash: Cleaned and categorized tests, coverage progress<br /> :hash: Properly removed builtins from bundle<br /> :hash: Call hasOwnProperty builtin as late as possible decreasing the probability of having to call it at all (perf)<br /> :hash: Slightly hardened codegen sprintf<br /> :hash: Significantly improved uint32 write performance<br /> :hash: Cleaned up test case data and removed unused files<br /> :hash: Removed now useless trailing comment checks, see #640<br /> :hash: Ensured that pbjs' beautify does not break regular expressions in generated verify functions<br />
:hash: Case-sensitively test for legacy group definitions, fixes #638 :hash: Properly parse text format options + simple test case, fixes #636
:hash: Case-sensitively test for legacy group definitions, fixes #638<br /> :hash: Properly parse text format options + simple test case, fixes #636<br />
:hash: Added SVG logo, see #629<br />
:hash: Also refactored Service and Type to inherit from NamespaceBase, see #635<br /> :hash: Moved TS-compatible Namespace features to a virtual NamespaceBase class, compiles with strictNullChecks by default now, see #635<br /> :hash: Minor codegen enhancements<br />
:hash: Properly handle empty/noop Writer#ldelim, fixes #625 :hash: Properly annotate map fields in pbjs, fixes #624
:hash: Properly handle empty/noop Writer#ldelim, fixes #625<br /> :hash: Properly annotate map fields in pbjs, fixes #624<br />
:hash: Made sure that Writer#bytes is always able to handle plain arrays<br />
:hash: Slightly restructured utility to better support static code default values<br />
:hash: Dynamically resolve jsdoc when running pbts, fixes #622
:hash: Fixed invalid definition of Field#packed property, also introduced decoder.compat mode (packed fields, on by default) :hash: Always decode pack
:hash: Fixed invalid definition of Field#packed property, also introduced decoder.compat mode (packed fields, on by default)<br /> :hash: Always decode packed/non-packed based on wire format only, see #602<br /> :hash: Use full library for JSON modules and runtime dependency for static modules, fixes #621<br />
:hash: Additional workarounds for on demand CLI dependencies, see #618<br /> :hash: Revised automatic setup of cli dependencies, see #618<br />
:hash: Removed Android 4.0 test (no longer supported by sauce)<br /> :hash: Removed some unused utility, slightly more efficient codegen, additional comments<br /> :hash: Updated tests for new package.json layout<br /> :hash: Added break/continue label support to codegen<br /> :hash: Updated dependencies, rebuilt dist files and changed logo to use an absolute url<br />
6.4.2 had been accidentally published as 6.4.3.
:hash: Added more default value checks to converter, fixes #616 :hash: Respect long defaults in converters :hash: Convert inner messages and undefined
:hash: Added more default value checks to converter, fixes #616<br /> :hash: Respect long defaults in converters<br /> :hash: Convert inner messages and undefined/null values more thoroughly, fixes #615<br /> :hash: Always use first defined enum value as field default, fixes #613<br /> :hash: Install correct 'tmp' dependency when running pbts without dev dependencies installed, fixes #612<br />
:hash: Generate named constructors for runtime messages, see #588<br />
:hash: pbjs/pbts no longer generate any volatile headers, see #614<br />
:hash: Attempted to make broken shields less annoying<br /> :hash: Updated README<br />
:hash: Some cleanup and added a logo<br /> :hash: use $protobuf.Long<br />
Static codegen now has asJSON/from
All details: CHANGELOG
:hash: Dropped IE8 support<br /> :hash: Removed now unused util.longNeq which was used by early static code<br />
:hash: Do not swallow errors in loadSync, also accept negative enum values in Enum#add, fixes #609<br /> :hash: Improved bytes field support, also fixes #606<br /> :hash: Fall back to browser Reader when passing an Uint8Array under node, fixes #605<br /> :hash: Respect optional properties when writing interfaces in tsd-jsdoc, fixes #598<br />
:hash: Instead of protobuf.parse.keepCase, fall back to protobuf.parse.defaults holding all possible defaults, see #608<br /> :hash: Added global ParseOptions#keepCase fallback as protobuf.parse.keepCase, see #608<br /> :hash: Converters use code generation and support custom implementations<br /> :hash: Be more verbose when throwing invalid wire type errors, see #602<br /> :hash: Added an asJSON-option to always populate array fields, even if defaults=false, see #597<br /> :hash: Attempt to improve TypeScript support by using explicit exports<br /> :hash: Copy-pasted typescript definitions to micro modules, see #599<br /> :hash: Emit an error on resolveAll() if any extension fields cannot be resolved, see #595 + test case<br />
:hash: Removed 'not recommend' label for --keep-case, see #608<br /> :hash: Added customizable linter configuration to pbjs<br /> :hash: Added stdin support to pbjs and pbts<br /> :hash: Static code no longer uses IE8 support utility<br /> :hash: Generated static code now supports asJSON/from<br /> :hash: Added support for TypeScript enums to pbts<br /> :hash: Added a few helpful comments to static code<br /> :hash: Slightly beautify statically generated code<br /> :hash: Do not wrap main definition as a module and export directly instead<br /> :hash: Generate prettier definitions with --no-comments<br /> :hash: Added variable arguments support to tsd-jsdoc<br /> :hash: Reference dependency imports as a module to prevent name collisions, see #596<br /> :hash: Removed now unnecessary comment lines in generated static code<br />
:hash: Added notes on CSP-restricted environments to README, see #593<br />
:hash: Added test case for asJSON with arrays=true, see #597<br /> :hash: Added a tape adapter to assert message equality accross browsers<br /> :hash: Refactored some internal utility away<br /> :hash: Reverted previous attempt on #597<br /> :hash: Minor tsd-jsdoc refactor<br /> :hash: Removed unused sandbox files<br /> :hash: Updated package.json of micro modules to reference types, see #599<br /> :hash: Reference dependencies as imports in generated typescript definitions, see #596<br /> :hash: Allow null values on optional long fields, see #590<br /> :hash: Various jsdoc improvements and a workaround for d.ts generation, see #592<br />
:hash: Empty inner messages are always present on the wire + test case + removed now unused Writer#ldelim parameter, see #585
:hash: Empty inner messages are always present on the wire + test case + removed now unused Writer#ldelim parameter, see #585<br />
:hash: Expose tsd-jsdoc's comments option to pbts as --no-comments, see #587<br /> :hash: Increase child process max buffer when running jsdoc from pbts, see #587<br /> :hash: pbjs now generates more convenient dot-notation property accessors<br />
:hash: And fixed IE8 again (should probably just drop IE8 for good)<br />
:hash: Moved camelCase/underScore away from util to where actually used :hash: Renamed asJSON option keys (enum to enums, long to longs) because enum
:hash: Moved camelCase/underScore away from util to where actually used<br /> :hash: Renamed asJSON option keys (enum to enums, long to longs) because enum is a reserved keyword<br /> :hash: Moved JSON/Message conversion to its own source file and added Message/Type.from + test case, see #575<br /> :hash: Relicensed the library and its components to BSD-3-Clause to match the official implementation (again)<br /> :hash: Dropped support for browser buffer entirely (is an Uint8Array anyway), ensures performance and makes things simpler<br /> :hash: Removed dead parts of the Reader API<br /> :hash: Refactored BufferReader/Writer to their own files and removed unnecessary operations (node always has FloatXXArray and browser buffer uses ieee anyway)<br /> :hash: Stripped out fallback encoder/decoder/verifier completely (even IE8 supports codegen), significantly reduces bundle size, can use static codegen elsewhere<br />
:hash: Actually concatenate mixed custom options when parsing<br /> :hash: Fixed a couple of issues with alternative browser builds<br /> :hash: Properly set long defaults on prototypes<br /> :hash: Fixed reference error in minimal runtime, see #580<br /> :hash: Non-repeated empty messages are always present on the wire, see #581<br /> :hash: Properly check Buffer.prototype.set with node v4<br /> :hash: Prevent NRE and properly annotate verify signature in tsd-jsdoc, fixed #572<br /> :hash: Fix directly using Buffer instead of util.Buffer<br /> :hash: Added filter type to Namespace#lookup, fixes #569<br /> :hash: Fixed parsing enum inner options, see #565<br /> :hash: Fixed release links in README files<br />
:hash: Added a noparse build for completeness<br /> :hash: Now compresses .gz files using zopfli to make them useful beyond being just a reference<br /> :hash: Updated non-bundled google types folder with missing descriptors and added wrappers to core<br /> :hash: Replaced the ieee754 implementation for old browsers with a faster, use-case specific one + simple test case<br /> :hash: Added .create to statically generated types and uppercase nested elements to reflection namespaces, see #576<br /> :hash: Also added Namespace#getEnum for completeness, see #576<br /> :hash: Added Namespace#getEnum and changed #lookupEnum to the same behavior, see #576<br /> :hash: Added a heap of coverage comments for usually unused code paths to open things up<br /> :hash: Added codegen test to determine if any ancient browsers don't actually support it<br /> :hash: Added legacy groups support to pbjs, see #568<br /> :hash: Initial support for legacy groups + test case, see #568<br /> :hash: Added asJSON bytes as Buffer, see #566<br />
:hash: Annotated callback types in pbjs-generated services, see #582<br /> :hash: Removed type/ns alias comment in static target to not confuse jsdoc unnecessarily<br /> :hash: Made pbjs use loadSync for deterministic outputs, see #573<br />
:hash: Updated documentation on runtime and noparse builds<br /> :hash: Fixed an issue with the changelog generator skipping some commits<br /> :hash: Added notes on how to use pbjs and pbts programmatically<br /> :hash: Manually sorted old changelog entries<br /> :hash: Initial changelog generator, see #574<br /> :hash: Added static/JSON module interchangeability to README<br /> :hash: Updated README and bundler according to dynamic require calls<br />
:hash: Added basic services test case<br /> :hash: Just polyfill Buffer.from / .allocUnsafe for good<br /> :hash: Added a test case to find out if all the fallbacks are just for IE8<br /> :hash: Commented out float assertions in float test including explanation<br /> :hash: Expose array implementation used with (older) browsers on util for tests<br /> :hash: Updated test cases<br /> :hash: Added assumptions to float test case<br /> :hash: Updated travis config to use C++11<br /> :hash: Updated / added additional LICENSE files where appropriate<br /> :hash: Integrated changelog into build process, now also has 'npm run make' for everything, see #574<br /> :hash: Minor optimizations through providing type-hints<br /> :hash: Reverted shortened switch statements in verifier<br /> :hash: Enums can't be map key types<br /> :hash: Use custom require (now a micromodule) for all optional modules, see #571<br /> :hash: Support usage when size = 0<br /> :hash: Reverted aliases frequently used in codegen for better gzip ratio<br /> :hash: Shrinked bundle size - a bit<br /> :hash: Can finally run with --trace-deopt again without crashes<br /> :hash: Other minor optimizations<br />
:hash: Added ParseOptions to protobuf.parse and --keep-case for .proto sources to pbjs, see #564
:hash: Added ParseOptions to protobuf.parse and --keep-case for .proto sources to pbjs, see #564<br />
:hash: Better TypeScript definition support for @property-annotated objects<br /> :hash: Can't just inline longNeq but can be simplified<br /> :hash: Array abuse and varint optimization<br /> :hash: Updated dependencies<br /> :hash: Other minor improvements to short ifs<br /> :hash: Reader/Writer example<br />
:hash: Fixed reserved names re, also ensure valid service method names, see #559 :hash: Fix d.ts whitespace on empty lines, added tsd-jsdoc LICENSE :h
:hash: Fixed reserved names re, also ensure valid service method names, see #559<br /> :hash: Fix d.ts whitespace on empty lines, added tsd-jsdoc LICENSE<br /> :hash: Fix asJSON defaults option, make it work for repeated fields.<br /> :hash: Inlined any Reader/Writer#tag calls, also fixes #556<br /> :hash: Fix building default dist files with explicit runtime=false<br /> :hash: Apply asJSON recursively<br /> :hash: Ensure working reflection class names with minified builds<br /> :hash: Lazily resolve (some) cyclic dependencies, see #560<br />
:hash: Added protobuf.roots to minimal runtime, see #554<br /> :hash: Repo now includes a restructured version of tsd-jsdoc with our changes incorporated for issues/prs, see #550<br />
:hash: Updated pbjs arguments<br /> :hash: Pipe tsd-jsdoc output (requires dcodeIO/tsd-jsdoc/master) and respect cwd, see #550<br /> :hash: tsd-jsdoc progress<br />
:hash: README<br />
:hash: Added GH issue template<br /> :hash: Path micromodule, dependencies<br /> :hash: Test case for #556<br /> :hash: Raw alloc benchmark<br /> :hash: Other minor optimizations<br />
:hash: Properly encode/decode map kv pairs as repeated messages (codegen and fallback), see #547 :hash: Make genVerifyKey actually generate conditions
:hash: Properly encode/decode map kv pairs as repeated messages (codegen and fallback), see #547<br /> :hash: Make genVerifyKey actually generate conditions for 32bit values and bool, fixes #546<br /> :hash: Fix to generation of verify methods for bytes<br /> :hash: Take special care of oneofs when encoding (i.e. when explicitly set to defaults), see #542<br />
:hash: Added Message#asJSON option for bytes conversion<br /> :hash: Added Namespace#lookupType and Namespace#lookupService (throw instead of returning null), see #544<br /> :hash: Provide prebuilt browser versions of the static runtime<br />
:hash: Initial pbts CLI for generating TypeScript definitions, see #550<br /> :hash: Refactored json/static-module targets to use common wrappers<br /> :hash: Refactor cli to support multiple built-in wrappers, added named roots instead of always using global.root and added additionally necessary eslint comments, see #540<br /> :hash: Annotate namespaces generated by static target, see #550<br /> :hash: static target: Basic support for oneof fields, see #542<br />
:hash: Fix to reflection documentation<br /> :hash: README on minimal runtime / available downloads<br /> :hash: Notes on descriptors vs static modules<br />
:hash: A lot of minor optimizations to performance and gzip ratio<br /> :hash: Minimized base64 tables<br />
Your coding agent can read these notes before it upgrades. Set up the MCP server →