@bufbuild/protobuf 2.0.0-alpha.1 → 2.0.0-alpha.3
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/README.md +1 -1
- package/dist/cjs/clone.d.ts +1 -1
- package/dist/cjs/clone.js +2 -2
- package/dist/cjs/codegenv1/boot.d.ts +1 -1
- package/dist/cjs/codegenv1/boot.js +3 -5
- package/dist/cjs/codegenv1/embed.d.ts +2 -2
- package/dist/cjs/codegenv1/embed.js +51 -46
- package/dist/cjs/codegenv1/enum.d.ts +1 -1
- package/dist/cjs/codegenv1/enum.js +2 -4
- package/dist/cjs/codegenv1/extension.d.ts +1 -1
- package/dist/cjs/codegenv1/file.d.ts +1 -1
- package/dist/cjs/codegenv1/file.js +5 -7
- package/dist/cjs/codegenv1/index.d.ts +1 -0
- package/dist/cjs/codegenv1/index.js +1 -0
- package/dist/cjs/codegenv1/message.d.ts +1 -1
- 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/scalar.d.ts +5 -0
- package/dist/cjs/codegenv1/scalar.js +39 -0
- package/dist/cjs/codegenv1/service.d.ts +3 -3
- package/dist/cjs/codegenv1/symbols.d.ts +9 -0
- package/dist/cjs/codegenv1/symbols.js +9 -0
- package/dist/cjs/codegenv1/types.d.ts +59 -8
- package/dist/cjs/create.d.ts +1 -1
- package/dist/cjs/create.js +13 -23
- package/dist/cjs/{desc-types.d.ts → descriptors.d.ts} +66 -17
- package/dist/cjs/descriptors.js +53 -0
- package/dist/cjs/equals.d.ts +1 -1
- package/dist/cjs/extensions.d.ts +21 -1
- package/dist/cjs/extensions.js +42 -10
- package/dist/cjs/fields.d.ts +17 -16
- package/dist/cjs/fields.js +17 -10
- package/dist/cjs/from-binary.d.ts +2 -2
- package/dist/cjs/from-binary.js +31 -41
- package/dist/cjs/from-json.d.ts +4 -4
- package/dist/cjs/from-json.js +200 -185
- package/dist/cjs/index.d.ts +3 -2
- package/dist/cjs/index.js +5 -2
- package/dist/cjs/is-message.d.ts +1 -1
- package/dist/cjs/proto-int64.d.ts +4 -1
- package/dist/cjs/proto-int64.js +16 -6
- package/dist/cjs/reflect/error.d.ts +1 -1
- package/dist/cjs/reflect/guard.d.ts +1 -1
- package/dist/cjs/reflect/index.d.ts +0 -1
- package/dist/cjs/reflect/index.js +0 -1
- package/dist/cjs/reflect/names.d.ts +1 -13
- package/dist/cjs/reflect/names.js +2 -40
- package/dist/cjs/reflect/nested-types.d.ts +11 -1
- package/dist/cjs/reflect/nested-types.js +34 -1
- package/dist/cjs/reflect/reflect-check.d.ts +10 -1
- package/dist/cjs/reflect/reflect-check.js +126 -9
- package/dist/cjs/reflect/reflect-types.d.ts +162 -14
- package/dist/cjs/reflect/reflect.d.ts +12 -3
- package/dist/cjs/reflect/reflect.js +316 -290
- package/dist/cjs/reflect/scalar.d.ts +3 -55
- package/dist/cjs/reflect/scalar.js +26 -220
- package/dist/cjs/reflect/unsafe.d.ts +1 -1
- package/dist/cjs/reflect/unsafe.js +38 -43
- package/dist/cjs/{reflect/registry.d.ts → registry.d.ts} +2 -2
- package/dist/cjs/{reflect/registry.js → registry.js} +100 -73
- package/dist/cjs/to-binary.d.ts +1 -1
- package/dist/cjs/to-binary.js +28 -30
- package/dist/cjs/to-json.d.ts +7 -6
- package/dist/cjs/to-json.js +63 -70
- package/dist/cjs/types.d.ts +1 -1
- package/dist/cjs/wire/base64-encoding.js +4 -4
- package/dist/cjs/wire/binary-encoding.d.ts +25 -3
- package/dist/cjs/wire/binary-encoding.js +70 -18
- package/dist/cjs/wire/size-delimited.d.ts +1 -1
- package/dist/cjs/wire/text-format.d.ts +1 -2
- package/dist/cjs/wire/text-format.js +21 -19
- package/dist/cjs/wkt/any.d.ts +3 -3
- 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 +192 -0
- package/dist/cjs/wkt/gen/google/protobuf/descriptor_pb.js +187 -84
- 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/cjs/wkt/wrappers.d.ts +1 -1
- package/dist/esm/clone.d.ts +1 -1
- package/dist/esm/clone.js +1 -1
- package/dist/esm/codegenv1/boot.d.ts +1 -1
- package/dist/esm/codegenv1/boot.js +3 -5
- package/dist/esm/codegenv1/embed.d.ts +2 -2
- package/dist/esm/codegenv1/embed.js +34 -29
- package/dist/esm/codegenv1/enum.d.ts +1 -1
- package/dist/esm/codegenv1/enum.js +2 -4
- package/dist/esm/codegenv1/extension.d.ts +1 -1
- package/dist/esm/codegenv1/file.d.ts +1 -1
- package/dist/esm/codegenv1/file.js +4 -6
- package/dist/esm/codegenv1/index.d.ts +1 -0
- package/dist/esm/codegenv1/index.js +1 -0
- package/dist/esm/codegenv1/message.d.ts +1 -1
- 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/scalar.d.ts +5 -0
- package/dist/esm/codegenv1/scalar.js +35 -0
- package/dist/esm/codegenv1/service.d.ts +3 -3
- package/dist/esm/codegenv1/symbols.d.ts +9 -0
- package/dist/esm/codegenv1/symbols.js +9 -0
- package/dist/esm/codegenv1/types.d.ts +59 -8
- package/dist/esm/create.d.ts +1 -1
- package/dist/esm/create.js +11 -21
- package/dist/esm/{desc-types.d.ts → descriptors.d.ts} +66 -17
- package/dist/esm/descriptors.js +50 -0
- package/dist/esm/equals.d.ts +1 -1
- package/dist/esm/extensions.d.ts +21 -1
- package/dist/esm/extensions.js +39 -9
- package/dist/esm/fields.d.ts +17 -16
- package/dist/esm/fields.js +17 -10
- package/dist/esm/from-binary.d.ts +2 -2
- package/dist/esm/from-binary.js +13 -23
- package/dist/esm/from-json.d.ts +4 -4
- package/dist/esm/from-json.js +193 -178
- package/dist/esm/index.d.ts +3 -2
- package/dist/esm/index.js +3 -2
- package/dist/esm/is-message.d.ts +1 -1
- package/dist/esm/proto-int64.d.ts +4 -1
- package/dist/esm/proto-int64.js +16 -6
- package/dist/esm/reflect/error.d.ts +1 -1
- package/dist/esm/reflect/guard.d.ts +1 -1
- package/dist/esm/reflect/index.d.ts +0 -1
- package/dist/esm/reflect/index.js +0 -1
- package/dist/esm/reflect/names.d.ts +1 -13
- package/dist/esm/reflect/names.js +1 -38
- package/dist/esm/reflect/nested-types.d.ts +11 -1
- package/dist/esm/reflect/nested-types.js +32 -0
- package/dist/esm/reflect/reflect-check.d.ts +10 -1
- package/dist/esm/reflect/reflect-check.js +119 -2
- package/dist/esm/reflect/reflect-types.d.ts +162 -14
- package/dist/esm/reflect/reflect-types.js +1 -0
- package/dist/esm/reflect/reflect.d.ts +12 -3
- package/dist/esm/reflect/reflect.js +305 -279
- package/dist/esm/reflect/scalar.d.ts +3 -55
- package/dist/esm/reflect/scalar.js +14 -205
- package/dist/esm/reflect/unsafe.d.ts +1 -1
- package/dist/esm/reflect/unsafe.js +38 -43
- package/dist/esm/{reflect/registry.d.ts → registry.d.ts} +2 -2
- package/dist/esm/{reflect/registry.js → registry.js} +90 -63
- package/dist/esm/to-binary.d.ts +1 -1
- package/dist/esm/to-binary.js +2 -4
- package/dist/esm/to-json.d.ts +7 -6
- package/dist/esm/to-json.js +48 -55
- package/dist/esm/types.d.ts +1 -1
- package/dist/esm/wire/base64-encoding.js +4 -4
- package/dist/esm/wire/binary-encoding.d.ts +25 -3
- package/dist/esm/wire/binary-encoding.js +63 -11
- package/dist/esm/wire/size-delimited.d.ts +1 -1
- package/dist/esm/wire/text-format.d.ts +1 -2
- package/dist/esm/wire/text-format.js +5 -3
- package/dist/esm/wkt/any.d.ts +3 -3
- 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 +192 -0
- package/dist/esm/wkt/gen/google/protobuf/descriptor_pb.js +187 -84
- 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/dist/esm/wkt/wrappers.d.ts +1 -1
- package/package.json +2 -2
- package/dist/cjs/desc-types.js +0 -15
- package/dist/cjs/reflect/assert.d.ts +0 -16
- package/dist/cjs/reflect/assert.js +0 -59
- package/dist/esm/desc-types.js +0 -14
- package/dist/esm/reflect/assert.d.ts +0 -16
- package/dist/esm/reflect/assert.js +0 -52
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
// limitations under the License.
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
16
|
exports.reflectMap = exports.reflectList = exports.reflect = void 0;
|
|
17
|
+
const descriptors_js_1 = require("../descriptors.js");
|
|
17
18
|
const reflect_check_js_1 = require("./reflect-check.js");
|
|
18
19
|
const error_js_1 = require("./error.js");
|
|
19
20
|
const unsafe_js_1 = require("./unsafe.js");
|
|
@@ -22,124 +23,131 @@ const wrappers_js_1 = require("../wkt/wrappers.js");
|
|
|
22
23
|
const scalar_js_1 = require("./scalar.js");
|
|
23
24
|
const proto_int64_js_1 = require("../proto-int64.js");
|
|
24
25
|
const guard_js_1 = require("./guard.js");
|
|
26
|
+
/**
|
|
27
|
+
* Create a ReflectMessage.
|
|
28
|
+
*/
|
|
25
29
|
function reflect(messageDesc, message,
|
|
26
30
|
// TODO either remove this option, or support it in reflect-list and reflect-map as well
|
|
27
31
|
opt) {
|
|
28
|
-
message
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
case "enum":
|
|
85
|
-
return value;
|
|
86
|
-
}
|
|
87
|
-
},
|
|
88
|
-
set(field, value) {
|
|
89
|
-
assertOwn(message, field);
|
|
90
|
-
if (check) {
|
|
91
|
-
const err = (0, reflect_check_js_1.checkField)(field, value);
|
|
92
|
-
if (err) {
|
|
93
|
-
return err;
|
|
32
|
+
return new ReflectMessageImpl(messageDesc, message, (opt === null || opt === void 0 ? void 0 : opt.disableFieldValueCheck) !== true);
|
|
33
|
+
}
|
|
34
|
+
exports.reflect = reflect;
|
|
35
|
+
class ReflectMessageImpl {
|
|
36
|
+
get sortedFields() {
|
|
37
|
+
var _a;
|
|
38
|
+
return ((_a = this._sortedFields) !== null && _a !== void 0 ? _a : (this._sortedFields = this.desc.fields
|
|
39
|
+
.concat()
|
|
40
|
+
.sort((a, b) => a.number - b.number)));
|
|
41
|
+
}
|
|
42
|
+
constructor(messageDesc, message,
|
|
43
|
+
// TODO either remove this option, or support it in reflect-list and reflect-map as well
|
|
44
|
+
check = true) {
|
|
45
|
+
this.check = check;
|
|
46
|
+
this.desc = messageDesc;
|
|
47
|
+
this.message = this[unsafe_js_1.unsafeLocal] = message !== null && message !== void 0 ? message : (0, create_js_1.create)(messageDesc);
|
|
48
|
+
this.fields = messageDesc.fields;
|
|
49
|
+
this.oneofs = messageDesc.oneofs;
|
|
50
|
+
this.members = messageDesc.members;
|
|
51
|
+
}
|
|
52
|
+
findNumber(number) {
|
|
53
|
+
if (!this._fieldsByNumber) {
|
|
54
|
+
this._fieldsByNumber = new Map(this.desc.fields.map((f) => [f.number, f]));
|
|
55
|
+
}
|
|
56
|
+
return this._fieldsByNumber.get(number);
|
|
57
|
+
}
|
|
58
|
+
oneofCase(oneof) {
|
|
59
|
+
assertOwn(this.message, oneof);
|
|
60
|
+
return (0, unsafe_js_1.unsafeOneofCase)(this.message, oneof);
|
|
61
|
+
}
|
|
62
|
+
isSet(field) {
|
|
63
|
+
assertOwn(this.message, field);
|
|
64
|
+
return (0, unsafe_js_1.unsafeIsSet)(this.message, field);
|
|
65
|
+
}
|
|
66
|
+
clear(field) {
|
|
67
|
+
assertOwn(this.message, field);
|
|
68
|
+
(0, unsafe_js_1.unsafeClear)(this.message, field);
|
|
69
|
+
}
|
|
70
|
+
get(field) {
|
|
71
|
+
assertOwn(this.message, field);
|
|
72
|
+
let value = (0, unsafe_js_1.unsafeGet)(this.message, field);
|
|
73
|
+
switch (field.fieldKind) {
|
|
74
|
+
case "list":
|
|
75
|
+
return new ReflectListImpl(field, value, this.check);
|
|
76
|
+
case "map":
|
|
77
|
+
// TODO fix types
|
|
78
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
79
|
+
return reflectMap(field, value, this.check); // eslint-disable-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-return
|
|
80
|
+
case "message":
|
|
81
|
+
if (value !== undefined &&
|
|
82
|
+
!field.oneof &&
|
|
83
|
+
(0, wrappers_js_1.isWrapperDesc)(field.message)) {
|
|
84
|
+
value = {
|
|
85
|
+
$typeName: field.message.typeName,
|
|
86
|
+
value: longToReflect(field.message.fields[0], value),
|
|
87
|
+
};
|
|
94
88
|
}
|
|
89
|
+
return new ReflectMessageImpl(field.message, value, this.check);
|
|
90
|
+
case "scalar":
|
|
91
|
+
return (value === undefined
|
|
92
|
+
? (0, scalar_js_1.scalarZeroValue)(field.scalar, false)
|
|
93
|
+
: longToReflect(field, value));
|
|
94
|
+
case "enum":
|
|
95
|
+
return (value !== null && value !== void 0 ? value : field.enum.values[0].number);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
set(field, value) {
|
|
99
|
+
assertOwn(this.message, field);
|
|
100
|
+
if (this.check) {
|
|
101
|
+
const err = (0, reflect_check_js_1.checkField)(field, value);
|
|
102
|
+
if (err) {
|
|
103
|
+
return err;
|
|
95
104
|
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
105
|
+
}
|
|
106
|
+
let local;
|
|
107
|
+
if ((0, guard_js_1.isReflectMap)(value) || (0, guard_js_1.isReflectList)(value)) {
|
|
108
|
+
local = value[unsafe_js_1.unsafeLocal];
|
|
109
|
+
}
|
|
110
|
+
else if ((0, guard_js_1.isReflectMessage)(value)) {
|
|
111
|
+
const msg = value.message;
|
|
112
|
+
local = !field.oneof && (0, wrappers_js_1.isWrapper)(msg) ? msg.value : msg;
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
local = longToLocal(field, value);
|
|
116
|
+
}
|
|
117
|
+
(0, unsafe_js_1.unsafeSet)(this.message, field, local);
|
|
118
|
+
return undefined;
|
|
119
|
+
}
|
|
120
|
+
addListItem(field, value) {
|
|
121
|
+
assertOwn(this.message, field);
|
|
122
|
+
assertKind(field, "list");
|
|
123
|
+
if (this.check) {
|
|
124
|
+
if ((0, reflect_check_js_1.checkListItem)(field, 0, value)) {
|
|
125
|
+
const arr = (0, unsafe_js_1.unsafeGet)(this.message, field);
|
|
126
|
+
return (0, reflect_check_js_1.checkListItem)(field, arr.length, value);
|
|
118
127
|
}
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
128
|
+
}
|
|
129
|
+
(0, unsafe_js_1.unsafeAddListItem)(this.message, field, listItemToLocal(field, value));
|
|
130
|
+
return undefined;
|
|
131
|
+
}
|
|
132
|
+
setMapEntry(field, key, value) {
|
|
133
|
+
assertOwn(this.message, field);
|
|
134
|
+
assertKind(field, "map");
|
|
135
|
+
if (this.check) {
|
|
136
|
+
const err = (0, reflect_check_js_1.checkMapEntry)(field, key, value);
|
|
137
|
+
if (err) {
|
|
138
|
+
return err;
|
|
130
139
|
}
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
}
|
|
140
|
+
}
|
|
141
|
+
(0, unsafe_js_1.unsafeSetMapEntry)(this.message, field, mapKeyToLocal(key), mapValueToLocal(field, value));
|
|
142
|
+
return undefined;
|
|
143
|
+
}
|
|
144
|
+
getUnknown() {
|
|
145
|
+
return this.message.$unknown;
|
|
146
|
+
}
|
|
147
|
+
setUnknown(value) {
|
|
148
|
+
this.message.$unknown = value;
|
|
149
|
+
}
|
|
141
150
|
}
|
|
142
|
-
exports.reflect = reflect;
|
|
143
151
|
function assertKind(field, kind) {
|
|
144
152
|
if (field.fieldKind != kind) {
|
|
145
153
|
throw new error_js_1.FieldError(field, `${field.toString()} is ${field.fieldKind}`, "ForeignFieldError");
|
|
@@ -150,144 +158,166 @@ function assertOwn(owner, member) {
|
|
|
150
158
|
throw new error_js_1.FieldError(member, `cannot use ${member.toString()} with message ${owner.$typeName}`, "ForeignFieldError");
|
|
151
159
|
}
|
|
152
160
|
}
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
return field;
|
|
159
|
-
},
|
|
160
|
-
get size() {
|
|
161
|
-
return arr.length;
|
|
162
|
-
},
|
|
163
|
-
get(index) {
|
|
164
|
-
const item = arr[index];
|
|
165
|
-
return item === undefined
|
|
166
|
-
? undefined
|
|
167
|
-
: listItemToReflect(field, item);
|
|
168
|
-
},
|
|
169
|
-
set(index, item) {
|
|
170
|
-
if (index < 0 || index >= arr.length) {
|
|
171
|
-
return new error_js_1.FieldError(field, `list item #${index + 1}: out of range`);
|
|
172
|
-
}
|
|
173
|
-
const err = (0, reflect_check_js_1.checkListItem)(field, index, item);
|
|
174
|
-
if (!err) {
|
|
175
|
-
arr[index] = listItemToLocal(field, item);
|
|
176
|
-
}
|
|
177
|
-
return err;
|
|
178
|
-
},
|
|
179
|
-
add(...items) {
|
|
180
|
-
let err;
|
|
181
|
-
for (let i = 0; i < items.length && !err; i++) {
|
|
182
|
-
err = (0, reflect_check_js_1.checkListItem)(field, arr.length + i, items[i]);
|
|
183
|
-
}
|
|
184
|
-
if (!err) {
|
|
185
|
-
for (const item of items) {
|
|
186
|
-
arr.push(listItemToLocal(field, item));
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
return err;
|
|
190
|
-
},
|
|
191
|
-
clear() {
|
|
192
|
-
arr.splice(0, arr.length);
|
|
193
|
-
},
|
|
194
|
-
[Symbol.iterator]() {
|
|
195
|
-
return this.values();
|
|
196
|
-
},
|
|
197
|
-
keys() {
|
|
198
|
-
return arr.keys();
|
|
199
|
-
},
|
|
200
|
-
*values() {
|
|
201
|
-
for (const item of arr) {
|
|
202
|
-
yield listItemToReflect(field, item);
|
|
203
|
-
}
|
|
204
|
-
},
|
|
205
|
-
*entries() {
|
|
206
|
-
for (let i = 0; i < arr.length; i++) {
|
|
207
|
-
yield [i, listItemToReflect(field, arr[i])];
|
|
208
|
-
}
|
|
209
|
-
},
|
|
210
|
-
};
|
|
161
|
+
/**
|
|
162
|
+
* Create a ReflectList.
|
|
163
|
+
*/
|
|
164
|
+
function reflectList(field, unsafeInput, check = true) {
|
|
165
|
+
return new ReflectListImpl(field, unsafeInput !== null && unsafeInput !== void 0 ? unsafeInput : [], check);
|
|
211
166
|
}
|
|
212
167
|
exports.reflectList = reflectList;
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
return
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
},
|
|
240
|
-
get(key) {
|
|
241
|
-
let val = obj[mapKeyToLocal(key)];
|
|
242
|
-
if (val !== undefined) {
|
|
243
|
-
val = mapValueToReflect(field, val);
|
|
244
|
-
}
|
|
245
|
-
return val;
|
|
246
|
-
},
|
|
247
|
-
has(key) {
|
|
248
|
-
return Object.prototype.hasOwnProperty.call(obj, mapKeyToLocal(key));
|
|
249
|
-
},
|
|
250
|
-
*keys() {
|
|
251
|
-
for (const objKey of Object.keys(obj)) {
|
|
252
|
-
yield mapKeyToReflect(objKey, field.mapKey);
|
|
253
|
-
}
|
|
254
|
-
},
|
|
255
|
-
*entries() {
|
|
256
|
-
for (const objEntry of Object.entries(obj)) {
|
|
257
|
-
yield [
|
|
258
|
-
mapKeyToReflect(objEntry[0], field.mapKey),
|
|
259
|
-
mapValueToReflect(field, objEntry[1]),
|
|
260
|
-
];
|
|
261
|
-
}
|
|
262
|
-
},
|
|
263
|
-
[Symbol.iterator]() {
|
|
264
|
-
return this.entries();
|
|
265
|
-
},
|
|
266
|
-
get size() {
|
|
267
|
-
return Object.keys(obj).length;
|
|
268
|
-
},
|
|
269
|
-
*values() {
|
|
270
|
-
for (const val of Object.values(obj)) {
|
|
271
|
-
yield mapValueToReflect(field, val);
|
|
168
|
+
class ReflectListImpl {
|
|
169
|
+
field() {
|
|
170
|
+
return this._field;
|
|
171
|
+
}
|
|
172
|
+
get size() {
|
|
173
|
+
return this._arr.length;
|
|
174
|
+
}
|
|
175
|
+
constructor(field, unsafeInput, check) {
|
|
176
|
+
this._field = field;
|
|
177
|
+
this._arr = this[unsafe_js_1.unsafeLocal] = unsafeInput;
|
|
178
|
+
this.check = check;
|
|
179
|
+
}
|
|
180
|
+
get(index) {
|
|
181
|
+
const item = this._arr[index];
|
|
182
|
+
return item === undefined
|
|
183
|
+
? undefined
|
|
184
|
+
: listItemToReflect(this._field, item, this.check);
|
|
185
|
+
}
|
|
186
|
+
set(index, item) {
|
|
187
|
+
if (index < 0 || index >= this._arr.length) {
|
|
188
|
+
return new error_js_1.FieldError(this._field, `list item #${index + 1}: out of range`);
|
|
189
|
+
}
|
|
190
|
+
if (this.check) {
|
|
191
|
+
const err = (0, reflect_check_js_1.checkListItem)(this._field, index, item);
|
|
192
|
+
if (err) {
|
|
193
|
+
return err;
|
|
272
194
|
}
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
195
|
+
}
|
|
196
|
+
this._arr[index] = listItemToLocal(this._field, item);
|
|
197
|
+
return undefined;
|
|
198
|
+
}
|
|
199
|
+
add(...items) {
|
|
200
|
+
if (this.check) {
|
|
201
|
+
for (let i = 0; i < items.length; i++) {
|
|
202
|
+
const err = (0, reflect_check_js_1.checkListItem)(this._field, this._arr.length + i, items[i]);
|
|
203
|
+
if (err) {
|
|
204
|
+
return err;
|
|
205
|
+
}
|
|
277
206
|
}
|
|
278
|
-
}
|
|
279
|
-
|
|
207
|
+
}
|
|
208
|
+
for (const item of items) {
|
|
209
|
+
this._arr.push(listItemToLocal(this._field, item));
|
|
210
|
+
}
|
|
211
|
+
return undefined;
|
|
212
|
+
}
|
|
213
|
+
clear() {
|
|
214
|
+
this._arr.splice(0, this._arr.length);
|
|
215
|
+
}
|
|
216
|
+
[Symbol.iterator]() {
|
|
217
|
+
return this.values();
|
|
218
|
+
}
|
|
219
|
+
keys() {
|
|
220
|
+
return this._arr.keys();
|
|
221
|
+
}
|
|
222
|
+
*values() {
|
|
223
|
+
for (const item of this._arr) {
|
|
224
|
+
yield listItemToReflect(this._field, item, this.check);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
*entries() {
|
|
228
|
+
for (let i = 0; i < this._arr.length; i++) {
|
|
229
|
+
yield [i, listItemToReflect(this._field, this._arr[i], this.check)];
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Create a ReflectMap.
|
|
235
|
+
*/
|
|
236
|
+
function reflectMap(field, unsafeInput, check = true) {
|
|
237
|
+
return new ReflectMapImpl(field, unsafeInput, check);
|
|
280
238
|
}
|
|
281
239
|
exports.reflectMap = reflectMap;
|
|
240
|
+
class ReflectMapImpl {
|
|
241
|
+
constructor(field, unsafeInput, check = true) {
|
|
242
|
+
this.obj = this[unsafe_js_1.unsafeLocal] = unsafeInput !== null && unsafeInput !== void 0 ? unsafeInput : {};
|
|
243
|
+
this.check = check;
|
|
244
|
+
this._field = field;
|
|
245
|
+
}
|
|
246
|
+
field() {
|
|
247
|
+
return this._field;
|
|
248
|
+
}
|
|
249
|
+
set(key, value) {
|
|
250
|
+
if (this.check) {
|
|
251
|
+
const err = (0, reflect_check_js_1.checkMapEntry)(this._field, key, value);
|
|
252
|
+
if (err) {
|
|
253
|
+
return err;
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
this.obj[mapKeyToLocal(key)] = mapValueToLocal(this._field, value);
|
|
257
|
+
return undefined;
|
|
258
|
+
}
|
|
259
|
+
delete(key) {
|
|
260
|
+
const k = mapKeyToLocal(key);
|
|
261
|
+
const has = Object.prototype.hasOwnProperty.call(this.obj, k);
|
|
262
|
+
if (has) {
|
|
263
|
+
delete this.obj[k];
|
|
264
|
+
}
|
|
265
|
+
return has;
|
|
266
|
+
}
|
|
267
|
+
clear() {
|
|
268
|
+
for (const key of Object.keys(this.obj)) {
|
|
269
|
+
delete this.obj[key];
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
get(key) {
|
|
273
|
+
let val = this.obj[mapKeyToLocal(key)];
|
|
274
|
+
if (val !== undefined) {
|
|
275
|
+
val = mapValueToReflect(this._field, val, this.check);
|
|
276
|
+
}
|
|
277
|
+
return val;
|
|
278
|
+
}
|
|
279
|
+
has(key) {
|
|
280
|
+
return Object.prototype.hasOwnProperty.call(this.obj, mapKeyToLocal(key));
|
|
281
|
+
}
|
|
282
|
+
*keys() {
|
|
283
|
+
for (const objKey of Object.keys(this.obj)) {
|
|
284
|
+
yield mapKeyToReflect(objKey, this._field.mapKey);
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
*entries() {
|
|
288
|
+
for (const objEntry of Object.entries(this.obj)) {
|
|
289
|
+
yield [
|
|
290
|
+
mapKeyToReflect(objEntry[0], this._field.mapKey),
|
|
291
|
+
mapValueToReflect(this._field, objEntry[1], this.check),
|
|
292
|
+
];
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
[Symbol.iterator]() {
|
|
296
|
+
return this.entries();
|
|
297
|
+
}
|
|
298
|
+
get size() {
|
|
299
|
+
return Object.keys(this.obj).length;
|
|
300
|
+
}
|
|
301
|
+
*values() {
|
|
302
|
+
for (const val of Object.values(this.obj)) {
|
|
303
|
+
yield mapValueToReflect(this._field, val, this.check);
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
forEach(callbackfn, thisArg) {
|
|
307
|
+
for (const mapEntry of this.entries()) {
|
|
308
|
+
callbackfn.call(thisArg, mapEntry[1], mapEntry[0], this);
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
}
|
|
282
312
|
function listItemToLocal(field, value) {
|
|
283
313
|
if ((0, guard_js_1.isReflectMessage)(value)) {
|
|
284
314
|
return value.message;
|
|
285
315
|
}
|
|
286
316
|
return longToLocal(field, value);
|
|
287
317
|
}
|
|
288
|
-
function listItemToReflect(field, value) {
|
|
318
|
+
function listItemToReflect(field, value, check) {
|
|
289
319
|
if (field.listKind == "message") {
|
|
290
|
-
return
|
|
320
|
+
return new ReflectMessageImpl(field.message, value, check);
|
|
291
321
|
}
|
|
292
322
|
return longToReflect(field, value);
|
|
293
323
|
}
|
|
@@ -297,9 +327,9 @@ function mapValueToLocal(field, value) {
|
|
|
297
327
|
}
|
|
298
328
|
return longToLocal(field, value);
|
|
299
329
|
}
|
|
300
|
-
function mapValueToReflect(field, value) {
|
|
330
|
+
function mapValueToReflect(field, value, check) {
|
|
301
331
|
if (field.mapKind == "message") {
|
|
302
|
-
return
|
|
332
|
+
return new ReflectMessageImpl(field.message, value, check);
|
|
303
333
|
}
|
|
304
334
|
return value;
|
|
305
335
|
}
|
|
@@ -313,20 +343,20 @@ function mapKeyToLocal(key) {
|
|
|
313
343
|
*/
|
|
314
344
|
function mapKeyToReflect(key, type) {
|
|
315
345
|
switch (type) {
|
|
316
|
-
case
|
|
346
|
+
case descriptors_js_1.ScalarType.STRING:
|
|
317
347
|
return key;
|
|
318
|
-
case
|
|
319
|
-
case
|
|
320
|
-
case
|
|
321
|
-
case
|
|
322
|
-
case
|
|
348
|
+
case descriptors_js_1.ScalarType.INT32:
|
|
349
|
+
case descriptors_js_1.ScalarType.FIXED32:
|
|
350
|
+
case descriptors_js_1.ScalarType.UINT32:
|
|
351
|
+
case descriptors_js_1.ScalarType.SFIXED32:
|
|
352
|
+
case descriptors_js_1.ScalarType.SINT32: {
|
|
323
353
|
const n = Number.parseInt(key);
|
|
324
354
|
if (Number.isFinite(n)) {
|
|
325
355
|
return n;
|
|
326
356
|
}
|
|
327
357
|
break;
|
|
328
358
|
}
|
|
329
|
-
case
|
|
359
|
+
case descriptors_js_1.ScalarType.BOOL:
|
|
330
360
|
switch (key) {
|
|
331
361
|
case "true":
|
|
332
362
|
return true;
|
|
@@ -334,8 +364,8 @@ function mapKeyToReflect(key, type) {
|
|
|
334
364
|
return false;
|
|
335
365
|
}
|
|
336
366
|
break;
|
|
337
|
-
case
|
|
338
|
-
case
|
|
367
|
+
case descriptors_js_1.ScalarType.UINT64:
|
|
368
|
+
case descriptors_js_1.ScalarType.FIXED64:
|
|
339
369
|
try {
|
|
340
370
|
return proto_int64_js_1.protoInt64.uParse(key);
|
|
341
371
|
}
|
|
@@ -356,54 +386,50 @@ function mapKeyToReflect(key, type) {
|
|
|
356
386
|
return key;
|
|
357
387
|
}
|
|
358
388
|
function longToReflect(field, value) {
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
break;
|
|
379
|
-
}
|
|
389
|
+
// eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check
|
|
390
|
+
switch (field.scalar) {
|
|
391
|
+
case descriptors_js_1.ScalarType.INT64:
|
|
392
|
+
case descriptors_js_1.ScalarType.SFIXED64:
|
|
393
|
+
case descriptors_js_1.ScalarType.SINT64:
|
|
394
|
+
if ("longAsString" in field &&
|
|
395
|
+
field.longAsString &&
|
|
396
|
+
typeof value == "string") {
|
|
397
|
+
value = proto_int64_js_1.protoInt64.parse(value);
|
|
398
|
+
}
|
|
399
|
+
break;
|
|
400
|
+
case descriptors_js_1.ScalarType.FIXED64:
|
|
401
|
+
case descriptors_js_1.ScalarType.UINT64:
|
|
402
|
+
if ("longAsString" in field &&
|
|
403
|
+
field.longAsString &&
|
|
404
|
+
typeof value == "string") {
|
|
405
|
+
value = proto_int64_js_1.protoInt64.uParse(value);
|
|
406
|
+
}
|
|
407
|
+
break;
|
|
380
408
|
}
|
|
381
409
|
return value;
|
|
382
410
|
}
|
|
383
411
|
function longToLocal(field, value) {
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
break;
|
|
406
|
-
}
|
|
412
|
+
// eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check
|
|
413
|
+
switch (field.scalar) {
|
|
414
|
+
case descriptors_js_1.ScalarType.INT64:
|
|
415
|
+
case descriptors_js_1.ScalarType.SFIXED64:
|
|
416
|
+
case descriptors_js_1.ScalarType.SINT64:
|
|
417
|
+
if ("longAsString" in field && field.longAsString) {
|
|
418
|
+
value = String(value);
|
|
419
|
+
}
|
|
420
|
+
else if (typeof value == "string" || typeof value == "number") {
|
|
421
|
+
value = proto_int64_js_1.protoInt64.parse(value);
|
|
422
|
+
}
|
|
423
|
+
break;
|
|
424
|
+
case descriptors_js_1.ScalarType.FIXED64:
|
|
425
|
+
case descriptors_js_1.ScalarType.UINT64:
|
|
426
|
+
if ("longAsString" in field && field.longAsString) {
|
|
427
|
+
value = String(value);
|
|
428
|
+
}
|
|
429
|
+
else if (typeof value == "string" || typeof value == "number") {
|
|
430
|
+
value = proto_int64_js_1.protoInt64.uParse(value);
|
|
431
|
+
}
|
|
432
|
+
break;
|
|
407
433
|
}
|
|
408
434
|
return value;
|
|
409
435
|
}
|