@bufbuild/protobuf 2.0.0-alpha.4 → 2.0.0-beta.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.
Files changed (125) hide show
  1. package/README.md +2 -3
  2. package/dist/cjs/clone.d.ts +1 -1
  3. package/dist/cjs/clone.js +5 -16
  4. package/dist/cjs/codegenv1/embed.js +25 -25
  5. package/dist/cjs/codegenv1/enum.d.ts +2 -1
  6. package/dist/cjs/codegenv1/file.js +1 -1
  7. package/dist/cjs/codegenv1/message.d.ts +2 -1
  8. package/dist/cjs/codegenv1/scalar.d.ts +4 -0
  9. package/dist/cjs/codegenv1/scalar.js +30 -1
  10. package/dist/cjs/codegenv1/symbols.d.ts +10 -0
  11. package/dist/cjs/codegenv1/symbols.js +2 -0
  12. package/dist/cjs/codegenv1/types.d.ts +7 -5
  13. package/dist/cjs/codegenv1/types.js +2 -1
  14. package/dist/cjs/create.d.ts +1 -1
  15. package/dist/cjs/create.js +47 -20
  16. package/dist/cjs/equals.d.ts +1 -1
  17. package/dist/cjs/equals.js +8 -15
  18. package/dist/cjs/from-binary.d.ts +2 -2
  19. package/dist/cjs/from-binary.js +6 -6
  20. package/dist/cjs/from-json.d.ts +14 -6
  21. package/dist/cjs/from-json.js +35 -33
  22. package/dist/cjs/is-message.d.ts +1 -1
  23. package/dist/cjs/is-message.js +3 -3
  24. package/dist/cjs/reflect/reflect-types.d.ts +13 -42
  25. package/dist/cjs/reflect/reflect.d.ts +29 -18
  26. package/dist/cjs/reflect/reflect.js +169 -45
  27. package/dist/cjs/reflect/scalar.d.ts +1 -1
  28. package/dist/cjs/registry.d.ts +18 -2
  29. package/dist/cjs/registry.js +63 -61
  30. package/dist/cjs/to-binary.d.ts +1 -1
  31. package/dist/cjs/to-binary.js +2 -2
  32. package/dist/cjs/to-json.d.ts +14 -4
  33. package/dist/cjs/to-json.js +26 -13
  34. package/dist/cjs/types.d.ts +9 -0
  35. package/dist/cjs/wire/size-delimited.d.ts +1 -1
  36. package/dist/cjs/wkt/any.d.ts +7 -7
  37. package/dist/cjs/wkt/any.js +5 -5
  38. package/dist/cjs/wkt/gen/google/protobuf/any_pb.d.ts +9 -3
  39. package/dist/cjs/wkt/gen/google/protobuf/any_pb.js +4 -4
  40. package/dist/cjs/wkt/gen/google/protobuf/api_pb.d.ts +88 -9
  41. package/dist/cjs/wkt/gen/google/protobuf/api_pb.js +8 -8
  42. package/dist/cjs/wkt/gen/google/protobuf/compiler/plugin_pb.d.ts +107 -11
  43. package/dist/cjs/wkt/gen/google/protobuf/compiler/plugin_pb.js +11 -11
  44. package/dist/cjs/wkt/gen/google/protobuf/descriptor_pb.d.ts +1005 -92
  45. package/dist/cjs/wkt/gen/google/protobuf/descriptor_pb.js +86 -86
  46. package/dist/cjs/wkt/gen/google/protobuf/duration_pb.d.ts +7 -3
  47. package/dist/cjs/wkt/gen/google/protobuf/duration_pb.js +4 -4
  48. package/dist/cjs/wkt/gen/google/protobuf/empty_pb.d.ts +7 -3
  49. package/dist/cjs/wkt/gen/google/protobuf/empty_pb.js +4 -4
  50. package/dist/cjs/wkt/gen/google/protobuf/field_mask_pb.d.ts +7 -3
  51. package/dist/cjs/wkt/gen/google/protobuf/field_mask_pb.js +4 -4
  52. package/dist/cjs/wkt/gen/google/protobuf/source_context_pb.d.ts +12 -3
  53. package/dist/cjs/wkt/gen/google/protobuf/source_context_pb.js +4 -4
  54. package/dist/cjs/wkt/gen/google/protobuf/struct_pb.d.ts +25 -8
  55. package/dist/cjs/wkt/gen/google/protobuf/struct_pb.js +9 -9
  56. package/dist/cjs/wkt/gen/google/protobuf/timestamp_pb.d.ts +7 -3
  57. package/dist/cjs/wkt/gen/google/protobuf/timestamp_pb.js +4 -4
  58. package/dist/cjs/wkt/gen/google/protobuf/type_pb.d.ts +165 -16
  59. package/dist/cjs/wkt/gen/google/protobuf/type_pb.js +15 -15
  60. package/dist/cjs/wkt/gen/google/protobuf/wrappers_pb.d.ts +55 -19
  61. package/dist/cjs/wkt/gen/google/protobuf/wrappers_pb.js +20 -20
  62. package/dist/cjs/wkt/timestamp.js +1 -2
  63. package/dist/esm/clone.d.ts +1 -1
  64. package/dist/esm/clone.js +5 -16
  65. package/dist/esm/codegenv1/embed.js +26 -26
  66. package/dist/esm/codegenv1/enum.d.ts +2 -1
  67. package/dist/esm/codegenv1/file.js +2 -2
  68. package/dist/esm/codegenv1/message.d.ts +2 -1
  69. package/dist/esm/codegenv1/scalar.d.ts +4 -0
  70. package/dist/esm/codegenv1/scalar.js +28 -0
  71. package/dist/esm/codegenv1/symbols.d.ts +10 -0
  72. package/dist/esm/codegenv1/symbols.js +2 -0
  73. package/dist/esm/codegenv1/types.d.ts +7 -5
  74. package/dist/esm/codegenv1/types.js +2 -1
  75. package/dist/esm/create.d.ts +1 -1
  76. package/dist/esm/create.js +47 -20
  77. package/dist/esm/equals.d.ts +1 -1
  78. package/dist/esm/equals.js +8 -15
  79. package/dist/esm/from-binary.d.ts +2 -2
  80. package/dist/esm/from-binary.js +6 -6
  81. package/dist/esm/from-json.d.ts +14 -6
  82. package/dist/esm/from-json.js +33 -33
  83. package/dist/esm/is-message.d.ts +1 -1
  84. package/dist/esm/is-message.js +3 -3
  85. package/dist/esm/reflect/reflect-types.d.ts +13 -42
  86. package/dist/esm/reflect/reflect-types.js +0 -1
  87. package/dist/esm/reflect/reflect.d.ts +29 -18
  88. package/dist/esm/reflect/reflect.js +170 -46
  89. package/dist/esm/reflect/scalar.d.ts +1 -1
  90. package/dist/esm/registry.d.ts +18 -2
  91. package/dist/esm/registry.js +61 -60
  92. package/dist/esm/to-binary.d.ts +1 -1
  93. package/dist/esm/to-binary.js +2 -2
  94. package/dist/esm/to-json.d.ts +14 -4
  95. package/dist/esm/to-json.js +24 -12
  96. package/dist/esm/types.d.ts +9 -0
  97. package/dist/esm/wire/size-delimited.d.ts +1 -1
  98. package/dist/esm/wkt/any.d.ts +7 -7
  99. package/dist/esm/wkt/any.js +6 -6
  100. package/dist/esm/wkt/gen/google/protobuf/any_pb.d.ts +9 -3
  101. package/dist/esm/wkt/gen/google/protobuf/any_pb.js +3 -3
  102. package/dist/esm/wkt/gen/google/protobuf/api_pb.d.ts +88 -9
  103. package/dist/esm/wkt/gen/google/protobuf/api_pb.js +9 -9
  104. package/dist/esm/wkt/gen/google/protobuf/compiler/plugin_pb.d.ts +107 -11
  105. package/dist/esm/wkt/gen/google/protobuf/compiler/plugin_pb.js +11 -11
  106. package/dist/esm/wkt/gen/google/protobuf/descriptor_pb.d.ts +1005 -92
  107. package/dist/esm/wkt/gen/google/protobuf/descriptor_pb.js +84 -84
  108. package/dist/esm/wkt/gen/google/protobuf/duration_pb.d.ts +7 -3
  109. package/dist/esm/wkt/gen/google/protobuf/duration_pb.js +3 -3
  110. package/dist/esm/wkt/gen/google/protobuf/empty_pb.d.ts +7 -3
  111. package/dist/esm/wkt/gen/google/protobuf/empty_pb.js +3 -3
  112. package/dist/esm/wkt/gen/google/protobuf/field_mask_pb.d.ts +7 -3
  113. package/dist/esm/wkt/gen/google/protobuf/field_mask_pb.js +3 -3
  114. package/dist/esm/wkt/gen/google/protobuf/source_context_pb.d.ts +12 -3
  115. package/dist/esm/wkt/gen/google/protobuf/source_context_pb.js +3 -3
  116. package/dist/esm/wkt/gen/google/protobuf/struct_pb.d.ts +25 -8
  117. package/dist/esm/wkt/gen/google/protobuf/struct_pb.js +8 -8
  118. package/dist/esm/wkt/gen/google/protobuf/timestamp_pb.d.ts +7 -3
  119. package/dist/esm/wkt/gen/google/protobuf/timestamp_pb.js +3 -3
  120. package/dist/esm/wkt/gen/google/protobuf/type_pb.d.ts +165 -16
  121. package/dist/esm/wkt/gen/google/protobuf/type_pb.js +16 -16
  122. package/dist/esm/wkt/gen/google/protobuf/wrappers_pb.d.ts +55 -19
  123. package/dist/esm/wkt/gen/google/protobuf/wrappers_pb.js +19 -19
  124. package/dist/esm/wkt/timestamp.js +2 -3
  125. package/package.json +8 -5
