Replaced protoc-gen-ts with protoc-gen-kaja#249
Merged
Conversation
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ropped Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ptions Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…aScript Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…om options Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ject Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Map fields (e.g., map<string, string>) in custom message-typed options
are now serialized as plain objects ({ key1: value1, key2: value2 })
instead of arrays of entry messages ([{ key: ..., value: ... }]),
matching protobuf-ts's toJson() behavior.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…oted Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Map keys starting with a digit (e.g., '123abc') must be quoted in JS object literals since they aren't valid JS identifiers. Extended the key quoting check to also trigger on digit-leading keys, not just dot-containing keys. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…options crash Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Packed repeated encoding uses BytesType wire type for scalar fields. Added handling in parseMessageValue to detect packed encoding (BytesType wire + repeated label + scalar type), read the packed bytes, and decode all contained values individually for varint, fixed32, and fixed64 wire formats. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…methods array Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…trailing-underscore enum names Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…in name Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Matched protobuf-ts algorithm: prepend '_' before ALL uppercase letters, strip leading '_', uppercase, append '_'. Previous code skipped prepending at i=0, producing '__FOO_' instead of '_FOO_' for enum name '_Foo'. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…th multiple server-streaming methods Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…e same streaming type Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…e in Group branch Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…s with shared types Unified streaming and non-streaming import collection into a single ordered list. Used forward-pass firstMethodForType map to place type imports at the correct position (where they're first needed in protobuf-ts's forward/prepend model), preventing streaming methods from claiming types that belong to lower-indexed non-streaming methods. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Added jsonWriteOptionsTypeRef field for the 'import type { JsonWriteOptions }' collision
(separate from existing lowercase jsonWriteOptionsRef for the value import).
Updated 6 import emission sites and 8 method signature usage sites.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
… WKT Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…nts in JSDoc output
…/wham/kaja into claude/add-protoc-gen-kaja-sQ6oN
Renamed the multi-file e-commerce integration test and expanded it from 6 to 8 proto files covering all 15 scalar types, all WKTs, all streaming RPC types, custom options, import public, proto3 optional, allow_alias, reserved fields, deprecated, jstype, json_name, TS keyword fields, __proto__, oneof_kind, constructor, 4-level nesting, self-referential messages, nested collision, runtime import collision (WireType/MessageType), cross-package name collision, empty service, idempotency levels, and special-char comments. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Moved RALPH.md, NELSON.md, and ralph.sh (now scripts/loop) into protoc-gen-kaja/. Removed completed plan/notes, keeping only instructions. status.txt now lives at protoc-gen-kaja/status.txt. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…dency Test script now resolves protoc-gen-ts from ui/node_modules/.bin/ instead of server/build/ and self-installs protoc. Moved @protobuf-ts/plugin to devDependencies since it's only used as a reference for test comparison. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Removed the test-only dependency from ui/package.json and created protoc-gen-kaja/package.json with just @protobuf-ts/plugin. Test script auto-installs it and resolves from protoc-gen-kaja/node_modules/.bin/. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…rew check The TS plugin is needed in ui/ for development protoc codegen (npm run protoc). protoc-gen-kaja is used in scripts/server for production builds. Both produce identical output. Added Node.js Homebrew installation prompt to scripts/server. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Kaja's own Twirp API uses protoc-gen-ts in all environments. protoc-gen-kaja is for compiling user workspace protos at runtime without Node.js. The Go plugin will eventually diverge from the TS implementation. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Removed @protobuf-ts/plugin from ui/ — now only used in protoc-gen-kaja/ for test comparison. scripts/server uses protoc-gen-kaja for both Kaja's own API and user workspace protos. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
… invocation Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No need to bundle Node.js runtime with the app now.
🎬 Demo
Video
Home
Call
Compiler
New Project