protons 4.0.1 → 5.0.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/dist/bin/protons.js +0 -0
- package/dist/src/index.d.ts +8 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +183 -28
- package/dist/src/index.js.map +1 -1
- package/package.json +7 -4
- package/src/index.ts +202 -31
package/dist/bin/protons.js
CHANGED
|
File without changes
|
package/dist/src/index.d.ts
CHANGED
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAKA,oBAAY,WAAW;IACrB,MAAM,IAAI;IACV,KAAK,IAAA;IACL,gBAAgB,IAAA;IAChB,WAAW,IAAA;IACX,SAAS,IAAA;IACT,KAAK,IAAA;CACN;AA+bD,UAAU,KAAK;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,wBAAsB,QAAQ,CAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,iBAsC3D"}
|
package/dist/src/index.js
CHANGED
|
@@ -1,27 +1,72 @@
|
|
|
1
|
-
import { main as pbjs } from 'protobufjs
|
|
1
|
+
import { main as pbjs } from 'protobufjs-cli/pbjs.js';
|
|
2
2
|
import path from 'path';
|
|
3
3
|
import { promisify } from 'util';
|
|
4
4
|
import fs from 'fs/promises';
|
|
5
|
+
export var CODEC_TYPES;
|
|
6
|
+
(function (CODEC_TYPES) {
|
|
7
|
+
CODEC_TYPES[CODEC_TYPES["VARINT"] = 0] = "VARINT";
|
|
8
|
+
CODEC_TYPES[CODEC_TYPES["BIT64"] = 1] = "BIT64";
|
|
9
|
+
CODEC_TYPES[CODEC_TYPES["LENGTH_DELIMITED"] = 2] = "LENGTH_DELIMITED";
|
|
10
|
+
CODEC_TYPES[CODEC_TYPES["START_GROUP"] = 3] = "START_GROUP";
|
|
11
|
+
CODEC_TYPES[CODEC_TYPES["END_GROUP"] = 4] = "END_GROUP";
|
|
12
|
+
CODEC_TYPES[CODEC_TYPES["BIT32"] = 5] = "BIT32";
|
|
13
|
+
})(CODEC_TYPES || (CODEC_TYPES = {}));
|
|
5
14
|
function pathWithExtension(input, extension, outputDir) {
|
|
6
15
|
const output = outputDir ?? path.dirname(input);
|
|
7
16
|
return path.join(output, path.basename(input).split('.').slice(0, -1).join('.') + extension);
|
|
8
17
|
}
|
|
9
18
|
const types = {
|
|
19
|
+
bool: 'boolean',
|
|
20
|
+
bytes: 'Uint8Array',
|
|
10
21
|
double: 'number',
|
|
22
|
+
fixed32: 'number',
|
|
23
|
+
fixed64: 'bigint',
|
|
11
24
|
float: 'number',
|
|
12
25
|
int32: 'number',
|
|
13
26
|
int64: 'bigint',
|
|
14
|
-
uint32: 'number',
|
|
15
|
-
uint64: 'bigint',
|
|
16
|
-
sint32: 'number',
|
|
17
|
-
sint64: 'bigint',
|
|
18
|
-
fixed32: 'number',
|
|
19
|
-
fixed64: 'bigint',
|
|
20
27
|
sfixed32: 'number',
|
|
21
28
|
sfixed64: 'bigint',
|
|
22
|
-
|
|
29
|
+
sint32: 'number',
|
|
30
|
+
sint64: 'bigint',
|
|
23
31
|
string: 'string',
|
|
24
|
-
|
|
32
|
+
uint32: 'number',
|
|
33
|
+
uint64: 'bigint'
|
|
34
|
+
};
|
|
35
|
+
const encoderGenerators = {
|
|
36
|
+
bool: (val) => `writer.bool(${val})`,
|
|
37
|
+
bytes: (val) => `writer.bytes(${val})`,
|
|
38
|
+
double: (val) => `writer.double(${val})`,
|
|
39
|
+
// enumeration: (val) => `writer.double(${val})`,
|
|
40
|
+
fixed32: (val) => `writer.fixed32(${val})`,
|
|
41
|
+
fixed64: (val) => `writer.fixed64(${val})`,
|
|
42
|
+
float: (val) => `writer.float(${val})`,
|
|
43
|
+
int32: (val) => `writer.int32(${val})`,
|
|
44
|
+
int64: (val) => `writer.int64(${val})`,
|
|
45
|
+
sfixed32: (val) => `writer.sfixed32(${val})`,
|
|
46
|
+
sfixed64: (val) => `writer.sfixed64(${val})`,
|
|
47
|
+
sint32: (val) => `writer.sint32(${val})`,
|
|
48
|
+
sint64: (val) => `writer.sint64(${val})`,
|
|
49
|
+
string: (val) => `writer.string(${val})`,
|
|
50
|
+
uint32: (val) => `writer.uint32(${val})`,
|
|
51
|
+
uint64: (val) => `writer.uint64(${val})`
|
|
52
|
+
};
|
|
53
|
+
const decoderGenerators = {
|
|
54
|
+
bool: () => 'reader.bool()',
|
|
55
|
+
bytes: () => 'reader.bytes()',
|
|
56
|
+
double: () => 'reader.double()',
|
|
57
|
+
// enumeration: () => `writer.double(${val})`,
|
|
58
|
+
fixed32: () => 'reader.fixed32()',
|
|
59
|
+
fixed64: () => 'reader.fixed64()',
|
|
60
|
+
float: () => 'reader.float()',
|
|
61
|
+
int32: () => 'reader.int32()',
|
|
62
|
+
int64: () => 'reader.int64()',
|
|
63
|
+
sfixed32: () => 'reader.sfixed32()',
|
|
64
|
+
sfixed64: () => 'reader.sfixed64()',
|
|
65
|
+
sint32: () => 'reader.sint32()',
|
|
66
|
+
sint64: () => 'reader.sint64()',
|
|
67
|
+
string: () => 'reader.string()',
|
|
68
|
+
uint32: () => 'reader.uint32()',
|
|
69
|
+
uint64: () => 'reader.uint64()'
|
|
25
70
|
};
|
|
26
71
|
function findTypeName(typeName, classDef, moduleDef) {
|
|
27
72
|
if (types[typeName] != null) {
|
|
@@ -58,29 +103,46 @@ function findDef(typeName, classDef, moduleDef) {
|
|
|
58
103
|
}
|
|
59
104
|
const encoders = {
|
|
60
105
|
bool: 'bool',
|
|
61
|
-
double: 'double',
|
|
62
106
|
bytes: 'bytes',
|
|
107
|
+
double: 'double',
|
|
63
108
|
fixed32: 'fixed32',
|
|
64
109
|
fixed64: 'fixed64',
|
|
65
110
|
float: 'float',
|
|
66
111
|
int32: 'int32',
|
|
67
112
|
int64: 'int64',
|
|
113
|
+
sfixed32: 'sfixed32',
|
|
114
|
+
sfixed64: 'sfixed64',
|
|
68
115
|
sint32: 'sint32',
|
|
69
116
|
sint64: 'sint64',
|
|
70
117
|
string: 'string',
|
|
71
118
|
uint32: 'uint32',
|
|
72
|
-
uint64: 'uint64'
|
|
73
|
-
|
|
74
|
-
|
|
119
|
+
uint64: 'uint64'
|
|
120
|
+
};
|
|
121
|
+
const codecTypes = {
|
|
122
|
+
bool: CODEC_TYPES.VARINT,
|
|
123
|
+
bytes: CODEC_TYPES.LENGTH_DELIMITED,
|
|
124
|
+
double: CODEC_TYPES.BIT64,
|
|
125
|
+
enum: CODEC_TYPES.VARINT,
|
|
126
|
+
fixed32: CODEC_TYPES.BIT32,
|
|
127
|
+
fixed64: CODEC_TYPES.BIT64,
|
|
128
|
+
float: CODEC_TYPES.BIT32,
|
|
129
|
+
int32: CODEC_TYPES.VARINT,
|
|
130
|
+
int64: CODEC_TYPES.VARINT,
|
|
131
|
+
message: CODEC_TYPES.LENGTH_DELIMITED,
|
|
132
|
+
sfixed32: CODEC_TYPES.BIT32,
|
|
133
|
+
sfixed64: CODEC_TYPES.BIT64,
|
|
134
|
+
sint32: CODEC_TYPES.VARINT,
|
|
135
|
+
sint64: CODEC_TYPES.VARINT,
|
|
136
|
+
string: CODEC_TYPES.LENGTH_DELIMITED,
|
|
137
|
+
uint32: CODEC_TYPES.VARINT,
|
|
138
|
+
uint64: CODEC_TYPES.VARINT
|
|
75
139
|
};
|
|
76
140
|
function isEnumDef(obj) {
|
|
77
141
|
return obj.values != null;
|
|
78
142
|
}
|
|
79
143
|
function defineFields(fields, messageDef, moduleDef) {
|
|
80
144
|
return Object.entries(fields).map(([fieldName, fieldDef]) => {
|
|
81
|
-
|
|
82
|
-
const isOptional = !isArray && fieldDef.options?.proto3_optional === true;
|
|
83
|
-
return `${fieldName}${isOptional ? '?' : ''}: ${findTypeName(fieldDef.type, messageDef, moduleDef)}${isArray ? '[]' : ''}`;
|
|
145
|
+
return `${fieldName}${fieldDef.optional ? '?' : ''}: ${findTypeName(fieldDef.type, messageDef, moduleDef)}${fieldDef.repeated ? '[]' : ''}`;
|
|
84
146
|
});
|
|
85
147
|
}
|
|
86
148
|
function compileMessage(messageDef, moduleDef) {
|
|
@@ -101,7 +163,7 @@ enum __${messageDef.name}Values {
|
|
|
101
163
|
|
|
102
164
|
export namespace ${messageDef.name} {
|
|
103
165
|
export const codec = () => {
|
|
104
|
-
return enumeration
|
|
166
|
+
return enumeration<${messageDef.name}>(__${messageDef.name}Values)
|
|
105
167
|
}
|
|
106
168
|
}`.trim();
|
|
107
169
|
}
|
|
@@ -133,32 +195,119 @@ export interface ${messageDef.name} {
|
|
|
133
195
|
.join('\n ')
|
|
134
196
|
.trim()}
|
|
135
197
|
}`;
|
|
198
|
+
const ensureArrayProps = Object.entries(fields)
|
|
199
|
+
.map(([name, fieldDef]) => {
|
|
200
|
+
// make sure repeated fields have an array if not set
|
|
201
|
+
if (fieldDef.rule === 'repeated') {
|
|
202
|
+
return ` obj.${name} = obj.${name} ?? []`;
|
|
203
|
+
}
|
|
204
|
+
return '';
|
|
205
|
+
}).filter(Boolean).join('\n');
|
|
206
|
+
const ensureRequiredFields = Object.entries(fields)
|
|
207
|
+
.map(([name, fieldDef]) => {
|
|
208
|
+
// make sure required fields are set
|
|
209
|
+
if (!fieldDef.optional) {
|
|
210
|
+
return `
|
|
211
|
+
if (obj.${name} == null) {
|
|
212
|
+
throw new Error('Protocol error: value for required field "${name}" was not found in protobuf')
|
|
213
|
+
}`;
|
|
214
|
+
}
|
|
215
|
+
return '';
|
|
216
|
+
}).filter(Boolean).join('\n');
|
|
136
217
|
interfaceCodecDef = `
|
|
218
|
+
let _codec: Codec<${messageDef.name}>
|
|
219
|
+
|
|
137
220
|
export const codec = (): Codec<${messageDef.name}> => {
|
|
138
|
-
|
|
139
|
-
|
|
221
|
+
if (_codec == null) {
|
|
222
|
+
_codec = message<${messageDef.name}>((obj, writer, opts = {}) => {
|
|
223
|
+
if (opts.lengthDelimited !== false) {
|
|
224
|
+
writer.fork()
|
|
225
|
+
}
|
|
226
|
+
${Object.entries(fields)
|
|
140
227
|
.map(([name, fieldDef]) => {
|
|
141
228
|
let codec = encoders[fieldDef.type];
|
|
229
|
+
let type = fieldDef.type;
|
|
142
230
|
if (codec == null) {
|
|
143
231
|
const def = findDef(fieldDef.type, messageDef, moduleDef);
|
|
144
232
|
if (isEnumDef(def)) {
|
|
145
233
|
moduleDef.imports.add('enumeration');
|
|
234
|
+
type = 'enum';
|
|
146
235
|
}
|
|
147
236
|
else {
|
|
148
237
|
moduleDef.imports.add('message');
|
|
238
|
+
type = 'message';
|
|
149
239
|
}
|
|
150
240
|
const typeName = findTypeName(fieldDef.type, messageDef, moduleDef);
|
|
151
241
|
codec = `${typeName}.codec()`;
|
|
152
242
|
}
|
|
153
|
-
|
|
154
|
-
|
|
243
|
+
return `
|
|
244
|
+
if (obj.${name} != null) {${fieldDef.rule === 'repeated'
|
|
245
|
+
? `
|
|
246
|
+
for (const value of obj.${name}) {
|
|
247
|
+
writer.uint32(${(fieldDef.id << 3) | codecTypes[type]})
|
|
248
|
+
${encoderGenerators[type] == null ? `${codec}.encode(value, writer)` : encoderGenerators[type]('value')}
|
|
249
|
+
}`
|
|
250
|
+
: `
|
|
251
|
+
writer.uint32(${(fieldDef.id << 3) | codecTypes[type]})
|
|
252
|
+
${encoderGenerators[type] == null ? `${codec}.encode(obj.${name}, writer)` : encoderGenerators[type](`obj.${name}`)}`}
|
|
253
|
+
}${fieldDef.optional
|
|
254
|
+
? ''
|
|
255
|
+
: ` else {
|
|
256
|
+
throw new Error('Protocol error: required field "${name}" was not found in object')
|
|
257
|
+
}`}`;
|
|
258
|
+
}).join('\n')}
|
|
259
|
+
|
|
260
|
+
if (opts.lengthDelimited !== false) {
|
|
261
|
+
writer.ldelim()
|
|
262
|
+
}
|
|
263
|
+
}, (reader, length) => {
|
|
264
|
+
const obj: any = {}
|
|
265
|
+
|
|
266
|
+
const end = length == null ? reader.len : reader.pos + length
|
|
267
|
+
|
|
268
|
+
while (reader.pos < end) {
|
|
269
|
+
const tag = reader.uint32()
|
|
270
|
+
|
|
271
|
+
switch (tag >>> 3) {
|
|
272
|
+
${Object.entries(fields)
|
|
273
|
+
.map(([name, fieldDef]) => {
|
|
274
|
+
let codec = encoders[fieldDef.type];
|
|
275
|
+
let type = fieldDef.type;
|
|
276
|
+
if (codec == null) {
|
|
277
|
+
const def = findDef(fieldDef.type, messageDef, moduleDef);
|
|
278
|
+
if (isEnumDef(def)) {
|
|
279
|
+
moduleDef.imports.add('enumeration');
|
|
280
|
+
type = 'enum';
|
|
281
|
+
}
|
|
282
|
+
else {
|
|
283
|
+
moduleDef.imports.add('message');
|
|
284
|
+
type = 'message';
|
|
285
|
+
}
|
|
286
|
+
const typeName = findTypeName(fieldDef.type, messageDef, moduleDef);
|
|
287
|
+
codec = `${typeName}.codec()`;
|
|
155
288
|
}
|
|
156
|
-
return
|
|
157
|
-
|
|
158
|
-
|
|
289
|
+
return `case ${fieldDef.id}:${fieldDef.rule === 'repeated'
|
|
290
|
+
? `
|
|
291
|
+
obj.${name} = obj.${name} ?? []
|
|
292
|
+
obj.${name}.push(${decoderGenerators[type] == null ? `${codec}.decode(reader${type === 'message' ? ', reader.uint32()' : ''})` : decoderGenerators[type]()})`
|
|
293
|
+
: `
|
|
294
|
+
obj.${name} = ${decoderGenerators[type] == null ? `${codec}.decode(reader${type === 'message' ? ', reader.uint32()' : ''})` : decoderGenerators[type]()}`}
|
|
295
|
+
break`;
|
|
296
|
+
}).join('\n ')}
|
|
297
|
+
default:
|
|
298
|
+
reader.skipType(tag & 7)
|
|
299
|
+
break
|
|
300
|
+
}
|
|
301
|
+
}${ensureArrayProps !== '' ? `\n\n${ensureArrayProps}` : ''}${ensureRequiredFields !== '' ? `\n${ensureRequiredFields}` : ''}
|
|
302
|
+
|
|
303
|
+
return obj
|
|
304
|
+
})
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
return _codec
|
|
159
308
|
}
|
|
160
309
|
|
|
161
|
-
export const encode = (obj: ${messageDef.name}):
|
|
310
|
+
export const encode = (obj: ${messageDef.name}): Uint8Array => {
|
|
162
311
|
return encodeMessage(obj, ${messageDef.name}.codec())
|
|
163
312
|
}
|
|
164
313
|
|
|
@@ -195,6 +344,12 @@ function defineModule(def) {
|
|
|
195
344
|
if (classDef.nested != null) {
|
|
196
345
|
defineMessage(classDef.nested, classDef);
|
|
197
346
|
}
|
|
347
|
+
if (classDef.fields != null) {
|
|
348
|
+
for (const name of Object.keys(classDef.fields)) {
|
|
349
|
+
classDef.fields[name].repeated = classDef.fields[name].rule === 'repeated';
|
|
350
|
+
classDef.fields[name].optional = !classDef.fields[name].repeated && classDef.fields[name].options?.proto3_optional === true;
|
|
351
|
+
}
|
|
352
|
+
}
|
|
198
353
|
if (parent == null) {
|
|
199
354
|
moduleDef.globals[className] = classDef;
|
|
200
355
|
}
|
|
@@ -223,12 +378,12 @@ export async function generate(source, flags) {
|
|
|
223
378
|
if (moduleDef.imports.size > 0) {
|
|
224
379
|
lines.push(`import { ${Array.from(moduleDef.imports).join(', ')} } from 'protons-runtime'`);
|
|
225
380
|
}
|
|
226
|
-
if (moduleDef.importedTypes.size > 0) {
|
|
227
|
-
lines.push(`import type { ${Array.from(moduleDef.importedTypes).join(', ')} } from 'protons-runtime'`);
|
|
228
|
-
}
|
|
229
381
|
if (moduleDef.imports.has('encodeMessage')) {
|
|
230
382
|
lines.push("import type { Uint8ArrayList } from 'uint8arraylist'");
|
|
231
383
|
}
|
|
384
|
+
if (moduleDef.importedTypes.size > 0) {
|
|
385
|
+
lines.push(`import type { ${Array.from(moduleDef.importedTypes).join(', ')} } from 'protons-runtime'`);
|
|
386
|
+
}
|
|
232
387
|
lines = [
|
|
233
388
|
...lines,
|
|
234
389
|
'',
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "protons",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "5.0.0",
|
|
4
4
|
"description": "Protobuf to ts transpiler",
|
|
5
5
|
"license": "Apache-2.0 OR MIT",
|
|
6
6
|
"homepage": "https://github.com/ipfs/protons/tree/master/packages/protons#readme",
|
|
@@ -154,12 +154,15 @@
|
|
|
154
154
|
},
|
|
155
155
|
"dependencies": {
|
|
156
156
|
"meow": "^10.1.2",
|
|
157
|
-
"protobufjs": "^
|
|
157
|
+
"protobufjs-cli": "^1.0.0"
|
|
158
158
|
},
|
|
159
159
|
"devDependencies": {
|
|
160
160
|
"aegir": "^37.0.5",
|
|
161
|
+
"long": "^5.2.0",
|
|
161
162
|
"pbjs": "^0.0.14",
|
|
162
|
-
"
|
|
163
|
-
"
|
|
163
|
+
"protobufjs": "^7.0.0",
|
|
164
|
+
"protons-runtime": "^3.0.0",
|
|
165
|
+
"uint8arraylist": "^2.3.2",
|
|
166
|
+
"uint8arrays": "^3.1.0"
|
|
164
167
|
}
|
|
165
168
|
}
|
package/src/index.ts
CHANGED
|
@@ -1,29 +1,76 @@
|
|
|
1
|
-
import { main as pbjs } from 'protobufjs
|
|
1
|
+
import { main as pbjs } from 'protobufjs-cli/pbjs.js'
|
|
2
2
|
import path from 'path'
|
|
3
3
|
import { promisify } from 'util'
|
|
4
4
|
import fs from 'fs/promises'
|
|
5
5
|
|
|
6
|
+
export enum CODEC_TYPES {
|
|
7
|
+
VARINT = 0,
|
|
8
|
+
BIT64,
|
|
9
|
+
LENGTH_DELIMITED,
|
|
10
|
+
START_GROUP,
|
|
11
|
+
END_GROUP,
|
|
12
|
+
BIT32
|
|
13
|
+
}
|
|
14
|
+
|
|
6
15
|
function pathWithExtension (input: string, extension: string, outputDir?: string) {
|
|
7
16
|
const output = outputDir ?? path.dirname(input)
|
|
8
17
|
return path.join(output, path.basename(input).split('.').slice(0, -1).join('.') + extension)
|
|
9
18
|
}
|
|
10
19
|
|
|
11
20
|
const types: Record<string, string> = {
|
|
21
|
+
bool: 'boolean',
|
|
22
|
+
bytes: 'Uint8Array',
|
|
12
23
|
double: 'number',
|
|
24
|
+
fixed32: 'number',
|
|
25
|
+
fixed64: 'bigint',
|
|
13
26
|
float: 'number',
|
|
14
27
|
int32: 'number',
|
|
15
28
|
int64: 'bigint',
|
|
16
|
-
uint32: 'number',
|
|
17
|
-
uint64: 'bigint',
|
|
18
|
-
sint32: 'number',
|
|
19
|
-
sint64: 'bigint',
|
|
20
|
-
fixed32: 'number',
|
|
21
|
-
fixed64: 'bigint',
|
|
22
29
|
sfixed32: 'number',
|
|
23
30
|
sfixed64: 'bigint',
|
|
24
|
-
|
|
31
|
+
sint32: 'number',
|
|
32
|
+
sint64: 'bigint',
|
|
25
33
|
string: 'string',
|
|
26
|
-
|
|
34
|
+
uint32: 'number',
|
|
35
|
+
uint64: 'bigint'
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
const encoderGenerators: Record<string, (val: string) => string> = {
|
|
39
|
+
bool: (val) => `writer.bool(${val})`,
|
|
40
|
+
bytes: (val) => `writer.bytes(${val})`,
|
|
41
|
+
double: (val) => `writer.double(${val})`,
|
|
42
|
+
// enumeration: (val) => `writer.double(${val})`,
|
|
43
|
+
fixed32: (val) => `writer.fixed32(${val})`,
|
|
44
|
+
fixed64: (val) => `writer.fixed64(${val})`,
|
|
45
|
+
float: (val) => `writer.float(${val})`,
|
|
46
|
+
int32: (val) => `writer.int32(${val})`,
|
|
47
|
+
int64: (val) => `writer.int64(${val})`,
|
|
48
|
+
sfixed32: (val) => `writer.sfixed32(${val})`,
|
|
49
|
+
sfixed64: (val) => `writer.sfixed64(${val})`,
|
|
50
|
+
sint32: (val) => `writer.sint32(${val})`,
|
|
51
|
+
sint64: (val) => `writer.sint64(${val})`,
|
|
52
|
+
string: (val) => `writer.string(${val})`,
|
|
53
|
+
uint32: (val) => `writer.uint32(${val})`,
|
|
54
|
+
uint64: (val) => `writer.uint64(${val})`
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
const decoderGenerators: Record<string, () => string> = {
|
|
58
|
+
bool: () => 'reader.bool()',
|
|
59
|
+
bytes: () => 'reader.bytes()',
|
|
60
|
+
double: () => 'reader.double()',
|
|
61
|
+
// enumeration: () => `writer.double(${val})`,
|
|
62
|
+
fixed32: () => 'reader.fixed32()',
|
|
63
|
+
fixed64: () => 'reader.fixed64()',
|
|
64
|
+
float: () => 'reader.float()',
|
|
65
|
+
int32: () => 'reader.int32()',
|
|
66
|
+
int64: () => 'reader.int64()',
|
|
67
|
+
sfixed32: () => 'reader.sfixed32()',
|
|
68
|
+
sfixed64: () => 'reader.sfixed64()',
|
|
69
|
+
sint32: () => 'reader.sint32()',
|
|
70
|
+
sint64: () => 'reader.sint64()',
|
|
71
|
+
string: () => 'reader.string()',
|
|
72
|
+
uint32: () => 'reader.uint32()',
|
|
73
|
+
uint64: () => 'reader.uint64()'
|
|
27
74
|
}
|
|
28
75
|
|
|
29
76
|
function findTypeName (typeName: string, classDef: MessageDef, moduleDef: ModuleDef): string {
|
|
@@ -72,20 +119,40 @@ function findDef (typeName: string, classDef: MessageDef, moduleDef: ModuleDef):
|
|
|
72
119
|
|
|
73
120
|
const encoders: Record<string, string> = {
|
|
74
121
|
bool: 'bool',
|
|
75
|
-
double: 'double',
|
|
76
122
|
bytes: 'bytes',
|
|
123
|
+
double: 'double',
|
|
77
124
|
fixed32: 'fixed32',
|
|
78
125
|
fixed64: 'fixed64',
|
|
79
126
|
float: 'float',
|
|
80
127
|
int32: 'int32',
|
|
81
128
|
int64: 'int64',
|
|
129
|
+
sfixed32: 'sfixed32',
|
|
130
|
+
sfixed64: 'sfixed64',
|
|
82
131
|
sint32: 'sint32',
|
|
83
132
|
sint64: 'sint64',
|
|
84
133
|
string: 'string',
|
|
85
134
|
uint32: 'uint32',
|
|
86
|
-
uint64: 'uint64'
|
|
87
|
-
|
|
88
|
-
|
|
135
|
+
uint64: 'uint64'
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
const codecTypes: Record<string, CODEC_TYPES> = {
|
|
139
|
+
bool: CODEC_TYPES.VARINT,
|
|
140
|
+
bytes: CODEC_TYPES.LENGTH_DELIMITED,
|
|
141
|
+
double: CODEC_TYPES.BIT64,
|
|
142
|
+
enum: CODEC_TYPES.VARINT,
|
|
143
|
+
fixed32: CODEC_TYPES.BIT32,
|
|
144
|
+
fixed64: CODEC_TYPES.BIT64,
|
|
145
|
+
float: CODEC_TYPES.BIT32,
|
|
146
|
+
int32: CODEC_TYPES.VARINT,
|
|
147
|
+
int64: CODEC_TYPES.VARINT,
|
|
148
|
+
message: CODEC_TYPES.LENGTH_DELIMITED,
|
|
149
|
+
sfixed32: CODEC_TYPES.BIT32,
|
|
150
|
+
sfixed64: CODEC_TYPES.BIT64,
|
|
151
|
+
sint32: CODEC_TYPES.VARINT,
|
|
152
|
+
sint64: CODEC_TYPES.VARINT,
|
|
153
|
+
string: CODEC_TYPES.LENGTH_DELIMITED,
|
|
154
|
+
uint32: CODEC_TYPES.VARINT,
|
|
155
|
+
uint64: CODEC_TYPES.VARINT
|
|
89
156
|
}
|
|
90
157
|
|
|
91
158
|
interface ClassDef {
|
|
@@ -114,14 +181,13 @@ interface FieldDef {
|
|
|
114
181
|
id: number
|
|
115
182
|
options?: Record<string, any>
|
|
116
183
|
rule: string
|
|
184
|
+
optional: boolean
|
|
185
|
+
repeated: boolean
|
|
117
186
|
}
|
|
118
187
|
|
|
119
188
|
function defineFields (fields: Record<string, FieldDef>, messageDef: MessageDef, moduleDef: ModuleDef) {
|
|
120
189
|
return Object.entries(fields).map(([fieldName, fieldDef]) => {
|
|
121
|
-
|
|
122
|
-
const isOptional = !isArray && fieldDef.options?.proto3_optional === true
|
|
123
|
-
|
|
124
|
-
return `${fieldName}${isOptional ? '?' : ''}: ${findTypeName(fieldDef.type, messageDef, moduleDef)}${isArray ? '[]' : ''}`
|
|
190
|
+
return `${fieldName}${fieldDef.optional ? '?' : ''}: ${findTypeName(fieldDef.type, messageDef, moduleDef)}${fieldDef.repeated ? '[]' : ''}`
|
|
125
191
|
})
|
|
126
192
|
}
|
|
127
193
|
|
|
@@ -148,7 +214,7 @@ enum __${messageDef.name}Values {
|
|
|
148
214
|
|
|
149
215
|
export namespace ${messageDef.name} {
|
|
150
216
|
export const codec = () => {
|
|
151
|
-
return enumeration
|
|
217
|
+
return enumeration<${messageDef.name}>(__${messageDef.name}Values)
|
|
152
218
|
}
|
|
153
219
|
}`.trim()
|
|
154
220
|
}
|
|
@@ -189,34 +255,132 @@ export interface ${messageDef.name} {
|
|
|
189
255
|
.trim()
|
|
190
256
|
}
|
|
191
257
|
}`
|
|
258
|
+
|
|
259
|
+
const ensureArrayProps = Object.entries(fields)
|
|
260
|
+
.map(([name, fieldDef]) => {
|
|
261
|
+
// make sure repeated fields have an array if not set
|
|
262
|
+
if (fieldDef.rule === 'repeated') {
|
|
263
|
+
return ` obj.${name} = obj.${name} ?? []`
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
return ''
|
|
267
|
+
}).filter(Boolean).join('\n')
|
|
268
|
+
|
|
269
|
+
const ensureRequiredFields = Object.entries(fields)
|
|
270
|
+
.map(([name, fieldDef]) => {
|
|
271
|
+
// make sure required fields are set
|
|
272
|
+
if (!fieldDef.optional) {
|
|
273
|
+
return `
|
|
274
|
+
if (obj.${name} == null) {
|
|
275
|
+
throw new Error('Protocol error: value for required field "${name}" was not found in protobuf')
|
|
276
|
+
}`
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
return ''
|
|
280
|
+
}).filter(Boolean).join('\n')
|
|
281
|
+
|
|
192
282
|
interfaceCodecDef = `
|
|
283
|
+
let _codec: Codec<${messageDef.name}>
|
|
284
|
+
|
|
193
285
|
export const codec = (): Codec<${messageDef.name}> => {
|
|
194
|
-
|
|
195
|
-
|
|
286
|
+
if (_codec == null) {
|
|
287
|
+
_codec = message<${messageDef.name}>((obj, writer, opts = {}) => {
|
|
288
|
+
if (opts.lengthDelimited !== false) {
|
|
289
|
+
writer.fork()
|
|
290
|
+
}
|
|
291
|
+
${Object.entries(fields)
|
|
196
292
|
.map(([name, fieldDef]) => {
|
|
197
|
-
let codec = encoders[fieldDef.type]
|
|
293
|
+
let codec: string = encoders[fieldDef.type]
|
|
294
|
+
let type: string = fieldDef.type
|
|
198
295
|
|
|
199
296
|
if (codec == null) {
|
|
200
297
|
const def = findDef(fieldDef.type, messageDef, moduleDef)
|
|
201
298
|
|
|
202
299
|
if (isEnumDef(def)) {
|
|
203
300
|
moduleDef.imports.add('enumeration')
|
|
301
|
+
type = 'enum'
|
|
204
302
|
} else {
|
|
205
303
|
moduleDef.imports.add('message')
|
|
304
|
+
type = 'message'
|
|
206
305
|
}
|
|
207
306
|
|
|
208
307
|
const typeName = findTypeName(fieldDef.type, messageDef, moduleDef)
|
|
209
308
|
codec = `${typeName}.codec()`
|
|
210
|
-
} else {
|
|
211
|
-
moduleDef.imports.add(codec)
|
|
212
309
|
}
|
|
213
310
|
|
|
214
|
-
return
|
|
215
|
-
|
|
216
|
-
|
|
311
|
+
return `
|
|
312
|
+
if (obj.${name} != null) {${
|
|
313
|
+
fieldDef.rule === 'repeated'
|
|
314
|
+
? `
|
|
315
|
+
for (const value of obj.${name}) {
|
|
316
|
+
writer.uint32(${(fieldDef.id << 3) | codecTypes[type]})
|
|
317
|
+
${encoderGenerators[type] == null ? `${codec}.encode(value, writer)` : encoderGenerators[type]('value')}
|
|
318
|
+
}`
|
|
319
|
+
: `
|
|
320
|
+
writer.uint32(${(fieldDef.id << 3) | codecTypes[type]})
|
|
321
|
+
${encoderGenerators[type] == null ? `${codec}.encode(obj.${name}, writer)` : encoderGenerators[type](`obj.${name}`)}`
|
|
322
|
+
}
|
|
323
|
+
}${fieldDef.optional
|
|
324
|
+
? ''
|
|
325
|
+
: ` else {
|
|
326
|
+
throw new Error('Protocol error: required field "${name}" was not found in object')
|
|
327
|
+
}`}`
|
|
328
|
+
}).join('\n')}
|
|
329
|
+
|
|
330
|
+
if (opts.lengthDelimited !== false) {
|
|
331
|
+
writer.ldelim()
|
|
332
|
+
}
|
|
333
|
+
}, (reader, length) => {
|
|
334
|
+
const obj: any = {}
|
|
335
|
+
|
|
336
|
+
const end = length == null ? reader.len : reader.pos + length
|
|
337
|
+
|
|
338
|
+
while (reader.pos < end) {
|
|
339
|
+
const tag = reader.uint32()
|
|
340
|
+
|
|
341
|
+
switch (tag >>> 3) {
|
|
342
|
+
${Object.entries(fields)
|
|
343
|
+
.map(([name, fieldDef]) => {
|
|
344
|
+
let codec: string = encoders[fieldDef.type]
|
|
345
|
+
let type: string = fieldDef.type
|
|
346
|
+
|
|
347
|
+
if (codec == null) {
|
|
348
|
+
const def = findDef(fieldDef.type, messageDef, moduleDef)
|
|
349
|
+
|
|
350
|
+
if (isEnumDef(def)) {
|
|
351
|
+
moduleDef.imports.add('enumeration')
|
|
352
|
+
type = 'enum'
|
|
353
|
+
} else {
|
|
354
|
+
moduleDef.imports.add('message')
|
|
355
|
+
type = 'message'
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
const typeName = findTypeName(fieldDef.type, messageDef, moduleDef)
|
|
359
|
+
codec = `${typeName}.codec()`
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
return `case ${fieldDef.id}:${fieldDef.rule === 'repeated'
|
|
363
|
+
? `
|
|
364
|
+
obj.${name} = obj.${name} ?? []
|
|
365
|
+
obj.${name}.push(${decoderGenerators[type] == null ? `${codec}.decode(reader${type === 'message' ? ', reader.uint32()' : ''})` : decoderGenerators[type]()})`
|
|
366
|
+
: `
|
|
367
|
+
obj.${name} = ${decoderGenerators[type] == null ? `${codec}.decode(reader${type === 'message' ? ', reader.uint32()' : ''})` : decoderGenerators[type]()}`}
|
|
368
|
+
break`
|
|
369
|
+
}).join('\n ')}
|
|
370
|
+
default:
|
|
371
|
+
reader.skipType(tag & 7)
|
|
372
|
+
break
|
|
373
|
+
}
|
|
374
|
+
}${ensureArrayProps !== '' ? `\n\n${ensureArrayProps}` : ''}${ensureRequiredFields !== '' ? `\n${ensureRequiredFields}` : ''}
|
|
375
|
+
|
|
376
|
+
return obj
|
|
377
|
+
})
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
return _codec
|
|
217
381
|
}
|
|
218
382
|
|
|
219
|
-
export const encode = (obj: ${messageDef.name}):
|
|
383
|
+
export const encode = (obj: ${messageDef.name}): Uint8Array => {
|
|
220
384
|
return encodeMessage(obj, ${messageDef.name}.codec())
|
|
221
385
|
}
|
|
222
386
|
|
|
@@ -269,6 +433,13 @@ function defineModule (def: ClassDef): ModuleDef {
|
|
|
269
433
|
defineMessage(classDef.nested, classDef)
|
|
270
434
|
}
|
|
271
435
|
|
|
436
|
+
if (classDef.fields != null) {
|
|
437
|
+
for (const name of Object.keys(classDef.fields)) {
|
|
438
|
+
classDef.fields[name].repeated = classDef.fields[name].rule === 'repeated'
|
|
439
|
+
classDef.fields[name].optional = !classDef.fields[name].repeated && classDef.fields[name].options?.proto3_optional === true
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
|
|
272
443
|
if (parent == null) {
|
|
273
444
|
moduleDef.globals[className] = classDef
|
|
274
445
|
}
|
|
@@ -311,14 +482,14 @@ export async function generate (source: string, flags: Flags) {
|
|
|
311
482
|
lines.push(`import { ${Array.from(moduleDef.imports).join(', ')} } from 'protons-runtime'`)
|
|
312
483
|
}
|
|
313
484
|
|
|
314
|
-
if (moduleDef.importedTypes.size > 0) {
|
|
315
|
-
lines.push(`import type { ${Array.from(moduleDef.importedTypes).join(', ')} } from 'protons-runtime'`)
|
|
316
|
-
}
|
|
317
|
-
|
|
318
485
|
if (moduleDef.imports.has('encodeMessage')) {
|
|
319
486
|
lines.push("import type { Uint8ArrayList } from 'uint8arraylist'")
|
|
320
487
|
}
|
|
321
488
|
|
|
489
|
+
if (moduleDef.importedTypes.size > 0) {
|
|
490
|
+
lines.push(`import type { ${Array.from(moduleDef.importedTypes).join(', ')} } from 'protons-runtime'`)
|
|
491
|
+
}
|
|
492
|
+
|
|
322
493
|
lines = [
|
|
323
494
|
...lines,
|
|
324
495
|
'',
|