@bufbuild/protobuf 1.3.0 → 1.3.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 (119) hide show
  1. package/dist/cjs/google/protobuf/struct_pb.js +1 -1
  2. package/dist/cjs/google/protobuf/type_pb.js +1 -1
  3. package/dist/cjs/private/json-format-common.js +2 -1
  4. package/dist/cjs/private/util-common.js +37 -8
  5. package/dist/esm/binary-encoding.d.ts +421 -0
  6. package/dist/esm/binary-format.d.ts +87 -0
  7. package/dist/esm/codegen-info.d.ts +23 -0
  8. package/dist/esm/create-descriptor-set.d.ts +16 -0
  9. package/dist/esm/create-registry-from-desc.d.ts +15 -0
  10. package/dist/esm/create-registry.d.ts +8 -0
  11. package/dist/esm/descriptor-set.d.ts +606 -0
  12. package/dist/esm/enum.d.ts +35 -0
  13. package/dist/esm/field-list.d.ts +27 -0
  14. package/dist/esm/field.d.ts +255 -0
  15. package/dist/esm/google/protobuf/any_pb.d.ts +156 -0
  16. package/dist/esm/google/protobuf/api_pb.d.ts +256 -0
  17. package/dist/esm/google/protobuf/compiler/plugin_pb.d.ts +236 -0
  18. package/dist/esm/google/protobuf/descriptor_pb.d.ts +1851 -0
  19. package/dist/esm/google/protobuf/duration_pb.d.ts +100 -0
  20. package/dist/esm/google/protobuf/empty_pb.d.ts +28 -0
  21. package/dist/esm/google/protobuf/field_mask_pb.d.ts +227 -0
  22. package/dist/esm/google/protobuf/source_context_pb.d.ts +29 -0
  23. package/dist/esm/google/protobuf/struct_pb.d.ts +158 -0
  24. package/dist/esm/google/protobuf/struct_pb.js +1 -1
  25. package/dist/esm/google/protobuf/timestamp_pb.d.ts +132 -0
  26. package/dist/esm/google/protobuf/type_pb.d.ts +437 -0
  27. package/dist/esm/google/protobuf/type_pb.js +1 -1
  28. package/dist/esm/google/protobuf/wrappers_pb.d.ts +267 -0
  29. package/dist/esm/google/varint.d.ts +70 -0
  30. package/dist/esm/index.d.ts +38 -0
  31. package/dist/esm/json-format.d.ts +110 -0
  32. package/dist/esm/message-type.d.ts +51 -0
  33. package/dist/esm/message.d.ts +130 -0
  34. package/dist/esm/private/assert.d.ts +16 -0
  35. package/dist/esm/private/binary-format-common.d.ts +13 -0
  36. package/dist/esm/private/binary-format-proto2.d.ts +2 -0
  37. package/dist/esm/private/binary-format-proto3.d.ts +2 -0
  38. package/dist/esm/private/enum.d.ts +27 -0
  39. package/dist/esm/private/field-list.d.ts +18 -0
  40. package/dist/esm/private/field-wrapper.d.ts +25 -0
  41. package/dist/esm/private/field.d.ts +15 -0
  42. package/dist/esm/private/json-format-common.d.ts +9 -0
  43. package/dist/esm/private/json-format-common.js +2 -1
  44. package/dist/esm/private/json-format-proto2.d.ts +2 -0
  45. package/dist/esm/private/json-format-proto3.d.ts +2 -0
  46. package/dist/esm/private/message-type.d.ts +18 -0
  47. package/dist/esm/private/names.d.ts +43 -0
  48. package/dist/esm/private/options-map.d.ts +7 -0
  49. package/dist/esm/private/proto-runtime.d.ts +47 -0
  50. package/dist/esm/private/reify-wkt.d.ts +100 -0
  51. package/dist/esm/private/scalars.d.ts +27 -0
  52. package/dist/esm/private/util-common.d.ts +2 -0
  53. package/dist/esm/private/util-common.js +37 -8
  54. package/dist/esm/private/util.d.ts +38 -0
  55. package/dist/esm/proto-base64.d.ts +18 -0
  56. package/dist/esm/proto-delimited.d.ts +54 -0
  57. package/dist/esm/proto-double.d.ts +5 -0
  58. package/dist/esm/proto-int64.d.ts +95 -0
  59. package/dist/esm/proto2.d.ts +4 -0
  60. package/dist/esm/proto3.d.ts +4 -0
  61. package/dist/esm/service-type.d.ts +96 -0
  62. package/dist/esm/to-plain-message.d.ts +9 -0
  63. package/dist/esm/type-registry.d.ts +30 -0
  64. package/package.json +14 -9
  65. /package/dist/{types → cjs}/binary-encoding.d.ts +0 -0
  66. /package/dist/{types → cjs}/binary-format.d.ts +0 -0
  67. /package/dist/{types → cjs}/codegen-info.d.ts +0 -0
  68. /package/dist/{types → cjs}/create-descriptor-set.d.ts +0 -0
  69. /package/dist/{types → cjs}/create-registry-from-desc.d.ts +0 -0
  70. /package/dist/{types → cjs}/create-registry.d.ts +0 -0
  71. /package/dist/{types → cjs}/descriptor-set.d.ts +0 -0
  72. /package/dist/{types → cjs}/enum.d.ts +0 -0
  73. /package/dist/{types → cjs}/field-list.d.ts +0 -0
  74. /package/dist/{types → cjs}/field.d.ts +0 -0
  75. /package/dist/{types → cjs}/google/protobuf/any_pb.d.ts +0 -0
  76. /package/dist/{types → cjs}/google/protobuf/api_pb.d.ts +0 -0
  77. /package/dist/{types → cjs}/google/protobuf/compiler/plugin_pb.d.ts +0 -0
  78. /package/dist/{types → cjs}/google/protobuf/descriptor_pb.d.ts +0 -0
  79. /package/dist/{types → cjs}/google/protobuf/duration_pb.d.ts +0 -0
  80. /package/dist/{types → cjs}/google/protobuf/empty_pb.d.ts +0 -0
  81. /package/dist/{types → cjs}/google/protobuf/field_mask_pb.d.ts +0 -0
  82. /package/dist/{types → cjs}/google/protobuf/source_context_pb.d.ts +0 -0
  83. /package/dist/{types → cjs}/google/protobuf/struct_pb.d.ts +0 -0
  84. /package/dist/{types → cjs}/google/protobuf/timestamp_pb.d.ts +0 -0
  85. /package/dist/{types → cjs}/google/protobuf/type_pb.d.ts +0 -0
  86. /package/dist/{types → cjs}/google/protobuf/wrappers_pb.d.ts +0 -0
  87. /package/dist/{types → cjs}/google/varint.d.ts +0 -0
  88. /package/dist/{types → cjs}/index.d.ts +0 -0
  89. /package/dist/{types → cjs}/json-format.d.ts +0 -0
  90. /package/dist/{types → cjs}/message-type.d.ts +0 -0
  91. /package/dist/{types → cjs}/message.d.ts +0 -0
  92. /package/dist/{types → cjs}/private/assert.d.ts +0 -0
  93. /package/dist/{types → cjs}/private/binary-format-common.d.ts +0 -0
  94. /package/dist/{types → cjs}/private/binary-format-proto2.d.ts +0 -0
  95. /package/dist/{types → cjs}/private/binary-format-proto3.d.ts +0 -0
  96. /package/dist/{types → cjs}/private/enum.d.ts +0 -0
  97. /package/dist/{types → cjs}/private/field-list.d.ts +0 -0
  98. /package/dist/{types → cjs}/private/field-wrapper.d.ts +0 -0
  99. /package/dist/{types → cjs}/private/field.d.ts +0 -0
  100. /package/dist/{types → cjs}/private/json-format-common.d.ts +0 -0
  101. /package/dist/{types → cjs}/private/json-format-proto2.d.ts +0 -0
  102. /package/dist/{types → cjs}/private/json-format-proto3.d.ts +0 -0
  103. /package/dist/{types → cjs}/private/message-type.d.ts +0 -0
  104. /package/dist/{types → cjs}/private/names.d.ts +0 -0
  105. /package/dist/{types → cjs}/private/options-map.d.ts +0 -0
  106. /package/dist/{types → cjs}/private/proto-runtime.d.ts +0 -0
  107. /package/dist/{types → cjs}/private/reify-wkt.d.ts +0 -0
  108. /package/dist/{types → cjs}/private/scalars.d.ts +0 -0
  109. /package/dist/{types → cjs}/private/util-common.d.ts +0 -0
  110. /package/dist/{types → cjs}/private/util.d.ts +0 -0
  111. /package/dist/{types → cjs}/proto-base64.d.ts +0 -0
  112. /package/dist/{types → cjs}/proto-delimited.d.ts +0 -0
  113. /package/dist/{types → cjs}/proto-double.d.ts +0 -0
  114. /package/dist/{types → cjs}/proto-int64.d.ts +0 -0
  115. /package/dist/{types → cjs}/proto2.d.ts +0 -0
  116. /package/dist/{types → cjs}/proto3.d.ts +0 -0
  117. /package/dist/{types → cjs}/service-type.d.ts +0 -0
  118. /package/dist/{types → cjs}/to-plain-message.d.ts +0 -0
  119. /package/dist/{types → cjs}/type-registry.d.ts +0 -0
