@bufbuild/protobuf 2.12.1 → 2.13.0
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 +2 -2
- package/dist/commonjs/codegenv1/symbols.d.ts +5 -0
- package/dist/commonjs/codegenv2/enum.d.ts +15 -4
- package/dist/commonjs/codegenv2/enum.js +18 -0
- package/dist/commonjs/codegenv2/symbols.d.ts +10 -0
- package/dist/commonjs/codegenv2/symbols.js +2 -0
- package/dist/commonjs/create.js +3 -3
- package/dist/commonjs/descriptors.d.ts +2 -2
- package/dist/commonjs/index.d.ts +1 -0
- package/dist/commonjs/index.js +1 -0
- package/dist/commonjs/reflect/reflect.js +3 -2
- package/dist/commonjs/reflect/unsafe.js +1 -1
- package/dist/commonjs/registry.js +19 -19
- package/dist/commonjs/to-binary.js +1 -1
- package/dist/commonjs/to-json.js +2 -2
- package/dist/commonjs/txtpb/from-text.d.ts +35 -0
- package/dist/commonjs/txtpb/from-text.js +684 -0
- package/dist/commonjs/txtpb/index.d.ts +4 -0
- package/dist/commonjs/txtpb/index.js +21 -0
- package/dist/commonjs/txtpb/is-group-like.d.ts +19 -0
- package/dist/commonjs/txtpb/is-group-like.js +47 -0
- package/dist/commonjs/txtpb/reader.d.ts +91 -0
- package/dist/commonjs/txtpb/reader.js +481 -0
- package/dist/commonjs/txtpb/to-text.d.ts +34 -0
- package/dist/commonjs/txtpb/to-text.js +358 -0
- package/dist/commonjs/txtpb/writer.d.ts +76 -0
- package/dist/commonjs/txtpb/writer.js +220 -0
- package/dist/commonjs/types.d.ts +7 -0
- package/dist/commonjs/unknown-enum.d.ts +10 -0
- package/dist/commonjs/unknown-enum.js +26 -0
- package/dist/commonjs/wire/size-delimited.d.ts +19 -1
- package/dist/commonjs/wire/size-delimited.js +54 -16
- package/dist/esm/codegenv1/symbols.d.ts +5 -0
- package/dist/esm/codegenv2/enum.d.ts +15 -4
- package/dist/esm/codegenv2/enum.js +17 -0
- package/dist/esm/codegenv2/symbols.d.ts +10 -0
- package/dist/esm/codegenv2/symbols.js +2 -0
- package/dist/esm/create.js +3 -3
- package/dist/esm/descriptors.d.ts +2 -2
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/reflect/reflect.js +3 -2
- package/dist/esm/reflect/unsafe.js +1 -1
- package/dist/esm/registry.js +19 -19
- package/dist/esm/to-binary.js +1 -1
- package/dist/esm/to-json.js +2 -2
- package/dist/esm/txtpb/from-text.d.ts +35 -0
- package/dist/esm/txtpb/from-text.js +680 -0
- package/dist/esm/txtpb/index.d.ts +4 -0
- package/dist/esm/txtpb/index.js +15 -0
- package/dist/esm/txtpb/is-group-like.d.ts +19 -0
- package/dist/esm/txtpb/is-group-like.js +44 -0
- package/dist/esm/txtpb/reader.d.ts +91 -0
- package/dist/esm/txtpb/reader.js +477 -0
- package/dist/esm/txtpb/to-text.d.ts +34 -0
- package/dist/esm/txtpb/to-text.js +355 -0
- package/dist/esm/txtpb/writer.d.ts +76 -0
- package/dist/esm/txtpb/writer.js +214 -0
- package/dist/esm/types.d.ts +7 -0
- package/dist/esm/unknown-enum.d.ts +10 -0
- package/dist/esm/unknown-enum.js +23 -0
- package/dist/esm/wire/size-delimited.d.ts +19 -1
- package/dist/esm/wire/size-delimited.js +54 -16
- package/package.json +16 -3
|
@@ -12,6 +12,20 @@ import type { BinaryReadOptions } from "../from-binary.js";
|
|
|
12
12
|
* For details, see https://github.com/protocolbuffers/protobuf/issues/10229
|
|
13
13
|
*/
|
|
14
14
|
export declare function sizeDelimitedEncode<Desc extends DescMessage>(messageDesc: Desc, message: MessageShape<Desc>, options?: BinaryWriteOptions): Uint8Array;
|
|
15
|
+
/**
|
|
16
|
+
* Options for parsing size-delimited messages from a stream.
|
|
17
|
+
*/
|
|
18
|
+
export interface SizeDelimitedDecodeOptions extends BinaryReadOptions {
|
|
19
|
+
/**
|
|
20
|
+
* Limit the size of a single message in the stream, in bytes.
|
|
21
|
+
*
|
|
22
|
+
* If a message in the stream declares a size exceeding this limit, an
|
|
23
|
+
* error is raised before the message is buffered.
|
|
24
|
+
*
|
|
25
|
+
* The default limit is 64 MiB.
|
|
26
|
+
*/
|
|
27
|
+
readMaxBytes: number;
|
|
28
|
+
}
|
|
15
29
|
/**
|
|
16
30
|
* Parse a stream of size-delimited messages.
|
|
17
31
|
*
|
|
@@ -20,8 +34,12 @@ export declare function sizeDelimitedEncode<Desc extends DescMessage>(messageDes
|
|
|
20
34
|
*
|
|
21
35
|
* This size-delimited format is compatible with other implementations.
|
|
22
36
|
* For details, see https://github.com/protocolbuffers/protobuf/issues/10229
|
|
37
|
+
*
|
|
38
|
+
* Messages exceeding the limit given with the option readMaxBytes raise an
|
|
39
|
+
* error. The limit is 64 MiB by default. All other options are the
|
|
40
|
+
* standard binary read options, passed through to decode each message.
|
|
23
41
|
*/
|
|
24
|
-
export declare function sizeDelimitedDecodeStream<Desc extends DescMessage>(messageDesc: Desc, iterable: AsyncIterable<Uint8Array>, options?: Partial<
|
|
42
|
+
export declare function sizeDelimitedDecodeStream<Desc extends DescMessage>(messageDesc: Desc, iterable: AsyncIterable<Uint8Array>, options?: Partial<SizeDelimitedDecodeOptions>): AsyncIterableIterator<MessageShape<Desc>>;
|
|
25
43
|
/**
|
|
26
44
|
* Decodes the size from the given size-delimited message, which may be
|
|
27
45
|
* incomplete.
|
|
@@ -48,6 +48,34 @@ export function sizeDelimitedEncode(messageDesc, message, options) {
|
|
|
48
48
|
writer.bytes(toBinary(messageDesc, message, options));
|
|
49
49
|
return writer.finish();
|
|
50
50
|
}
|
|
51
|
+
// Default for SizeDelimitedDecodeOptions.readMaxBytes.
|
|
52
|
+
const defaultReadMaxBytes = 64 * 1024 * 1024; // 64 MiB
|
|
53
|
+
/**
|
|
54
|
+
* A growable byte buffer. Used in place of a resizable ArrayBuffer, which is
|
|
55
|
+
* not widely available.
|
|
56
|
+
*/
|
|
57
|
+
class ByteBuffer {
|
|
58
|
+
constructor() {
|
|
59
|
+
this.buffer = new Uint8Array(0);
|
|
60
|
+
this.length = 0;
|
|
61
|
+
}
|
|
62
|
+
get byteLength() {
|
|
63
|
+
return this.length;
|
|
64
|
+
}
|
|
65
|
+
bytes() {
|
|
66
|
+
return this.buffer.subarray(0, this.length);
|
|
67
|
+
}
|
|
68
|
+
append(chunk) {
|
|
69
|
+
const newByteLength = this.length + chunk.byteLength;
|
|
70
|
+
if (newByteLength > this.buffer.byteLength) {
|
|
71
|
+
const grown = new Uint8Array(Math.max(this.buffer.byteLength * 2, newByteLength));
|
|
72
|
+
grown.set(this.buffer.subarray(0, this.length));
|
|
73
|
+
this.buffer = grown;
|
|
74
|
+
}
|
|
75
|
+
this.buffer.set(chunk, this.length);
|
|
76
|
+
this.length += chunk.byteLength;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
51
79
|
/**
|
|
52
80
|
* Parse a stream of size-delimited messages.
|
|
53
81
|
*
|
|
@@ -56,43 +84,53 @@ export function sizeDelimitedEncode(messageDesc, message, options) {
|
|
|
56
84
|
*
|
|
57
85
|
* This size-delimited format is compatible with other implementations.
|
|
58
86
|
* For details, see https://github.com/protocolbuffers/protobuf/issues/10229
|
|
87
|
+
*
|
|
88
|
+
* Messages exceeding the limit given with the option readMaxBytes raise an
|
|
89
|
+
* error. The limit is 64 MiB by default. All other options are the
|
|
90
|
+
* standard binary read options, passed through to decode each message.
|
|
59
91
|
*/
|
|
60
92
|
export function sizeDelimitedDecodeStream(messageDesc, iterable, options) {
|
|
61
93
|
return __asyncGenerator(this, arguments, function* sizeDelimitedDecodeStream_1() {
|
|
62
94
|
var _a, e_1, _b, _c;
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
n.set(buffer);
|
|
67
|
-
n.set(chunk, buffer.length);
|
|
68
|
-
return n;
|
|
69
|
-
}
|
|
70
|
-
let buffer = new Uint8Array(0);
|
|
95
|
+
var _d;
|
|
96
|
+
const readMaxBytes = (_d = options === null || options === void 0 ? void 0 : options.readMaxBytes) !== null && _d !== void 0 ? _d : defaultReadMaxBytes;
|
|
97
|
+
let buffer = new ByteBuffer();
|
|
71
98
|
try {
|
|
72
|
-
for (var
|
|
99
|
+
for (var _e = true, iterable_1 = __asyncValues(iterable), iterable_1_1; iterable_1_1 = yield __await(iterable_1.next()), _a = iterable_1_1.done, !_a; _e = true) {
|
|
73
100
|
_c = iterable_1_1.value;
|
|
74
|
-
|
|
101
|
+
_e = false;
|
|
75
102
|
const chunk = _c;
|
|
76
|
-
buffer
|
|
103
|
+
buffer.append(chunk);
|
|
104
|
+
const bytes = buffer.bytes();
|
|
105
|
+
let offset = 0;
|
|
77
106
|
for (;;) {
|
|
78
|
-
const size = sizeDelimitedPeek(
|
|
107
|
+
const size = sizeDelimitedPeek(bytes.subarray(offset));
|
|
79
108
|
if (size.eof) {
|
|
80
109
|
// size is incomplete, buffer more data
|
|
81
110
|
break;
|
|
82
111
|
}
|
|
83
|
-
if (size.
|
|
112
|
+
if (size.size > readMaxBytes) {
|
|
113
|
+
throw new Error(`message size ${size.size} is larger than configured readMaxBytes ${readMaxBytes}`);
|
|
114
|
+
}
|
|
115
|
+
const messageStart = offset + size.offset;
|
|
116
|
+
const messageEnd = messageStart + size.size;
|
|
117
|
+
if (messageEnd > bytes.byteLength) {
|
|
84
118
|
// message is incomplete, buffer more data
|
|
85
119
|
break;
|
|
86
120
|
}
|
|
87
|
-
yield yield __await(fromBinary(messageDesc,
|
|
88
|
-
|
|
121
|
+
yield yield __await(fromBinary(messageDesc, bytes.subarray(messageStart, messageEnd), options));
|
|
122
|
+
offset = messageEnd;
|
|
123
|
+
}
|
|
124
|
+
if (offset > 0) {
|
|
125
|
+
buffer = new ByteBuffer();
|
|
126
|
+
buffer.append(bytes.subarray(offset));
|
|
89
127
|
}
|
|
90
128
|
}
|
|
91
129
|
}
|
|
92
130
|
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
93
131
|
finally {
|
|
94
132
|
try {
|
|
95
|
-
if (!
|
|
133
|
+
if (!_e && !_a && (_b = iterable_1.return)) yield __await(_b.call(iterable_1));
|
|
96
134
|
}
|
|
97
135
|
finally { if (e_1) throw e_1.error; }
|
|
98
136
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bufbuild/protobuf",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.13.0",
|
|
4
4
|
"license": "(Apache-2.0 AND BSD-3-Clause)",
|
|
5
5
|
"description": "Protocol Buffers for ECMAScript. The only JavaScript Protobuf library that is fully-compliant with Protobuf conformance tests.",
|
|
6
6
|
"keywords": [
|
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
"type": "module",
|
|
30
30
|
"sideEffects": false,
|
|
31
31
|
"tshy": {
|
|
32
|
+
"selfLink": false,
|
|
32
33
|
"exports": {
|
|
33
34
|
".": "./src/index.ts",
|
|
34
35
|
"./codegenv1": "./src/codegenv1/index.ts",
|
|
@@ -36,7 +37,7 @@
|
|
|
36
37
|
"./reflect": "./src/reflect/index.ts",
|
|
37
38
|
"./wkt": "./src/wkt/index.ts",
|
|
38
39
|
"./wire": "./src/wire/index.ts",
|
|
39
|
-
"./
|
|
40
|
+
"./txtpb": "./src/txtpb/index.ts"
|
|
40
41
|
}
|
|
41
42
|
},
|
|
42
43
|
"devDependencies": {
|
|
@@ -107,7 +108,16 @@
|
|
|
107
108
|
"default": "./dist/commonjs/wire/index.js"
|
|
108
109
|
}
|
|
109
110
|
},
|
|
110
|
-
"./
|
|
111
|
+
"./txtpb": {
|
|
112
|
+
"import": {
|
|
113
|
+
"types": "./dist/esm/txtpb/index.d.ts",
|
|
114
|
+
"default": "./dist/esm/txtpb/index.js"
|
|
115
|
+
},
|
|
116
|
+
"require": {
|
|
117
|
+
"types": "./dist/commonjs/txtpb/index.d.ts",
|
|
118
|
+
"default": "./dist/commonjs/txtpb/index.js"
|
|
119
|
+
}
|
|
120
|
+
}
|
|
111
121
|
},
|
|
112
122
|
"main": "./dist/commonjs/index.js",
|
|
113
123
|
"types": "./dist/commonjs/index.d.ts",
|
|
@@ -128,6 +138,9 @@
|
|
|
128
138
|
],
|
|
129
139
|
"wire": [
|
|
130
140
|
"./dist/commonjs/wire/index.d.ts"
|
|
141
|
+
],
|
|
142
|
+
"txtpb": [
|
|
143
|
+
"./dist/commonjs/txtpb/index.d.ts"
|
|
131
144
|
]
|
|
132
145
|
}
|
|
133
146
|
}
|