@bufbuild/protobuf 2.2.2 → 2.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/clone.js +1 -1
- package/dist/cjs/codegenv1/boot.js +1 -1
- package/dist/cjs/codegenv1/embed.js +1 -1
- package/dist/cjs/codegenv1/enum.js +1 -1
- package/dist/cjs/codegenv1/extension.js +1 -1
- package/dist/cjs/codegenv1/file.js +1 -1
- package/dist/cjs/codegenv1/index.js +1 -1
- package/dist/cjs/codegenv1/message.js +1 -1
- package/dist/cjs/codegenv1/restore-json-names.js +1 -1
- package/dist/cjs/codegenv1/scalar.js +1 -1
- package/dist/cjs/codegenv1/service.js +1 -1
- package/dist/cjs/codegenv1/symbols.js +1 -1
- package/dist/cjs/codegenv1/types.js +1 -1
- package/dist/cjs/create.js +1 -1
- package/dist/cjs/descriptors.js +1 -1
- package/dist/cjs/equals.d.ts +34 -2
- package/dist/cjs/equals.js +104 -26
- package/dist/cjs/extensions.js +1 -1
- package/dist/cjs/fields.js +1 -1
- package/dist/cjs/from-binary.js +1 -1
- package/dist/cjs/from-json.js +2 -2
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/is-message.js +1 -1
- package/dist/cjs/json-value.js +1 -1
- package/dist/cjs/proto-int64.js +1 -1
- package/dist/cjs/reflect/error.js +1 -1
- package/dist/cjs/reflect/guard.js +1 -1
- package/dist/cjs/reflect/index.js +1 -1
- package/dist/cjs/reflect/names.js +1 -1
- package/dist/cjs/reflect/nested-types.js +1 -1
- package/dist/cjs/reflect/reflect-check.js +23 -23
- package/dist/cjs/reflect/reflect-types.js +1 -1
- package/dist/cjs/reflect/reflect.js +1 -1
- package/dist/cjs/reflect/scalar.js +1 -1
- package/dist/cjs/reflect/unsafe.js +1 -1
- package/dist/cjs/registry.js +5 -2
- package/dist/cjs/to-binary.js +63 -55
- package/dist/cjs/to-json.js +1 -1
- package/dist/cjs/types.js +1 -1
- package/dist/cjs/wire/base64-encoding.js +1 -1
- package/dist/cjs/wire/binary-encoding.js +1 -1
- package/dist/cjs/wire/index.js +1 -1
- package/dist/cjs/wire/size-delimited.js +2 -2
- package/dist/cjs/wire/text-encoding.js +1 -1
- package/dist/cjs/wire/text-format.js +1 -1
- package/dist/cjs/wkt/any.js +3 -3
- package/dist/cjs/wkt/gen/google/protobuf/any_pb.js +1 -1
- package/dist/cjs/wkt/gen/google/protobuf/api_pb.d.ts +2 -2
- package/dist/cjs/wkt/gen/google/protobuf/api_pb.js +1 -1
- package/dist/cjs/wkt/gen/google/protobuf/compiler/plugin_pb.js +1 -1
- package/dist/cjs/wkt/gen/google/protobuf/descriptor_pb.d.ts +96 -9
- package/dist/cjs/wkt/gen/google/protobuf/descriptor_pb.js +27 -8
- package/dist/cjs/wkt/gen/google/protobuf/duration_pb.js +1 -1
- package/dist/cjs/wkt/gen/google/protobuf/empty_pb.js +1 -1
- package/dist/cjs/wkt/gen/google/protobuf/field_mask_pb.js +1 -1
- package/dist/cjs/wkt/gen/google/protobuf/source_context_pb.js +1 -1
- package/dist/cjs/wkt/gen/google/protobuf/struct_pb.js +1 -1
- package/dist/cjs/wkt/gen/google/protobuf/timestamp_pb.js +1 -1
- package/dist/cjs/wkt/gen/google/protobuf/type_pb.js +1 -1
- package/dist/cjs/wkt/gen/google/protobuf/wrappers_pb.d.ts +54 -0
- package/dist/cjs/wkt/gen/google/protobuf/wrappers_pb.js +1 -1
- package/dist/cjs/wkt/index.js +1 -1
- package/dist/cjs/wkt/timestamp.js +1 -1
- package/dist/cjs/wkt/wrappers.js +1 -1
- package/dist/esm/clone.js +1 -1
- package/dist/esm/codegenv1/boot.js +1 -1
- package/dist/esm/codegenv1/embed.js +1 -1
- package/dist/esm/codegenv1/enum.js +1 -1
- package/dist/esm/codegenv1/extension.js +1 -1
- package/dist/esm/codegenv1/file.js +1 -1
- package/dist/esm/codegenv1/index.js +1 -1
- package/dist/esm/codegenv1/message.js +1 -1
- package/dist/esm/codegenv1/restore-json-names.js +1 -1
- package/dist/esm/codegenv1/scalar.js +1 -1
- package/dist/esm/codegenv1/service.js +1 -1
- package/dist/esm/codegenv1/symbols.js +1 -1
- package/dist/esm/codegenv1/types.js +1 -1
- package/dist/esm/create.js +1 -1
- package/dist/esm/descriptors.js +1 -1
- package/dist/esm/equals.d.ts +34 -2
- package/dist/esm/equals.js +104 -26
- package/dist/esm/extensions.js +1 -1
- package/dist/esm/fields.js +1 -1
- package/dist/esm/from-binary.js +1 -1
- package/dist/esm/from-json.js +2 -2
- package/dist/esm/index.js +1 -1
- package/dist/esm/is-message.js +1 -1
- package/dist/esm/json-value.js +1 -1
- package/dist/esm/proto-int64.js +1 -1
- package/dist/esm/reflect/error.js +1 -1
- package/dist/esm/reflect/guard.js +1 -1
- package/dist/esm/reflect/index.js +1 -1
- package/dist/esm/reflect/names.js +1 -1
- package/dist/esm/reflect/nested-types.js +1 -1
- package/dist/esm/reflect/reflect-check.js +23 -23
- package/dist/esm/reflect/reflect-types.js +1 -1
- package/dist/esm/reflect/reflect.js +1 -1
- package/dist/esm/reflect/scalar.js +1 -1
- package/dist/esm/reflect/unsafe.js +1 -1
- package/dist/esm/registry.js +5 -2
- package/dist/esm/to-binary.js +63 -55
- package/dist/esm/to-json.js +1 -1
- package/dist/esm/types.js +1 -1
- package/dist/esm/wire/base64-encoding.js +1 -1
- package/dist/esm/wire/binary-encoding.js +1 -1
- package/dist/esm/wire/index.js +1 -1
- package/dist/esm/wire/size-delimited.js +2 -2
- package/dist/esm/wire/text-encoding.js +1 -1
- package/dist/esm/wire/text-format.js +1 -1
- package/dist/esm/wkt/any.js +3 -3
- package/dist/esm/wkt/gen/google/protobuf/any_pb.js +1 -1
- package/dist/esm/wkt/gen/google/protobuf/api_pb.d.ts +2 -2
- package/dist/esm/wkt/gen/google/protobuf/api_pb.js +1 -1
- package/dist/esm/wkt/gen/google/protobuf/compiler/plugin_pb.js +1 -1
- package/dist/esm/wkt/gen/google/protobuf/descriptor_pb.d.ts +96 -9
- package/dist/esm/wkt/gen/google/protobuf/descriptor_pb.js +26 -7
- package/dist/esm/wkt/gen/google/protobuf/duration_pb.js +1 -1
- package/dist/esm/wkt/gen/google/protobuf/empty_pb.js +1 -1
- package/dist/esm/wkt/gen/google/protobuf/field_mask_pb.js +1 -1
- package/dist/esm/wkt/gen/google/protobuf/source_context_pb.js +1 -1
- package/dist/esm/wkt/gen/google/protobuf/struct_pb.js +1 -1
- package/dist/esm/wkt/gen/google/protobuf/timestamp_pb.js +1 -1
- package/dist/esm/wkt/gen/google/protobuf/type_pb.js +1 -1
- package/dist/esm/wkt/gen/google/protobuf/wrappers_pb.d.ts +54 -0
- package/dist/esm/wkt/gen/google/protobuf/wrappers_pb.js +1 -1
- package/dist/esm/wkt/index.js +1 -1
- package/dist/esm/wkt/timestamp.js +1 -1
- package/dist/esm/wkt/wrappers.js +1 -1
- package/package.json +1 -1
package/dist/esm/descriptors.js
CHANGED
package/dist/esm/equals.d.ts
CHANGED
|
@@ -1,9 +1,41 @@
|
|
|
1
1
|
import type { MessageShape } from "./types.js";
|
|
2
|
-
import type
|
|
2
|
+
import { type DescMessage } from "./descriptors.js";
|
|
3
|
+
import type { Registry } from "./registry.js";
|
|
4
|
+
interface EqualsOptions {
|
|
5
|
+
/**
|
|
6
|
+
* A registry to look up extensions, and messages packed in Any.
|
|
7
|
+
*
|
|
8
|
+
* @private Experimental API, does not follow semantic versioning.
|
|
9
|
+
*/
|
|
10
|
+
registry: Registry;
|
|
11
|
+
/**
|
|
12
|
+
* Unpack google.protobuf.Any before comparing.
|
|
13
|
+
* If a type is not in the registry, comparison falls back to comparing the
|
|
14
|
+
* fields of Any.
|
|
15
|
+
*
|
|
16
|
+
* @private Experimental API, does not follow semantic versioning.
|
|
17
|
+
*/
|
|
18
|
+
unpackAny?: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Consider extensions when comparing.
|
|
21
|
+
*
|
|
22
|
+
* @private Experimental API, does not follow semantic versioning.
|
|
23
|
+
*/
|
|
24
|
+
extensions?: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Consider unknown fields when comparing.
|
|
27
|
+
* The registry is used to distinguish between extensions, and unknown fields
|
|
28
|
+
* caused by schema changes.
|
|
29
|
+
*
|
|
30
|
+
* @private Experimental API, does not follow semantic versioning.
|
|
31
|
+
*/
|
|
32
|
+
unknown?: boolean;
|
|
33
|
+
}
|
|
3
34
|
/**
|
|
4
35
|
* Compare two messages of the same type.
|
|
5
36
|
*
|
|
6
37
|
* Note that this function disregards extensions and unknown fields, and that
|
|
7
38
|
* NaN is not equal NaN, following the IEEE standard.
|
|
8
39
|
*/
|
|
9
|
-
export declare function equals<Desc extends DescMessage>(schema: Desc, a: MessageShape<Desc>, b: MessageShape<Desc
|
|
40
|
+
export declare function equals<Desc extends DescMessage>(schema: Desc, a: MessageShape<Desc>, b: MessageShape<Desc>, options?: EqualsOptions): boolean;
|
|
41
|
+
export {};
|
package/dist/esm/equals.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Copyright 2021-
|
|
1
|
+
// Copyright 2021-2025 Buf Technologies, Inc.
|
|
2
2
|
//
|
|
3
3
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
4
|
// you may not use this file except in compliance with the License.
|
|
@@ -13,30 +13,43 @@
|
|
|
13
13
|
// limitations under the License.
|
|
14
14
|
import { scalarEquals } from "./reflect/scalar.js";
|
|
15
15
|
import { reflect } from "./reflect/reflect.js";
|
|
16
|
+
import { ScalarType, } from "./descriptors.js";
|
|
17
|
+
import { anyUnpack } from "./wkt/index.js";
|
|
18
|
+
import { createExtensionContainer, getExtension } from "./extensions.js";
|
|
16
19
|
/**
|
|
17
20
|
* Compare two messages of the same type.
|
|
18
21
|
*
|
|
19
22
|
* Note that this function disregards extensions and unknown fields, and that
|
|
20
23
|
* NaN is not equal NaN, following the IEEE standard.
|
|
21
24
|
*/
|
|
22
|
-
export function equals(schema, a, b) {
|
|
25
|
+
export function equals(schema, a, b, options) {
|
|
23
26
|
if (a.$typeName != schema.typeName || b.$typeName != schema.typeName) {
|
|
24
27
|
return false;
|
|
25
28
|
}
|
|
26
29
|
if (a === b) {
|
|
27
30
|
return true;
|
|
28
31
|
}
|
|
29
|
-
return reflectEquals(reflect(schema, a), reflect(schema, b));
|
|
32
|
+
return reflectEquals(reflect(schema, a), reflect(schema, b), options);
|
|
30
33
|
}
|
|
31
|
-
function reflectEquals(a, b) {
|
|
34
|
+
function reflectEquals(a, b, opts) {
|
|
35
|
+
if (a.desc.typeName === "google.protobuf.Any" && (opts === null || opts === void 0 ? void 0 : opts.unpackAny) == true) {
|
|
36
|
+
return anyUnpackedEquals(a.message, b.message, opts);
|
|
37
|
+
}
|
|
32
38
|
for (const f of a.fields) {
|
|
33
|
-
if (!fieldEquals(f, a, b)) {
|
|
39
|
+
if (!fieldEquals(f, a, b, opts)) {
|
|
34
40
|
return false;
|
|
35
41
|
}
|
|
36
42
|
}
|
|
43
|
+
if ((opts === null || opts === void 0 ? void 0 : opts.unknown) == true && !unknownEquals(a, b, opts.registry)) {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
if ((opts === null || opts === void 0 ? void 0 : opts.extensions) == true && !extensionsEquals(a, b, opts)) {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
37
49
|
return true;
|
|
38
50
|
}
|
|
39
|
-
|
|
51
|
+
// TODO(tstamm) add an option to consider NaN equal to NaN?
|
|
52
|
+
function fieldEquals(f, a, b, opts) {
|
|
40
53
|
if (!a.isSet(f) && !b.isSet(f)) {
|
|
41
54
|
return true;
|
|
42
55
|
}
|
|
@@ -49,25 +62,26 @@ function fieldEquals(f, a, b) {
|
|
|
49
62
|
case "enum":
|
|
50
63
|
return a.get(f) === b.get(f);
|
|
51
64
|
case "message":
|
|
52
|
-
return reflectEquals(a.get(f), b.get(f));
|
|
65
|
+
return reflectEquals(a.get(f), b.get(f), opts);
|
|
53
66
|
case "map": {
|
|
54
|
-
|
|
55
|
-
const
|
|
56
|
-
const
|
|
57
|
-
|
|
58
|
-
|
|
67
|
+
// TODO(tstamm) can't we compare sizes first?
|
|
68
|
+
const mapA = a.get(f);
|
|
69
|
+
const mapB = b.get(f);
|
|
70
|
+
const keys = [];
|
|
71
|
+
for (const k of mapA.keys()) {
|
|
72
|
+
if (!mapB.has(k)) {
|
|
59
73
|
return false;
|
|
60
74
|
}
|
|
61
|
-
|
|
75
|
+
keys.push(k);
|
|
62
76
|
}
|
|
63
|
-
for (const k of
|
|
64
|
-
if (!
|
|
77
|
+
for (const k of mapB.keys()) {
|
|
78
|
+
if (!mapA.has(k)) {
|
|
65
79
|
return false;
|
|
66
80
|
}
|
|
67
81
|
}
|
|
68
|
-
for (const key of
|
|
69
|
-
const va =
|
|
70
|
-
const vb =
|
|
82
|
+
for (const key of keys) {
|
|
83
|
+
const va = mapA.get(key);
|
|
84
|
+
const vb = mapB.get(key);
|
|
71
85
|
if (va === vb) {
|
|
72
86
|
continue;
|
|
73
87
|
}
|
|
@@ -75,7 +89,7 @@ function fieldEquals(f, a, b) {
|
|
|
75
89
|
case "enum":
|
|
76
90
|
return false;
|
|
77
91
|
case "message":
|
|
78
|
-
if (!reflectEquals(va, vb)) {
|
|
92
|
+
if (!reflectEquals(va, vb, opts)) {
|
|
79
93
|
return false;
|
|
80
94
|
}
|
|
81
95
|
break;
|
|
@@ -89,14 +103,14 @@ function fieldEquals(f, a, b) {
|
|
|
89
103
|
break;
|
|
90
104
|
}
|
|
91
105
|
case "list": {
|
|
92
|
-
const
|
|
93
|
-
const
|
|
94
|
-
if (
|
|
106
|
+
const listA = a.get(f);
|
|
107
|
+
const listB = b.get(f);
|
|
108
|
+
if (listA.size != listB.size) {
|
|
95
109
|
return false;
|
|
96
110
|
}
|
|
97
|
-
for (let i = 0; i <
|
|
98
|
-
const va =
|
|
99
|
-
const vb =
|
|
111
|
+
for (let i = 0; i < listA.size; i++) {
|
|
112
|
+
const va = listA.get(i);
|
|
113
|
+
const vb = listB.get(i);
|
|
100
114
|
if (va === vb) {
|
|
101
115
|
continue;
|
|
102
116
|
}
|
|
@@ -104,7 +118,7 @@ function fieldEquals(f, a, b) {
|
|
|
104
118
|
case "enum":
|
|
105
119
|
return false;
|
|
106
120
|
case "message":
|
|
107
|
-
if (!reflectEquals(va, vb)) {
|
|
121
|
+
if (!reflectEquals(va, vb, opts)) {
|
|
108
122
|
return false;
|
|
109
123
|
}
|
|
110
124
|
break;
|
|
@@ -120,3 +134,67 @@ function fieldEquals(f, a, b) {
|
|
|
120
134
|
}
|
|
121
135
|
return true;
|
|
122
136
|
}
|
|
137
|
+
function anyUnpackedEquals(a, b, opts) {
|
|
138
|
+
if (a.typeUrl !== b.typeUrl) {
|
|
139
|
+
return false;
|
|
140
|
+
}
|
|
141
|
+
const unpackedA = anyUnpack(a, opts.registry);
|
|
142
|
+
const unpackedB = anyUnpack(b, opts.registry);
|
|
143
|
+
if (unpackedA && unpackedB) {
|
|
144
|
+
const schema = opts.registry.getMessage(unpackedA.$typeName);
|
|
145
|
+
if (schema) {
|
|
146
|
+
return equals(schema, unpackedA, unpackedB, opts);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
return scalarEquals(ScalarType.BYTES, a.value, b.value);
|
|
150
|
+
}
|
|
151
|
+
function unknownEquals(a, b, registry) {
|
|
152
|
+
function getTrulyUnknown(msg, registry) {
|
|
153
|
+
var _a;
|
|
154
|
+
const u = (_a = msg.getUnknown()) !== null && _a !== void 0 ? _a : [];
|
|
155
|
+
return registry
|
|
156
|
+
? u.filter((uf) => !registry.getExtensionFor(msg.desc, uf.no))
|
|
157
|
+
: u;
|
|
158
|
+
}
|
|
159
|
+
const unknownA = getTrulyUnknown(a, registry);
|
|
160
|
+
const unknownB = getTrulyUnknown(b, registry);
|
|
161
|
+
if (unknownA.length != unknownB.length) {
|
|
162
|
+
return false;
|
|
163
|
+
}
|
|
164
|
+
for (let i = 0; i < unknownA.length; i++) {
|
|
165
|
+
const a = unknownA[i], b = unknownB[i];
|
|
166
|
+
if (a.no != b.no) {
|
|
167
|
+
return false;
|
|
168
|
+
}
|
|
169
|
+
if (a.wireType != b.wireType) {
|
|
170
|
+
return false;
|
|
171
|
+
}
|
|
172
|
+
if (!scalarEquals(ScalarType.BYTES, a.data, b.data)) {
|
|
173
|
+
return false;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
return true;
|
|
177
|
+
}
|
|
178
|
+
function extensionsEquals(a, b, opts) {
|
|
179
|
+
function getSetExtensions(msg, registry) {
|
|
180
|
+
var _a;
|
|
181
|
+
return ((_a = msg.getUnknown()) !== null && _a !== void 0 ? _a : [])
|
|
182
|
+
.map((uf) => registry.getExtensionFor(msg.desc, uf.no))
|
|
183
|
+
.filter((e) => e != undefined)
|
|
184
|
+
.filter((e, index, arr) => arr.indexOf(e) === index);
|
|
185
|
+
}
|
|
186
|
+
const extensionsA = getSetExtensions(a, opts.registry);
|
|
187
|
+
const extensionsB = getSetExtensions(b, opts.registry);
|
|
188
|
+
if (extensionsA.length != extensionsB.length ||
|
|
189
|
+
extensionsA.some((e) => !extensionsB.includes(e))) {
|
|
190
|
+
return false;
|
|
191
|
+
}
|
|
192
|
+
for (const extension of extensionsA) {
|
|
193
|
+
const [containerA, field] = createExtensionContainer(extension, getExtension(a.message, extension));
|
|
194
|
+
const [containerB] = createExtensionContainer(extension, getExtension(b.message, extension));
|
|
195
|
+
if (!fieldEquals(field, containerA, containerB, opts)) {
|
|
196
|
+
return false;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
return true;
|
|
200
|
+
}
|
package/dist/esm/extensions.js
CHANGED
package/dist/esm/fields.js
CHANGED
package/dist/esm/from-binary.js
CHANGED
package/dist/esm/from-json.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Copyright 2021-
|
|
1
|
+
// Copyright 2021-2025 Buf Technologies, Inc.
|
|
2
2
|
//
|
|
3
3
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
4
|
// you may not use this file except in compliance with the License.
|
|
@@ -503,7 +503,7 @@ function timestampFromJson(timestamp, json) {
|
|
|
503
503
|
if (typeof json !== "string") {
|
|
504
504
|
throw new Error(`cannot decode message ${timestamp.$typeName} from JSON: ${formatVal(json)}`);
|
|
505
505
|
}
|
|
506
|
-
const matches = json.match(/^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})(
|
|
506
|
+
const matches = json.match(/^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})(?:\.([0-9]{1,9}))?(?:Z|([+-][0-9][0-9]:[0-9][0-9]))$/);
|
|
507
507
|
if (!matches) {
|
|
508
508
|
throw new Error(`cannot decode message ${timestamp.$typeName} from JSON: invalid RFC 3339 string`);
|
|
509
509
|
}
|
package/dist/esm/index.js
CHANGED
package/dist/esm/is-message.js
CHANGED
package/dist/esm/json-value.js
CHANGED
package/dist/esm/proto-int64.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Copyright 2021-
|
|
1
|
+
// Copyright 2021-2025 Buf Technologies, Inc.
|
|
2
2
|
//
|
|
3
3
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
4
|
// you may not use this file except in compliance with the License.
|
|
@@ -129,33 +129,33 @@ function checkScalarValue(value, scalar) {
|
|
|
129
129
|
case ScalarType.SFIXED64:
|
|
130
130
|
case ScalarType.SINT64:
|
|
131
131
|
// signed
|
|
132
|
-
if (typeof value
|
|
133
|
-
typeof value
|
|
134
|
-
typeof value
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
132
|
+
if (typeof value == "bigint" ||
|
|
133
|
+
typeof value == "number" ||
|
|
134
|
+
(typeof value == "string" && value.length > 0)) {
|
|
135
|
+
try {
|
|
136
|
+
protoInt64.parse(value);
|
|
137
|
+
return true;
|
|
138
|
+
}
|
|
139
|
+
catch (e) {
|
|
140
|
+
return `${value} out of range`;
|
|
141
|
+
}
|
|
139
142
|
}
|
|
140
|
-
|
|
141
|
-
return `${value} out of range`;
|
|
142
|
-
}
|
|
143
|
-
return true;
|
|
143
|
+
return false;
|
|
144
144
|
case ScalarType.FIXED64:
|
|
145
145
|
case ScalarType.UINT64:
|
|
146
146
|
// unsigned
|
|
147
|
-
if (typeof value
|
|
148
|
-
typeof value
|
|
149
|
-
typeof value
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
147
|
+
if (typeof value == "bigint" ||
|
|
148
|
+
typeof value == "number" ||
|
|
149
|
+
(typeof value == "string" && value.length > 0)) {
|
|
150
|
+
try {
|
|
151
|
+
protoInt64.uParse(value);
|
|
152
|
+
return true;
|
|
153
|
+
}
|
|
154
|
+
catch (e) {
|
|
155
|
+
return `${value} out of range`;
|
|
156
|
+
}
|
|
154
157
|
}
|
|
155
|
-
|
|
156
|
-
return `${value} out of range`;
|
|
157
|
-
}
|
|
158
|
-
return true;
|
|
158
|
+
return false;
|
|
159
159
|
}
|
|
160
160
|
}
|
|
161
161
|
function reasonSingular(field, val, details) {
|
package/dist/esm/registry.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Copyright 2021-
|
|
1
|
+
// Copyright 2021-2025 Buf Technologies, Inc.
|
|
2
2
|
//
|
|
3
3
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
4
|
// you may not use this file except in compliance with the License.
|
|
@@ -224,7 +224,7 @@ const DELIMITED = 2;
|
|
|
224
224
|
const OPEN = 1;
|
|
225
225
|
// prettier-ignore
|
|
226
226
|
// bootstrap-inject defaults: EDITION_PROTO2 to EDITION_2023: export const minimumEdition: SupportedEdition = $minimumEdition, maximumEdition: SupportedEdition = $maximumEdition;
|
|
227
|
-
// generated from protoc
|
|
227
|
+
// generated from protoc v30.0
|
|
228
228
|
export const minimumEdition = 998, maximumEdition = 1000;
|
|
229
229
|
const featureDefaults = {
|
|
230
230
|
// EDITION_PROTO2
|
|
@@ -235,6 +235,7 @@ const featureDefaults = {
|
|
|
235
235
|
utf8Validation: 3, // NONE,
|
|
236
236
|
messageEncoding: 1, // LENGTH_PREFIXED,
|
|
237
237
|
jsonFormat: 2, // LEGACY_BEST_EFFORT,
|
|
238
|
+
enforceNamingStyle: 2, // STYLE_LEGACY,
|
|
238
239
|
},
|
|
239
240
|
// EDITION_PROTO3
|
|
240
241
|
999: {
|
|
@@ -244,6 +245,7 @@ const featureDefaults = {
|
|
|
244
245
|
utf8Validation: 2, // VERIFY,
|
|
245
246
|
messageEncoding: 1, // LENGTH_PREFIXED,
|
|
246
247
|
jsonFormat: 1, // ALLOW,
|
|
248
|
+
enforceNamingStyle: 2, // STYLE_LEGACY,
|
|
247
249
|
},
|
|
248
250
|
// EDITION_2023
|
|
249
251
|
1000: {
|
|
@@ -253,6 +255,7 @@ const featureDefaults = {
|
|
|
253
255
|
utf8Validation: 2, // VERIFY,
|
|
254
256
|
messageEncoding: 1, // LENGTH_PREFIXED,
|
|
255
257
|
jsonFormat: 1, // ALLOW,
|
|
258
|
+
enforceNamingStyle: 2, // STYLE_LEGACY,
|
|
256
259
|
},
|
|
257
260
|
};
|
|
258
261
|
/**
|
package/dist/esm/to-binary.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Copyright 2021-
|
|
1
|
+
// Copyright 2021-2025 Buf Technologies, Inc.
|
|
2
2
|
//
|
|
3
3
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
4
|
// you may not use this file except in compliance with the License.
|
|
@@ -52,7 +52,7 @@ export function writeField(writer, opts, msg, field) {
|
|
|
52
52
|
switch (field.fieldKind) {
|
|
53
53
|
case "scalar":
|
|
54
54
|
case "enum":
|
|
55
|
-
writeScalar(writer, (_a = field.scalar) !== null && _a !== void 0 ? _a : ScalarType.INT32, field.number, msg.get(field));
|
|
55
|
+
writeScalar(writer, msg.desc.typeName, field.name, (_a = field.scalar) !== null && _a !== void 0 ? _a : ScalarType.INT32, field.number, msg.get(field));
|
|
56
56
|
break;
|
|
57
57
|
case "list":
|
|
58
58
|
writeListField(writer, opts, field, msg.get(field));
|
|
@@ -67,8 +67,8 @@ export function writeField(writer, opts, msg, field) {
|
|
|
67
67
|
break;
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
|
-
function writeScalar(writer, scalarType, fieldNo, value) {
|
|
71
|
-
writeScalarValue(writer.tag(fieldNo, writeTypeOfScalar(scalarType)), scalarType, value);
|
|
70
|
+
function writeScalar(writer, msgName, fieldName, scalarType, fieldNo, value) {
|
|
71
|
+
writeScalarValue(writer.tag(fieldNo, writeTypeOfScalar(scalarType)), msgName, fieldName, scalarType, value);
|
|
72
72
|
}
|
|
73
73
|
function writeMessageField(writer, opts, field, message) {
|
|
74
74
|
if (field.delimitedEncoding) {
|
|
@@ -93,25 +93,25 @@ function writeListField(writer, opts, field, list) {
|
|
|
93
93
|
}
|
|
94
94
|
writer.tag(field.number, WireType.LengthDelimited).fork();
|
|
95
95
|
for (const item of list) {
|
|
96
|
-
writeScalarValue(writer, scalarType, item);
|
|
96
|
+
writeScalarValue(writer, field.parent.typeName, field.name, scalarType, item);
|
|
97
97
|
}
|
|
98
98
|
writer.join();
|
|
99
99
|
return;
|
|
100
100
|
}
|
|
101
101
|
for (const item of list) {
|
|
102
|
-
writeScalar(writer, scalarType, field.number, item);
|
|
102
|
+
writeScalar(writer, field.parent.typeName, field.name, scalarType, field.number, item);
|
|
103
103
|
}
|
|
104
104
|
}
|
|
105
105
|
function writeMapEntry(writer, opts, field, key, value) {
|
|
106
106
|
var _a;
|
|
107
107
|
writer.tag(field.number, WireType.LengthDelimited).fork();
|
|
108
108
|
// write key, expecting key field number = 1
|
|
109
|
-
writeScalar(writer, field.mapKey, 1, key);
|
|
109
|
+
writeScalar(writer, field.parent.typeName, field.name, field.mapKey, 1, key);
|
|
110
110
|
// write value, expecting value field number = 2
|
|
111
111
|
switch (field.mapKind) {
|
|
112
112
|
case "scalar":
|
|
113
113
|
case "enum":
|
|
114
|
-
writeScalar(writer, (_a = field.scalar) !== null && _a !== void 0 ? _a : ScalarType.INT32, 2, value);
|
|
114
|
+
writeScalar(writer, field.parent.typeName, field.name, (_a = field.scalar) !== null && _a !== void 0 ? _a : ScalarType.INT32, 2, value);
|
|
115
115
|
break;
|
|
116
116
|
case "message":
|
|
117
117
|
writeFields(writer.tag(2, WireType.LengthDelimited).fork(), opts, value).join();
|
|
@@ -119,53 +119,61 @@ function writeMapEntry(writer, opts, field, key, value) {
|
|
|
119
119
|
}
|
|
120
120
|
writer.join();
|
|
121
121
|
}
|
|
122
|
-
function writeScalarValue(writer, type, value) {
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
122
|
+
function writeScalarValue(writer, msgName, fieldName, type, value) {
|
|
123
|
+
try {
|
|
124
|
+
switch (type) {
|
|
125
|
+
case ScalarType.STRING:
|
|
126
|
+
writer.string(value);
|
|
127
|
+
break;
|
|
128
|
+
case ScalarType.BOOL:
|
|
129
|
+
writer.bool(value);
|
|
130
|
+
break;
|
|
131
|
+
case ScalarType.DOUBLE:
|
|
132
|
+
writer.double(value);
|
|
133
|
+
break;
|
|
134
|
+
case ScalarType.FLOAT:
|
|
135
|
+
writer.float(value);
|
|
136
|
+
break;
|
|
137
|
+
case ScalarType.INT32:
|
|
138
|
+
writer.int32(value);
|
|
139
|
+
break;
|
|
140
|
+
case ScalarType.INT64:
|
|
141
|
+
writer.int64(value);
|
|
142
|
+
break;
|
|
143
|
+
case ScalarType.UINT64:
|
|
144
|
+
writer.uint64(value);
|
|
145
|
+
break;
|
|
146
|
+
case ScalarType.FIXED64:
|
|
147
|
+
writer.fixed64(value);
|
|
148
|
+
break;
|
|
149
|
+
case ScalarType.BYTES:
|
|
150
|
+
writer.bytes(value);
|
|
151
|
+
break;
|
|
152
|
+
case ScalarType.FIXED32:
|
|
153
|
+
writer.fixed32(value);
|
|
154
|
+
break;
|
|
155
|
+
case ScalarType.SFIXED32:
|
|
156
|
+
writer.sfixed32(value);
|
|
157
|
+
break;
|
|
158
|
+
case ScalarType.SFIXED64:
|
|
159
|
+
writer.sfixed64(value);
|
|
160
|
+
break;
|
|
161
|
+
case ScalarType.SINT64:
|
|
162
|
+
writer.sint64(value);
|
|
163
|
+
break;
|
|
164
|
+
case ScalarType.UINT32:
|
|
165
|
+
writer.uint32(value);
|
|
166
|
+
break;
|
|
167
|
+
case ScalarType.SINT32:
|
|
168
|
+
writer.sint32(value);
|
|
169
|
+
break;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
catch (e) {
|
|
173
|
+
if (e instanceof Error) {
|
|
174
|
+
throw new Error(`cannot encode field ${msgName}.${fieldName} to binary: ${e.message}`);
|
|
175
|
+
}
|
|
176
|
+
throw e;
|
|
169
177
|
}
|
|
170
178
|
}
|
|
171
179
|
function writeTypeOfScalar(type) {
|
package/dist/esm/to-json.js
CHANGED