@@ -14,7 +14,7 @@
14
14
  // limitations under the License.
15
15
  Object.defineProperty(exports, "__esModule", { value: true });
16
16
  exports.ListValue = exports.Value = exports.Struct = exports.NullValue = void 0;
17
- // @generated by protoc-gen-es v1.3.0 with parameter "bootstrap_wkt=true,ts_nocheck=false,target=ts"
17
+ // @generated by protoc-gen-es v1.3.2 with parameter "bootstrap_wkt=true,ts_nocheck=false,target=ts"
18
18
  // @generated from file google/protobuf/struct.proto (package google.protobuf, syntax proto3)
19
19
  /* eslint-disable */
20
20
  const proto3_js_1 = require("../../proto3.js");
@@ -14,7 +14,7 @@
14
14
  // limitations under the License.
15
15
  Object.defineProperty(exports, "__esModule", { value: true });
16
16
  exports.Option = exports.EnumValue = exports.Enum = exports.Field_Cardinality = exports.Field_Kind = exports.Field = exports.Type = exports.Syntax = void 0;
17
- // @generated by protoc-gen-es v1.3.0 with parameter "bootstrap_wkt=true,ts_nocheck=false,target=ts"
17
+ // @generated by protoc-gen-es v1.3.2 with parameter "bootstrap_wkt=true,ts_nocheck=false,target=ts"
18
18
  // @generated from file google/protobuf/type.proto (package google.protobuf, syntax proto3)
