@tabnas/proto 0.4.6 → 0.4.7
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 +6 -6
- package/dist/build-descriptor.js +96 -23
- package/dist/build-descriptor.js.map +1 -1
- package/dist/detect-version.js.map +1 -1
- package/dist/proto.d.ts +1 -1
- package/dist/proto.js +1 -1
- package/dist/proto.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -5
- package/src/build-descriptor.ts +96 -23
- package/src/proto.ts +1 -1
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# @tabnas/proto
|
|
2
2
|
|
|
3
|
-
Parse Protocol Buffers `.proto` IDL
|
|
4
|
-
/ 2024**
|
|
3
|
+
Parse Protocol Buffers `.proto` IDL (**proto2, proto3, and editions 2023
|
|
4
|
+
/ 2024**) into [FileDescriptorProto][fdp]-shaped JSON, using the
|
|
5
5
|
[Tabnas](https://github.com/tabnas/parser) parser driven by an
|
|
6
6
|
[ABNF](https://github.com/tabnas/abnf) grammar.
|
|
7
7
|
|
|
@@ -42,10 +42,10 @@ agree (`reconcile: true`, the default) or `parse` throws; set
|
|
|
42
42
|
|
|
43
43
|
## API
|
|
44
44
|
|
|
45
|
-
- `parse(src, options?) => FileDescriptorProto
|
|
46
|
-
- `Proto
|
|
45
|
+
- `parse(src, options?) => FileDescriptorProto`. Parse a `.proto` string.
|
|
46
|
+
- `Proto`. The Tabnas plugin; `new Tabnas().use(Proto)` installs the
|
|
47
47
|
grammar so `tn.parse(src)` returns the raw `{rule, src, kids}` CST.
|
|
48
|
-
- `toDescriptor(cst, options?)
|
|
48
|
+
- `toDescriptor(cst, options?)`. Turn a parsed CST into a
|
|
49
49
|
FileDescriptorProto.
|
|
50
50
|
|
|
51
51
|
Options: `{ version?: 'proto2'|'proto3'|'2023'|'2024' | null,
|
|
@@ -61,7 +61,7 @@ A `FileDescriptorProto`-shaped object (the `descriptor.proto` JSON shape):
|
|
|
61
61
|
`syntax` / `edition`. `map<K,V>` fields are expanded to a repeated message
|
|
62
62
|
field plus a synthesised `…Entry` nested message with
|
|
63
63
|
`options.mapEntry = true`, groups to a `TYPE_GROUP` field plus a nested
|
|
64
|
-
message, and a proto3 explicit `optional` to a synthetic `_<field>` oneof
|
|
64
|
+
message, and a proto3 explicit `optional` to a synthetic `_<field>` oneof,
|
|
65
65
|
exactly as `protoc` does. Type names are stored as written and `type` is
|
|
66
66
|
left unset for them; cross-file resolution is a separate concern.
|
|
67
67
|
|
package/dist/build-descriptor.js
CHANGED
|
@@ -19,16 +19,68 @@ function R(n) {
|
|
|
19
19
|
// The keyword(s) consumed before this node's first child — the part of
|
|
20
20
|
// `src` ahead of the first child's `src`. For `message Foo {…}` the first
|
|
21
21
|
// child is `Foo`, so `kw` is `message`; for an unlabelled field it is ``.
|
|
22
|
+
//
|
|
23
|
+
// The first child is located by `gaps`, not by a forward search for its
|
|
24
|
+
// text. A forward search finds the FIRST copy, which for `message m {}`
|
|
25
|
+
// is the `m` of `message` itself: `kw` came back `` and the statement
|
|
26
|
+
// was dispatched as neither a message nor anything else, so the
|
|
27
|
+
// declaration vanished from the descriptor. `oneof o`, `enum n` and
|
|
28
|
+
// `service e` went the same way.
|
|
22
29
|
function kw(n) {
|
|
23
30
|
const k = R(n);
|
|
24
31
|
if (0 === k.length)
|
|
25
32
|
return n.src;
|
|
26
|
-
|
|
27
|
-
|
|
33
|
+
if ('' === k[0].src)
|
|
34
|
+
return '';
|
|
35
|
+
return gaps(n)[0];
|
|
28
36
|
}
|
|
29
37
|
function child(n, rule) {
|
|
30
38
|
return R(n).find((k) => k.rule === rule);
|
|
31
39
|
}
|
|
40
|
+
// The source text immediately ahead of each rule child, one entry per
|
|
41
|
+
// member of `R(n)` and in the same order.
|
|
42
|
+
//
|
|
43
|
+
// `src` is the node's tokens run together, so every child's text is a
|
|
44
|
+
// contiguous slice of it — but SEARCHING for that text can land on the
|
|
45
|
+
// wrong copy. In the enum element `A1=1;` the `fieldNumber` node's `1`
|
|
46
|
+
// also occurs inside the name ahead of it, and in `rpc M (stream A)` the
|
|
47
|
+
// `stream` modifier is a bare terminal that never becomes a node. The
|
|
48
|
+
// scan therefore runs from the END: each child is bounded above by the
|
|
49
|
+
// child after it, so the last occurrence below that bound is the child
|
|
50
|
+
// itself. That leaves the text between two children exactly, which is
|
|
51
|
+
// where the grammar's own terminals (`=`, `-`, `(`, `stream`, `returns`)
|
|
52
|
+
// are, and reading one of those is a structural question answered from
|
|
53
|
+
// the tree rather than a pattern matched against the whole statement.
|
|
54
|
+
function gaps(n) {
|
|
55
|
+
const kids = R(n);
|
|
56
|
+
const src = n.src;
|
|
57
|
+
const at = new Array(kids.length);
|
|
58
|
+
let hi = src.length;
|
|
59
|
+
for (let i = kids.length - 1; 0 <= i; i--) {
|
|
60
|
+
const text = kids[i].src;
|
|
61
|
+
const found = '' === text ? -1 : src.lastIndexOf(text, hi - text.length);
|
|
62
|
+
at[i] = 0 <= found ? found : hi;
|
|
63
|
+
hi = at[i];
|
|
64
|
+
}
|
|
65
|
+
const out = [];
|
|
66
|
+
let end = 0;
|
|
67
|
+
for (let i = 0; i < kids.length; i++) {
|
|
68
|
+
const start = at[i] < end ? end : at[i];
|
|
69
|
+
out.push(src.slice(end, start));
|
|
70
|
+
end = start + kids[i].src.length;
|
|
71
|
+
}
|
|
72
|
+
return out;
|
|
73
|
+
}
|
|
74
|
+
// The gaps ahead of the children carrying this rule name, in source order.
|
|
75
|
+
function gapsBefore(n, rule) {
|
|
76
|
+
const kids = R(n);
|
|
77
|
+
const g = gaps(n);
|
|
78
|
+
const out = [];
|
|
79
|
+
for (let i = 0; i < kids.length; i++)
|
|
80
|
+
if (kids[i].rule === rule)
|
|
81
|
+
out.push(g[i]);
|
|
82
|
+
return out;
|
|
83
|
+
}
|
|
32
84
|
function unquote(s) {
|
|
33
85
|
const m = s.match(/^["']([\s\S]*)["']$/);
|
|
34
86
|
return m ? m[1] : s;
|
|
@@ -124,8 +176,11 @@ function fieldLabel(labelNode, version) {
|
|
|
124
176
|
return { label: 'LABEL_OPTIONAL' };
|
|
125
177
|
}
|
|
126
178
|
function fieldTypeName(typeText) {
|
|
127
|
-
|
|
128
|
-
|
|
179
|
+
// A LEADING DOT makes the reference fully qualified, so `.int32` names a
|
|
180
|
+
// type called `int32` at the root and is never the scalar `int32`.
|
|
181
|
+
// protoc accepts `message int32 {}` and records `.int32` as the field's
|
|
182
|
+
// type name; only an unqualified spelling may reach the scalar table.
|
|
183
|
+
const scalar = typeText.startsWith('.') ? undefined : descriptor_1.SCALAR_TYPES[typeText];
|
|
129
184
|
if (scalar)
|
|
130
185
|
return { type: scalar };
|
|
131
186
|
// A named reference: could be a message OR an enum, and telling them
|
|
@@ -255,22 +310,34 @@ function buildMapField(n, version, into) {
|
|
|
255
310
|
function buildEnum(n) {
|
|
256
311
|
const e = { name: child(n, 'ident')?.src ?? '', value: [] };
|
|
257
312
|
for (const el of R(n).filter((k) => k.rule === 'enumElement')) {
|
|
258
|
-
|
|
259
|
-
|
|
313
|
+
// An enum body is the one place where the statement kind CANNOT come
|
|
314
|
+
// from the leading keyword: `enumField` inlines its name, so `kw` on
|
|
315
|
+
// `optionX = 1;` is `optionX=` and a prefix test reads it as an
|
|
316
|
+
// option statement. The first child's rule name says what the
|
|
317
|
+
// statement is without guessing — `optionName` for an option,
|
|
318
|
+
// `ranges` or `fieldNames` for a `reserved`, `fieldNumber` for a
|
|
319
|
+
// value.
|
|
320
|
+
const first = R(el)[0];
|
|
321
|
+
const rule = first?.rule;
|
|
322
|
+
if ('ranges' === rule || 'fieldNames' === rule) {
|
|
260
323
|
// Enum reserved ranges are INCLUSIVE and span the whole int32 space.
|
|
261
324
|
addReserved(el, e, { exclusive: false, max: descriptor_1.MAX_ENUM_NUMBER });
|
|
262
325
|
continue;
|
|
263
326
|
}
|
|
264
|
-
if (
|
|
327
|
+
if ('optionName' === rule) {
|
|
265
328
|
e.options = { ...(e.options || {}), ...optionFrom(el) };
|
|
266
329
|
continue;
|
|
267
330
|
}
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
331
|
+
if ('fieldNumber' !== rule)
|
|
332
|
+
continue;
|
|
333
|
+
// enumField: ident "=" ["-"] fieldNumber. Both the name and the sign
|
|
334
|
+
// are in the text ahead of the number node, and nowhere else: reading
|
|
335
|
+
// the whole element instead takes an OPTION's minus sign as the
|
|
336
|
+
// value's, so `A = 1 [(x) = -2]` becomes -1.
|
|
337
|
+
const gap = gapsBefore(el, 'fieldNumber')[0] ?? '';
|
|
338
|
+
const name = gap.replace(/=.*$/, '');
|
|
339
|
+
if (name) {
|
|
340
|
+
const v = { name, number: (gap.endsWith('-') ? -1 : 1) * Number(first.src) };
|
|
274
341
|
const vo = plainOptions(child(el, 'fieldOptions'));
|
|
275
342
|
e.value.push(vo ? { ...v, options: vo } : v);
|
|
276
343
|
}
|
|
@@ -446,10 +513,16 @@ function addVisible(el, k, version, messages, enums) {
|
|
|
446
513
|
function addOneof(el, version, msg) {
|
|
447
514
|
const name = child(el, 'ident')?.src ?? '';
|
|
448
515
|
const index = msg.oneofDecl.length;
|
|
449
|
-
|
|
516
|
+
// protoc gives a oneof its own `OneofOptions`, and every other
|
|
517
|
+
// declaration kind here keeps its option statements, so the oneof's are
|
|
518
|
+
// recorded rather than dropped.
|
|
519
|
+
const decl = { name };
|
|
520
|
+
msg.oneofDecl.push(decl);
|
|
450
521
|
for (const of of R(el).filter((k) => k.rule === 'oneofElement')) {
|
|
451
|
-
if (kw(of).startsWith('option'))
|
|
522
|
+
if (kw(of).startsWith('option')) {
|
|
523
|
+
decl.options = { ...(decl.options || {}), ...optionFrom(of) };
|
|
452
524
|
continue;
|
|
525
|
+
}
|
|
453
526
|
if (';' === of.src)
|
|
454
527
|
continue;
|
|
455
528
|
const f = isGroup(of) ? buildGroup(of, version, msg) : buildField(of, version);
|
|
@@ -483,20 +556,20 @@ function buildService(n) {
|
|
|
483
556
|
function buildRpc(el) {
|
|
484
557
|
const ids = R(el).filter((k) => k.rule === 'ident');
|
|
485
558
|
const types = R(el).filter((k) => k.rule === 'messageType');
|
|
486
|
-
const flat = el.src.replace(/\s+/g, '');
|
|
487
559
|
const m = {
|
|
488
560
|
name: ids[0] ? ids[0].src : '',
|
|
489
561
|
inputType: types[0] ? types[0].src : '',
|
|
490
562
|
outputType: types[1] ? types[1].src : '',
|
|
491
563
|
};
|
|
492
|
-
//
|
|
493
|
-
//
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
564
|
+
// `stream` is a bare terminal, so it never becomes a node — but it sits
|
|
565
|
+
// immediately ahead of the type it modifies, which is exactly what the
|
|
566
|
+
// gap holds. Searching the statement for `(stream` instead marks an
|
|
567
|
+
// ordinary type whose name merely BEGINS with those letters, so
|
|
568
|
+
// `rpc M (streaming.Request)` came back client-streaming.
|
|
569
|
+
const modifiers = gapsBefore(el, 'messageType');
|
|
570
|
+
if (modifiers[0]?.endsWith('stream'))
|
|
498
571
|
m.clientStreaming = true;
|
|
499
|
-
if (
|
|
572
|
+
if (modifiers[1]?.endsWith('stream'))
|
|
500
573
|
m.serverStreaming = true;
|
|
501
574
|
for (const o of R(el).filter((k) => k.rule === 'optionStmt')) {
|
|
502
575
|
m.options = { ...(m.options || {}), ...optionFrom(o) };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-descriptor.js","sourceRoot":"","sources":["../src/build-descriptor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"build-descriptor.js","sourceRoot":"","sources":["../src/build-descriptor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detect-version.js","sourceRoot":"","sources":["../src/detect-version.ts"],"names":[],"mappings":";AAAA,2EAA2E
|
|
1
|
+
{"version":3,"file":"detect-version.js","sourceRoot":"","sources":["../src/detect-version.ts"],"names":[],"mappings":";AAAA,2EAA2E;;;;;;AAM3E,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAA;AACrD,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;AAElD,yEAAyE;AACzE,wEAAwE;AACxE,8EAA8E;AAC9E,yBAAgC,UAAe;IAC7C,IAAI,CAAC,UAAU,IAAI,QAAQ,KAAK,OAAO,UAAU,CAAC,GAAG;QAAE,OAAO,IAAI,CAAA;IAClE,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAA;IACpE,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAA;IACnB,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAClB,IAAI,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9D,OAAO,KAAqB,CAAA;IAC9B,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,aAAa,KAAK,GAAG,CAAC,CAAA;AAC9D,CAAC;AAED,yEAAyE;AACzE,2EAA2E;AAC3E,uEAAuE;AACvE,0EAA0E;AAC1E,wBACE,QAA6B,EAC7B,MAA2B,EAC3B,SAAkB;IAElB,IAAI,IAAI,IAAI,QAAQ,IAAI,IAAI,IAAI,MAAM,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QAC9D,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CACb,qCAAqC,MAAM,iBAAiB;gBAC5D,aAAa,QAAQ,6CAA6C,CACnE,CAAA;QACH,CAAC;QACD,OAAO,QAAQ,CAAA;IACjB,CAAC;IACD,OAAO,QAAQ,IAAI,MAAM,IAAI,QAAQ,CAAA;AACvC,CAAC;AAED,mBAA0B,CAAe;IACvC,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AAChC,CAAC;AAED,0EAA0E;AAC1E,sDAAsD;AACtD,qBAA4B,CAAe;IACzC,OAAO,UAAU,GAAG,CAAC,CAAA;AACvB,CAAC"}
|
package/dist/proto.d.ts
CHANGED
|
@@ -14,7 +14,7 @@ declare const Proto: {
|
|
|
14
14
|
};
|
|
15
15
|
declare function toDescriptor(cst: any, options?: Partial<ProtoOptions>): FileDescriptorProto;
|
|
16
16
|
declare function parse(src: string, options?: Partial<ProtoOptions>): FileDescriptorProto;
|
|
17
|
-
declare const VERSION = "0.4.
|
|
17
|
+
declare const VERSION = "0.4.7";
|
|
18
18
|
export { Proto, parse, toDescriptor, VERSION };
|
|
19
19
|
export type { ProtoVersion };
|
|
20
20
|
export * from './descriptor';
|
package/dist/proto.js
CHANGED
|
@@ -63,7 +63,7 @@ function parse(src, options) {
|
|
|
63
63
|
// VERSION is this package's version. It MUST equal package.json "version":
|
|
64
64
|
// the release orchestrator rewrites both, and test/version.test.ts fails the
|
|
65
65
|
// build if they drift. Mirrors `const VERSION` in go/proto.go.
|
|
66
|
-
const VERSION = '0.4.
|
|
66
|
+
const VERSION = '0.4.7';
|
|
67
67
|
exports.VERSION = VERSION;
|
|
68
68
|
__exportStar(require("./descriptor"), exports);
|
|
69
69
|
//# sourceMappingURL=proto.js.map
|
package/dist/proto.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proto.js","sourceRoot":"","sources":["../src/proto.ts"],"names":[],"mappings":";AAAA,2EAA2E;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"proto.js","sourceRoot":"","sources":["../src/proto.ts"],"names":[],"mappings":";AAAA,2EAA2E;;;;;;;;;;;;;;;;;QAwE3D,KAAK;QAAE,YAAY;AAtEnC,wEAAwE;AACxE,0EAA0E;AAC1E,wEAAwE;AACxE,wDAAwD;AAExD,2CAAuC;AACvC,uCAAmC;AAEnC,uCAAuC;AACvC,yDAA8C;AAC9C,qDAEyB;AAczB,wEAAwE;AACxE,yEAAyE;AACzE,4EAA4E;AAC5E,MAAM,KAAK,GAAG,CAAC,CAAC,EAAa,EAAE,QAAgC,EAAE,EAAE;IACjE,qEAAqE;IACrE,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC,IAAI;QAAE,EAAE,CAAC,GAAG,CAAC,WAAI,CAAC,CAC9C;IAAC,EAAE,CAAC,IAAiB,CAAC,qBAAW,EAAE;QAClC,GAAG,EAAE,OAAO;QACZ,KAAK,EAAE,OAAO;QACd,YAAY,EAAE,IAAI;KACnB,CAAC,CAAA;AACJ,CAAC,CAGA,CAAA;QA8BQ,KAAK;AA5Bd,KAAK,CAAC,QAAQ,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAA;AAEnD,oEAAoE;AACpE,gEAAgE;AAChE,SAAS,YAAY,CAAC,GAAQ,EAAE,OAA+B;IAC7D,MAAM,IAAI,GAAiB,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAA;IACpE,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAA;IAC7E,MAAM,QAAQ,GACZ,KAAK,IAAI,iBAAiB,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,gCAAe,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAC3E,MAAM,OAAO,GAAG,IAAA,+BAAc,EAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;IACtE,OAAO,IAAA,4BAAS,EAAC,GAAG,EAAE,OAAO,CAAC,CAAA;AAChC,CAAC;AAED,0EAA0E;AAC1E,2EAA2E;AAC3E,0DAA0D;AAC1D,sCAAsC;AACtC,SAAS,KAAK,CAAC,GAAW,EAAE,OAA+B;IACzD,MAAM,EAAE,GAAG,IAAI,eAAM,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAc,CAAA;IACjE,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;IAClB,OAAO,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAA;AAC7C,CAAC;AAED,2EAA2E;AAC3E,6EAA6E;AAC7E,+DAA+D;AAC/D,MAAM,OAAO,GAAG,OAAO,CAAA;QAEc,OAAO;AAE5C,+CAA4B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["../src/build-descriptor.ts","../src/descriptor.ts","../src/detect-version.ts","../src/grammar.ts","../src/proto.ts"],"
|
|
1
|
+
{"version":"7.0.2","root":["../src/build-descriptor.ts","../src/descriptor.ts","../src/detect-version.ts","../src/grammar.ts","../src/proto.ts"],"packageJsons":["../node_modules/@tabnas/abnf/package.json","../node_modules/@tabnas/bnf/package.json","../node_modules/@tabnas/parser/package.json","../package.json"],"missingPackageJsons":["../node_modules/@tabnas/abnf/dist/package.json","../node_modules/@tabnas/bnf/dist/package.json","../node_modules/@tabnas/parser/dist/package.json"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tabnas/proto",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.7",
|
|
4
4
|
"description": "Parse Protocol Buffers .proto IDL (proto2, proto3, edition 2023/2024) into FileDescriptorProto-shaped JSON, using the Tabnas parser and an ABNF grammar.",
|
|
5
5
|
"main": "dist/proto.js",
|
|
6
6
|
"type": "commonjs",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
},
|
|
27
27
|
"scripts": {
|
|
28
28
|
"pretest": "npm run build",
|
|
29
|
-
"test": "node --enable-source-maps --test \"dist-test/*.test.js\"",
|
|
29
|
+
"test": "node --enable-source-maps --test \"dist-test/*.test.js\" && node --test test/docs.test.js",
|
|
30
30
|
"pretest-some": "npm run build",
|
|
31
31
|
"test-some": "node --enable-source-maps --test-name-pattern=\"$npm_config_pattern\" --test \"dist-test/*.test.js\"",
|
|
32
32
|
"pretest-watch": "npm run build",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"preexample-test": "npm run build",
|
|
37
37
|
"example-test": "node --test examples/wire-poc/codec.test.js",
|
|
38
38
|
"watch": "tsc --build src test -w",
|
|
39
|
-
"build": "node embed-grammar.js && node prune-dist-test.js && tsc --build src test",
|
|
39
|
+
"build": "node embed-grammar.js && node prune-dist-test.js && tsc --build src && tsc --build test",
|
|
40
40
|
"clean": "rm -rf node_modules dist dist-test yarn.lock package-lock.json",
|
|
41
41
|
"reset": "npm run clean && npm i && npm run build && npm test",
|
|
42
42
|
"repo-tag": "REPO_VERSION=`node -e \"console.log(require('./package').version)\"` && echo TAG: ts/v$REPO_VERSION && git commit -a -m v$REPO_VERSION && git push && git tag ts/v$REPO_VERSION && git push origin ts/v$REPO_VERSION;",
|
|
@@ -61,8 +61,8 @@
|
|
|
61
61
|
"@tabnas/abnf": "*",
|
|
62
62
|
"@tabnas/parser": "*",
|
|
63
63
|
"@tabnas/support": "*",
|
|
64
|
-
"@types/node": "
|
|
65
|
-
"typescript": "
|
|
64
|
+
"@types/node": "26.6.2",
|
|
65
|
+
"typescript": "7.0.2"
|
|
66
66
|
},
|
|
67
67
|
"engines": {
|
|
68
68
|
"node": ">=24"
|
package/src/build-descriptor.ts
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
import {
|
|
11
11
|
FileDescriptorProto, DescriptorProto, FieldDescriptorProto,
|
|
12
12
|
EnumDescriptorProto, ServiceDescriptorProto, MethodDescriptorProto,
|
|
13
|
+
OneofDescriptorProto,
|
|
13
14
|
DescriptorRange, SymbolVisibility, OptionValue, FieldLabel, SCALAR_TYPES,
|
|
14
15
|
MAX_FIELD_NUMBER_END, MAX_MESSAGE_SET_END, MAX_ENUM_NUMBER,
|
|
15
16
|
} from './descriptor'
|
|
@@ -27,17 +28,68 @@ function R(n: Node | undefined | null): Node[] {
|
|
|
27
28
|
// The keyword(s) consumed before this node's first child — the part of
|
|
28
29
|
// `src` ahead of the first child's `src`. For `message Foo {…}` the first
|
|
29
30
|
// child is `Foo`, so `kw` is `message`; for an unlabelled field it is ``.
|
|
31
|
+
//
|
|
32
|
+
// The first child is located by `gaps`, not by a forward search for its
|
|
33
|
+
// text. A forward search finds the FIRST copy, which for `message m {}`
|
|
34
|
+
// is the `m` of `message` itself: `kw` came back `` and the statement
|
|
35
|
+
// was dispatched as neither a message nor anything else, so the
|
|
36
|
+
// declaration vanished from the descriptor. `oneof o`, `enum n` and
|
|
37
|
+
// `service e` went the same way.
|
|
30
38
|
function kw(n: Node): string {
|
|
31
39
|
const k = R(n)
|
|
32
40
|
if (0 === k.length) return n.src
|
|
33
|
-
|
|
34
|
-
return
|
|
41
|
+
if ('' === k[0].src) return ''
|
|
42
|
+
return gaps(n)[0]
|
|
35
43
|
}
|
|
36
44
|
|
|
37
45
|
function child(n: Node, rule: string): Node | undefined {
|
|
38
46
|
return R(n).find((k) => k.rule === rule)
|
|
39
47
|
}
|
|
40
48
|
|
|
49
|
+
// The source text immediately ahead of each rule child, one entry per
|
|
50
|
+
// member of `R(n)` and in the same order.
|
|
51
|
+
//
|
|
52
|
+
// `src` is the node's tokens run together, so every child's text is a
|
|
53
|
+
// contiguous slice of it — but SEARCHING for that text can land on the
|
|
54
|
+
// wrong copy. In the enum element `A1=1;` the `fieldNumber` node's `1`
|
|
55
|
+
// also occurs inside the name ahead of it, and in `rpc M (stream A)` the
|
|
56
|
+
// `stream` modifier is a bare terminal that never becomes a node. The
|
|
57
|
+
// scan therefore runs from the END: each child is bounded above by the
|
|
58
|
+
// child after it, so the last occurrence below that bound is the child
|
|
59
|
+
// itself. That leaves the text between two children exactly, which is
|
|
60
|
+
// where the grammar's own terminals (`=`, `-`, `(`, `stream`, `returns`)
|
|
61
|
+
// are, and reading one of those is a structural question answered from
|
|
62
|
+
// the tree rather than a pattern matched against the whole statement.
|
|
63
|
+
function gaps(n: Node): string[] {
|
|
64
|
+
const kids = R(n)
|
|
65
|
+
const src = n.src
|
|
66
|
+
const at: number[] = new Array(kids.length)
|
|
67
|
+
let hi = src.length
|
|
68
|
+
for (let i = kids.length - 1; 0 <= i; i--) {
|
|
69
|
+
const text = kids[i].src
|
|
70
|
+
const found = '' === text ? -1 : src.lastIndexOf(text, hi - text.length)
|
|
71
|
+
at[i] = 0 <= found ? found : hi
|
|
72
|
+
hi = at[i]
|
|
73
|
+
}
|
|
74
|
+
const out: string[] = []
|
|
75
|
+
let end = 0
|
|
76
|
+
for (let i = 0; i < kids.length; i++) {
|
|
77
|
+
const start = at[i] < end ? end : at[i]
|
|
78
|
+
out.push(src.slice(end, start))
|
|
79
|
+
end = start + kids[i].src.length
|
|
80
|
+
}
|
|
81
|
+
return out
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
// The gaps ahead of the children carrying this rule name, in source order.
|
|
85
|
+
function gapsBefore(n: Node, rule: string): string[] {
|
|
86
|
+
const kids = R(n)
|
|
87
|
+
const g = gaps(n)
|
|
88
|
+
const out: string[] = []
|
|
89
|
+
for (let i = 0; i < kids.length; i++) if (kids[i].rule === rule) out.push(g[i])
|
|
90
|
+
return out
|
|
91
|
+
}
|
|
92
|
+
|
|
41
93
|
function unquote(s: string): string {
|
|
42
94
|
const m = s.match(/^["']([\s\S]*)["']$/)
|
|
43
95
|
return m ? m[1] : s
|
|
@@ -134,8 +186,11 @@ function fieldLabel(
|
|
|
134
186
|
}
|
|
135
187
|
|
|
136
188
|
function fieldTypeName(typeText: string): Pick<FieldDescriptorProto, 'type' | 'typeName'> {
|
|
137
|
-
|
|
138
|
-
|
|
189
|
+
// A LEADING DOT makes the reference fully qualified, so `.int32` names a
|
|
190
|
+
// type called `int32` at the root and is never the scalar `int32`.
|
|
191
|
+
// protoc accepts `message int32 {}` and records `.int32` as the field's
|
|
192
|
+
// type name; only an unqualified spelling may reach the scalar table.
|
|
193
|
+
const scalar = typeText.startsWith('.') ? undefined : SCALAR_TYPES[typeText]
|
|
139
194
|
if (scalar) return { type: scalar }
|
|
140
195
|
// A named reference: could be a message OR an enum, and telling them
|
|
141
196
|
// apart needs symbol resolution this parser deliberately does not do.
|
|
@@ -276,22 +331,33 @@ function buildMapField(
|
|
|
276
331
|
function buildEnum(n: Node): EnumDescriptorProto {
|
|
277
332
|
const e: EnumDescriptorProto = { name: child(n, 'ident')?.src ?? '', value: [] }
|
|
278
333
|
for (const el of R(n).filter((k) => k.rule === 'enumElement')) {
|
|
279
|
-
|
|
280
|
-
|
|
334
|
+
// An enum body is the one place where the statement kind CANNOT come
|
|
335
|
+
// from the leading keyword: `enumField` inlines its name, so `kw` on
|
|
336
|
+
// `optionX = 1;` is `optionX=` and a prefix test reads it as an
|
|
337
|
+
// option statement. The first child's rule name says what the
|
|
338
|
+
// statement is without guessing — `optionName` for an option,
|
|
339
|
+
// `ranges` or `fieldNames` for a `reserved`, `fieldNumber` for a
|
|
340
|
+
// value.
|
|
341
|
+
const first = R(el)[0]
|
|
342
|
+
const rule = first?.rule
|
|
343
|
+
if ('ranges' === rule || 'fieldNames' === rule) {
|
|
281
344
|
// Enum reserved ranges are INCLUSIVE and span the whole int32 space.
|
|
282
345
|
addReserved(el, e, { exclusive: false, max: MAX_ENUM_NUMBER })
|
|
283
346
|
continue
|
|
284
347
|
}
|
|
285
|
-
if (
|
|
348
|
+
if ('optionName' === rule) {
|
|
286
349
|
e.options = { ...(e.options || {}), ...optionFrom(el) }
|
|
287
350
|
continue
|
|
288
351
|
}
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
352
|
+
if ('fieldNumber' !== rule) continue
|
|
353
|
+
// enumField: ident "=" ["-"] fieldNumber. Both the name and the sign
|
|
354
|
+
// are in the text ahead of the number node, and nowhere else: reading
|
|
355
|
+
// the whole element instead takes an OPTION's minus sign as the
|
|
356
|
+
// value's, so `A = 1 [(x) = -2]` becomes -1.
|
|
357
|
+
const gap = gapsBefore(el, 'fieldNumber')[0] ?? ''
|
|
358
|
+
const name = gap.replace(/=.*$/, '')
|
|
359
|
+
if (name) {
|
|
360
|
+
const v = { name, number: (gap.endsWith('-') ? -1 : 1) * Number(first.src) }
|
|
295
361
|
const vo = plainOptions(child(el, 'fieldOptions'))
|
|
296
362
|
e.value.push(vo ? { ...v, options: vo } : v)
|
|
297
363
|
}
|
|
@@ -459,9 +525,16 @@ function addVisible(
|
|
|
459
525
|
function addOneof(el: Node, version: ProtoVersion, msg: DescriptorProto): void {
|
|
460
526
|
const name = child(el, 'ident')?.src ?? ''
|
|
461
527
|
const index = msg.oneofDecl.length
|
|
462
|
-
|
|
528
|
+
// protoc gives a oneof its own `OneofOptions`, and every other
|
|
529
|
+
// declaration kind here keeps its option statements, so the oneof's are
|
|
530
|
+
// recorded rather than dropped.
|
|
531
|
+
const decl: OneofDescriptorProto = { name }
|
|
532
|
+
msg.oneofDecl.push(decl)
|
|
463
533
|
for (const of of R(el).filter((k) => k.rule === 'oneofElement')) {
|
|
464
|
-
if (kw(of).startsWith('option'))
|
|
534
|
+
if (kw(of).startsWith('option')) {
|
|
535
|
+
decl.options = { ...(decl.options || {}), ...optionFrom(of) }
|
|
536
|
+
continue
|
|
537
|
+
}
|
|
465
538
|
if (';' === of.src) continue
|
|
466
539
|
const f = isGroup(of) ? buildGroup(of, version, msg) : buildField(of, version)
|
|
467
540
|
f.oneofIndex = index
|
|
@@ -495,19 +568,19 @@ function buildService(n: Node): ServiceDescriptorProto {
|
|
|
495
568
|
function buildRpc(el: Node): MethodDescriptorProto {
|
|
496
569
|
const ids = R(el).filter((k) => k.rule === 'ident')
|
|
497
570
|
const types = R(el).filter((k) => k.rule === 'messageType')
|
|
498
|
-
const flat = el.src.replace(/\s+/g, '')
|
|
499
571
|
const m: MethodDescriptorProto = {
|
|
500
572
|
name: ids[0] ? ids[0].src : '',
|
|
501
573
|
inputType: types[0] ? types[0].src : '',
|
|
502
574
|
outputType: types[1] ? types[1].src : '',
|
|
503
575
|
}
|
|
504
|
-
//
|
|
505
|
-
//
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
if (
|
|
576
|
+
// `stream` is a bare terminal, so it never becomes a node — but it sits
|
|
577
|
+
// immediately ahead of the type it modifies, which is exactly what the
|
|
578
|
+
// gap holds. Searching the statement for `(stream` instead marks an
|
|
579
|
+
// ordinary type whose name merely BEGINS with those letters, so
|
|
580
|
+
// `rpc M (streaming.Request)` came back client-streaming.
|
|
581
|
+
const modifiers = gapsBefore(el, 'messageType')
|
|
582
|
+
if (modifiers[0]?.endsWith('stream')) m.clientStreaming = true
|
|
583
|
+
if (modifiers[1]?.endsWith('stream')) m.serverStreaming = true
|
|
511
584
|
for (const o of R(el).filter((k) => k.rule === 'optionStmt')) {
|
|
512
585
|
m.options = { ...(m.options || {}), ...optionFrom(o) }
|
|
513
586
|
}
|
package/src/proto.ts
CHANGED
|
@@ -68,7 +68,7 @@ function parse(src: string, options?: Partial<ProtoOptions>): FileDescriptorProt
|
|
|
68
68
|
// VERSION is this package's version. It MUST equal package.json "version":
|
|
69
69
|
// the release orchestrator rewrites both, and test/version.test.ts fails the
|
|
70
70
|
// build if they drift. Mirrors `const VERSION` in go/proto.go.
|
|
71
|
-
const VERSION = '0.4.
|
|
71
|
+
const VERSION = '0.4.7'
|
|
72
72
|
|
|
73
73
|
export { Proto, parse, toDescriptor, VERSION }
|
|
74
74
|
export type { ProtoVersion }
|