@bufbuild/protobuf 2.0.0-alpha.1 → 2.0.0-alpha.2
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/codegenv1/embed.d.ts +2 -2
- package/dist/cjs/codegenv1/embed.js +25 -25
- package/dist/cjs/codegenv1/enum.js +2 -4
- package/dist/cjs/codegenv1/restore-json-names.d.ts +3 -0
- package/dist/cjs/codegenv1/restore-json-names.js +3 -0
- package/dist/cjs/codegenv1/symbols.d.ts +9 -0
- package/dist/cjs/codegenv1/symbols.js +9 -0
- package/dist/cjs/codegenv1/types.d.ts +55 -2
- package/dist/cjs/create.js +7 -18
- package/dist/cjs/desc-types.d.ts +27 -10
- package/dist/cjs/extensions.d.ts +21 -1
- package/dist/cjs/extensions.js +38 -7
- package/dist/cjs/fields.d.ts +17 -16
- package/dist/cjs/fields.js +17 -10
- package/dist/cjs/from-binary.js +9 -19
- package/dist/cjs/from-json.js +9 -13
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.js +3 -1
- package/dist/cjs/reflect/names.d.ts +0 -12
- package/dist/cjs/reflect/names.js +1 -39
- package/dist/cjs/reflect/nested-types.d.ts +11 -1
- package/dist/cjs/reflect/nested-types.js +34 -1
- package/dist/cjs/reflect/reflect-types.d.ts +158 -10
- package/dist/cjs/reflect/reflect.d.ts +11 -2
- package/dist/cjs/reflect/reflect.js +306 -281
- package/dist/cjs/reflect/registry.js +50 -41
- package/dist/cjs/reflect/unsafe.js +38 -43
- package/dist/cjs/to-binary.js +1 -3
- package/dist/cjs/to-json.js +7 -27
- package/dist/cjs/wire/base64-encoding.js +2 -2
- package/dist/cjs/wire/binary-encoding.d.ts +5 -3
- package/dist/cjs/wire/binary-encoding.js +16 -10
- package/dist/cjs/wkt/gen/google/protobuf/any_pb.d.ts +7 -0
- package/dist/cjs/wkt/gen/google/protobuf/any_pb.js +7 -2
- package/dist/cjs/wkt/gen/google/protobuf/api_pb.d.ts +15 -0
- package/dist/cjs/wkt/gen/google/protobuf/api_pb.js +15 -6
- package/dist/cjs/wkt/gen/google/protobuf/compiler/plugin_pb.d.ts +22 -0
- package/dist/cjs/wkt/gen/google/protobuf/compiler/plugin_pb.js +22 -9
- package/dist/cjs/wkt/gen/google/protobuf/descriptor_pb.d.ts +186 -0
- package/dist/cjs/wkt/gen/google/protobuf/descriptor_pb.js +186 -83
- package/dist/cjs/wkt/gen/google/protobuf/duration_pb.d.ts +7 -0
- package/dist/cjs/wkt/gen/google/protobuf/duration_pb.js +7 -2
- package/dist/cjs/wkt/gen/google/protobuf/empty_pb.d.ts +7 -0
- package/dist/cjs/wkt/gen/google/protobuf/empty_pb.js +7 -2
- package/dist/cjs/wkt/gen/google/protobuf/field_mask_pb.d.ts +7 -0
- package/dist/cjs/wkt/gen/google/protobuf/field_mask_pb.js +7 -2
- package/dist/cjs/wkt/gen/google/protobuf/source_context_pb.d.ts +7 -0
- package/dist/cjs/wkt/gen/google/protobuf/source_context_pb.js +7 -2
- package/dist/cjs/wkt/gen/google/protobuf/struct_pb.d.ts +18 -0
- package/dist/cjs/wkt/gen/google/protobuf/struct_pb.js +18 -7
- package/dist/cjs/wkt/gen/google/protobuf/timestamp_pb.d.ts +7 -0
- package/dist/cjs/wkt/gen/google/protobuf/timestamp_pb.js +7 -2
- package/dist/cjs/wkt/gen/google/protobuf/type_pb.d.ts +32 -0
- package/dist/cjs/wkt/gen/google/protobuf/type_pb.js +32 -13
- package/dist/cjs/wkt/gen/google/protobuf/wrappers_pb.d.ts +39 -0
- package/dist/cjs/wkt/gen/google/protobuf/wrappers_pb.js +39 -18
- package/dist/esm/codegenv1/embed.d.ts +2 -2
- package/dist/esm/codegenv1/embed.js +25 -25
- package/dist/esm/codegenv1/enum.js +2 -4
- package/dist/esm/codegenv1/restore-json-names.d.ts +3 -0
- package/dist/esm/codegenv1/restore-json-names.js +3 -0
- package/dist/esm/codegenv1/symbols.d.ts +9 -0
- package/dist/esm/codegenv1/symbols.js +9 -0
- package/dist/esm/codegenv1/types.d.ts +55 -2
- package/dist/esm/create.js +7 -18
- package/dist/esm/desc-types.d.ts +27 -10
- package/dist/esm/extensions.d.ts +21 -1
- package/dist/esm/extensions.js +35 -6
- package/dist/esm/fields.d.ts +17 -16
- package/dist/esm/fields.js +17 -10
- package/dist/esm/from-binary.js +9 -19
- package/dist/esm/from-json.js +11 -15
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/reflect/names.d.ts +0 -12
- package/dist/esm/reflect/names.js +0 -37
- package/dist/esm/reflect/nested-types.d.ts +11 -1
- package/dist/esm/reflect/nested-types.js +32 -0
- package/dist/esm/reflect/reflect-types.d.ts +158 -10
- package/dist/esm/reflect/reflect.d.ts +11 -2
- package/dist/esm/reflect/reflect.js +304 -279
- package/dist/esm/reflect/registry.js +50 -41
- package/dist/esm/reflect/unsafe.js +38 -43
- package/dist/esm/to-binary.js +1 -3
- package/dist/esm/to-json.js +7 -27
- package/dist/esm/wire/base64-encoding.js +2 -2
- package/dist/esm/wire/binary-encoding.d.ts +5 -3
- package/dist/esm/wire/binary-encoding.js +16 -10
- package/dist/esm/wkt/gen/google/protobuf/any_pb.d.ts +7 -0
- package/dist/esm/wkt/gen/google/protobuf/any_pb.js +7 -2
- package/dist/esm/wkt/gen/google/protobuf/api_pb.d.ts +15 -0
- package/dist/esm/wkt/gen/google/protobuf/api_pb.js +15 -6
- package/dist/esm/wkt/gen/google/protobuf/compiler/plugin_pb.d.ts +22 -0
- package/dist/esm/wkt/gen/google/protobuf/compiler/plugin_pb.js +22 -9
- package/dist/esm/wkt/gen/google/protobuf/descriptor_pb.d.ts +186 -0
- package/dist/esm/wkt/gen/google/protobuf/descriptor_pb.js +186 -83
- package/dist/esm/wkt/gen/google/protobuf/duration_pb.d.ts +7 -0
- package/dist/esm/wkt/gen/google/protobuf/duration_pb.js +7 -2
- package/dist/esm/wkt/gen/google/protobuf/empty_pb.d.ts +7 -0
- package/dist/esm/wkt/gen/google/protobuf/empty_pb.js +7 -2
- package/dist/esm/wkt/gen/google/protobuf/field_mask_pb.d.ts +7 -0
- package/dist/esm/wkt/gen/google/protobuf/field_mask_pb.js +7 -2
- package/dist/esm/wkt/gen/google/protobuf/source_context_pb.d.ts +7 -0
- package/dist/esm/wkt/gen/google/protobuf/source_context_pb.js +7 -2
- package/dist/esm/wkt/gen/google/protobuf/struct_pb.d.ts +18 -0
- package/dist/esm/wkt/gen/google/protobuf/struct_pb.js +18 -7
- package/dist/esm/wkt/gen/google/protobuf/timestamp_pb.d.ts +7 -0
- package/dist/esm/wkt/gen/google/protobuf/timestamp_pb.js +7 -2
- package/dist/esm/wkt/gen/google/protobuf/type_pb.d.ts +32 -0
- package/dist/esm/wkt/gen/google/protobuf/type_pb.js +32 -13
- package/dist/esm/wkt/gen/google/protobuf/wrappers_pb.d.ts +39 -0
- package/dist/esm/wkt/gen/google/protobuf/wrappers_pb.js +39 -18
- package/package.json +2 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { DescEnum, DescExtension,
|
|
1
|
+
import type { DescEnum, DescExtension, DescMessage, DescService } from "../desc-types.js";
|
|
2
2
|
import type { FileDescriptorProto } from "../wkt/gen/google/protobuf/descriptor_pb.js";
|
|
3
3
|
import type { FileDescriptorProtoBoot } from "./boot.js";
|
|
4
4
|
type EmbedUnknown = {
|
|
@@ -16,7 +16,7 @@ type EmbedDescriptorProto = Omit<EmbedUnknown, "bootable"> & {
|
|
|
16
16
|
*
|
|
17
17
|
* @private
|
|
18
18
|
*/
|
|
19
|
-
export declare function embedFileDesc(file:
|
|
19
|
+
export declare function embedFileDesc(file: FileDescriptorProto): EmbedUnknown | EmbedDescriptorProto;
|
|
20
20
|
/**
|
|
21
21
|
* Compute the path to a message, enumeration, extension, or service in a
|
|
22
22
|
* file descriptor.
|
|
@@ -31,9 +31,9 @@ function embedFileDesc(file) {
|
|
|
31
31
|
const embed = {
|
|
32
32
|
bootable: false,
|
|
33
33
|
proto() {
|
|
34
|
-
const stripped = (0, clone_js_1.clone)(descriptor_pb_js_1.FileDescriptorProtoDesc, file
|
|
35
|
-
(0, fields_js_1.clearField)(descriptor_pb_js_1.FileDescriptorProtoDesc
|
|
36
|
-
(0, fields_js_1.clearField)(descriptor_pb_js_1.FileDescriptorProtoDesc
|
|
34
|
+
const stripped = (0, clone_js_1.clone)(descriptor_pb_js_1.FileDescriptorProtoDesc, file);
|
|
35
|
+
(0, fields_js_1.clearField)(stripped, descriptor_pb_js_1.FileDescriptorProtoDesc.field.dependency);
|
|
36
|
+
(0, fields_js_1.clearField)(stripped, descriptor_pb_js_1.FileDescriptorProtoDesc.field.sourceCodeInfo);
|
|
37
37
|
stripped.messageType.map(stripJsonNames);
|
|
38
38
|
return stripped;
|
|
39
39
|
},
|
|
@@ -42,7 +42,7 @@ function embedFileDesc(file) {
|
|
|
42
42
|
return (0, base64_encoding_js_1.base64Encode)(bytes, "std_raw");
|
|
43
43
|
},
|
|
44
44
|
};
|
|
45
|
-
return file.
|
|
45
|
+
return file.name == "google/protobuf/descriptor.proto"
|
|
46
46
|
? Object.assign(Object.assign({}, embed), { bootable: true, boot() {
|
|
47
47
|
return createFileDescriptorProtoBoot(this.proto());
|
|
48
48
|
} }) : embed;
|
|
@@ -51,7 +51,7 @@ exports.embedFileDesc = embedFileDesc;
|
|
|
51
51
|
function stripJsonNames(d) {
|
|
52
52
|
for (const f of d.field) {
|
|
53
53
|
if (f.jsonName === (0, names_js_1.protoCamelCase)(f.name)) {
|
|
54
|
-
(0, fields_js_1.clearField)(descriptor_pb_js_1.FieldDescriptorProtoDesc
|
|
54
|
+
(0, fields_js_1.clearField)(f, descriptor_pb_js_1.FieldDescriptorProtoDesc.field.jsonName);
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
57
|
for (const n of d.nestedType) {
|
|
@@ -163,27 +163,27 @@ function createDescriptorBoot(proto) {
|
|
|
163
163
|
return b;
|
|
164
164
|
}
|
|
165
165
|
function createFieldDescriptorBoot(proto) {
|
|
166
|
-
(0, assert_js_1.assert)((0, fields_js_1.isFieldSet)(descriptor_pb_js_1.FieldDescriptorProtoDesc
|
|
167
|
-
(0, assert_js_1.assert)((0, fields_js_1.isFieldSet)(descriptor_pb_js_1.FieldDescriptorProtoDesc
|
|
168
|
-
(0, assert_js_1.assert)((0, fields_js_1.isFieldSet)(descriptor_pb_js_1.FieldDescriptorProtoDesc
|
|
169
|
-
(0, assert_js_1.assert)(!(0, fields_js_1.isFieldSet)(descriptor_pb_js_1.FieldDescriptorProtoDesc
|
|
170
|
-
(0, assert_js_1.assert)(!(0, fields_js_1.isFieldSet)(descriptor_pb_js_1.FieldDescriptorProtoDesc
|
|
166
|
+
(0, assert_js_1.assert)((0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldDescriptorProtoDesc.field.name));
|
|
167
|
+
(0, assert_js_1.assert)((0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldDescriptorProtoDesc.field.number));
|
|
168
|
+
(0, assert_js_1.assert)((0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldDescriptorProtoDesc.field.type));
|
|
169
|
+
(0, assert_js_1.assert)(!(0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldDescriptorProtoDesc.field.oneofIndex));
|
|
170
|
+
(0, assert_js_1.assert)(!(0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldDescriptorProtoDesc.field.jsonName) ||
|
|
171
171
|
proto.jsonName === (0, names_js_1.protoCamelCase)(proto.name));
|
|
172
172
|
const b = {
|
|
173
173
|
name: proto.name,
|
|
174
174
|
number: proto.number,
|
|
175
175
|
type: proto.type,
|
|
176
176
|
};
|
|
177
|
-
if ((0, fields_js_1.isFieldSet)(descriptor_pb_js_1.FieldDescriptorProtoDesc
|
|
177
|
+
if ((0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldDescriptorProtoDesc.field.label)) {
|
|
178
178
|
b.label = proto.label;
|
|
179
179
|
}
|
|
180
|
-
if ((0, fields_js_1.isFieldSet)(descriptor_pb_js_1.FieldDescriptorProtoDesc
|
|
180
|
+
if ((0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldDescriptorProtoDesc.field.typeName)) {
|
|
181
181
|
b.typeName = proto.typeName;
|
|
182
182
|
}
|
|
183
|
-
if ((0, fields_js_1.isFieldSet)(descriptor_pb_js_1.FieldDescriptorProtoDesc
|
|
183
|
+
if ((0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldDescriptorProtoDesc.field.extendee)) {
|
|
184
184
|
b.extendee = proto.extendee;
|
|
185
185
|
}
|
|
186
|
-
if ((0, fields_js_1.isFieldSet)(descriptor_pb_js_1.FieldDescriptorProtoDesc
|
|
186
|
+
if ((0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldDescriptorProtoDesc.field.defaultValue)) {
|
|
187
187
|
b.defaultValue = proto.defaultValue;
|
|
188
188
|
}
|
|
189
189
|
if (proto.options) {
|
|
@@ -193,19 +193,19 @@ function createFieldDescriptorBoot(proto) {
|
|
|
193
193
|
}
|
|
194
194
|
function createFieldOptionsBoot(proto) {
|
|
195
195
|
const b = {};
|
|
196
|
-
(0, assert_js_1.assert)(!(0, fields_js_1.isFieldSet)(descriptor_pb_js_1.FieldOptionsDesc
|
|
197
|
-
if ((0, fields_js_1.isFieldSet)(descriptor_pb_js_1.FieldOptionsDesc
|
|
196
|
+
(0, assert_js_1.assert)(!(0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldOptionsDesc.field.ctype));
|
|
197
|
+
if ((0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldOptionsDesc.field.packed)) {
|
|
198
198
|
b.packed = proto.packed;
|
|
199
199
|
}
|
|
200
|
-
(0, assert_js_1.assert)(!(0, fields_js_1.isFieldSet)(descriptor_pb_js_1.FieldOptionsDesc
|
|
201
|
-
(0, assert_js_1.assert)(!(0, fields_js_1.isFieldSet)(descriptor_pb_js_1.FieldOptionsDesc
|
|
202
|
-
(0, assert_js_1.assert)(!(0, fields_js_1.isFieldSet)(descriptor_pb_js_1.FieldOptionsDesc
|
|
203
|
-
if ((0, fields_js_1.isFieldSet)(descriptor_pb_js_1.FieldOptionsDesc
|
|
200
|
+
(0, assert_js_1.assert)(!(0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldOptionsDesc.field.jstype));
|
|
201
|
+
(0, assert_js_1.assert)(!(0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldOptionsDesc.field.lazy));
|
|
202
|
+
(0, assert_js_1.assert)(!(0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldOptionsDesc.field.unverifiedLazy));
|
|
203
|
+
if ((0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldOptionsDesc.field.deprecated)) {
|
|
204
204
|
b.deprecated = proto.deprecated;
|
|
205
205
|
}
|
|
206
|
-
(0, assert_js_1.assert)(!(0, fields_js_1.isFieldSet)(descriptor_pb_js_1.FieldOptionsDesc
|
|
207
|
-
(0, assert_js_1.assert)(!(0, fields_js_1.isFieldSet)(descriptor_pb_js_1.FieldOptionsDesc
|
|
208
|
-
if ((0, fields_js_1.isFieldSet)(descriptor_pb_js_1.FieldOptionsDesc
|
|
206
|
+
(0, assert_js_1.assert)(!(0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldOptionsDesc.field.weak));
|
|
207
|
+
(0, assert_js_1.assert)(!(0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldOptionsDesc.field.debugRedact));
|
|
208
|
+
if ((0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldOptionsDesc.field.retention)) {
|
|
209
209
|
b.retention = proto.retention;
|
|
210
210
|
}
|
|
211
211
|
if (proto.targets.length) {
|
|
@@ -217,8 +217,8 @@ function createFieldOptionsBoot(proto) {
|
|
|
217
217
|
edition: d.edition,
|
|
218
218
|
}));
|
|
219
219
|
}
|
|
220
|
-
(0, assert_js_1.assert)(!(0, fields_js_1.isFieldSet)(descriptor_pb_js_1.FieldOptionsDesc
|
|
221
|
-
(0, assert_js_1.assert)(!(0, fields_js_1.isFieldSet)(descriptor_pb_js_1.FieldOptionsDesc
|
|
220
|
+
(0, assert_js_1.assert)(!(0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldOptionsDesc.field.features));
|
|
221
|
+
(0, assert_js_1.assert)(!(0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldOptionsDesc.field.uninterpretedOption));
|
|
222
222
|
return b;
|
|
223
223
|
}
|
|
224
224
|
function createEnumDescriptorBoot(proto) {
|
|
@@ -14,7 +14,6 @@
|
|
|
14
14
|
// limitations under the License.
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
16
|
exports.tsEnum = exports.enumDesc = void 0;
|
|
17
|
-
const names_js_1 = require("../reflect/names.js");
|
|
18
17
|
/**
|
|
19
18
|
* Hydrate an enum descriptor.
|
|
20
19
|
*
|
|
@@ -34,9 +33,8 @@ exports.enumDesc = enumDesc;
|
|
|
34
33
|
function tsEnum(desc) {
|
|
35
34
|
const enumObject = {};
|
|
36
35
|
for (const value of desc.values) {
|
|
37
|
-
|
|
38
|
-
enumObject[
|
|
39
|
-
enumObject[value.number] = name;
|
|
36
|
+
enumObject[value.localName] = value.number;
|
|
37
|
+
enumObject[value.number] = value.localName;
|
|
40
38
|
}
|
|
41
39
|
return enumObject;
|
|
42
40
|
}
|
|
@@ -16,6 +16,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
16
16
|
exports.restoreJsonNames = void 0;
|
|
17
17
|
const names_js_1 = require("../reflect/names.js");
|
|
18
18
|
const unsafe_js_1 = require("../reflect/unsafe.js");
|
|
19
|
+
/**
|
|
20
|
+
* @private
|
|
21
|
+
*/
|
|
19
22
|
function restoreJsonNames(message) {
|
|
20
23
|
for (const f of message.field) {
|
|
21
24
|
if (!(0, unsafe_js_1.unsafeIsSetExplicit)(f, "jsonName")) {
|
|
@@ -1,5 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @private
|
|
3
|
+
*/
|
|
1
4
|
export declare const packageName = "@bufbuild/protobuf";
|
|
5
|
+
/**
|
|
6
|
+
* @private
|
|
7
|
+
*/
|
|
2
8
|
export declare const wktPublicImportPaths: Readonly<Record<string, string>>;
|
|
9
|
+
/**
|
|
10
|
+
* @private
|
|
11
|
+
*/
|
|
3
12
|
export declare const symbols: {
|
|
4
13
|
readonly isMessage: {
|
|
5
14
|
readonly typeOnly: false;
|
|
@@ -14,7 +14,13 @@
|
|
|
14
14
|
// limitations under the License.
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
16
|
exports.symbols = exports.wktPublicImportPaths = exports.packageName = void 0;
|
|
17
|
+
/**
|
|
18
|
+
* @private
|
|
19
|
+
*/
|
|
17
20
|
exports.packageName = "@bufbuild/protobuf";
|
|
21
|
+
/**
|
|
22
|
+
* @private
|
|
23
|
+
*/
|
|
18
24
|
exports.wktPublicImportPaths = {
|
|
19
25
|
"google/protobuf/compiler/plugin.proto": exports.packageName + "/wkt",
|
|
20
26
|
"google/protobuf/any.proto": exports.packageName + "/wkt",
|
|
@@ -29,6 +35,9 @@ exports.wktPublicImportPaths = {
|
|
|
29
35
|
"google/protobuf/type.proto": exports.packageName + "/wkt",
|
|
30
36
|
"google/protobuf/wrappers.proto": exports.packageName + "/wkt",
|
|
31
37
|
};
|
|
38
|
+
/**
|
|
39
|
+
* @private
|
|
40
|
+
*/
|
|
32
41
|
// prettier-ignore
|
|
33
42
|
exports.symbols = {
|
|
34
43
|
isMessage: { typeOnly: false, bootstrapWktFrom: "../../is-message.js", from: exports.packageName },
|
|
@@ -1,10 +1,52 @@
|
|
|
1
1
|
import type { Message } from "../types.js";
|
|
2
|
-
import type { DescEnum, DescExtension, DescFile, DescMessage, DescService } from "../desc-types.js";
|
|
2
|
+
import type { DescEnum, DescExtension, DescField, DescFile, DescMessage, DescService } from "../desc-types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Describes a protobuf source file.
|
|
5
|
+
*
|
|
6
|
+
* @private
|
|
7
|
+
*/
|
|
3
8
|
export type GenDescFile = DescFile;
|
|
4
|
-
|
|
9
|
+
/**
|
|
10
|
+
* Describes a message declaration in a protobuf source file.
|
|
11
|
+
*
|
|
12
|
+
* This type is identical to DescMessage, but carries additional type
|
|
13
|
+
* information.
|
|
14
|
+
*
|
|
15
|
+
* @private
|
|
16
|
+
*/
|
|
17
|
+
export type GenDescMessage<RuntimeShape extends Message> = Omit<DescMessage, "field"> & {
|
|
18
|
+
field: Record<MessageFieldNames<RuntimeShape>, DescField>;
|
|
19
|
+
} & brand<RuntimeShape>;
|
|
20
|
+
/**
|
|
21
|
+
* Describes an enumeration in a protobuf source file.
|
|
22
|
+
*
|
|
23
|
+
* This type is identical to DescEnum, but carries additional type
|
|
24
|
+
* information.
|
|
25
|
+
*
|
|
26
|
+
* @private
|
|
27
|
+
*/
|
|
5
28
|
export type GenDescEnum<RuntimeShape> = DescEnum & brand<RuntimeShape>;
|
|
29
|
+
/**
|
|
30
|
+
* Describes an extension in a protobuf source file.
|
|
31
|
+
*
|
|
32
|
+
* This type is identical to DescExtension, but carries additional type
|
|
33
|
+
* information.
|
|
34
|
+
*
|
|
35
|
+
* @private
|
|
36
|
+
*/
|
|
6
37
|
export type GenDescExtension<Extendee extends Message = Message, RuntimeShape = unknown> = DescExtension & brand<Extendee, RuntimeShape>;
|
|
38
|
+
/**
|
|
39
|
+
* Describes a service declaration in a protobuf source file.
|
|
40
|
+
*
|
|
41
|
+
* This type is identical to DescService, but carries additional type
|
|
42
|
+
* information.
|
|
43
|
+
*
|
|
44
|
+
* @private
|
|
45
|
+
*/
|
|
7
46
|
export type GenDescService<RuntimeShape extends GenDescServiceShape> = DescService & brand<RuntimeShape>;
|
|
47
|
+
/**
|
|
48
|
+
* @private
|
|
49
|
+
*/
|
|
8
50
|
export type GenDescServiceShape = {
|
|
9
51
|
[localName: string]: {
|
|
10
52
|
kind: "unary" | "server_streaming" | "client_streaming" | "bidi_streaming";
|
|
@@ -16,4 +58,15 @@ declare class brand<A, B = unknown> {
|
|
|
16
58
|
protected a: A | boolean;
|
|
17
59
|
protected b: B | boolean;
|
|
18
60
|
}
|
|
61
|
+
/**
|
|
62
|
+
* Union of the property names of all fields, including oneof members.
|
|
63
|
+
* For an anonymous message (no generated message shape), it's simply a string.
|
|
64
|
+
*/
|
|
65
|
+
type MessageFieldNames<T extends Message> = Message extends T ? string : Exclude<keyof {
|
|
66
|
+
[P in keyof T as P extends ("$typeName" | "$unknown") ? never : T[P] extends Oneof<infer K> ? K : P]-?: true;
|
|
67
|
+
}, number | symbol>;
|
|
68
|
+
type Oneof<K extends string> = {
|
|
69
|
+
case: K | undefined;
|
|
70
|
+
value?: unknown;
|
|
71
|
+
};
|
|
19
72
|
export {};
|
package/dist/cjs/create.js
CHANGED
|
@@ -15,15 +15,12 @@
|
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
16
|
exports.create = void 0;
|
|
17
17
|
const is_message_js_1 = require("./is-message.js");
|
|
18
|
-
const names_js_1 = require("./reflect/names.js");
|
|
19
18
|
const scalar_js_1 = require("./reflect/scalar.js");
|
|
20
19
|
const guard_js_1 = require("./reflect/guard.js");
|
|
21
20
|
const unsafe_js_1 = require("./reflect/unsafe.js");
|
|
22
21
|
const wrappers_js_1 = require("./wkt/wrappers.js");
|
|
23
22
|
// bootstrap-inject google.protobuf.Edition.EDITION_PROTO3: const $name: Edition.$localName = $number;
|
|
24
23
|
const EDITION_PROTO3 = 999;
|
|
25
|
-
// bootstrap-inject google.protobuf.FeatureSet.FieldPresence.EXPLICIT: const $name: FeatureSet_FieldPresence.$localName = $number;
|
|
26
|
-
const EXPLICIT = 1;
|
|
27
24
|
// bootstrap-inject google.protobuf.FeatureSet.FieldPresence.IMPLICIT: const $name: FeatureSet_FieldPresence.$localName = $number;
|
|
28
25
|
const IMPLICIT = 2;
|
|
29
26
|
/**
|
|
@@ -48,7 +45,7 @@ exports.create = create;
|
|
|
48
45
|
*/
|
|
49
46
|
function initMessage(messageDesc, message, init) {
|
|
50
47
|
for (const member of messageDesc.members) {
|
|
51
|
-
let value = init[
|
|
48
|
+
let value = init[member.localName];
|
|
52
49
|
if (value == null) {
|
|
53
50
|
// intentionally ignore undefined and null
|
|
54
51
|
continue;
|
|
@@ -146,17 +143,9 @@ function createZeroMessage(desc) {
|
|
|
146
143
|
// the `optional` keyword generate an optional property.
|
|
147
144
|
msg = {};
|
|
148
145
|
for (const member of desc.members) {
|
|
149
|
-
if (member.kind == "
|
|
150
|
-
|
|
151
|
-
member.fieldKind == "enum" ||
|
|
152
|
-
member.fieldKind == "message") {
|
|
153
|
-
if (member.presence == EXPLICIT) {
|
|
154
|
-
// skips message fields and optional scalar/enum
|
|
155
|
-
continue;
|
|
156
|
-
}
|
|
157
|
-
}
|
|
146
|
+
if (member.kind == "oneof" || member.presence == IMPLICIT) {
|
|
147
|
+
msg[member.localName] = createZeroField(member);
|
|
158
148
|
}
|
|
159
|
-
msg[(0, names_js_1.localName)(member)] = createZeroField(member);
|
|
160
149
|
}
|
|
161
150
|
}
|
|
162
151
|
else {
|
|
@@ -183,12 +172,12 @@ function createZeroMessage(desc) {
|
|
|
183
172
|
continue;
|
|
184
173
|
}
|
|
185
174
|
if (member.presence == IMPLICIT) {
|
|
186
|
-
// implicit presence tracks field presence by zero values
|
|
187
|
-
//
|
|
175
|
+
// implicit presence tracks field presence by zero values - e.g. 0, false, "", are unset, 1, true, "x" are set.
|
|
176
|
+
// message, map, list fields are mutable, and also have IMPLICIT presence.
|
|
188
177
|
continue;
|
|
189
178
|
}
|
|
190
179
|
members.add(member);
|
|
191
|
-
prototype[
|
|
180
|
+
prototype[member.localName] = createZeroField(member);
|
|
192
181
|
}
|
|
193
182
|
messagePrototypes.set(desc, { prototype, members });
|
|
194
183
|
}
|
|
@@ -207,7 +196,7 @@ function createZeroMessage(desc) {
|
|
|
207
196
|
}
|
|
208
197
|
}
|
|
209
198
|
}
|
|
210
|
-
msg[
|
|
199
|
+
msg[member.localName] = createZeroField(member);
|
|
211
200
|
}
|
|
212
201
|
}
|
|
213
202
|
msg.$typeName = desc.typeName;
|
package/dist/cjs/desc-types.d.ts
CHANGED
|
@@ -108,6 +108,10 @@ export interface DescEnumValue {
|
|
|
108
108
|
* The name of the enumeration value, as specified in the protobuf source.
|
|
109
109
|
*/
|
|
110
110
|
readonly name: string;
|
|
111
|
+
/**
|
|
112
|
+
* A safe and idiomatic name for the value in a TypeScript enum.
|
|
113
|
+
*/
|
|
114
|
+
readonly localName: string;
|
|
111
115
|
/**
|
|
112
116
|
* The enumeration this value belongs to.
|
|
113
117
|
*/
|
|
@@ -152,6 +156,10 @@ export interface DescMessage {
|
|
|
152
156
|
* group.
|
|
153
157
|
*/
|
|
154
158
|
readonly fields: DescField[];
|
|
159
|
+
/**
|
|
160
|
+
* All fields of this message by their "localName".
|
|
161
|
+
*/
|
|
162
|
+
readonly field: Record<string, DescField>;
|
|
155
163
|
/**
|
|
156
164
|
* Oneof groups declared for this message.
|
|
157
165
|
* This does not include synthetic oneofs for proto3 optionals.
|
|
@@ -195,6 +203,10 @@ type descFieldCommon = descFieldAndExtensionShared & {
|
|
|
195
203
|
* The message this field is declared on.
|
|
196
204
|
*/
|
|
197
205
|
readonly parent: DescMessage;
|
|
206
|
+
/**
|
|
207
|
+
* A safe and idiomatic name for the field as a property in ECMAScript.
|
|
208
|
+
*/
|
|
209
|
+
readonly localName: string;
|
|
198
210
|
};
|
|
199
211
|
/**
|
|
200
212
|
* Describes an extension in a protobuf source file.
|
|
@@ -240,6 +252,11 @@ interface descFieldAndExtensionShared {
|
|
|
240
252
|
* Marked as deprecated in the protobuf source.
|
|
241
253
|
*/
|
|
242
254
|
readonly deprecated: boolean;
|
|
255
|
+
/**
|
|
256
|
+
* Presence of the field.
|
|
257
|
+
* See https://protobuf.dev/programming-guides/field_presence/
|
|
258
|
+
*/
|
|
259
|
+
readonly presence: SupportedFieldPresence;
|
|
243
260
|
/**
|
|
244
261
|
* The compiler-generated descriptor.
|
|
245
262
|
*/
|
|
@@ -256,15 +273,6 @@ type descFieldSingularCommon = {
|
|
|
256
273
|
* This does not include synthetic oneofs for proto3 optionals.
|
|
257
274
|
*/
|
|
258
275
|
readonly oneof: DescOneof | undefined;
|
|
259
|
-
/**
|
|
260
|
-
* Whether this field was declared with `optional` in the protobuf source.
|
|
261
|
-
*/
|
|
262
|
-
readonly optional: boolean;
|
|
263
|
-
/**
|
|
264
|
-
* Presence of the field.
|
|
265
|
-
* See https://protobuf.dev/programming-guides/field_presence/
|
|
266
|
-
*/
|
|
267
|
-
readonly presence: SupportedFieldPresence;
|
|
268
276
|
};
|
|
269
277
|
type descFieldScalar<T extends ScalarType = ScalarType> = T extends T ? {
|
|
270
278
|
readonly fieldKind: "scalar";
|
|
@@ -414,7 +422,8 @@ type descFieldMapCommon<T extends ScalarType = ScalarType> = T extends Exclude<S
|
|
|
414
422
|
readonly oneof: undefined;
|
|
415
423
|
/**
|
|
416
424
|
* Encode the map entry message delimited (a.k.a. proto2 group encoding),
|
|
417
|
-
* or length-prefixed?
|
|
425
|
+
* or length-prefixed? As of Edition 2023, this is always false for map fields,
|
|
426
|
+
* and also applies to map values, if they are messages.
|
|
418
427
|
*/
|
|
419
428
|
readonly delimitedEncoding: false;
|
|
420
429
|
} : never;
|
|
@@ -472,6 +481,10 @@ export interface DescOneof {
|
|
|
472
481
|
* The name of the oneof group, as specified in the protobuf source.
|
|
473
482
|
*/
|
|
474
483
|
readonly name: string;
|
|
484
|
+
/**
|
|
485
|
+
* A safe and idiomatic name for the oneof group as a property in ECMAScript.
|
|
486
|
+
*/
|
|
487
|
+
readonly localName: string;
|
|
475
488
|
/**
|
|
476
489
|
* The message this oneof group was declared in.
|
|
477
490
|
*/
|
|
@@ -532,6 +545,10 @@ export interface DescMethod {
|
|
|
532
545
|
* The name of the RPC, as specified in the protobuf source.
|
|
533
546
|
*/
|
|
534
547
|
readonly name: string;
|
|
548
|
+
/**
|
|
549
|
+
* A safe and idiomatic name for the RPC as a method in ECMAScript.
|
|
550
|
+
*/
|
|
551
|
+
readonly localName: string;
|
|
535
552
|
/**
|
|
536
553
|
* The parent service.
|
|
537
554
|
*/
|
package/dist/cjs/extensions.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import type { DescExtension, DescField } from "./desc-types.js";
|
|
1
|
+
import type { AnyDesc, DescEnum, DescEnumValue, DescExtension, DescField, DescFile, DescMessage, DescMethod, DescOneof, DescService } from "./desc-types.js";
|
|
2
2
|
import type { ReflectMessage } from "./reflect/reflect-types.js";
|
|
3
3
|
import type { Extendee, ExtensionValueShape } from "./types.js";
|
|
4
|
+
import type { EnumOptions, EnumValueOptions, FieldOptions, FileOptions, MessageOptions, MethodOptions, OneofOptions, ServiceOptions } from "./wkt/gen/google/protobuf/descriptor_pb.js";
|
|
4
5
|
/**
|
|
5
6
|
* Retrieve an extension value from a message.
|
|
6
7
|
*
|
|
@@ -33,7 +34,26 @@ export declare function clearExtension<Desc extends DescExtension>(message: Exte
|
|
|
33
34
|
* Check whether an extension is set on a message.
|
|
34
35
|
*/
|
|
35
36
|
export declare function hasExtension<Desc extends DescExtension>(message: Extendee<Desc>, extension: Desc): boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Check whether an option is set on a descriptor.
|
|
39
|
+
*
|
|
40
|
+
* Options are extensions to the `google.protobuf.*Options` messages defined in
|
|
41
|
+
* google/protobuf/descriptor.proto. This function gets the option message from
|
|
42
|
+
* the descriptor, and calls hasExtension().
|
|
43
|
+
*/
|
|
44
|
+
export declare function hasOption<Ext extends DescExtension, Desc extends DescForOptionExtension<Ext>>(element: Desc, option: Ext): boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Retrieve an option value from a descriptor.
|
|
47
|
+
*
|
|
48
|
+
* Options are extensions to the `google.protobuf.*Options` messages defined in
|
|
49
|
+
* google/protobuf/descriptor.proto. This function gets the option message from
|
|
50
|
+
* the descriptor, and calls getExtension(). Same as getExtension(), this
|
|
51
|
+
* function never returns undefined.
|
|
52
|
+
*/
|
|
53
|
+
export declare function getOption<Ext extends DescExtension, Desc extends DescForOptionExtension<Ext>>(element: Desc, option: Ext): ExtensionValueShape<Ext>;
|
|
54
|
+
type DescForOptionExtension<Ext extends DescExtension> = Extendee<Ext> extends FileOptions ? DescFile : Extendee<Ext> extends EnumOptions ? DescEnum : Extendee<Ext> extends EnumValueOptions ? DescEnumValue : Extendee<Ext> extends MessageOptions ? DescMessage : Extendee<Ext> extends MessageOptions ? DescEnum : Extendee<Ext> extends FieldOptions ? DescField | DescExtension : Extendee<Ext> extends OneofOptions ? DescOneof : Extendee<Ext> extends ServiceOptions ? DescService : Extendee<Ext> extends EnumOptions ? DescEnum : Extendee<Ext> extends MethodOptions ? DescMethod : AnyDesc;
|
|
36
55
|
/**
|
|
37
56
|
* @private
|
|
38
57
|
*/
|
|
39
58
|
export declare function createExtensionContainer<Desc extends DescExtension>(extension: Desc, value?: ExtensionValueShape<Desc>): [ReflectMessage, DescField, () => ExtensionValueShape<Desc>];
|
|
59
|
+
export {};
|
package/dist/cjs/extensions.js
CHANGED
|
@@ -13,11 +13,10 @@
|
|
|
13
13
|
// See the License for the specific language governing permissions and
|
|
14
14
|
// limitations under the License.
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
-
exports.createExtensionContainer = exports.hasExtension = exports.clearExtension = exports.setExtension = exports.getExtension = void 0;
|
|
16
|
+
exports.createExtensionContainer = exports.getOption = exports.hasOption = exports.hasExtension = exports.clearExtension = exports.setExtension = exports.getExtension = void 0;
|
|
17
17
|
const assert_js_1 = require("./reflect/assert.js");
|
|
18
18
|
const create_js_1 = require("./create.js");
|
|
19
19
|
const from_binary_js_1 = require("./from-binary.js");
|
|
20
|
-
const names_js_1 = require("./reflect/names.js");
|
|
21
20
|
const reflect_js_1 = require("./reflect/reflect.js");
|
|
22
21
|
const scalar_js_1 = require("./reflect/scalar.js");
|
|
23
22
|
const to_binary_js_1 = require("./to-binary.js");
|
|
@@ -65,7 +64,7 @@ function setExtension(message, extension, value) {
|
|
|
65
64
|
const reader = new binary_encoding_js_1.BinaryReader(writer.finish());
|
|
66
65
|
while (reader.pos < reader.len) {
|
|
67
66
|
const [no, wireType] = reader.tag();
|
|
68
|
-
const data = reader.skip(wireType);
|
|
67
|
+
const data = reader.skip(wireType, no);
|
|
69
68
|
ufs.push({ no, wireType, data });
|
|
70
69
|
}
|
|
71
70
|
message.$unknown = ufs;
|
|
@@ -93,6 +92,38 @@ function hasExtension(message, extension) {
|
|
|
93
92
|
!!((_a = message.$unknown) === null || _a === void 0 ? void 0 : _a.find((uf) => uf.no === extension.number)));
|
|
94
93
|
}
|
|
95
94
|
exports.hasExtension = hasExtension;
|
|
95
|
+
/**
|
|
96
|
+
* Check whether an option is set on a descriptor.
|
|
97
|
+
*
|
|
98
|
+
* Options are extensions to the `google.protobuf.*Options` messages defined in
|
|
99
|
+
* google/protobuf/descriptor.proto. This function gets the option message from
|
|
100
|
+
* the descriptor, and calls hasExtension().
|
|
101
|
+
*/
|
|
102
|
+
function hasOption(element, option) {
|
|
103
|
+
const message = element.proto.options;
|
|
104
|
+
if (!message) {
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
return hasExtension(message, option);
|
|
108
|
+
}
|
|
109
|
+
exports.hasOption = hasOption;
|
|
110
|
+
/**
|
|
111
|
+
* Retrieve an option value from a descriptor.
|
|
112
|
+
*
|
|
113
|
+
* Options are extensions to the `google.protobuf.*Options` messages defined in
|
|
114
|
+
* google/protobuf/descriptor.proto. This function gets the option message from
|
|
115
|
+
* the descriptor, and calls getExtension(). Same as getExtension(), this
|
|
116
|
+
* function never returns undefined.
|
|
117
|
+
*/
|
|
118
|
+
function getOption(element, option) {
|
|
119
|
+
const message = element.proto.options;
|
|
120
|
+
if (!message) {
|
|
121
|
+
const [, , get] = createExtensionContainer(option);
|
|
122
|
+
return get();
|
|
123
|
+
}
|
|
124
|
+
return getExtension(message, option);
|
|
125
|
+
}
|
|
126
|
+
exports.getOption = getOption;
|
|
96
127
|
function filterUnknownFields(unknownFields, extension) {
|
|
97
128
|
if (unknownFields === undefined)
|
|
98
129
|
return [];
|
|
@@ -111,15 +142,15 @@ function filterUnknownFields(unknownFields, extension) {
|
|
|
111
142
|
* @private
|
|
112
143
|
*/
|
|
113
144
|
function createExtensionContainer(extension, value) {
|
|
114
|
-
const
|
|
145
|
+
const localName = extension.typeName;
|
|
146
|
+
const field = Object.assign(Object.assign({}, extension), { kind: "field", parent: extension.extendee, localName });
|
|
115
147
|
const desc = Object.assign(Object.assign({}, extension.extendee), { fields: [field], members: [field], oneofs: [] });
|
|
116
|
-
const
|
|
117
|
-
const container = (0, create_js_1.create)(desc, value !== undefined ? { [fieldName]: value } : undefined);
|
|
148
|
+
const container = (0, create_js_1.create)(desc, value !== undefined ? { [localName]: value } : undefined);
|
|
118
149
|
return [
|
|
119
150
|
(0, reflect_js_1.reflect)(desc, container),
|
|
120
151
|
field,
|
|
121
152
|
() => {
|
|
122
|
-
const value = container[
|
|
153
|
+
const value = container[localName];
|
|
123
154
|
if (value === undefined) {
|
|
124
155
|
// Only message fields are undefined, rest will have a zero value.
|
|
125
156
|
const desc = extension.message;
|
package/dist/cjs/fields.d.ts
CHANGED
|
@@ -1,22 +1,23 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { DescMessage } from "./desc-types.js";
|
|
1
|
+
import type { MessageShape } from "./types.js";
|
|
2
|
+
import type { DescField, DescMessage } from "./desc-types.js";
|
|
3
3
|
/**
|
|
4
4
|
* Returns true if the field is set.
|
|
5
|
+
*
|
|
6
|
+
* - Scalar and enum fields with implicit presence (proto3):
|
|
7
|
+
* Set if not a zero value.
|
|
8
|
+
*
|
|
9
|
+
* - Scalar and enum fields with explicit presence (proto2, oneof):
|
|
10
|
+
* Set if a value was set when creating or parsing the message, or when a
|
|
11
|
+
* value was assigned to the field's property.
|
|
12
|
+
*
|
|
13
|
+
* - Message fields:
|
|
14
|
+
* Set if the property is not undefined.
|
|
15
|
+
*
|
|
16
|
+
* - List and map fields:
|
|
17
|
+
* Set if not empty.
|
|
5
18
|
*/
|
|
6
|
-
export declare function isFieldSet<Desc extends DescMessage>(
|
|
19
|
+
export declare function isFieldSet<Desc extends DescMessage>(message: MessageShape<Desc>, field: DescField): boolean;
|
|
7
20
|
/**
|
|
8
21
|
* Resets the field, so that isFieldSet() will return false.
|
|
9
22
|
*/
|
|
10
|
-
export declare function clearField<Desc extends DescMessage>(
|
|
11
|
-
/**
|
|
12
|
-
* Union of the property names of all fields, including oneof members.
|
|
13
|
-
* For an anonymous message (no generated message shape), it's simply a string.
|
|
14
|
-
*/
|
|
15
|
-
type MessageFieldNames<T extends Message> = Message extends T ? string : Exclude<keyof {
|
|
16
|
-
[P in keyof T as P extends ("$typeName" | "$unknown") ? never : T[P] extends Oneof<infer K> ? K : P]-?: true;
|
|
17
|
-
}, number | symbol>;
|
|
18
|
-
type Oneof<K extends string> = {
|
|
19
|
-
case: K | undefined;
|
|
20
|
-
value?: unknown;
|
|
21
|
-
};
|
|
22
|
-
export {};
|
|
23
|
+
export declare function clearField<Desc extends DescMessage>(message: MessageShape<Desc>, field: DescField): void;
|
package/dist/cjs/fields.js
CHANGED
|
@@ -14,25 +14,32 @@
|
|
|
14
14
|
// limitations under the License.
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
16
|
exports.clearField = exports.isFieldSet = void 0;
|
|
17
|
-
const names_js_1 = require("./reflect/names.js");
|
|
18
17
|
const unsafe_js_1 = require("./reflect/unsafe.js");
|
|
19
18
|
/**
|
|
20
19
|
* Returns true if the field is set.
|
|
20
|
+
*
|
|
21
|
+
* - Scalar and enum fields with implicit presence (proto3):
|
|
22
|
+
* Set if not a zero value.
|
|
23
|
+
*
|
|
24
|
+
* - Scalar and enum fields with explicit presence (proto2, oneof):
|
|
25
|
+
* Set if a value was set when creating or parsing the message, or when a
|
|
26
|
+
* value was assigned to the field's property.
|
|
27
|
+
*
|
|
28
|
+
* - Message fields:
|
|
29
|
+
* Set if the property is not undefined.
|
|
30
|
+
*
|
|
31
|
+
* - List and map fields:
|
|
32
|
+
* Set if not empty.
|
|
21
33
|
*/
|
|
22
|
-
function isFieldSet(
|
|
23
|
-
|
|
24
|
-
if (field) {
|
|
25
|
-
return (0, unsafe_js_1.unsafeIsSet)(message, field);
|
|
26
|
-
}
|
|
27
|
-
return false;
|
|
34
|
+
function isFieldSet(message, field) {
|
|
35
|
+
return (field.parent.typeName == message.$typeName && (0, unsafe_js_1.unsafeIsSet)(message, field));
|
|
28
36
|
}
|
|
29
37
|
exports.isFieldSet = isFieldSet;
|
|
30
38
|
/**
|
|
31
39
|
* Resets the field, so that isFieldSet() will return false.
|
|
32
40
|
*/
|
|
33
|
-
function clearField(
|
|
34
|
-
|
|
35
|
-
if (field) {
|
|
41
|
+
function clearField(message, field) {
|
|
42
|
+
if (field.parent.typeName == message.$typeName) {
|
|
36
43
|
(0, unsafe_js_1.unsafeClear)(message, field);
|
|
37
44
|
}
|
|
38
45
|
}
|