@aptre/protobuf-es-lite 0.2.6 → 0.2.8
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/.ignore +1 -0
- package/README.md +25 -24
- package/bin/protoc-gen-es-lite +3 -3
- package/dist/binary-encoding.d.ts +420 -0
- package/dist/binary-encoding.js +437 -0
- package/dist/binary.d.ts +35 -2
- package/dist/binary.js +69 -66
- package/dist/codegen-info.d.ts +43 -0
- package/dist/codegen-info.js +72 -0
- package/dist/create-descriptor-set.d.ts +36 -0
- package/dist/create-descriptor-set.js +936 -0
- package/dist/descriptor-set.d.ts +672 -0
- package/dist/{editions.js → descriptor-set.js} +0 -11
- package/dist/enum.d.ts +35 -1
- package/dist/feature-set.d.ts +19 -0
- package/dist/feature-set.js +103 -0
- package/dist/field-wrapper.d.ts +7 -3
- package/dist/field-wrapper.js +30 -1
- package/dist/field.d.ts +8 -19
- package/dist/field.js +15 -117
- package/dist/google/index.d.ts +9 -0
- package/dist/google/index.js +41 -0
- package/dist/google/protobuf/any.pb.d.ts +139 -0
- package/dist/google/protobuf/any.pb.js +42 -0
- package/dist/google/protobuf/api.pb.d.ts +252 -0
- package/dist/google/protobuf/api.pb.js +70 -0
- package/dist/google/protobuf/compiler/plugin.pb.d.ts +240 -0
- package/dist/google/protobuf/compiler/plugin.pb.js +203 -0
- package/dist/google/protobuf/descriptor.pb.d.ts +2132 -0
- package/dist/google/protobuf/descriptor.pb.js +1080 -0
- package/dist/google/protobuf/duration.pb.d.ts +92 -0
- package/dist/google/protobuf/duration.pb.js +42 -0
- package/dist/google/protobuf/empty.pb.d.ts +18 -0
- package/dist/google/protobuf/empty.pb.js +39 -0
- package/dist/google/protobuf/source_context.pb.d.ts +21 -0
- package/dist/google/protobuf/source_context.pb.js +41 -0
- package/dist/google/protobuf/struct.pb.d.ts +121 -0
- package/dist/google/protobuf/struct.pb.js +83 -0
- package/dist/google/protobuf/timestamp.pb.d.ts +121 -0
- package/dist/google/protobuf/timestamp.pb.js +42 -0
- package/dist/google/protobuf/type.pb.d.ts +464 -0
- package/dist/google/protobuf/type.pb.js +338 -0
- package/dist/google/protobuf/wrappers.pb.d.ts +183 -0
- package/dist/google/protobuf/wrappers.pb.js +107 -0
- package/dist/index.d.ts +8 -3
- package/dist/index.js +38 -8
- package/dist/is-message.d.ts +10 -2
- package/dist/is-message.js +76 -3
- package/dist/json.d.ts +68 -1
- package/dist/json.js +60 -81
- package/dist/message.d.ts +30 -61
- package/dist/message.js +63 -18
- package/dist/names.d.ts +43 -0
- package/dist/names.js +276 -0
- package/dist/partial.js +19 -16
- package/dist/proto-base64.d.ts +18 -0
- package/dist/proto-base64.js +128 -0
- package/dist/proto-double.d.ts +5 -0
- package/dist/proto-double.js +29 -0
- package/dist/proto-int64.d.ts +95 -0
- package/dist/proto-int64.js +116 -0
- package/dist/protoc-gen-es-lite/protoc-gen-es-lite-plugin.d.ts +1 -0
- package/dist/{protoc-gen-es-lite-plugin.js → protoc-gen-es-lite/protoc-gen-es-lite-plugin.js} +2 -2
- package/dist/{typescript.d.ts → protoc-gen-es-lite/typescript.d.ts} +3 -2
- package/dist/{typescript.js → protoc-gen-es-lite/typescript.js} +48 -36
- package/dist/protoplugin/create-es-plugin.d.ts +83 -0
- package/dist/protoplugin/create-es-plugin.js +119 -0
- package/dist/protoplugin/ecmascript/file-preamble.d.ts +2 -0
- package/dist/protoplugin/ecmascript/file-preamble.js +74 -0
- package/dist/protoplugin/ecmascript/generated-file.d.ts +116 -0
- package/dist/protoplugin/ecmascript/generated-file.js +407 -0
- package/dist/protoplugin/ecmascript/import-path.d.ts +65 -0
- package/dist/protoplugin/ecmascript/import-path.js +156 -0
- package/dist/protoplugin/ecmascript/import-symbol.d.ts +39 -0
- package/dist/protoplugin/ecmascript/import-symbol.js +37 -0
- package/dist/protoplugin/ecmascript/index.d.ts +7 -0
- package/dist/protoplugin/ecmascript/index.js +20 -0
- package/dist/protoplugin/ecmascript/jsdoc.d.ts +14 -0
- package/dist/protoplugin/ecmascript/jsdoc.js +93 -0
- package/dist/protoplugin/ecmascript/opaque-printables.d.ts +27 -0
- package/dist/protoplugin/ecmascript/opaque-printables.js +15 -0
- package/dist/protoplugin/ecmascript/parameter.d.ts +13 -0
- package/dist/protoplugin/ecmascript/parameter.js +161 -0
- package/dist/protoplugin/ecmascript/reify-wkt.d.ts +100 -0
- package/dist/protoplugin/ecmascript/reify-wkt.js +170 -0
- package/dist/protoplugin/ecmascript/runtime-imports.d.ts +6 -0
- package/dist/protoplugin/ecmascript/runtime-imports.js +28 -0
- package/dist/protoplugin/ecmascript/schema.d.ts +43 -0
- package/dist/protoplugin/ecmascript/schema.js +73 -0
- package/dist/protoplugin/ecmascript/target.d.ts +4 -0
- package/dist/protoplugin/ecmascript/target.js +15 -0
- package/dist/protoplugin/ecmascript/transpile.d.ts +2 -0
- package/dist/protoplugin/ecmascript/transpile.js +149 -0
- package/dist/protoplugin/error.d.ts +6 -0
- package/dist/protoplugin/error.js +43 -0
- package/dist/protoplugin/index.d.ts +8 -0
- package/dist/protoplugin/index.js +20 -0
- package/dist/protoplugin/plugin.d.ts +18 -0
- package/dist/protoplugin/plugin.js +15 -0
- package/dist/protoplugin/run-node.d.ts +12 -0
- package/dist/protoplugin/run-node.js +83 -0
- package/dist/scalar.d.ts +53 -1
- package/dist/scalar.js +87 -22
- package/dist/service-type.d.ts +95 -0
- package/dist/service-type.js +53 -0
- package/dist/text-format.d.ts +4 -0
- package/dist/text-format.js +189 -0
- package/dist/type-registry.d.ts +43 -0
- package/dist/type-registry.js +15 -0
- package/dist/unknown.d.ts +1 -1
- package/dist/util.d.ts +2 -2
- package/dist/util.js +46 -44
- package/dist/varint.d.ts +70 -0
- package/dist/varint.js +324 -0
- package/example/example.pb.ts +87 -0
- package/example/example.proto +1 -0
- package/example/tsconfig.json +8 -2
- package/package.json +19 -12
- package/tsconfig.json +4 -4
- package/dist/editions.d.ts +0 -6
- package/dist/protoc-gen-es-lite-plugin.d.ts +0 -1
package/.ignore
CHANGED
package/README.md
CHANGED
|
@@ -9,9 +9,9 @@
|
|
|
9
9
|
|
|
10
10
|
protobuf-es-lite is a TypeScript and JavaScript protobuf implementation.
|
|
11
11
|
|
|
12
|
-
It uses [
|
|
12
|
+
It uses [protoplugin] to implement **protoc-gen-es-lite** which generates js and/or ts code.
|
|
13
13
|
|
|
14
|
-
[
|
|
14
|
+
[protoplugin]: ./src/protoplugin
|
|
15
15
|
|
|
16
16
|
See [protobuf-es] for information about protoplugin.
|
|
17
17
|
|
|
@@ -48,11 +48,16 @@ const myMessageBin = new MyMessage(myMessage).toBinary()
|
|
|
48
48
|
declaration object containing the marshal and unmarshal functions. This allows
|
|
49
49
|
using interfaces and plain messages everywhere and does not need classes.
|
|
50
50
|
|
|
51
|
+
[ts-proto]: https://github.com/stephenh/ts-proto
|
|
52
|
+
|
|
51
53
|
This fork generates the ts-proto style with the protoc-gen-es tools:
|
|
52
54
|
|
|
53
55
|
```typescript
|
|
56
|
+
// Create a partial MyMessage with just one field sets.
|
|
54
57
|
const myMessage: MyMessage = {body: "Hello world"}
|
|
55
|
-
|
|
58
|
+
// Creates a version of MyMessage filled with zeros.
|
|
59
|
+
const myCompleteMessage: MyMessage = MyMessage.create(myMessage)
|
|
60
|
+
// Convert MyMessage to binary.
|
|
56
61
|
const myMessageBin = MyMessage.toBinary(myCompleteMessage)
|
|
57
62
|
```
|
|
58
63
|
|
|
@@ -61,21 +66,18 @@ const myMessageBin = MyMessage.toBinary(myCompleteMessage)
|
|
|
61
66
|
## Installation
|
|
62
67
|
|
|
63
68
|
`protoc-gen-es` generates base types - messages and enumerations - from your
|
|
64
|
-
Protocol Buffer schema.
|
|
65
|
-
[@bufbuild/protobuf].
|
|
66
|
-
|
|
67
|
-
[@bufbuild/protobuf]: https://www.npmjs.com/package/@bufbuild/protobuf
|
|
69
|
+
Protocol Buffer schema.
|
|
68
70
|
|
|
69
71
|
To install the plugin and the runtime library, run:
|
|
70
72
|
|
|
71
73
|
```shell
|
|
72
|
-
npm install
|
|
73
|
-
npm install @bufbuild/protobuf
|
|
74
|
+
npm install @aptre/protoc-gen-es-lite
|
|
74
75
|
```
|
|
75
76
|
|
|
76
77
|
We use peer dependencies to ensure that code generator and runtime library are
|
|
77
78
|
compatible with each other. Note that npm installs them automatically, but yarn
|
|
78
79
|
and pnpm do not.
|
|
80
|
+
|
|
79
81
|
## Generating code
|
|
80
82
|
|
|
81
83
|
### With buf
|
|
@@ -91,10 +93,10 @@ Add a new configuration file `buf.gen.yaml`:
|
|
|
91
93
|
# For details, see https://docs.buf.build/configuration/v1/buf-gen-yaml
|
|
92
94
|
version: v1
|
|
93
95
|
plugins:
|
|
94
|
-
# This will invoke protoc-gen-es and write output to src/gen
|
|
95
|
-
- plugin: es
|
|
96
|
+
# This will invoke protoc-gen-es-lite and write output to src/gen
|
|
97
|
+
- plugin: es-lite
|
|
96
98
|
out: src/gen
|
|
97
|
-
opt:
|
|
99
|
+
opt:
|
|
98
100
|
# Add more plugin options here
|
|
99
101
|
- target=ts
|
|
100
102
|
```
|
|
@@ -106,16 +108,15 @@ npx buf generate
|
|
|
106
108
|
```
|
|
107
109
|
|
|
108
110
|
Note that `buf` can generate from various [inputs](https://docs.buf.build/reference/inputs),
|
|
109
|
-
not just local protobuf files.
|
|
110
|
-
|
|
111
|
+
not just local protobuf files.
|
|
111
112
|
|
|
112
113
|
### With protoc
|
|
113
114
|
|
|
114
115
|
```bash
|
|
115
116
|
PATH=$PATH:$(pwd)/node_modules/.bin \
|
|
116
117
|
protoc -I . \
|
|
117
|
-
--
|
|
118
|
-
--
|
|
118
|
+
--es-lite_out src/gen \
|
|
119
|
+
--es-lite_opt target=ts \
|
|
119
120
|
a.proto b.proto c.proto
|
|
120
121
|
```
|
|
121
122
|
|
|
@@ -126,7 +127,7 @@ Since yarn v2 and above does not use a `node_modules` directory, you need to
|
|
|
126
127
|
change the variable a bit:
|
|
127
128
|
|
|
128
129
|
```bash
|
|
129
|
-
PATH=$(dirname $(yarn bin protoc-gen-es)):$PATH
|
|
130
|
+
PATH=$(dirname $(yarn bin protoc-gen-es-lite)):$PATH
|
|
130
131
|
```
|
|
131
132
|
|
|
132
133
|
## Plugin options
|
|
@@ -137,9 +138,9 @@ This option controls whether the plugin generates JavaScript, TypeScript,
|
|
|
137
138
|
or TypeScript declaration files.
|
|
138
139
|
|
|
139
140
|
Possible values:
|
|
140
|
-
- `target=js` - generates a
|
|
141
|
-
- `target=ts` - generates a
|
|
142
|
-
- `target=dts` - generates a
|
|
141
|
+
- `target=js` - generates a `.pb.js` file for every `.proto` input file.
|
|
142
|
+
- `target=ts` - generates a `.pb.ts` file for every `.proto` input file.
|
|
143
|
+
- `target=dts` - generates a `.pb.d.ts` file for every `.proto` input file.
|
|
143
144
|
|
|
144
145
|
Multiple values can be given by separating them with `+`, for example
|
|
145
146
|
`target=js+dts`.
|
|
@@ -151,7 +152,7 @@ bundler configurations. If you prefer to generate TypeScript, use `target=ts`.
|
|
|
151
152
|
### `import_extension=.js`
|
|
152
153
|
|
|
153
154
|
By default, [protoc-gen-es](https://www.npmjs.com/package/@bufbuild/protoc-gen-es)
|
|
154
|
-
(and all other plugins based on [@
|
|
155
|
+
(and all other plugins based on [@aptre/protobuf-es-lite/protoplugin](https://www.npmjs.com/package/@aptre/protobuf-es-lite/protoplugin))
|
|
155
156
|
uses a `.js` file extensions in import paths, even in TypeScript files.
|
|
156
157
|
|
|
157
158
|
This is unintuitive, but necessary for [ECMAScript modules in Node.js](https://www.typescriptlang.org/docs/handbook/esm-node.html).
|
|
@@ -165,7 +166,7 @@ in import paths with the given value. For example, set
|
|
|
165
166
|
### `js_import_style`
|
|
166
167
|
|
|
167
168
|
By default, [protoc-gen-es](https://www.npmjs.com/package/@bufbuild/protoc-gen-es)
|
|
168
|
-
(and all other plugins based on [@
|
|
169
|
+
(and all other plugins based on [@aptre/protobuf-es-lite/protoplugin](https://www.npmjs.com/package/@aptre/protobuf-es-lite/protoplugin))
|
|
169
170
|
generate ECMAScript `import` and `export` statements. For use cases where
|
|
170
171
|
CommonJS is difficult to avoid, this option can be used to generate CommonJS
|
|
171
172
|
`require()` calls.
|
|
@@ -178,7 +179,7 @@ Possible values:
|
|
|
178
179
|
### `keep_empty_files=true`
|
|
179
180
|
|
|
180
181
|
By default, [protoc-gen-es](https://www.npmjs.com/package/@bufbuild/protoc-gen-es)
|
|
181
|
-
(and all other plugins based on [@
|
|
182
|
+
(and all other plugins based on [@aptre/protobuf-es-lite/protoplugin](https://www.npmjs.com/package/@aptre/protobuf-es-lite/protoplugin))
|
|
182
183
|
omit empty files from the plugin output. This option disables pruning of
|
|
183
184
|
empty files, to allow for smooth interoperation with Bazel and similar
|
|
184
185
|
tooling that requires all output files to be declared ahead of time.
|
|
@@ -187,7 +188,7 @@ Unless you use Bazel, it is very unlikely that you need this option.
|
|
|
187
188
|
### `ts_nocheck=false`
|
|
188
189
|
|
|
189
190
|
By default, [protoc-gen-es](https://www.npmjs.com/package/@bufbuild/protoc-gen-es)
|
|
190
|
-
(and all other plugins based on [@
|
|
191
|
+
(and all other plugins based on [@aptre/protobuf-es-lite/protoplugin](https://www.npmjs.com/package/@aptre/protobuf-es-lite/protoplugin))
|
|
191
192
|
generate an annotation at the top of each file: `// @ts-nocheck`.
|
|
192
193
|
|
|
193
194
|
We generate the annotation to support a wide range of compiler configurations and
|
package/bin/protoc-gen-es-lite
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
const {runNodeJs} = require("
|
|
4
|
-
const {protocGenEsLite} = require("../dist/protoc-gen-es-lite-plugin.js");
|
|
3
|
+
const {runNodeJs} = require("../dist/protoplugin");
|
|
4
|
+
const {protocGenEsLite} = require("../dist/prototc-gen-es-lite/protoc-gen-es-lite-plugin.js");
|
|
5
5
|
|
|
6
|
-
runNodeJs(protocGenEsLite);
|
|
6
|
+
runNodeJs(protocGenEsLite);
|
|
@@ -0,0 +1,420 @@
|
|
|
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
|
+
* Start of a tag-delimited aggregate, such as a proto2 group, or a message
|
|
29
|
+
* in editions with message_encoding = DELIMITED.
|
|
30
|
+
*/
|
|
31
|
+
StartGroup = 3,
|
|
32
|
+
/**
|
|
33
|
+
* End of a tag-delimited aggregate.
|
|
34
|
+
*/
|
|
35
|
+
EndGroup = 4,
|
|
36
|
+
/**
|
|
37
|
+
* Used for fixed32, sfixed32, float.
|
|
38
|
+
* Always 4 bytes with little-endian byte order.
|
|
39
|
+
*/
|
|
40
|
+
Bit32 = 5
|
|
41
|
+
}
|
|
42
|
+
type TextEncoderLike = {
|
|
43
|
+
encode(input?: string): Uint8Array;
|
|
44
|
+
};
|
|
45
|
+
type TextDecoderLike = {
|
|
46
|
+
decode(input?: Uint8Array): string;
|
|
47
|
+
};
|
|
48
|
+
export interface IBinaryReader {
|
|
49
|
+
/**
|
|
50
|
+
* Current position.
|
|
51
|
+
*/
|
|
52
|
+
readonly pos: number;
|
|
53
|
+
/**
|
|
54
|
+
* Number of bytes available in this reader.
|
|
55
|
+
*/
|
|
56
|
+
readonly len: number;
|
|
57
|
+
/**
|
|
58
|
+
* Reads a tag - field number and wire type.
|
|
59
|
+
*/
|
|
60
|
+
tag(): [number, WireType];
|
|
61
|
+
/**
|
|
62
|
+
* Skip one element on the wire and return the skipped data.
|
|
63
|
+
*/
|
|
64
|
+
skip(wireType: WireType): Uint8Array;
|
|
65
|
+
/**
|
|
66
|
+
* Read a `uint32` field, an unsigned 32 bit varint.
|
|
67
|
+
*/
|
|
68
|
+
uint32(): number;
|
|
69
|
+
/**
|
|
70
|
+
* Read a `int32` field, a signed 32 bit varint.
|
|
71
|
+
*/
|
|
72
|
+
int32(): number;
|
|
73
|
+
/**
|
|
74
|
+
* Read a `sint32` field, a signed, zigzag-encoded 32-bit varint.
|
|
75
|
+
*/
|
|
76
|
+
sint32(): number;
|
|
77
|
+
/**
|
|
78
|
+
* Read a `int64` field, a signed 64-bit varint.
|
|
79
|
+
*/
|
|
80
|
+
int64(): bigint | string;
|
|
81
|
+
/**
|
|
82
|
+
* Read a `sint64` field, a signed, zig-zag-encoded 64-bit varint.
|
|
83
|
+
*/
|
|
84
|
+
sint64(): bigint | string;
|
|
85
|
+
/**
|
|
86
|
+
* Read a `fixed64` field, a signed, fixed-length 64-bit integer.
|
|
87
|
+
*/
|
|
88
|
+
sfixed64(): bigint | string;
|
|
89
|
+
/**
|
|
90
|
+
* Read a `uint64` field, an unsigned 64-bit varint.
|
|
91
|
+
*/
|
|
92
|
+
uint64(): bigint | string;
|
|
93
|
+
/**
|
|
94
|
+
* Read a `fixed64` field, an unsigned, fixed-length 64 bit integer.
|
|
95
|
+
*/
|
|
96
|
+
fixed64(): bigint | string;
|
|
97
|
+
/**
|
|
98
|
+
* Read a `bool` field, a variant.
|
|
99
|
+
*/
|
|
100
|
+
bool(): boolean;
|
|
101
|
+
/**
|
|
102
|
+
* Read a `fixed32` field, an unsigned, fixed-length 32-bit integer.
|
|
103
|
+
*/
|
|
104
|
+
fixed32(): number;
|
|
105
|
+
/**
|
|
106
|
+
* Read a `sfixed32` field, a signed, fixed-length 32-bit integer.
|
|
107
|
+
*/
|
|
108
|
+
sfixed32(): number;
|
|
109
|
+
/**
|
|
110
|
+
* Read a `float` field, 32-bit floating point number.
|
|
111
|
+
*/
|
|
112
|
+
float(): number;
|
|
113
|
+
/**
|
|
114
|
+
* Read a `double` field, a 64-bit floating point number.
|
|
115
|
+
*/
|
|
116
|
+
double(): number;
|
|
117
|
+
/**
|
|
118
|
+
* Read a `bytes` field, length-delimited arbitrary data.
|
|
119
|
+
*/
|
|
120
|
+
bytes(): Uint8Array;
|
|
121
|
+
/**
|
|
122
|
+
* Read a `string` field, length-delimited data converted to UTF-8 text.
|
|
123
|
+
*/
|
|
124
|
+
string(): string;
|
|
125
|
+
}
|
|
126
|
+
export interface IBinaryWriter {
|
|
127
|
+
/**
|
|
128
|
+
* Return all bytes written and reset this writer.
|
|
129
|
+
*/
|
|
130
|
+
finish(): Uint8Array;
|
|
131
|
+
/**
|
|
132
|
+
* Start a new fork for length-delimited data like a message
|
|
133
|
+
* or a packed repeated field.
|
|
134
|
+
*
|
|
135
|
+
* Must be joined later with `join()`.
|
|
136
|
+
*/
|
|
137
|
+
fork(): IBinaryWriter;
|
|
138
|
+
/**
|
|
139
|
+
* Join the last fork. Write its length and bytes, then
|
|
140
|
+
* return to the previous state.
|
|
141
|
+
*/
|
|
142
|
+
join(): IBinaryWriter;
|
|
143
|
+
/**
|
|
144
|
+
* Writes a tag (field number and wire type).
|
|
145
|
+
*
|
|
146
|
+
* Equivalent to `uint32( (fieldNo << 3 | type) >>> 0 )`
|
|
147
|
+
*
|
|
148
|
+
* Generated code should compute the tag ahead of time and call `uint32()`.
|
|
149
|
+
*/
|
|
150
|
+
tag(fieldNo: number, type: WireType): IBinaryWriter;
|
|
151
|
+
/**
|
|
152
|
+
* Write a chunk of raw bytes.
|
|
153
|
+
*/
|
|
154
|
+
raw(chunk: Uint8Array): IBinaryWriter;
|
|
155
|
+
/**
|
|
156
|
+
* Write a `uint32` value, an unsigned 32 bit varint.
|
|
157
|
+
*/
|
|
158
|
+
uint32(value: number): IBinaryWriter;
|
|
159
|
+
/**
|
|
160
|
+
* Write a `int32` value, a signed 32 bit varint.
|
|
161
|
+
*/
|
|
162
|
+
int32(value: number): IBinaryWriter;
|
|
163
|
+
/**
|
|
164
|
+
* Write a `sint32` value, a signed, zigzag-encoded 32-bit varint.
|
|
165
|
+
*/
|
|
166
|
+
sint32(value: number): IBinaryWriter;
|
|
167
|
+
/**
|
|
168
|
+
* Write a `int64` value, a signed 64-bit varint.
|
|
169
|
+
*/
|
|
170
|
+
int64(value: string | number | bigint): IBinaryWriter;
|
|
171
|
+
/**
|
|
172
|
+
* Write a `uint64` value, an unsigned 64-bit varint.
|
|
173
|
+
*/
|
|
174
|
+
uint64(value: string | number | bigint): IBinaryWriter;
|
|
175
|
+
/**
|
|
176
|
+
* Write a `sint64` value, a signed, zig-zag-encoded 64-bit varint.
|
|
177
|
+
*/
|
|
178
|
+
sint64(value: string | number | bigint): IBinaryWriter;
|
|
179
|
+
/**
|
|
180
|
+
* Write a `fixed64` value, an unsigned, fixed-length 64 bit integer.
|
|
181
|
+
*/
|
|
182
|
+
fixed64(value: string | number | bigint): IBinaryWriter;
|
|
183
|
+
/**
|
|
184
|
+
* Write a `fixed64` value, a signed, fixed-length 64-bit integer.
|
|
185
|
+
*/
|
|
186
|
+
sfixed64(value: string | number | bigint): IBinaryWriter;
|
|
187
|
+
/**
|
|
188
|
+
* Write a `bool` value, a variant.
|
|
189
|
+
*/
|
|
190
|
+
bool(value: boolean): IBinaryWriter;
|
|
191
|
+
/**
|
|
192
|
+
* Write a `fixed32` value, an unsigned, fixed-length 32-bit integer.
|
|
193
|
+
*/
|
|
194
|
+
fixed32(value: number): IBinaryWriter;
|
|
195
|
+
/**
|
|
196
|
+
* Write a `sfixed32` value, a signed, fixed-length 32-bit integer.
|
|
197
|
+
*/
|
|
198
|
+
sfixed32(value: number): IBinaryWriter;
|
|
199
|
+
/**
|
|
200
|
+
* Write a `float` value, 32-bit floating point number.
|
|
201
|
+
*/
|
|
202
|
+
float(value: number): IBinaryWriter;
|
|
203
|
+
/**
|
|
204
|
+
* Write a `double` value, a 64-bit floating point number.
|
|
205
|
+
*/
|
|
206
|
+
double(value: number): IBinaryWriter;
|
|
207
|
+
/**
|
|
208
|
+
* Write a `bytes` value, length-delimited arbitrary data.
|
|
209
|
+
*/
|
|
210
|
+
bytes(value: Uint8Array): IBinaryWriter;
|
|
211
|
+
/**
|
|
212
|
+
* Write a `string` value, length-delimited data converted to UTF-8 text.
|
|
213
|
+
*/
|
|
214
|
+
string(value: string): IBinaryWriter;
|
|
215
|
+
}
|
|
216
|
+
export declare class BinaryWriter implements IBinaryWriter {
|
|
217
|
+
/**
|
|
218
|
+
* We cannot allocate a buffer for the entire output
|
|
219
|
+
* because we don't know it's size.
|
|
220
|
+
*
|
|
221
|
+
* So we collect smaller chunks of known size and
|
|
222
|
+
* concat them later.
|
|
223
|
+
*
|
|
224
|
+
* Use `raw()` to push data to this array. It will flush
|
|
225
|
+
* `buf` first.
|
|
226
|
+
*/
|
|
227
|
+
private chunks;
|
|
228
|
+
/**
|
|
229
|
+
* A growing buffer for byte values. If you don't know
|
|
230
|
+
* the size of the data you are writing, push to this
|
|
231
|
+
* array.
|
|
232
|
+
*/
|
|
233
|
+
protected buf: number[];
|
|
234
|
+
/**
|
|
235
|
+
* Previous fork states.
|
|
236
|
+
*/
|
|
237
|
+
private stack;
|
|
238
|
+
/**
|
|
239
|
+
* Text encoder instance to convert UTF-8 to bytes.
|
|
240
|
+
*/
|
|
241
|
+
private readonly textEncoder;
|
|
242
|
+
constructor(textEncoder?: TextEncoderLike);
|
|
243
|
+
/**
|
|
244
|
+
* Return all bytes written and reset this writer.
|
|
245
|
+
*/
|
|
246
|
+
finish(): Uint8Array;
|
|
247
|
+
/**
|
|
248
|
+
* Start a new fork for length-delimited data like a message
|
|
249
|
+
* or a packed repeated field.
|
|
250
|
+
*
|
|
251
|
+
* Must be joined later with `join()`.
|
|
252
|
+
*/
|
|
253
|
+
fork(): IBinaryWriter;
|
|
254
|
+
/**
|
|
255
|
+
* Join the last fork. Write its length and bytes, then
|
|
256
|
+
* return to the previous state.
|
|
257
|
+
*/
|
|
258
|
+
join(): IBinaryWriter;
|
|
259
|
+
/**
|
|
260
|
+
* Writes a tag (field number and wire type).
|
|
261
|
+
*
|
|
262
|
+
* Equivalent to `uint32( (fieldNo << 3 | type) >>> 0 )`.
|
|
263
|
+
*
|
|
264
|
+
* Generated code should compute the tag ahead of time and call `uint32()`.
|
|
265
|
+
*/
|
|
266
|
+
tag(fieldNo: number, type: WireType): IBinaryWriter;
|
|
267
|
+
/**
|
|
268
|
+
* Write a chunk of raw bytes.
|
|
269
|
+
*/
|
|
270
|
+
raw(chunk: Uint8Array): IBinaryWriter;
|
|
271
|
+
/**
|
|
272
|
+
* Write a `uint32` value, an unsigned 32 bit varint.
|
|
273
|
+
*/
|
|
274
|
+
uint32(value: number): IBinaryWriter;
|
|
275
|
+
/**
|
|
276
|
+
* Write a `int32` value, a signed 32 bit varint.
|
|
277
|
+
*/
|
|
278
|
+
int32(value: number): IBinaryWriter;
|
|
279
|
+
/**
|
|
280
|
+
* Write a `bool` value, a variant.
|
|
281
|
+
*/
|
|
282
|
+
bool(value: boolean): IBinaryWriter;
|
|
283
|
+
/**
|
|
284
|
+
* Write a `bytes` value, length-delimited arbitrary data.
|
|
285
|
+
*/
|
|
286
|
+
bytes(value: Uint8Array): IBinaryWriter;
|
|
287
|
+
/**
|
|
288
|
+
* Write a `string` value, length-delimited data converted to UTF-8 text.
|
|
289
|
+
*/
|
|
290
|
+
string(value: string): IBinaryWriter;
|
|
291
|
+
/**
|
|
292
|
+
* Write a `float` value, 32-bit floating point number.
|
|
293
|
+
*/
|
|
294
|
+
float(value: number): IBinaryWriter;
|
|
295
|
+
/**
|
|
296
|
+
* Write a `double` value, a 64-bit floating point number.
|
|
297
|
+
*/
|
|
298
|
+
double(value: number): IBinaryWriter;
|
|
299
|
+
/**
|
|
300
|
+
* Write a `fixed32` value, an unsigned, fixed-length 32-bit integer.
|
|
301
|
+
*/
|
|
302
|
+
fixed32(value: number): IBinaryWriter;
|
|
303
|
+
/**
|
|
304
|
+
* Write a `sfixed32` value, a signed, fixed-length 32-bit integer.
|
|
305
|
+
*/
|
|
306
|
+
sfixed32(value: number): IBinaryWriter;
|
|
307
|
+
/**
|
|
308
|
+
* Write a `sint32` value, a signed, zigzag-encoded 32-bit varint.
|
|
309
|
+
*/
|
|
310
|
+
sint32(value: number): IBinaryWriter;
|
|
311
|
+
/**
|
|
312
|
+
* Write a `fixed64` value, a signed, fixed-length 64-bit integer.
|
|
313
|
+
*/
|
|
314
|
+
sfixed64(value: string | number | bigint): IBinaryWriter;
|
|
315
|
+
/**
|
|
316
|
+
* Write a `fixed64` value, an unsigned, fixed-length 64 bit integer.
|
|
317
|
+
*/
|
|
318
|
+
fixed64(value: string | number | bigint): IBinaryWriter;
|
|
319
|
+
/**
|
|
320
|
+
* Write a `int64` value, a signed 64-bit varint.
|
|
321
|
+
*/
|
|
322
|
+
int64(value: string | number | bigint): IBinaryWriter;
|
|
323
|
+
/**
|
|
324
|
+
* Write a `sint64` value, a signed, zig-zag-encoded 64-bit varint.
|
|
325
|
+
*/
|
|
326
|
+
sint64(value: string | number | bigint): IBinaryWriter;
|
|
327
|
+
/**
|
|
328
|
+
* Write a `uint64` value, an unsigned 64-bit varint.
|
|
329
|
+
*/
|
|
330
|
+
uint64(value: string | number | bigint): IBinaryWriter;
|
|
331
|
+
}
|
|
332
|
+
export declare class BinaryReader implements IBinaryReader {
|
|
333
|
+
/**
|
|
334
|
+
* Current position.
|
|
335
|
+
*/
|
|
336
|
+
pos: number;
|
|
337
|
+
/**
|
|
338
|
+
* Number of bytes available in this reader.
|
|
339
|
+
*/
|
|
340
|
+
readonly len: number;
|
|
341
|
+
private readonly buf;
|
|
342
|
+
private readonly view;
|
|
343
|
+
private readonly textDecoder;
|
|
344
|
+
constructor(buf: Uint8Array, textDecoder?: TextDecoderLike);
|
|
345
|
+
/**
|
|
346
|
+
* Reads a tag - field number and wire type.
|
|
347
|
+
*/
|
|
348
|
+
tag(): [number, WireType];
|
|
349
|
+
/**
|
|
350
|
+
* Skip one element on the wire and return the skipped data.
|
|
351
|
+
* Supports WireType.StartGroup since v2.0.0-alpha.23.
|
|
352
|
+
*/
|
|
353
|
+
skip(wireType: WireType): Uint8Array;
|
|
354
|
+
protected varint64: () => [number, number];
|
|
355
|
+
/**
|
|
356
|
+
* Throws error if position in byte array is out of range.
|
|
357
|
+
*/
|
|
358
|
+
protected assertBounds(): void;
|
|
359
|
+
/**
|
|
360
|
+
* Read a `uint32` field, an unsigned 32 bit varint.
|
|
361
|
+
*/
|
|
362
|
+
uint32: () => number;
|
|
363
|
+
/**
|
|
364
|
+
* Read a `int32` field, a signed 32 bit varint.
|
|
365
|
+
*/
|
|
366
|
+
int32(): number;
|
|
367
|
+
/**
|
|
368
|
+
* Read a `sint32` field, a signed, zigzag-encoded 32-bit varint.
|
|
369
|
+
*/
|
|
370
|
+
sint32(): number;
|
|
371
|
+
/**
|
|
372
|
+
* Read a `int64` field, a signed 64-bit varint.
|
|
373
|
+
*/
|
|
374
|
+
int64(): bigint | string;
|
|
375
|
+
/**
|
|
376
|
+
* Read a `uint64` field, an unsigned 64-bit varint.
|
|
377
|
+
*/
|
|
378
|
+
uint64(): bigint | string;
|
|
379
|
+
/**
|
|
380
|
+
* Read a `sint64` field, a signed, zig-zag-encoded 64-bit varint.
|
|
381
|
+
*/
|
|
382
|
+
sint64(): bigint | string;
|
|
383
|
+
/**
|
|
384
|
+
* Read a `bool` field, a variant.
|
|
385
|
+
*/
|
|
386
|
+
bool(): boolean;
|
|
387
|
+
/**
|
|
388
|
+
* Read a `fixed32` field, an unsigned, fixed-length 32-bit integer.
|
|
389
|
+
*/
|
|
390
|
+
fixed32(): number;
|
|
391
|
+
/**
|
|
392
|
+
* Read a `sfixed32` field, a signed, fixed-length 32-bit integer.
|
|
393
|
+
*/
|
|
394
|
+
sfixed32(): number;
|
|
395
|
+
/**
|
|
396
|
+
* Read a `fixed64` field, an unsigned, fixed-length 64 bit integer.
|
|
397
|
+
*/
|
|
398
|
+
fixed64(): bigint | string;
|
|
399
|
+
/**
|
|
400
|
+
* Read a `fixed64` field, a signed, fixed-length 64-bit integer.
|
|
401
|
+
*/
|
|
402
|
+
sfixed64(): bigint | string;
|
|
403
|
+
/**
|
|
404
|
+
* Read a `float` field, 32-bit floating point number.
|
|
405
|
+
*/
|
|
406
|
+
float(): number;
|
|
407
|
+
/**
|
|
408
|
+
* Read a `double` field, a 64-bit floating point number.
|
|
409
|
+
*/
|
|
410
|
+
double(): number;
|
|
411
|
+
/**
|
|
412
|
+
* Read a `bytes` field, length-delimited arbitrary data.
|
|
413
|
+
*/
|
|
414
|
+
bytes(): Uint8Array;
|
|
415
|
+
/**
|
|
416
|
+
* Read a `string` field, length-delimited data converted to UTF-8 text.
|
|
417
|
+
*/
|
|
418
|
+
string(): string;
|
|
419
|
+
}
|
|
420
|
+
export {};
|