diff --git a/package-lock.json b/package-lock.json index d64e9538d..4a058ac69 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,5 +1,5 @@ { - "name": "protobuf-es-7", + "name": "protobuf-es", "lockfileVersion": 3, "requires": true, "packages": { @@ -6421,6 +6421,7 @@ }, "packages/upstream-protobuf": { "dependencies": { + "@bufbuild/protobuf": "^1.7.0", "fflate": "^0.8.1", "micromatch": "^4.0.5" }, diff --git a/packages/protobuf/src/private/feature-set.ts b/packages/protobuf/src/private/feature-set.ts index f4d8c75ff..2d55d7e68 100644 --- a/packages/protobuf/src/private/feature-set.ts +++ b/packages/protobuf/src/private/feature-set.ts @@ -17,15 +17,12 @@ import { FeatureSet, FeatureSetDefaults, } from "../google/protobuf/descriptor_pb.js"; -import { protoBase64 } from "../proto-base64.js"; /** * Static edition feature defaults supported by @bufbuild/protobuf. */ -export const featureSetDefaults = FeatureSetDefaults.fromBinary( - protoBase64.dec( - /*upstream-inject-feature-defaults-start*/ "ChESDAgBEAIYAiABKAEwAhjmBwoREgwIAhABGAEgAigBMAEY5wcKERIMCAEQARgBIAIoATABGOgHIOYHKOgH" /*upstream-inject-feature-defaults-end*/, - ), +export const featureSetDefaults = FeatureSetDefaults.fromJsonString( + /*upstream-inject-feature-defaults-start*/ '{"defaults":[{"edition":"EDITION_PROTO2","features":{"fieldPresence":"EXPLICIT","enumType":"CLOSED","repeatedFieldEncoding":"EXPANDED","utf8Validation":"NONE","messageEncoding":"LENGTH_PREFIXED","jsonFormat":"LEGACY_BEST_EFFORT"}},{"edition":"EDITION_PROTO3","features":{"fieldPresence":"IMPLICIT","enumType":"OPEN","repeatedFieldEncoding":"PACKED","utf8Validation":"VERIFY","messageEncoding":"LENGTH_PREFIXED","jsonFormat":"ALLOW"}},{"edition":"EDITION_2023","features":{"fieldPresence":"EXPLICIT","enumType":"OPEN","repeatedFieldEncoding":"PACKED","utf8Validation":"VERIFY","messageEncoding":"LENGTH_PREFIXED","jsonFormat":"ALLOW"}}],"minimumEdition":"EDITION_PROTO2","maximumEdition":"EDITION_2023"}' /*upstream-inject-feature-defaults-end*/, ); /** diff --git a/packages/upstream-protobuf/bin/upstream-inject-feature-defaults.mjs b/packages/upstream-protobuf/bin/upstream-inject-feature-defaults.mjs index 18bf1a0ef..12c46fd01 100755 --- a/packages/upstream-protobuf/bin/upstream-inject-feature-defaults.mjs +++ b/packages/upstream-protobuf/bin/upstream-inject-feature-defaults.mjs @@ -18,6 +18,7 @@ import { argv, exit, stdout, stderr } from "node:process"; import { parseArgs } from "node:util"; import { readFileSync, writeFileSync } from "node:fs"; import { UpstreamProtobuf } from "../index.mjs"; +import { FeatureSetDefaults, protoBase64 } from "@bufbuild/protobuf"; void main(argv.slice(2)); @@ -45,7 +46,11 @@ async function main(args) { ); for (const path of positionals) { const content = readFileSync(path, "utf-8"); - const r = inject(content, ` "${defaults.toString("base64url")}" `); + const base64String = defaults.toString("base64url"); + const buffer = protoBase64.dec(base64String); + const featureSetDefaults = FeatureSetDefaults.fromBinary(buffer); + const jsonString = featureSetDefaults.toJsonString(); + const r = inject(content, ` '${jsonString}' `); if (!r.ok) { stderr.write(`Error injecting into ${path}: ${r.message}\n`, () => exit(1), diff --git a/packages/upstream-protobuf/package.json b/packages/upstream-protobuf/package.json index 603b2d321..240731574 100644 --- a/packages/upstream-protobuf/package.json +++ b/packages/upstream-protobuf/package.json @@ -20,6 +20,7 @@ } }, "dependencies": { + "@bufbuild/protobuf": "*", "fflate": "^0.8.1", "micromatch": "^4.0.5" }