@bufbuild/protobuf 2.0.0-alpha.3 → 2.0.0-beta.1
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/dist/cjs/clone.d.ts +1 -1
- package/dist/cjs/clone.js +9 -17
- package/dist/cjs/codegenv1/embed.js +25 -25
- package/dist/cjs/codegenv1/enum.d.ts +2 -1
- package/dist/cjs/codegenv1/file.js +1 -1
- package/dist/cjs/codegenv1/message.d.ts +2 -1
- package/dist/cjs/codegenv1/scalar.d.ts +4 -0
- package/dist/cjs/codegenv1/scalar.js +30 -1
- package/dist/cjs/codegenv1/symbols.d.ts +10 -0
- package/dist/cjs/codegenv1/symbols.js +2 -0
- package/dist/cjs/codegenv1/types.d.ts +7 -5
- package/dist/cjs/codegenv1/types.js +2 -1
- package/dist/cjs/create.d.ts +1 -1
- package/dist/cjs/create.js +47 -20
- package/dist/cjs/equals.d.ts +1 -1
- package/dist/cjs/equals.js +8 -15
- package/dist/cjs/from-binary.d.ts +2 -2
- package/dist/cjs/from-binary.js +17 -14
- package/dist/cjs/from-json.d.ts +14 -6
- package/dist/cjs/from-json.js +51 -55
- package/dist/cjs/is-message.d.ts +1 -1
- package/dist/cjs/is-message.js +3 -3
- package/dist/cjs/reflect/guard.js +4 -4
- package/dist/cjs/reflect/reflect-types.d.ts +13 -80
- package/dist/cjs/reflect/reflect.d.ts +29 -18
- package/dist/cjs/reflect/reflect.js +183 -78
- package/dist/cjs/reflect/scalar.d.ts +1 -1
- package/dist/cjs/reflect/unsafe.d.ts +0 -16
- package/dist/cjs/reflect/unsafe.js +1 -19
- package/dist/cjs/registry.d.ts +18 -2
- package/dist/cjs/registry.js +62 -60
- package/dist/cjs/to-binary.d.ts +1 -1
- package/dist/cjs/to-binary.js +2 -2
- package/dist/cjs/to-json.d.ts +14 -4
- package/dist/cjs/to-json.js +26 -13
- package/dist/cjs/types.d.ts +9 -0
- package/dist/cjs/wire/binary-encoding.js +30 -9
- package/dist/cjs/wkt/any.d.ts +7 -7
- package/dist/cjs/wkt/any.js +5 -5
- package/dist/cjs/wkt/gen/google/protobuf/any_pb.d.ts +9 -3
- package/dist/cjs/wkt/gen/google/protobuf/any_pb.js +4 -4
- package/dist/cjs/wkt/gen/google/protobuf/api_pb.d.ts +88 -9
- package/dist/cjs/wkt/gen/google/protobuf/api_pb.js +8 -8
- package/dist/cjs/wkt/gen/google/protobuf/compiler/plugin_pb.d.ts +107 -11
- package/dist/cjs/wkt/gen/google/protobuf/compiler/plugin_pb.js +11 -11
- package/dist/cjs/wkt/gen/google/protobuf/descriptor_pb.d.ts +1005 -92
- package/dist/cjs/wkt/gen/google/protobuf/descriptor_pb.js +86 -86
- package/dist/cjs/wkt/gen/google/protobuf/duration_pb.d.ts +7 -3
- package/dist/cjs/wkt/gen/google/protobuf/duration_pb.js +4 -4
- package/dist/cjs/wkt/gen/google/protobuf/empty_pb.d.ts +7 -3
- package/dist/cjs/wkt/gen/google/protobuf/empty_pb.js +4 -4
- package/dist/cjs/wkt/gen/google/protobuf/field_mask_pb.d.ts +7 -3
- package/dist/cjs/wkt/gen/google/protobuf/field_mask_pb.js +4 -4
- package/dist/cjs/wkt/gen/google/protobuf/source_context_pb.d.ts +12 -3
- package/dist/cjs/wkt/gen/google/protobuf/source_context_pb.js +4 -4
- package/dist/cjs/wkt/gen/google/protobuf/struct_pb.d.ts +25 -8
- package/dist/cjs/wkt/gen/google/protobuf/struct_pb.js +9 -9
- package/dist/cjs/wkt/gen/google/protobuf/timestamp_pb.d.ts +7 -3
- package/dist/cjs/wkt/gen/google/protobuf/timestamp_pb.js +4 -4
- package/dist/cjs/wkt/gen/google/protobuf/type_pb.d.ts +165 -16
- package/dist/cjs/wkt/gen/google/protobuf/type_pb.js +15 -15
- package/dist/cjs/wkt/gen/google/protobuf/wrappers_pb.d.ts +55 -19
- package/dist/cjs/wkt/gen/google/protobuf/wrappers_pb.js +20 -20
- package/dist/cjs/wkt/timestamp.js +1 -2
- package/dist/esm/clone.d.ts +1 -1
- package/dist/esm/clone.js +9 -17
- package/dist/esm/codegenv1/embed.js +26 -26
- package/dist/esm/codegenv1/enum.d.ts +2 -1
- package/dist/esm/codegenv1/file.js +2 -2
- package/dist/esm/codegenv1/message.d.ts +2 -1
- package/dist/esm/codegenv1/scalar.d.ts +4 -0
- package/dist/esm/codegenv1/scalar.js +28 -0
- package/dist/esm/codegenv1/symbols.d.ts +10 -0
- package/dist/esm/codegenv1/symbols.js +2 -0
- package/dist/esm/codegenv1/types.d.ts +7 -5
- package/dist/esm/codegenv1/types.js +2 -1
- package/dist/esm/create.d.ts +1 -1
- package/dist/esm/create.js +47 -20
- package/dist/esm/equals.d.ts +1 -1
- package/dist/esm/equals.js +8 -15
- package/dist/esm/from-binary.d.ts +2 -2
- package/dist/esm/from-binary.js +17 -14
- package/dist/esm/from-json.d.ts +14 -6
- package/dist/esm/from-json.js +49 -55
- package/dist/esm/is-message.d.ts +1 -1
- package/dist/esm/is-message.js +3 -3
- package/dist/esm/reflect/guard.js +4 -4
- package/dist/esm/reflect/reflect-types.d.ts +13 -80
- package/dist/esm/reflect/reflect-types.js +0 -1
- package/dist/esm/reflect/reflect.d.ts +29 -18
- package/dist/esm/reflect/reflect.js +185 -80
- package/dist/esm/reflect/scalar.d.ts +1 -1
- package/dist/esm/reflect/unsafe.d.ts +0 -16
- package/dist/esm/reflect/unsafe.js +0 -16
- package/dist/esm/registry.d.ts +18 -2
- package/dist/esm/registry.js +60 -59
- package/dist/esm/to-binary.d.ts +1 -1
- package/dist/esm/to-binary.js +2 -2
- package/dist/esm/to-json.d.ts +14 -4
- package/dist/esm/to-json.js +24 -12
- package/dist/esm/types.d.ts +9 -0
- package/dist/esm/wire/binary-encoding.js +30 -9
- package/dist/esm/wkt/any.d.ts +7 -7
- package/dist/esm/wkt/any.js +6 -6
- package/dist/esm/wkt/gen/google/protobuf/any_pb.d.ts +9 -3
- package/dist/esm/wkt/gen/google/protobuf/any_pb.js +3 -3
- package/dist/esm/wkt/gen/google/protobuf/api_pb.d.ts +88 -9
- package/dist/esm/wkt/gen/google/protobuf/api_pb.js +9 -9
- package/dist/esm/wkt/gen/google/protobuf/compiler/plugin_pb.d.ts +107 -11
- package/dist/esm/wkt/gen/google/protobuf/compiler/plugin_pb.js +11 -11
- package/dist/esm/wkt/gen/google/protobuf/descriptor_pb.d.ts +1005 -92
- package/dist/esm/wkt/gen/google/protobuf/descriptor_pb.js +84 -84
- package/dist/esm/wkt/gen/google/protobuf/duration_pb.d.ts +7 -3
- package/dist/esm/wkt/gen/google/protobuf/duration_pb.js +3 -3
- package/dist/esm/wkt/gen/google/protobuf/empty_pb.d.ts +7 -3
- package/dist/esm/wkt/gen/google/protobuf/empty_pb.js +3 -3
- package/dist/esm/wkt/gen/google/protobuf/field_mask_pb.d.ts +7 -3
- package/dist/esm/wkt/gen/google/protobuf/field_mask_pb.js +3 -3
- package/dist/esm/wkt/gen/google/protobuf/source_context_pb.d.ts +12 -3
- package/dist/esm/wkt/gen/google/protobuf/source_context_pb.js +3 -3
- package/dist/esm/wkt/gen/google/protobuf/struct_pb.d.ts +25 -8
- package/dist/esm/wkt/gen/google/protobuf/struct_pb.js +8 -8
- package/dist/esm/wkt/gen/google/protobuf/timestamp_pb.d.ts +7 -3
- package/dist/esm/wkt/gen/google/protobuf/timestamp_pb.js +3 -3
- package/dist/esm/wkt/gen/google/protobuf/type_pb.d.ts +165 -16
- package/dist/esm/wkt/gen/google/protobuf/type_pb.js +16 -16
- package/dist/esm/wkt/gen/google/protobuf/wrappers_pb.d.ts +55 -19
- package/dist/esm/wkt/gen/google/protobuf/wrappers_pb.js +19 -19
- package/dist/esm/wkt/timestamp.js +2 -3
- package/package.json +2 -2
|
@@ -137,19 +137,3 @@ field) {
|
|
|
137
137
|
}
|
|
138
138
|
}
|
|
139
139
|
}
|
|
140
|
-
/**
|
|
141
|
-
* Add an item to a list field.
|
|
142
|
-
*
|
|
143
|
-
* @private
|
|
144
|
-
*/
|
|
145
|
-
export function unsafeAddListItem(target, field, value) {
|
|
146
|
-
target[field.localName].push(value);
|
|
147
|
-
}
|
|
148
|
-
/**
|
|
149
|
-
* Set a map entry.
|
|
150
|
-
*
|
|
151
|
-
* @private
|
|
152
|
-
*/
|
|
153
|
-
export function unsafeSetMapEntry(target, field, key, value) {
|
|
154
|
-
target[field.localName][key] = value;
|
|
155
|
-
}
|
package/dist/esm/registry.d.ts
CHANGED
|
@@ -39,8 +39,20 @@ export interface Registry {
|
|
|
39
39
|
getService(typeName: string): DescService | undefined;
|
|
40
40
|
}
|
|
41
41
|
/**
|
|
42
|
-
* A
|
|
43
|
-
|
|
42
|
+
* A registry that allows adding and removing descriptors.
|
|
43
|
+
*/
|
|
44
|
+
export interface MutableRegistry extends Registry {
|
|
45
|
+
/**
|
|
46
|
+
* Adds the given descriptor - but not types nested within - to the registry.
|
|
47
|
+
*/
|
|
48
|
+
add(desc: DescMessage | DescEnum | DescExtension | DescService): void;
|
|
49
|
+
/**
|
|
50
|
+
* Remove the given descriptor - but not types nested within - from the registry.
|
|
51
|
+
*/
|
|
52
|
+
remove(desc: DescMessage | DescEnum | DescExtension | DescService): void;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* A registry that includes files.
|
|
44
56
|
*/
|
|
45
57
|
export interface FileRegistry extends Registry {
|
|
46
58
|
/**
|
|
@@ -64,6 +76,10 @@ export interface FileRegistry extends Registry {
|
|
|
64
76
|
* For duplicate descriptors (same type name), the one given last wins.
|
|
65
77
|
*/
|
|
66
78
|
export declare function createRegistry(...input: (Registry | DescFile | DescMessage | DescEnum | DescExtension | DescService)[]): Registry;
|
|
79
|
+
/**
|
|
80
|
+
* Create a registry that allows adding and removing descriptors.
|
|
81
|
+
*/
|
|
82
|
+
export declare function createMutableRegistry(...input: (Registry | DescFile | DescMessage | DescEnum | DescExtension | DescService)[]): MutableRegistry;
|
|
67
83
|
/**
|
|
68
84
|
* Create a registry (including file descriptors) from a google.protobuf.FileDescriptorSet
|
|
69
85
|
* message.
|
package/dist/esm/registry.js
CHANGED
|
@@ -28,28 +28,23 @@ import { protoCamelCase, safeObjectProperty } from "./reflect/names.js";
|
|
|
28
28
|
* For duplicate descriptors (same type name), the one given last wins.
|
|
29
29
|
*/
|
|
30
30
|
export function createRegistry(...input) {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
reg.add(i);
|
|
46
|
-
break;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
return reg;
|
|
31
|
+
return initBaseRegistry(input);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Create a registry that allows adding and removing descriptors.
|
|
35
|
+
*/
|
|
36
|
+
export function createMutableRegistry(...input) {
|
|
37
|
+
const reg = initBaseRegistry(input);
|
|
38
|
+
return Object.assign(Object.assign({}, reg), { remove(desc) {
|
|
39
|
+
var _a;
|
|
40
|
+
if (desc.kind == "extension") {
|
|
41
|
+
(_a = reg.extendees.get(desc.extendee.typeName)) === null || _a === void 0 ? void 0 : _a.delete(desc.number);
|
|
42
|
+
}
|
|
43
|
+
reg.types.delete(desc.typeName);
|
|
44
|
+
} });
|
|
50
45
|
}
|
|
51
46
|
export function createFileRegistry(...args) {
|
|
52
|
-
const registry =
|
|
47
|
+
const registry = createBaseRegistry();
|
|
53
48
|
if ("$typeName" in args[0] &&
|
|
54
49
|
args[0].$typeName == "google.protobuf.FileDescriptorSet") {
|
|
55
50
|
for (const file of args[0].file) {
|
|
@@ -76,7 +71,7 @@ export function createFileRegistry(...args) {
|
|
|
76
71
|
throw new Error(`Unable to resolve ${protoFileName}, imported by ${file.name}`);
|
|
77
72
|
}
|
|
78
73
|
if ("kind" in dep) {
|
|
79
|
-
|
|
74
|
+
registry.addFile(dep, false, true);
|
|
80
75
|
}
|
|
81
76
|
else {
|
|
82
77
|
seen.add(dep.name);
|
|
@@ -92,57 +87,53 @@ export function createFileRegistry(...args) {
|
|
|
92
87
|
else {
|
|
93
88
|
for (const fileReg of args) {
|
|
94
89
|
for (const file of fileReg.files) {
|
|
95
|
-
registry.
|
|
96
|
-
for (const type of nestedTypes(file)) {
|
|
97
|
-
registry.add(type);
|
|
98
|
-
}
|
|
90
|
+
registry.addFile(file);
|
|
99
91
|
}
|
|
100
92
|
}
|
|
101
93
|
}
|
|
102
94
|
return registry;
|
|
103
95
|
}
|
|
104
96
|
/**
|
|
105
|
-
* Create a mutable file registry.
|
|
106
97
|
* @private
|
|
107
98
|
*/
|
|
108
|
-
function
|
|
99
|
+
function createBaseRegistry() {
|
|
109
100
|
const types = new Map();
|
|
110
101
|
const extendees = new Map();
|
|
111
102
|
const files = new Map();
|
|
112
103
|
return {
|
|
113
104
|
kind: "registry",
|
|
105
|
+
types,
|
|
106
|
+
extendees,
|
|
114
107
|
[Symbol.iterator]() {
|
|
115
108
|
return types.values();
|
|
116
109
|
},
|
|
117
110
|
get files() {
|
|
118
111
|
return files.values();
|
|
119
112
|
},
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
// eslint-disable-next-line no-fallthrough
|
|
134
|
-
default:
|
|
135
|
-
types.set(desc.typeName, desc);
|
|
113
|
+
addFile(file, skipTypes, withDeps) {
|
|
114
|
+
files.set(file.proto.name, file);
|
|
115
|
+
// eslint-disable-next-line @typescript-eslint/strict-boolean-expressions
|
|
116
|
+
if (!skipTypes) {
|
|
117
|
+
for (const type of nestedTypes(file)) {
|
|
118
|
+
this.add(type);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
// eslint-disable-next-line @typescript-eslint/strict-boolean-expressions
|
|
122
|
+
if (withDeps) {
|
|
123
|
+
for (const f of file.dependencies) {
|
|
124
|
+
this.addFile(f, skipTypes, withDeps);
|
|
125
|
+
}
|
|
136
126
|
}
|
|
137
127
|
},
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
128
|
+
add(desc) {
|
|
129
|
+
if (desc.kind == "extension") {
|
|
130
|
+
let numberToExt = extendees.get(desc.extendee.typeName);
|
|
131
|
+
if (!numberToExt) {
|
|
132
|
+
extendees.set(desc.extendee.typeName, (numberToExt = new Map()));
|
|
133
|
+
}
|
|
134
|
+
numberToExt.set(desc.number, desc);
|
|
145
135
|
}
|
|
136
|
+
types.set(desc.typeName, desc);
|
|
146
137
|
},
|
|
147
138
|
get(typeName) {
|
|
148
139
|
return types.get(typeName);
|
|
@@ -173,16 +164,26 @@ function createMutableRegistry() {
|
|
|
173
164
|
};
|
|
174
165
|
}
|
|
175
166
|
/**
|
|
176
|
-
*
|
|
167
|
+
* @private
|
|
177
168
|
*/
|
|
178
|
-
function
|
|
179
|
-
|
|
180
|
-
for (const
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
169
|
+
function initBaseRegistry(inputs) {
|
|
170
|
+
const registry = createBaseRegistry();
|
|
171
|
+
for (const input of inputs) {
|
|
172
|
+
switch (input.kind) {
|
|
173
|
+
case "registry":
|
|
174
|
+
for (const n of input) {
|
|
175
|
+
registry.add(n);
|
|
176
|
+
}
|
|
177
|
+
break;
|
|
178
|
+
case "file":
|
|
179
|
+
registry.addFile(input);
|
|
180
|
+
break;
|
|
181
|
+
default:
|
|
182
|
+
registry.add(input);
|
|
183
|
+
break;
|
|
184
|
+
}
|
|
185
185
|
}
|
|
186
|
+
return registry;
|
|
186
187
|
}
|
|
187
188
|
// bootstrap-inject google.protobuf.Edition.EDITION_PROTO2: const $name: Edition.$localName = $number;
|
|
188
189
|
const EDITION_PROTO2 = 998;
|
|
@@ -301,7 +302,7 @@ function addFile(proto, reg) {
|
|
|
301
302
|
addFields(message, reg, mapEntries);
|
|
302
303
|
addExtensions(message, reg);
|
|
303
304
|
}
|
|
304
|
-
reg.
|
|
305
|
+
reg.addFile(file, true);
|
|
305
306
|
}
|
|
306
307
|
/**
|
|
307
308
|
* Create descriptors for extensions, and add them to the message / file,
|
package/dist/esm/to-binary.d.ts
CHANGED
|
@@ -17,7 +17,7 @@ export interface BinaryWriteOptions {
|
|
|
17
17
|
*/
|
|
18
18
|
writeUnknownFields: boolean;
|
|
19
19
|
}
|
|
20
|
-
export declare function toBinary<Desc extends DescMessage>(
|
|
20
|
+
export declare function toBinary<Desc extends DescMessage>(schema: Desc, message: MessageShape<Desc>, options?: Partial<BinaryWriteOptions>): Uint8Array;
|
|
21
21
|
/**
|
|
22
22
|
* @private
|
|
23
23
|
*/
|
package/dist/esm/to-binary.js
CHANGED
|
@@ -23,8 +23,8 @@ const writeDefaults = {
|
|
|
23
23
|
function makeWriteOptions(options) {
|
|
24
24
|
return options ? Object.assign(Object.assign({}, writeDefaults), options) : writeDefaults;
|
|
25
25
|
}
|
|
26
|
-
export function toBinary(
|
|
27
|
-
return writeFields(new BinaryWriter(), makeWriteOptions(options), reflect(
|
|
26
|
+
export function toBinary(schema, message, options) {
|
|
27
|
+
return writeFields(new BinaryWriter(), makeWriteOptions(options), reflect(schema, message)).finish();
|
|
28
28
|
}
|
|
29
29
|
function writeFields(writer, opts, msg) {
|
|
30
30
|
var _a;
|
package/dist/esm/to-json.d.ts
CHANGED
|
@@ -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, MessageJsonType, MessageShape } from "./types.js";
|
|
5
5
|
/**
|
|
6
6
|
* Options for serializing to JSON.
|
|
7
7
|
*/
|
|
@@ -44,8 +44,18 @@ export interface JsonWriteStringOptions extends JsonWriteOptions {
|
|
|
44
44
|
* Serialize the message to a JSON value, a JavaScript value that can be
|
|
45
45
|
* passed to JSON.stringify().
|
|
46
46
|
*/
|
|
47
|
-
export declare function toJson<Desc extends DescMessage>(
|
|
47
|
+
export declare function toJson<Desc extends DescMessage, Opts extends Partial<JsonWriteOptions> | undefined = undefined>(schema: Desc, message: MessageShape<Desc>, options?: Opts): ToJson<Desc, Opts>;
|
|
48
|
+
type ToJson<Desc extends DescMessage, Opts extends undefined | Partial<JsonWriteOptions>> = Opts extends undefined | {
|
|
49
|
+
alwaysEmitImplicit?: false;
|
|
50
|
+
enumAsInteger?: false;
|
|
51
|
+
useProtoFieldName?: false;
|
|
52
|
+
} ? MessageJsonType<Desc> : JsonValue;
|
|
48
53
|
/**
|
|
49
54
|
* Serialize the message to a JSON string.
|
|
50
55
|
*/
|
|
51
|
-
export declare function toJsonString<Desc extends DescMessage>(
|
|
56
|
+
export declare function toJsonString<Desc extends DescMessage>(schema: Desc, message: MessageShape<Desc>, options?: Partial<JsonWriteStringOptions>): string;
|
|
57
|
+
/**
|
|
58
|
+
* Serialize a single enum value to JSON.
|
|
59
|
+
*/
|
|
60
|
+
export declare function enumToJson<Desc extends DescEnum>(descEnum: Desc, value: EnumShape<Desc>): EnumJsonType<Desc>;
|
|
61
|
+
export {};
|
package/dist/esm/to-json.js
CHANGED
|
@@ -37,17 +37,31 @@ function makeWriteOptions(options) {
|
|
|
37
37
|
* Serialize the message to a JSON value, a JavaScript value that can be
|
|
38
38
|
* passed to JSON.stringify().
|
|
39
39
|
*/
|
|
40
|
-
export function toJson(
|
|
41
|
-
return reflectToJson(reflect(
|
|
40
|
+
export function toJson(schema, message, options) {
|
|
41
|
+
return reflectToJson(reflect(schema, message), makeWriteOptions(options));
|
|
42
42
|
}
|
|
43
43
|
/**
|
|
44
44
|
* Serialize the message to a JSON string.
|
|
45
45
|
*/
|
|
46
|
-
export function toJsonString(
|
|
46
|
+
export function toJsonString(schema, message, options) {
|
|
47
47
|
var _a;
|
|
48
|
-
const jsonValue = toJson(
|
|
48
|
+
const jsonValue = toJson(schema, message, options);
|
|
49
49
|
return JSON.stringify(jsonValue, null, (_a = options === null || options === void 0 ? void 0 : options.prettySpaces) !== null && _a !== void 0 ? _a : 0);
|
|
50
50
|
}
|
|
51
|
+
/**
|
|
52
|
+
* Serialize a single enum value to JSON.
|
|
53
|
+
*/
|
|
54
|
+
export function enumToJson(descEnum, value) {
|
|
55
|
+
var _a;
|
|
56
|
+
if (descEnum.typeName == "google.protobuf.NullValue") {
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
const name = (_a = descEnum.values.find((v) => v.number === value)) === null || _a === void 0 ? void 0 : _a.name;
|
|
60
|
+
if (name === undefined) {
|
|
61
|
+
throw new Error(`${String(value)} is not a value in ${descEnum.toString()}`);
|
|
62
|
+
}
|
|
63
|
+
return name;
|
|
64
|
+
}
|
|
51
65
|
function reflectToJson(msg, opts) {
|
|
52
66
|
var _a;
|
|
53
67
|
const wktJson = tryWktToJson(msg, opts);
|
|
@@ -98,7 +112,7 @@ function fieldToJson(f, val, opts) {
|
|
|
98
112
|
case "message":
|
|
99
113
|
return reflectToJson(val, opts);
|
|
100
114
|
case "enum":
|
|
101
|
-
return
|
|
115
|
+
return enumToJsonInternal(f.enum, val, opts.enumAsInteger);
|
|
102
116
|
case "list":
|
|
103
117
|
return listToJson(val, opts);
|
|
104
118
|
case "map":
|
|
@@ -111,19 +125,17 @@ function mapToJson(map, opts) {
|
|
|
111
125
|
switch (f.mapKind) {
|
|
112
126
|
case "scalar":
|
|
113
127
|
for (const [entryKey, entryValue] of map) {
|
|
114
|
-
jsonObj[entryKey
|
|
128
|
+
jsonObj[entryKey] = scalarToJson(f, entryValue);
|
|
115
129
|
}
|
|
116
130
|
break;
|
|
117
131
|
case "message":
|
|
118
132
|
for (const [entryKey, entryValue] of map) {
|
|
119
|
-
|
|
120
|
-
jsonObj[entryKey.toString()] = reflectToJson(entryValue, opts);
|
|
133
|
+
jsonObj[entryKey] = reflectToJson(entryValue, opts);
|
|
121
134
|
}
|
|
122
135
|
break;
|
|
123
136
|
case "enum":
|
|
124
137
|
for (const [entryKey, entryValue] of map) {
|
|
125
|
-
|
|
126
|
-
jsonObj[entryKey.toString()] = enumToJson(f.enum, entryValue, opts.enumAsInteger);
|
|
138
|
+
jsonObj[entryKey] = enumToJsonInternal(f.enum, entryValue, opts.enumAsInteger);
|
|
127
139
|
}
|
|
128
140
|
break;
|
|
129
141
|
}
|
|
@@ -140,7 +152,7 @@ function listToJson(list, opts) {
|
|
|
140
152
|
break;
|
|
141
153
|
case "enum":
|
|
142
154
|
for (const item of list) {
|
|
143
|
-
jsonArr.push(
|
|
155
|
+
jsonArr.push(enumToJsonInternal(f.enum, item, opts.enumAsInteger));
|
|
144
156
|
}
|
|
145
157
|
break;
|
|
146
158
|
case "message":
|
|
@@ -151,7 +163,7 @@ function listToJson(list, opts) {
|
|
|
151
163
|
}
|
|
152
164
|
return opts.alwaysEmitImplicit || jsonArr.length > 0 ? jsonArr : undefined;
|
|
153
165
|
}
|
|
154
|
-
function
|
|
166
|
+
function enumToJsonInternal(desc, value, enumAsInteger) {
|
|
155
167
|
var _a;
|
|
156
168
|
if (typeof value != "number") {
|
|
157
169
|
throw new Error(`cannot encode ${desc} to JSON: expected number, got ${formatVal(value)}`);
|
package/dist/esm/types.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import type { GenDescEnum, GenDescExtension, GenDescMessage } from "./codegenv1/
|
|
|
2
2
|
import type { DescEnum, DescExtension, DescMessage } from "./descriptors.js";
|
|
3
3
|
import type { OneofADT } from "./reflect/guard.js";
|
|
4
4
|
import type { WireType } from "./wire/index.js";
|
|
5
|
+
import type { JsonValue } from "./json-value.js";
|
|
5
6
|
/**
|
|
6
7
|
* The type `Message` contains the properties shared by all messages.
|
|
7
8
|
*/
|
|
@@ -19,6 +20,10 @@ export type Message<TypeName extends string = string> = {
|
|
|
19
20
|
* Extract the message type from a message descriptor.
|
|
20
21
|
*/
|
|
21
22
|
export type MessageShape<Desc extends DescMessage> = Desc extends GenDescMessage<infer RuntimeShape> ? RuntimeShape : Message;
|
|
23
|
+
/**
|
|
24
|
+
* Extract the message JSON type from a message descriptor.
|
|
25
|
+
*/
|
|
26
|
+
export type MessageJsonType<Desc extends DescMessage> = Desc extends GenDescMessage<Message, infer JsonType> ? JsonType : JsonValue;
|
|
22
27
|
/**
|
|
23
28
|
* Extract the init type from a message descriptor.
|
|
24
29
|
* The init type is accepted by the function create().
|
|
@@ -28,6 +33,10 @@ export type MessageInitShape<Desc extends DescMessage> = Desc extends GenDescMes
|
|
|
28
33
|
* Extract the enum type of from an enum descriptor.
|
|
29
34
|
*/
|
|
30
35
|
export type EnumShape<Desc extends DescEnum> = Desc extends GenDescEnum<infer RuntimeShape> ? RuntimeShape : number;
|
|
36
|
+
/**
|
|
37
|
+
* Extract the enum JSON type from a enum descriptor.
|
|
38
|
+
*/
|
|
39
|
+
export type EnumJsonType<Desc extends DescEnum> = Desc extends GenDescEnum<unknown, infer JsonType> ? JsonType : string | null;
|
|
31
40
|
/**
|
|
32
41
|
* Extract the value type from an extension descriptor.
|
|
33
42
|
*/
|
|
@@ -457,29 +457,50 @@ export class BinaryReader {
|
|
|
457
457
|
}
|
|
458
458
|
}
|
|
459
459
|
/**
|
|
460
|
-
* Assert a valid signed protobuf 32-bit integer.
|
|
460
|
+
* Assert a valid signed protobuf 32-bit integer as a number or string.
|
|
461
461
|
*/
|
|
462
462
|
function assertInt32(arg) {
|
|
463
|
-
if (typeof arg
|
|
463
|
+
if (typeof arg == "string") {
|
|
464
|
+
arg = Number(arg);
|
|
465
|
+
}
|
|
466
|
+
else if (typeof arg != "number") {
|
|
464
467
|
throw new Error("invalid int32: " + typeof arg);
|
|
465
|
-
|
|
468
|
+
}
|
|
469
|
+
if (!Number.isInteger(arg) ||
|
|
470
|
+
arg > INT32_MAX ||
|
|
471
|
+
arg < INT32_MIN)
|
|
466
472
|
throw new Error("invalid int32: " + arg);
|
|
467
473
|
}
|
|
468
474
|
/**
|
|
469
|
-
* Assert a valid unsigned protobuf 32-bit integer.
|
|
475
|
+
* Assert a valid unsigned protobuf 32-bit integer as a number or string.
|
|
470
476
|
*/
|
|
471
477
|
function assertUInt32(arg) {
|
|
472
|
-
if (typeof arg
|
|
478
|
+
if (typeof arg == "string") {
|
|
479
|
+
arg = Number(arg);
|
|
480
|
+
}
|
|
481
|
+
else if (typeof arg != "number") {
|
|
473
482
|
throw new Error("invalid uint32: " + typeof arg);
|
|
474
|
-
|
|
483
|
+
}
|
|
484
|
+
if (!Number.isInteger(arg) ||
|
|
485
|
+
arg > UINT32_MAX ||
|
|
486
|
+
arg < 0)
|
|
475
487
|
throw new Error("invalid uint32: " + arg);
|
|
476
488
|
}
|
|
477
489
|
/**
|
|
478
|
-
* Assert a valid protobuf float value.
|
|
490
|
+
* Assert a valid protobuf float value as a number or string.
|
|
479
491
|
*/
|
|
480
492
|
function assertFloat32(arg) {
|
|
481
|
-
if (typeof arg
|
|
493
|
+
if (typeof arg == "string") {
|
|
494
|
+
const o = arg;
|
|
495
|
+
arg = Number(arg);
|
|
496
|
+
if (isNaN(arg) && o !== "NaN") {
|
|
497
|
+
throw new Error("invalid float32: " + o);
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
else if (typeof arg != "number") {
|
|
482
501
|
throw new Error("invalid float32: " + typeof arg);
|
|
483
|
-
|
|
502
|
+
}
|
|
503
|
+
if (Number.isFinite(arg) &&
|
|
504
|
+
(arg > FLOAT32_MAX || arg < FLOAT32_MIN))
|
|
484
505
|
throw new Error("invalid float32: " + arg);
|
|
485
506
|
}
|
package/dist/esm/wkt/any.d.ts
CHANGED
|
@@ -5,15 +5,15 @@ import type { Registry } from "../registry.js";
|
|
|
5
5
|
/**
|
|
6
6
|
* Creates a `google.protobuf.Any` from a message.
|
|
7
7
|
*/
|
|
8
|
-
export declare function anyPack<Desc extends DescMessage>(
|
|
8
|
+
export declare function anyPack<Desc extends DescMessage>(schema: Desc, message: MessageShape<Desc>): Any;
|
|
9
9
|
/**
|
|
10
10
|
* Packs the message into the given any.
|
|
11
11
|
*/
|
|
12
|
-
export declare function anyPack<Desc extends DescMessage>(
|
|
12
|
+
export declare function anyPack<Desc extends DescMessage>(schema: Desc, message: MessageShape<Desc>, into: Any): void;
|
|
13
13
|
/**
|
|
14
|
-
* Returns true if the Any contains the type given by
|
|
14
|
+
* Returns true if the Any contains the type given by schema.
|
|
15
15
|
*/
|
|
16
|
-
export declare function anyIs(any: Any,
|
|
16
|
+
export declare function anyIs(any: Any, schema: DescMessage): boolean;
|
|
17
17
|
/**
|
|
18
18
|
* Returns true if the Any contains a message with the given typeName.
|
|
19
19
|
*/
|
|
@@ -29,10 +29,10 @@ export declare function anyUnpack(any: Any, registry: Registry): Message | undef
|
|
|
29
29
|
* Unpacks the message the Any represents.
|
|
30
30
|
*
|
|
31
31
|
* Returns undefined if the Any is empty, or if it does not contain the type
|
|
32
|
-
* given by
|
|
32
|
+
* given by schema.
|
|
33
33
|
*/
|
|
34
|
-
export declare function anyUnpack<Desc extends DescMessage>(any: Any,
|
|
34
|
+
export declare function anyUnpack<Desc extends DescMessage>(any: Any, schema: Desc): MessageShape<Desc> | undefined;
|
|
35
35
|
/**
|
|
36
36
|
* Same as anyUnpack but unpacks into the target message.
|
|
37
37
|
*/
|
|
38
|
-
export declare function anyUnpackTo<Desc extends DescMessage>(any: Any,
|
|
38
|
+
export declare function anyUnpackTo<Desc extends DescMessage>(any: Any, schema: Desc, message: MessageShape<Desc>): MessageShape<Desc> | undefined;
|
package/dist/esm/wkt/any.js
CHANGED
|
@@ -11,17 +11,17 @@
|
|
|
11
11
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
12
|
// See the License for the specific language governing permissions and
|
|
13
13
|
// limitations under the License.
|
|
14
|
-
import {
|
|
14
|
+
import { AnySchema } from "./gen/google/protobuf/any_pb.js";
|
|
15
15
|
import { create } from "../create.js";
|
|
16
16
|
import { toBinary } from "../to-binary.js";
|
|
17
17
|
import { fromBinary, mergeFromBinary } from "../from-binary.js";
|
|
18
|
-
export function anyPack(
|
|
18
|
+
export function anyPack(schema, message, into) {
|
|
19
19
|
let ret = false;
|
|
20
20
|
if (!into) {
|
|
21
|
-
into = create(
|
|
21
|
+
into = create(AnySchema);
|
|
22
22
|
ret = true;
|
|
23
23
|
}
|
|
24
|
-
into.value = toBinary(
|
|
24
|
+
into.value = toBinary(schema, message);
|
|
25
25
|
into.typeUrl = typeNameToUrl(message.$typeName);
|
|
26
26
|
return ret ? into : undefined;
|
|
27
27
|
}
|
|
@@ -50,11 +50,11 @@ export function anyUnpack(any, registryOrMessageDesc) {
|
|
|
50
50
|
/**
|
|
51
51
|
* Same as anyUnpack but unpacks into the target message.
|
|
52
52
|
*/
|
|
53
|
-
export function anyUnpackTo(any,
|
|
53
|
+
export function anyUnpackTo(any, schema, message) {
|
|
54
54
|
if (any.typeUrl === "") {
|
|
55
55
|
return undefined;
|
|
56
56
|
}
|
|
57
|
-
return mergeFromBinary(
|
|
57
|
+
return mergeFromBinary(schema, message, any.value);
|
|
58
58
|
}
|
|
59
59
|
function typeNameToUrl(name) {
|
|
60
60
|
return `type.googleapis.com/${name}`;
|
|
@@ -3,7 +3,7 @@ import type { Message } from "../../../../types.js";
|
|
|
3
3
|
/**
|
|
4
4
|
* Describes the file google/protobuf/any.proto.
|
|
5
5
|
*/
|
|
6
|
-
export declare const
|
|
6
|
+
export declare const file_google_protobuf_any: GenDescFile;
|
|
7
7
|
/**
|
|
8
8
|
* `Any` contains an arbitrary serialized protocol buffer message along with a
|
|
9
9
|
* URL that describes the type of the serialized message.
|
|
@@ -136,8 +136,14 @@ export type Any = Message<"google.protobuf.Any"> & {
|
|
|
136
136
|
*/
|
|
137
137
|
value: Uint8Array;
|
|
138
138
|
};
|
|
139
|
+
/**
|
|
140
|
+
* JSON type for the message google.protobuf.Any.
|
|
141
|
+
*/
|
|
142
|
+
export type AnyJson = {
|
|
143
|
+
"@type"?: string;
|
|
144
|
+
};
|
|
139
145
|
/**
|
|
140
146
|
* Describes the message google.protobuf.Any.
|
|
141
|
-
* Use `create(
|
|
147
|
+
* Use `create(AnySchema)` to create a new message.
|
|
142
148
|
*/
|
|
143
|
-
export declare const
|
|
149
|
+
export declare const AnySchema: GenDescMessage<Any, AnyJson>;
|
|
@@ -16,9 +16,9 @@ import { messageDesc } from "../../../../codegenv1/message.js";
|
|
|
16
16
|
/**
|
|
17
17
|
* Describes the file google/protobuf/any.proto.
|
|
18
18
|
*/
|
|
19
|
-
export const
|
|
19
|
+
export const file_google_protobuf_any = /*@__PURE__*/ fileDesc("Chlnb29nbGUvcHJvdG9idWYvYW55LnByb3RvEg9nb29nbGUucHJvdG9idWYiJgoDQW55EhAKCHR5cGVfdXJsGAEgASgJEg0KBXZhbHVlGAIgASgMQnYKE2NvbS5nb29nbGUucHJvdG9idWZCCEFueVByb3RvUAFaLGdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL2FueXBiogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzYgZwcm90bzM");
|
|
20
20
|
/**
|
|
21
21
|
* Describes the message google.protobuf.Any.
|
|
22
|
-
* Use `create(
|
|
22
|
+
* Use `create(AnySchema)` to create a new message.
|
|
23
23
|
*/
|
|
24
|
-
export const
|
|
24
|
+
export const AnySchema = /*@__PURE__*/ messageDesc(file_google_protobuf_any, 0);
|