4f919baefb
This commit implements a permanent fix for the proto extraction process to handle WhatsApp's recent changes where they mark certain fields as "required" in their JavaScript metadata. Changes: 1. proto-extract/index.js: - Added automatic conversion of 'required' to 'optional' after proto generation - Proto3 spec doesn't support 'required' keyword (only proto2 does) - All fields in proto3 are implicitly optional by default 2. WAProto/WAProto.proto: - Updated to WhatsApp version 2.3000.1033472679 (latest) - All 27 'required' fields converted to 'optional' - Now compiles successfully with protoc 3. WAProto/index.d.ts & index.js: - Regenerated with correct proto3 syntax - index.d.ts now has 14,572 lines (was 2 lines when broken) - Full TypeScript definitions restored Impact: - ✅ Build now succeeds (was failing with proto3 required error) - ✅ Tests: 582/583 passing (99.8%) - ✅ Lint: 0 errors, 239 warnings - ✅ Future proto updates will auto-fix 'required' fields Technical details: WhatsApp Web still uses proto3 but now marks certain fields as "required" in their JS metadata. The extractor was copying these flags directly, causing invalid proto3 syntax. This fix ensures all 'required' keywords are converted to 'optional' after extraction, maintaining proto3 compliance. https://claude.ai/code/session_015R3U3kiprQiNTTNNt31Sg6