19
19
  /* eslint-disable */
20
20
  const proto3_js_1 = require("../../proto3.js");
@@ -260,7 +260,7 @@ function debugJsonValue(json) {
260
260
  case "string":
261
261
  return json.length > 100 ? "string" : `"${json.split('"').join('\\"')}"`;
262
262
  default:
263
- return json.toString();
263
+ return String(json);
264
264
  }
265
265
  }
266
266
  // May throw an error. If the error message is non-blank, it should be shown.
@@ -390,6 +390,7 @@ function readEnum(type, json, ignoreUnknownFields) {
390
390
  break;
391
391
  case "string":
392
392
  const value = type.findName(json);
393
+ // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
393
394
  if (value || ignoreUnknownFields) {
394
395
  return value === null || value === void 0 ? void 0 : value.no;
395
396
  }
@@ -45,17 +45,35 @@ function makeUtilCommon() {
45
45
  !(val instanceof sourceField.T)) {
46
46
  val = new sourceField.T(val);
47
47
  }
48
+ else if (sourceField &&
49
+ sourceField.kind === "scalar" &&
50
+ sourceField.T === field_js_1.ScalarType.BYTES) {
51
+ val = toU8Arr(val);
52
+ }
48
53
  t[localName] = { case: sk, value: val };
49
54
  break;
50
55
  case "scalar":
51
56
  case "enum":
52
- t[localName] = s[localName];
57
+ let copy = s[localName];
58
+ if (member.T === field_js_1.ScalarType.BYTES) {
59
+ copy = member.repeated
60
+ ? copy.map(toU8Arr)
61
+ : toU8Arr(copy);
62
+ }
63
+ t[localName] = copy;
53
64
  break;
54
65
  case "map":
55
66
  switch (member.V.kind) {
56
67
  case "scalar":
57
68
  case "enum":
58
- Object.assign(t[localName], s[localName]);
69
+ if (member.V.T === field_js_1.ScalarType.BYTES) {
70
+ for (const [k, v] of Object.entries(s[localName])) {
71
+ t[localName][k] = toU8Arr(v);
72
+ }
73
+ }
74
+ else {
75
+ Object.assign(t[localName], s[localName]);
76
+ }
59
77
  break;
60
78
  case "message":
61
79
  const messageType = member.V.T;
@@ -79,7 +97,14 @@ function makeUtilCommon() {
79
97
  else if (s[localName] !== undefined) {
80
98
  const val = s[localName];
81
99
  if (mt.fieldWrapper) {
82
- t[localName] = val;
100
+ if (
101
+ // We can't use BytesValue.typeName as that will create a circular import
102
+ mt.typeName === "google.protobuf.BytesValue") {
103
+ t[localName] = toU8Arr(val);
104
+ }
105
+ else {
106
+ t[localName] = val;
107
+ }
83
108
  }
84
109
  else {
85
110
  t[localName] = val instanceof mt ? val : new mt(val);
@@ -161,22 +186,22 @@ function makeUtilCommon() {
161
186
  const source = message[member.localName];
162
187
  let copy;
163
188
  if (member.repeated) {
164
- copy = source.map((e) => cloneSingularField(member, e));
189
+ copy = source.map(cloneSingularField);
165
190
  }
166
191
  else if (member.kind == "map") {
167
192
  copy = any[member.localName];
168
193
  for (const [key, v] of Object.entries(source)) {
169
- copy[key] = cloneSingularField(member.V, v);
194
+ copy[key] = cloneSingularField(v);
170
195
  }
171
196
  }
172
197
  else if (member.kind == "oneof") {
173
198
  const f = member.findField(source.case);
174
199
  copy = f
175
- ? { case: source.case, value: cloneSingularField(f, source.value) }
200
+ ? { case: source.case, value: cloneSingularField(source.value) }
176
201
  : { case: undefined };
177
202
  }
178
203
  else {
179
- copy = cloneSingularField(member, source);
204
+ copy = cloneSingularField(source);
180
205
  }
181
206
  any[member.localName] = copy;
182
207
  }
@@ -186,7 +211,7 @@ function makeUtilCommon() {
186
211
  }
187
212
  exports.makeUtilCommon = makeUtilCommon;
188
213
  // clone a single field value - i.e. the element type of repeated fields, the value type of maps
189
- function cloneSingularField(field, value) {
214
+ function cloneSingularField(value) {
190
215
  if (value === undefined) {
191
216
  return value;
192
217
  }
@@ -200,3 +225,7 @@ function cloneSingularField(field, value) {
200
225
  }
201
226
  return value;
202
227
  }
228
+ // converts any ArrayLike<number> to Uint8Array if necessary.
229
+ function toU8Arr(input) {
230
+ return input instanceof Uint8Array ? input : new Uint8Array(input);
231
+ }
@@ -0,0 +1,421 @@
1
+ /**
2
+ * Protobuf binary format wire types.
3
+ *
4
+ * A wire type provides just enough information to find the length of the
5
+ * following value.
6
+ *
7
+ * See https://developers.google.com/protocol-buffers/docs/encoding#structure
8
+ */
9
+ export declare enum WireType {
10
+ /**
11
+ * Used for int32, int64, uint32, uint64, sint32, sint64, bool, enum
12
+ */
13
+ Varint = 0,
14
+ /**
15
+ * Used for fixed64, sfixed64, double.
16
+ * Always 8 bytes with little-endian byte order.
17
+ */
18
+ Bit64 = 1,
19
+ /**
20
+ * Used for string, bytes, embedded messages, packed repeated fields
21
+ *
22
+ * Only repeated numeric types (types which use the varint, 32-bit,
23
+ * or 64-bit wire types) can be packed. In proto3, such fields are
24
+ * packed by default.
25
+ */
26
+ LengthDelimited = 2,
27
+ /**
28
+ * Used for groups
29
+ * @deprecated
30
+ */
31
+ StartGroup = 3,
32
+ /**
33
+ * Used for groups
34
+ * @deprecated
35
+ */
36
+ EndGroup = 4,
37
+ /**
38
+ * Used for fixed32, sfixed32, float.
39
+ * Always 4 bytes with little-endian byte order.
40
+ */
41
+ Bit32 = 5
42
+ }
43
+ type TextEncoderLike = {
44
+ encode(input?: string): Uint8Array;
45
+ };
46
+ type TextDecoderLike = {
47
+ decode(input?: Uint8Array): string;
48
+ };
49
+ export interface IBinaryReader {
50
+ /**
51
+ * Current position.
52
+ */
53
+ readonly pos: number;
54
+ /**
55
+ * Number of bytes available in this reader.
56
+ */
57
+ readonly len: number;
58
+ /**
59
+ * Reads a tag - field number and wire type.
60
+ */
61
+ tag(): [number, WireType];
62
+ /**
63
+ * Skip one element on the wire and return the skipped data.
64
+ */
65
+ skip(wireType: WireType): Uint8Array;
66
+ /**
67
+ * Read a `int32` field, a signed 32 bit varint.
68
+ */
69
+ uint32(): number;
70
+ /**
71
+ * Read a `sint32` field, a signed, zigzag-encoded 32-bit varint.
72
+ */
73
+ int32(): number;
74
+ /**
75
+ * Read a `sint32` field, a signed, zigzag-encoded 32-bit varint.
76
+ */
77
+ sint32(): number;
78
+ /**
79
+ * Read a `int64` field, a signed 64-bit varint.
80
+ */
81
+ int64(): bigint | string;
82
+ /**
83
+ * Read a `sint64` field, a signed, zig-zag-encoded 64-bit varint.
84
+ */
85
+ sint64(): bigint | string;
86
+ /**
87
+ * Read a `fixed64` field, a signed, fixed-length 64-bit integer.
88
+ */
89
+ sfixed64(): bigint | string;
90
+ /**
91
+ * Read a `uint64` field, an unsigned 64-bit varint.
92
+ */
93
+ uint64(): bigint | string;
94
+ /**
95
+ * Read a `fixed64` field, an unsigned, fixed-length 64 bit integer.
96
+ */
97
+ fixed64(): bigint | string;
98
+ /**
99
+ * Read a `bool` field, a variant.
100
+ */
101
+ bool(): boolean;
102
+ /**
103
+ * Read a `fixed32` field, an unsigned, fixed-length 32-bit integer.
104
+ */
105
+ fixed32(): number;
106
+ /**
107
+ * Read a `sfixed32` field, a signed, fixed-length 32-bit integer.
108
+ */
109
+ sfixed32(): number;
110
+ /**
111
+ * Read a `float` field, 32-bit floating point number.
112
+ */
113
+ float(): number;
114
+ /**
115
+ * Read a `double` field, a 64-bit floating point number.
116
+ */
117
+ double(): number;
118
+ /**
119
+ * Read a `bytes` field, length-delimited arbitrary data.
120
+ */
121
+ bytes(): Uint8Array;
122
+ /**
123
+ * Read a `string` field, length-delimited data converted to UTF-8 text.
124
+ */
125
+ string(): string;
126
+ }
127
+ export interface IBinaryWriter {
128
+ /**
129
+ * Return all bytes written and reset this writer.
130
+ */
131
+ finish(): Uint8Array;
132
+ /**
133
+ * Start a new fork for length-delimited data like a message
134
+ * or a packed repeated field.
135
+ *
136
+ * Must be joined later with `join()`.
137
+ */
138
+ fork(): IBinaryWriter;
139
+ /**
140
+ * Join the last fork. Write its length and bytes, then
141
+ * return to the previous state.
142
+ */
143
+ join(): IBinaryWriter;
144
+ /**
145
+ * Writes a tag (field number and wire type).
146
+ *
147
+ * Equivalent to `uint32( (fieldNo << 3 | type) >>> 0 )`
148
+ *
149
+ * Generated code should compute the tag ahead of time and call `uint32()`.
150
+ */
151
+ tag(fieldNo: number, type: WireType): IBinaryWriter;
152
+ /**
153
+ * Write a chunk of raw bytes.
154
+ */
155
+ raw(chunk: Uint8Array): IBinaryWriter;
156
+ /**
157
+ * Write a `uint32` value, an unsigned 32 bit varint.
158
+ */
159
+ uint32(value: number): IBinaryWriter;
160
+ /**
161
+ * Write a `int32` value, a signed 32 bit varint.
162
+ */
163
+ int32(value: number): IBinaryWriter;
164
+ /**
165
+ * Write a `sint32` value, a signed, zigzag-encoded 32-bit varint.
166
+ */
167
+ sint32(value: number): IBinaryWriter;
168
+ /**
169
+ * Write a `int64` value, a signed 64-bit varint.
170
+ */
171
+ int64(value: string | number | bigint): IBinaryWriter;
172
+ /**
173
+ * Write a `uint64` value, an unsigned 64-bit varint.
174
+ */
175
+ uint64(value: string | number | bigint): IBinaryWriter;
176
+ /**
177
+ * Write a `sint64` value, a signed, zig-zag-encoded 64-bit varint.
178
+ */
179
+ sint64(value: string | number | bigint): IBinaryWriter;
180
+ /**
181
+ * Write a `fixed64` value, an unsigned, fixed-length 64 bit integer.
182
+ */
183
+ fixed64(value: string | number | bigint): IBinaryWriter;
184
+ /**
185
+ * Write a `fixed64` value, a signed, fixed-length 64-bit integer.
186
+ */
187
+ sfixed64(value: string | number | bigint): IBinaryWriter;
188
+ /**
189
+ * Write a `bool` value, a variant.
190
+ */
191
+ bool(value: boolean): IBinaryWriter;
192
+ /**
193
+ * Write a `fixed32` value, an unsigned, fixed-length 32-bit integer.
194
+ */
195
+ fixed32(value: number): IBinaryWriter;
196
+ /**
197
+ * Write a `sfixed32` value, a signed, fixed-length 32-bit integer.
198
+ */
199
+ sfixed32(value: number): IBinaryWriter;
200
+ /**
201
+ * Write a `float` value, 32-bit floating point number.
202
+ */
203
+ float(value: number): IBinaryWriter;
204
+ /**
205
+ * Write a `double` value, a 64-bit floating point number.
206
+ */
207
+ double(value: number): IBinaryWriter;
208
+ /**
209
+ * Write a `bytes` value, length-delimited arbitrary data.
210
+ */
211
+ bytes(value: Uint8Array): IBinaryWriter;
212
+ /**
213
+ * Write a `string` value, length-delimited data converted to UTF-8 text.
214
+ */
215
+ string(value: string): IBinaryWriter;
216
+ }
217
+ export declare class BinaryWriter implements IBinaryWriter {
218
+ /**
219
+ * We cannot allocate a buffer for the entire output
220
+ * because we don't know it's size.
221
+ *
222
+ * So we collect smaller chunks of known size and
223
+ * concat them later.
224
+ *
225
+ * Use `raw()` to push data to this array. It will flush
226
+ * `buf` first.
227
+ */
228
+ private chunks;
229
+ /**
230
+ * A growing buffer for byte values. If you don't know
231
+ * the size of the data you are writing, push to this
232
+ * array.
233
+ */
234
+ protected buf: number[];
235
+ /**
236
+ * Previous fork states.
237
+ */
238
+ private stack;
239
+ /**
240
+ * Text encoder instance to convert UTF-8 to bytes.
241
+ */
242
+ private readonly textEncoder;
243
+ constructor(textEncoder?: TextEncoderLike);
244
+ /**
245
+ * Return all bytes written and reset this writer.
246
+ */
247
+ finish(): Uint8Array;
248
+ /**
249
+ * Start a new fork for length-delimited data like a message
250
+ * or a packed repeated field.
251
+ *
252
+ * Must be joined later with `join()`.
253
+ */
254
+ fork(): IBinaryWriter;
255
+ /**
256
+ * Join the last fork. Write its length and bytes, then
257
+ * return to the previous state.
258
+ */
259
+ join(): IBinaryWriter;
260
+ /**
261
+ * Writes a tag (field number and wire type).
262
+ *
263
+ * Equivalent to `uint32( (fieldNo << 3 | type) >>> 0 )`.
264
+ *
265
+ * Generated code should compute the tag ahead of time and call `uint32()`.
266
+ */
267
+ tag(fieldNo: number, type: WireType): IBinaryWriter;
268
+ /**
269
+ * Write a chunk of raw bytes.
270
+ */
271
+ raw(chunk: Uint8Array): IBinaryWriter;
272
+ /**
273
+ * Write a `uint32` value, an unsigned 32 bit varint.
274
+ */
275
+ uint32(value: number): IBinaryWriter;
276
+ /**
277
+ * Write a `int32` value, a signed 32 bit varint.
278
+ */
279
+ int32(value: number): IBinaryWriter;
280
+ /**
281
+ * Write a `bool` value, a variant.
282
+ */
283
+ bool(value: boolean): IBinaryWriter;
284
+ /**
285
+ * Write a `bytes` value, length-delimited arbitrary data.
286
+ */
287
+ bytes(value: Uint8Array): IBinaryWriter;
288
+ /**
289
+ * Write a `string` value, length-delimited data converted to UTF-8 text.
290
+ */
291
+ string(value: string): IBinaryWriter;
292
+ /**
293
+ * Write a `float` value, 32-bit floating point number.
294
+ */
295
+ float(value: number): IBinaryWriter;
296
+ /**
297
+ * Write a `double` value, a 64-bit floating point number.
298
+ */
299
+ double(value: number): IBinaryWriter;
300
+ /**
301
+ * Write a `fixed32` value, an unsigned, fixed-length 32-bit integer.
302
+ */
303
+ fixed32(value: number): IBinaryWriter;
304
+ /**
305
+ * Write a `sfixed32` value, a signed, fixed-length 32-bit integer.
306
+ */
307
+ sfixed32(value: number): IBinaryWriter;
308
+ /**
309
+ * Write a `sint32` value, a signed, zigzag-encoded 32-bit varint.
310
+ */
311
+ sint32(value: number): IBinaryWriter;
312
+ /**
313
+ * Write a `fixed64` value, a signed, fixed-length 64-bit integer.
314
+ */
315
+ sfixed64(value: string | number | bigint): IBinaryWriter;
316
+ /**
317
+ * Write a `fixed64` value, an unsigned, fixed-length 64 bit integer.
318
+ */
319
+ fixed64(value: string | number | bigint): IBinaryWriter;
320
+ /**
321
+ * Write a `int64` value, a signed 64-bit varint.
322
+ */
323
+ int64(value: string | number | bigint): IBinaryWriter;
324
+ /**
325
+ * Write a `sint64` value, a signed, zig-zag-encoded 64-bit varint.
326
+ */
327
+ sint64(value: string | number | bigint): IBinaryWriter;
328
+ /**
329
+ * Write a `uint64` value, an unsigned 64-bit varint.
330
+ */
331
+ uint64(value: string | number | bigint): IBinaryWriter;
332
+ }
333
+ export declare class BinaryReader implements IBinaryReader {
334
+ /**
335
+ * Current position.
336
+ */
337
+ pos: number;
338
+ /**
339
+ * Number of bytes available in this reader.
340
+ */
341
+ readonly len: number;
342
+ private readonly buf;
343
+ private readonly view;
344
+ private readonly textDecoder;
345
+ constructor(buf: Uint8Array, textDecoder?: TextDecoderLike);
346
+ /**
347
+ * Reads a tag - field number and wire type.
348
+ */
349
+ tag(): [number, WireType];
350
+ /**
351
+ * Skip one element on the wire and return the skipped data.
352
+ * Supports WireType.StartGroup since v2.0.0-alpha.23.
353
+ */
354
+ skip(wireType: WireType): Uint8Array;
355
+ protected varint64: () => [number, number];
356
+ /**
357
+ * Throws error if position in byte array is out of range.
358
+ */
359
+ protected assertBounds(): void;
360
+ /**
361
+ * Read a `uint32` field, an unsigned 32 bit varint.
362
+ */
363
+ uint32: () => number;
364
+ /**
365
+ * Read a `int32` field, a signed 32 bit varint.
366
+ */
367
+ int32(): number;
368
+ /**
369
+ * Read a `sint32` field, a signed, zigzag-encoded 32-bit varint.
370
+ */
371
+ sint32(): number;
372
+ /**
373
+ * Read a `int64` field, a signed 64-bit varint.
374
+ */
375
+ int64(): bigint | string;
376
+ /**
377
+ * Read a `uint64` field, an unsigned 64-bit varint.
378
+ */
379
+ uint64(): bigint | string;
380
+ /**
381
+ * Read a `sint64` field, a signed, zig-zag-encoded 64-bit varint.
382
+ */
383
+ sint64(): bigint | string;
384
+ /**
385
+ * Read a `bool` field, a variant.
386
+ */
387
+ bool(): boolean;
388
+ /**
389
+ * Read a `fixed32` field, an unsigned, fixed-length 32-bit integer.
390
+ */
391
+ fixed32(): number;
392
+ /**
393
+ * Read a `sfixed32` field, a signed, fixed-length 32-bit integer.
394
+ */
395
+ sfixed32(): number;
396
+ /**
397
+ * Read a `fixed64` field, an unsigned, fixed-length 64 bit integer.
398
+ */
399
+ fixed64(): bigint | string;
400
+ /**
401
+ * Read a `fixed64` field, a signed, fixed-length 64-bit integer.
402
+ */
403
+ sfixed64(): bigint | string;
404
+ /**
405
+ * Read a `float` field, 32-bit floating point number.
406
+ */
407
+ float(): number;
408
+ /**
409
+ * Read a `double` field, a 64-bit floating point number.
410
+ */
411
+ double(): number;
412
+ /**
413
+ * Read a `bytes` field, length-delimited arbitrary data.
414
+ */
415
+ bytes(): Uint8Array;
416
+ /**
417
+ * Read a `string` field, length-delimited data converted to UTF-8 text.
418
+ */
419
+ string(): string;
420
+ }
421
+ export {};
@@ -0,0 +1,87 @@
1
+ import type { Message } from "./message.js";
2
+ import type { IBinaryReader, IBinaryWriter, WireType } from "./binary-encoding.js";
3
+ /**
4
+ * BinaryFormat is the contract for serializing messages to and from binary
5
+ * data. Implementations may be specific to a proto syntax, and can be
6
+ * reflection based, or delegate to speed optimized generated code.
7
+ */
8
+ export interface BinaryFormat {
9
+ /**
10
+ * Provide options for parsing binary data.
11
+ */
12
+ makeReadOptions(options?: Partial<BinaryReadOptions>): Readonly<BinaryReadOptions>;
13
+ /**
14
+ * Provide options for serializing binary data.
15
+ */
16
+ makeWriteOptions(options?: Partial<BinaryWriteOptions>): Readonly<BinaryWriteOptions>;
17
+ /**
18
+ * Parse a message from binary data, merging fields.
19
+ */
20
+ readMessage(message: Message, reader: IBinaryReader, length: number, options: BinaryReadOptions): void;
21
+ /**
22
+ * Serialize a message to binary data.
23
+ */
24
+ writeMessage(message: Message, writer: IBinaryWriter, options: BinaryWriteOptions): void;
25
+ /**
26
+ * Retrieve the unknown fields for the given message.
27
+ *
28
+ * Unknown fields are well-formed protocol buffer serialized data for
29
+ * fields that the parserdoes not recognize.
30
+ *
31
+ * For more details see https://developers.google.com/protocol-buffers/docs/proto3#unknowns
32
+ */
33
+ listUnknownFields(message: Message): ReadonlyArray<{
34
+ no: number;
35
+ wireType: WireType;
36
+ data: Uint8Array;
37
+ }>;
38
+ /**
39
+ * Discard unknown fields for the given message.
40
+ */
41
+ discardUnknownFields(message: Message): void;
42
+ /**
43
+ * Retrieve the unknown fields for the given message and write them to
44
+ * the given writer. This method is called when a message is serialized,
45
+ * so the fields that are unknown to the parser persist through a round
46
+ * trip.
47
+ */
48
+ writeUnknownFields(message: Message, writer: IBinaryWriter): void;
49
+ /**
50
+ * Store an unknown field for the given message. The parser will use this
51
+ * method if it does not recognize a field, unless the option
52
+ * `readUnknownFields` has been disabled.
53
+ */
54
+ onUnknownField(message: Message, no: number, wireType: WireType, data: Uint8Array): void;
55
+ }
56
+ /**
57
+ * Options for parsing binary data.
58
+ */
59
+ export interface BinaryReadOptions {
60
+ /**
61
+ * Retain unknown fields during parsing? The default behavior is to retain
62
+ * unknown fields and include them in the serialized output.
63
+ *
64
+ * For more details see https://developers.google.com/protocol-buffers/docs/proto3#unknowns
65
+ */
66
+ readUnknownFields: boolean;
67
+ /**
68
+ * Allows to use a custom implementation to decode binary data.
69
+ */
70
+ readerFactory: (bytes: Uint8Array) => IBinaryReader;
71
+ }
72
+ /**
73
+ * Options for serializing to binary data.
74
+ */
75
+ export interface BinaryWriteOptions {
76
+ /**
77
+ * Include unknown fields in the serialized output? The default behavior
78
+ * is to retain unknown fields and include them in the serialized output.
79
+ *
80
+ * For more details see https://developers.google.com/protocol-buffers/docs/proto3#unknowns
81
+ */
82
+ writeUnknownFields: boolean;
83
+ /**
84
+ * Allows to use a custom implementation to encode binary data.
85
+ */
86
+ writerFactory: () => IBinaryWriter;
87
+ }
@@ -0,0 +1,23 @@
1
+ import { localName, safeIdentifier, safeObjectProperty } from "./private/names.js";
2
+ import { getUnwrappedFieldType } from "./private/field-wrapper.js";
3
+ import { scalarDefaultValue } from "./private/scalars.js";
4
+ import { reifyWkt } from "./private/reify-wkt.js";
5
+ interface CodegenInfo {
6
+ readonly packageName: string;
7
+ readonly localName: typeof localName;
8
+ readonly symbols: Record<RuntimeSymbolName, RuntimeSymbolInfo>;
9
+ readonly getUnwrappedFieldType: typeof getUnwrappedFieldType;
10
+ readonly wktSourceFiles: readonly string[];
11
+ readonly scalarDefaultValue: typeof scalarDefaultValue;
12
+ readonly reifyWkt: typeof reifyWkt;
13
+ readonly safeIdentifier: typeof safeIdentifier;
14
+ readonly safeObjectProperty: typeof safeObjectProperty;
15
+ }
16
+ type RuntimeSymbolName = "proto2" | "proto3" | "Message" | "PartialMessage" | "PlainMessage" | "FieldList" | "MessageType" | "BinaryReadOptions" | "BinaryWriteOptions" | "JsonReadOptions" | "JsonWriteOptions" | "JsonValue" | "JsonObject" | "protoDouble" | "protoInt64" | "ScalarType" | "MethodKind" | "MethodIdempotency" | "IMessageTypeRegistry";
17
+ type RuntimeSymbolInfo = {
18
+ typeOnly: boolean;
19
+ publicImportPath: string;
20
+ privateImportPath: string;
21
+ };
22
+ export declare const codegenInfo: CodegenInfo;
23
+ export {};
@@ -0,0 +1,16 @@
1
+ import type { FieldDescriptorProto } from "./google/protobuf/descriptor_pb.js";
2
+ import { FileDescriptorProto, FileDescriptorSet } from "./google/protobuf/descriptor_pb.js";
3
+ import type { DescriptorSet } from "./descriptor-set.js";
4
+ /**
5
+ * Create a DescriptorSet, a convenient interface for working with a set of
6
+ * google.protobuf.FileDescriptorProto.
7
+ *
8
+ * Note that files must be given in topological order, so each file appears
9
+ * before any file that imports it. Protocol buffer compilers always produce
10
+ * files in topological order.
11
+ */
12
+ export declare function createDescriptorSet(input: FileDescriptorProto[] | FileDescriptorSet | Uint8Array): DescriptorSet;
13
+ /**
14
+ * Get the default `packed` state of a repeated field.
15
+ */
16
+ export declare function isPackedFieldByDefault(proto: FieldDescriptorProto, syntax: "proto2" | "proto3"): boolean;