@@ -1,7 +1,7 @@
1
- import { type DescMessage } from "./descriptors.js";
1
+ import { type DescEnum, type DescMessage } from "./descriptors.js";
2
2
  import type { JsonValue } from "./json-value.js";
3
3
  import type { Registry } from "./registry.js";
4
- import type { MessageShape } from "./types.js";
4
+ import type { EnumJsonType, EnumShape, MessageShape } from "./types.js";
5
5
  /**
6
6
  * Options for parsing JSON data.
7
7
  */
@@ -21,7 +21,7 @@ export interface JsonReadOptions {
21
21
  /**
22
22
  * Parse a message from a JSON string.
23
23
  */
24
- export declare function fromJsonString<Desc extends DescMessage>(messageDesc: Desc, json: string, options?: Partial<JsonReadOptions>): MessageShape<Desc>;
24
+ export declare function fromJsonString<Desc extends DescMessage>(schema: Desc, json: string, options?: Partial<JsonReadOptions>): MessageShape<Desc>;
25
25
  /**
26
26
  * Parse a message from a JSON string, merging fields.
27
27
  *
@@ -31,11 +31,11 @@ export declare function fromJsonString<Desc extends DescMessage>(messageDesc: De
31
31
  * If a message field is already present, it will be merged with the
32
32
  * new data.
33
33
  */
34
- export declare function mergeFromJsonString<Desc extends DescMessage>(messageDesc: Desc, target: MessageShape<Desc>, json: string, options?: Partial<JsonReadOptions>): MessageShape<Desc>;
34
+ export declare function mergeFromJsonString<Desc extends DescMessage>(schema: Desc, target: MessageShape<Desc>, json: string, options?: Partial<JsonReadOptions>): MessageShape<Desc>;
35
35
  /**
36
36
  * Parse a message from a JSON value.
37
37
  */
38
- export declare function fromJson<Desc extends DescMessage>(messageDesc: Desc, json: JsonValue, options?: Partial<JsonReadOptions>): MessageShape<Desc>;
38
+ export declare function fromJson<Desc extends DescMessage>(schema: Desc, json: JsonValue, options?: Partial<JsonReadOptions>): MessageShape<Desc>;
39
39
  /**
40
40
  * Parse a message from a JSON value, merging fields.
41
41
  *
@@ -45,4 +45,12 @@ export declare function fromJson<Desc extends DescMessage>(messageDesc: Desc, js
45
45
  * If a message field is already present, it will be merged with the
46
46
  * new data.
47
47
  */
48
- export declare function mergeFromJson<Desc extends DescMessage>(messageDesc: Desc, target: MessageShape<Desc>, json: JsonValue, options?: Partial<JsonReadOptions>): MessageShape<Desc>;
48
+ export declare function mergeFromJson<Desc extends DescMessage>(schema: Desc, target: MessageShape<Desc>, json: JsonValue, options?: Partial<JsonReadOptions>): MessageShape<Desc>;
49
+ /**
50
+ * Parses an enum value from JSON.
51
+ */
52
+ export declare function enumFromJson<Desc extends DescEnum>(descEnum: Desc, json: EnumJsonType<Desc>): EnumShape<Desc>;
53
+ /**
54
+ * Is the given value a JSON enum value?
55
+ */
56
+ export declare function isEnumJson<Desc extends DescEnum>(descEnum: Desc, value: unknown): value is EnumJsonType<Desc>;
@@ -13,7 +13,7 @@
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.mergeFromJson = exports.fromJson = exports.mergeFromJsonString = exports.fromJsonString = void 0;
16
+ exports.isEnumJson = exports.enumFromJson = exports.mergeFromJson = exports.fromJson = exports.mergeFromJsonString = exports.fromJsonString = void 0;
17
17
  /* eslint-disable no-case-declarations,@typescript-eslint/restrict-template-expressions */
18
18
  const descriptors_js_1 = require("./descriptors.js");
19
19
  const proto_int64_js_1 = require("./proto-int64.js");
@@ -35,8 +35,8 @@ function makeReadOptions(options) {
35
35
  /**
36
36
  * Parse a message from a JSON string.
37
37
  */
38
- function fromJsonString(messageDesc, json, options) {
39
- return fromJson(messageDesc, parseJsonString(json, messageDesc.typeName), options);
38
+ function fromJsonString(schema, json, options) {
39
+ return fromJson(schema, parseJsonString(json, schema.typeName), options);
40
40
  }
41
41
  exports.fromJsonString = fromJsonString;
42
42
  /**
@@ -48,15 +48,15 @@ exports.fromJsonString = fromJsonString;
48
48
  * If a message field is already present, it will be merged with the
49
49
  * new data.
50
50
  */
51
- function mergeFromJsonString(messageDesc, target, json, options) {
52
- return mergeFromJson(messageDesc, target, parseJsonString(json, messageDesc.typeName), options);
51
+ function mergeFromJsonString(schema, target, json, options) {
52
+ return mergeFromJson(schema, target, parseJsonString(json, schema.typeName), options);
53
53
  }
54
54
  exports.mergeFromJsonString = mergeFromJsonString;
55
55
  /**
56
56
  * Parse a message from a JSON value.
57
57
  */
58
- function fromJson(messageDesc, json, options) {
59
- const msg = (0, reflect_js_1.reflect)(messageDesc);
58
+ function fromJson(schema, json, options) {
59
+ const msg = (0, reflect_js_1.reflect)(schema);
60
60
  try {
61
61
  readMessage(msg, json, makeReadOptions(options));
62
62
  }
@@ -81,9 +81,9 @@ exports.fromJson = fromJson;
81
81
  * If a message field is already present, it will be merged with the
82
82
  * new data.
83
83
  */
84
- function mergeFromJson(messageDesc, target, json, options) {
84
+ function mergeFromJson(schema, target, json, options) {
85
85
  try {
86
- readMessage((0, reflect_js_1.reflect)(messageDesc, target), json, makeReadOptions(options));
86
+ readMessage((0, reflect_js_1.reflect)(schema, target), json, makeReadOptions(options));
87
87
  }
88
88
  catch (e) {
89
89
  if ((0, error_js_1.isFieldError)(e)) {
@@ -97,6 +97,24 @@ function mergeFromJson(messageDesc, target, json, options) {
97
97
  return target;
98
98
  }
99
99
  exports.mergeFromJson = mergeFromJson;
100
+ /**
101
+ * Parses an enum value from JSON.
102
+ */
103
+ function enumFromJson(descEnum, json) {
104
+ const val = readEnum(descEnum, json, false, false);
105
+ if (val === tokenIgnoredUnknownEnum) {
106
+ throw new Error(`cannot decode ${String(descEnum)} from JSON: ${(0, reflect_check_js_1.formatVal)(json)}`);
107
+ }
108
+ return val;
109
+ }
110
+ exports.enumFromJson = enumFromJson;
111
+ /**
112
+ * Is the given value a JSON enum value?
113
+ */
114
+ function isEnumJson(descEnum, value) {
115
+ return undefined !== descEnum.values.find((v) => v.name === value);
116
+ }
117
+ exports.isEnumJson = isEnumJson;
100
118
  function readMessage(msg, json, opts) {
101
119
  var _a;
102
120
  if (tryWktFromJson(msg, json, opts)) {
@@ -191,12 +209,7 @@ function readMapField(map, json, opts) {
191
209
  break;
192
210
  }
193
211
  const key = mapKeyFromJson(field.mapKey, jsonMapKey);
194
- // TODO fix types
195
- // @ts-expect-error TODO
196
- const err = map.set(key, value);
197
- if (err) {
198
- throw err;
199
- }
212
+ map.set(key, value);
200
213
  }
201
214
  }
202
215
  function readListField(list, json, opts) {
@@ -224,10 +237,7 @@ function readListField(list, json, opts) {
224
237
  }
225
238
  break;
226
239
  case "scalar":
227
- const err = list.add(scalarFromJson(field, jsonItem, true));
228
- if (err) {
229
- throw err;
230
- }
240
+ list.add(scalarFromJson(field, jsonItem, true));
231
241
  break;
232
242
  }
233
243
  }
@@ -256,12 +266,7 @@ function readScalarField(msg, field, json) {
256
266
  msg.clear(field);
257
267
  }
258
268
  else {
259
- // TODO fix type error
260
- // @ts-expect-error TODO
261
- const err = msg.set(field, scalarValue);
262
- if (err) {
263
- throw err;
264
- }
269
+ msg.set(field, scalarValue);
265
270
  }
266
271
  }
267
272
  const tokenIgnoredUnknownEnum = Symbol();
@@ -461,10 +466,7 @@ function tryWktFromJson(msg, jsonValue, opts) {
461
466
  msg.clear(valueField);
462
467
  }
463
468
  else {
464
- const err = msg.set(valueField, scalarFromJson(valueField, jsonValue, true));
465
- if (err) {
466
- throw err;
467
- }
469
+ msg.set(valueField, scalarFromJson(valueField, jsonValue, true));
468
470
  }
469
471
  return true;
470
472
  }
@@ -575,7 +577,7 @@ function structFromJson(struct, json) {
575
577
  throw new Error(`cannot decode message ${struct.$typeName} from JSON ${(0, reflect_check_js_1.formatVal)(json)}`);
576
578
  }
577
579
  for (const [k, v] of Object.entries(json)) {
578
- const parsedV = (0, create_js_1.create)(index_js_1.ValueDesc);
580
+ const parsedV = (0, create_js_1.create)(index_js_1.ValueSchema);
579
581
  valueFromJson(parsedV, v);
580
582
  struct.fields[k] = parsedV;
581
583
  }
@@ -596,12 +598,12 @@ function valueFromJson(value, json) {
596
598
  value.kind = { case: "nullValue", value: index_js_1.NullValue.NULL_VALUE };
597
599
  }
598
600
  else if (Array.isArray(json)) {
599
- const listValue = (0, create_js_1.create)(index_js_1.ListValueDesc);
601
+ const listValue = (0, create_js_1.create)(index_js_1.ListValueSchema);
600
602
  listValueFromJson(listValue, json);
601
603
  value.kind = { case: "listValue", value: listValue };
602
604
  }
603
605
  else {
604
- const struct = (0, create_js_1.create)(index_js_1.StructDesc);
606
+ const struct = (0, create_js_1.create)(index_js_1.StructSchema);
605
607
  structFromJson(struct, json);
606
608
  value.kind = { case: "structValue", value: struct };
607
609
  }
@@ -616,7 +618,7 @@ function listValueFromJson(listValue, json) {
616
618
  throw new Error(`cannot decode message ${listValue.$typeName} from JSON ${(0, reflect_check_js_1.formatVal)(json)}`);
617
619
  }
618
620
  for (const e of json) {
619
- const value = (0, create_js_1.create)(index_js_1.ValueDesc);
621
+ const value = (0, create_js_1.create)(index_js_1.ValueSchema);
620
622
  valueFromJson(value, e);
621
623
  listValue.values.push(value);
622
624
  }
@@ -4,4 +4,4 @@ import type { DescMessage } from "./descriptors.js";
4
4
  * Determine whether the given `arg` is a message.
5
5
  * If `desc` is set, determine whether `arg` is this specific message.
6
6
  */
7
- export declare function isMessage<Desc extends DescMessage>(arg: unknown, desc?: Desc): arg is MessageShape<Desc>;
7
+ export declare function isMessage<Desc extends DescMessage>(arg: unknown, schema?: Desc): arg is MessageShape<Desc>;
@@ -18,7 +18,7 @@ exports.isMessage = void 0;
18
18
  * Determine whether the given `arg` is a message.
19
19
  * If `desc` is set, determine whether `arg` is this specific message.
20
20
  */
21
- function isMessage(arg, desc) {
21
+ function isMessage(arg, schema) {
22
22
  const isMessage = arg !== null &&
23
23
  typeof arg == "object" &&
24
24
  "$typeName" in arg &&
@@ -26,9 +26,9 @@ function isMessage(arg, desc) {
26
26
  if (!isMessage) {
27
27
  return false;
28
28
  }
29
- if (desc === undefined) {
29
+ if (schema === undefined) {
30
30
  return true;
31
31
  }
32
- return desc.typeName === arg.$typeName;
32
+ return schema.typeName === arg.$typeName;
33
33
  }
34
34
  exports.isMessage = isMessage;
@@ -1,5 +1,4 @@
1
1
  import { type DescField, type DescMessage, type DescOneof } from "../descriptors.js";
2
- import { FieldError } from "./error.js";
3
2
  import { unsafeLocal } from "./unsafe.js";
4
3
  import type { Message, UnknownField } from "../types.js";
5
4
  import type { ScalarValue } from "./scalar.js";
@@ -87,7 +86,7 @@ export interface ReflectMessage {
87
86
  * Note that get() never returns `undefined`. To determine whether a field is
88
87
  * set, use isSet().
89
88
  */
90
- get<Field extends DescField>(field: Field): ReflectGetValue<Field>;
89
+ get<Field extends DescField>(field: Field): ReflectMessageGet<Field>;
91
90
  /**
92
91
  * Set a field value.
93
92
  *
@@ -105,10 +104,10 @@ export interface ReflectMessage {
105
104
  * - Map fields:
106
105
  * ReflectMap.
107
106
  *
108
- * Returns an error if the value is invalid for the field. `undefined` is not
107
+ * Throws an error if the value is invalid for the field. `undefined` is not
109
108
  * a valid value. To reset a field, use clear().
110
109
  */
111
- set<Field extends DescField>(field: Field, value: ReflectSetValue<Field>): FieldError | undefined;
110
+ set<Field extends DescField>(field: Field, value: unknown): void;
112
111
  /**
113
112
  * Returns the unknown fields of the message.
114
113
  */
@@ -147,16 +146,16 @@ export interface ReflectList<V = unknown> extends Iterable<V> {
147
146
  */
148
147
  get(index: number): V | undefined;
149
148
  /**
150
- * Adds an item - or several items - at the end of the list.
151
- * Returns an error if an item is invalid for this list.
149
+ * Adds an item at the end of the list.
150
+ * Throws an error if an item is invalid for this list.
152
151
  */
153
- add(...item: V[]): FieldError | undefined;
152
+ add(item: V): void;
154
153
  /**
155
154
  * Replaces the item at the specified index with the specified item.
156
- * Returns an error if the index is out of range (index < 0 || index >= size).
157
- * Returns an error if the item is invalid for this list.
155
+ * Throws an error if the index is out of range (index < 0 || index >= size).
156
+ * Throws an error if the item is invalid for this list.
158
157
  */
159
- set(index: number, item: V): FieldError | undefined;
158
+ set(index: number, item: V): void;
160
159
  /**
161
160
  * Removes all items from the list.
162
161
  */
@@ -178,7 +177,7 @@ export interface ReflectList<V = unknown> extends Iterable<V> {
178
177
  * ReflectMap converts keys to their closest possible type in TypeScript.
179
178
  * - Messages are wrapped in a ReflectMessage.
180
179
  */
181
- export interface ReflectMap<K extends MapEntryKey = MapEntryKey, V = unknown> extends ReadonlyMap<K, V> {
180
+ export interface ReflectMap<K = unknown, V = unknown> extends ReadonlyMap<K, V> {
182
181
  /**
183
182
  * Returns the map field.
184
183
  */
@@ -192,46 +191,19 @@ export interface ReflectMap<K extends MapEntryKey = MapEntryKey, V = unknown> ex
192
191
  delete(key: K): boolean;
193
192
  /**
194
193
  * Sets or replaces the item at the specified key with the specified value.
195
- * Returns an error if the key or value is invalid for this map.
194
+ * Throws an error if the key or value is invalid for this map.
196
195
  */
197
- set(key: K, value: V): FieldError | undefined;
196
+ set(key: K, value: V): this;
198
197
  /**
199
198
  * Removes all entries from the map.
200
199
  */
201
200
  clear(): void;
202
201
  [unsafeLocal]: Record<string, unknown>;
203
202
  }
204
- /**
205
- * A ReflectMap key.
206
- */
207
- export type MapEntryKey = string | number | bigint | boolean;
208
- type enumVal = number;
209
203
  /**
210
204
  * The return type of ReflectMessage.get()
211
205
  */
212
- export type ReflectGetValue<Field extends DescField = DescField> = (Field extends {
213
- fieldKind: "map";
214
- } ? (Field extends {
215
- mapKind: "message";
216
- } ? ReflectMap<MapEntryKey, ReflectMessage> : Field extends {
217
- mapKind: "enum";
218
- } ? ReflectMap<MapEntryKey, enumVal> : Field extends {
219
- mapKind: "scalar";
220
- scalar: infer T;
221
- } ? ReflectMap<MapEntryKey, ScalarValue<T>> : never) : Field extends {
222
- fieldKind: "list";
223
- } ? ReflectList : Field extends {
224
- fieldKind: "enum";
225
- } ? number : Field extends {
226
- fieldKind: "message";
227
- } ? ReflectMessage : Field extends {
228
- fieldKind: "scalar";
229
- scalar: infer T;
230
- } ? ScalarValue<T> : never);
231
- /**
232
- * The type of the "value" argument of ReflectMessage.set()
233
- */
234
- export type ReflectSetValue<Field extends DescField = DescField> = (Field extends {
206
+ export type ReflectMessageGet<Field extends DescField = DescField> = (Field extends {
235
207
  fieldKind: "map";
236
208
  } ? ReflectMap : Field extends {
237
209
  fieldKind: "list";
@@ -243,4 +215,3 @@ export type ReflectSetValue<Field extends DescField = DescField> = (Field extend
243
215
  fieldKind: "scalar";
244
216
  scalar: infer T;
245
217
  } ? ScalarValue<T> : never);
246
- export {};
@@ -1,32 +1,43 @@
1
1
  import { type DescField, type DescMessage } from "../descriptors.js";
2
2
  import type { MessageShape } from "../types.js";
3
- import type { MapEntryKey, ReflectList, ReflectMap, ReflectMessage } from "./reflect-types.js";
3
+ import type { ReflectList, ReflectMap, ReflectMessage } from "./reflect-types.js";
4
4
  /**
5
5
  * Create a ReflectMessage.
6
6
  */
7
- export declare function reflect<Desc extends DescMessage>(messageDesc: Desc, message?: MessageShape<Desc>, opt?: {
8
- /**
9
- * By default, field values are validated when setting them. For example,
10
- * a value for an uint32 field must be a ECMAScript Number >= 0.
11
- *
12
- * Note that setting a message field validates the type of the message,
13
- * but does not check its fields.
14
- *
15
- * In some contexts, field values are trusted, and performance can be
16
- * improved by disabling validation by setting disableFieldValueCheck to
17
- * `false`.
18
- */
19
- disableFieldValueCheck?: boolean;
20
- }): ReflectMessage;
7
+ export declare function reflect<Desc extends DescMessage>(messageDesc: Desc, message?: MessageShape<Desc>,
8
+ /**
9
+ * By default, field values are validated when setting them. For example,
10
+ * a value for an uint32 field must be a ECMAScript Number >= 0.
11
+ *
12
+ * When field values are trusted, performance can be improved by disabling
13
+ * checks.
14
+ */
15
+ check?: boolean): ReflectMessage;
21
16
  /**
22
17
  * Create a ReflectList.
23
18
  */
24
19
  export declare function reflectList<V>(field: DescField & {
25
20
  fieldKind: "list";
26
- }, unsafeInput?: unknown[], check?: boolean): ReflectList<V>;
21
+ }, unsafeInput?: unknown[],
22
+ /**
23
+ * By default, field values are validated when setting them. For example,
24
+ * a value for an uint32 field must be a ECMAScript Number >= 0.
25
+ *
26
+ * When field values are trusted, performance can be improved by disabling
27
+ * checks.
28
+ */
29
+ check?: boolean): ReflectList<V>;
27
30
  /**
28
31
  * Create a ReflectMap.
29
32
  */
30
- export declare function reflectMap<K extends MapEntryKey, V>(field: DescField & {
33
+ export declare function reflectMap<K = unknown, V = unknown>(field: DescField & {
31
34
  fieldKind: "map";
32
- }, unsafeInput?: Record<string, unknown>, check?: boolean): ReflectMap<K, V>;
35
+ }, unsafeInput?: Record<string, unknown>,
36
+ /**
37
+ * By default, field values are validated when setting them. For example,
38
+ * a value for an uint32 field must be a ECMAScript Number >= 0.
39
+ *
40
+ * When field values are trusted, performance can be improved by disabling
41
+ * checks.
42
+ */
43
+ check?: boolean): ReflectMap<K, V>;