@moqtap/codec 0.9.0 → 0.11.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/CHANGELOG.md +173 -0
- package/dist/auth-redaction-DsdLq4Qs.d.cts +102 -0
- package/dist/auth-redaction-DsdLq4Qs.d.ts +102 -0
- package/dist/{chunk-PU2KV7VP.cjs → chunk-27K5BUAG.cjs} +485 -515
- package/dist/{chunk-BV6MITLO.js → chunk-3RNQMGKA.js} +365 -390
- package/dist/{chunk-2XH6PHXR.js → chunk-5AWIXOLB.js} +442 -467
- package/dist/{chunk-4XLYCT5Q.cjs → chunk-5IMHJIAZ.cjs} +52 -2
- package/dist/{chunk-TVSFDQYE.cjs → chunk-5JGZCKJO.cjs} +513 -531
- package/dist/{chunk-IADVBKEJ.cjs → chunk-73K4OSAN.cjs} +407 -432
- package/dist/{chunk-N2V7Z37J.js → chunk-7VQKRGRD.js} +19 -3
- package/dist/{chunk-UZO5Z2XT.cjs → chunk-A3UCQOIB.cjs} +490 -515
- package/dist/{chunk-JKMYAUGY.js → chunk-A7PDMVXM.js} +35 -11
- package/dist/{chunk-VZHL2U2N.cjs → chunk-A7VQO6YC.cjs} +54 -38
- package/dist/{chunk-KCH4BQXK.cjs → chunk-ACQHZLRZ.cjs} +73 -47
- package/dist/{chunk-H6DTAIWM.js → chunk-BBICOMW6.js} +47 -19
- package/dist/{chunk-MAXEHYVB.cjs → chunk-BNIUVOCJ.cjs} +554 -612
- package/dist/{chunk-QGIHC6BA.cjs → chunk-CNC6ANS4.cjs} +70 -46
- package/dist/{chunk-NH4L6NIY.js → chunk-FDLQSWHK.js} +437 -467
- package/dist/{chunk-IJAF6PAY.js → chunk-FFNOE4UR.js} +19 -3
- package/dist/{chunk-CZNW3R5E.cjs → chunk-GMENT63T.cjs} +54 -38
- package/dist/{chunk-7ENEWAMZ.cjs → chunk-HM7BLRVP.cjs} +305 -305
- package/dist/{chunk-XHAP2YST.js → chunk-HZONHFNO.js} +19 -3
- package/dist/{chunk-EVCPBFSR.cjs → chunk-ILYABWDK.cjs} +83 -55
- package/dist/{chunk-IDV2JYJ6.cjs → chunk-KRSFTZVO.cjs} +56 -40
- package/dist/{chunk-RIIA4ALQ.cjs → chunk-KSPH6KMH.cjs} +54 -38
- package/dist/{chunk-UA5XFP4O.cjs → chunk-KTY4LAUV.cjs} +485 -494
- package/dist/{chunk-RZTLQAKF.js → chunk-OJNLJT5D.js} +0 -1
- package/dist/{chunk-YJGOD3Y4.js → chunk-PJK2ZS3I.js} +492 -550
- package/dist/{chunk-TMXRYOBS.js → chunk-PSMZKHOC.js} +444 -453
- package/dist/{chunk-7RE6KSIY.cjs → chunk-Q5JQGHWY.cjs} +0 -1
- package/dist/{chunk-23KRITJ6.js → chunk-SQTUQY5E.js} +37 -11
- package/dist/{chunk-XQGEOFGE.js → chunk-WCRLAKDW.js} +253 -253
- package/dist/{chunk-KYVTM5VI.js → chunk-WL2YUEXH.js} +19 -3
- package/dist/{chunk-Q7NSUXXB.js → chunk-YCNIVZS7.js} +464 -482
- package/dist/{chunk-KLPWJU6W.js → chunk-YRZQVNZO.js} +50 -0
- package/dist/{codec-Bym-K2q2.d.cts → codec-76xzrLTL.d.cts} +21 -2
- package/dist/{codec-BKsVu3Fr.d.ts → codec-8p40WdLg.d.ts} +21 -2
- package/dist/{codec-Dl_QIXMz.d.ts → codec-BN2Bu0KI.d.ts} +20 -1
- package/dist/{codec-D4RvFQmu.d.ts → codec-Bb6GKTrv.d.ts} +21 -2
- package/dist/{codec-DAyiF5sq.d.cts → codec-BgpfHoAd.d.cts} +21 -2
- package/dist/{codec-CA6nbbEk.d.ts → codec-BkheTXO7.d.ts} +21 -2
- package/dist/{codec-DchsPfr3.d.cts → codec-BwVDkokh.d.cts} +21 -2
- package/dist/{codec-CgZdadPt.d.cts → codec-C5s1eBJX.d.cts} +21 -2
- package/dist/codec-CM5yd6n3.d.ts +38 -0
- package/dist/{codec-DJmqoIsp.d.cts → codec-Cb8HC3XV.d.cts} +21 -2
- package/dist/codec-Clu_skx8.d.cts +38 -0
- package/dist/{codec-DzkdW4kO.d.cts → codec-CpOpemR8.d.cts} +20 -1
- package/dist/{codec-CXCjya_G.d.cts → codec-Cshdl9Tt.d.cts} +20 -1
- package/dist/{codec-CSBFdPgP.d.cts → codec-DELe00w_.d.cts} +21 -2
- package/dist/{codec-C_xxsbKy.d.cts → codec-DHzKAUCa.d.cts} +21 -2
- package/dist/{codec--CVeqGQv.d.ts → codec-DdVBtvx7.d.ts} +20 -1
- package/dist/{codec-CviAa4lp.d.ts → codec-DlxGuYMv.d.ts} +21 -2
- package/dist/{codec-BNy5syCU.d.ts → codec-DxtgPxJS.d.ts} +20 -1
- package/dist/{codec-CtvFK4aV.d.cts → codec-GAY4lybi.d.cts} +21 -2
- package/dist/{codec-Cfo_z5ET.d.cts → codec-I8u2pfS4.d.cts} +20 -1
- package/dist/{codec-vddqy0KY.d.cts → codec-XLrnreeu.d.cts} +21 -2
- package/dist/{codec-O-1Js7h4.d.ts → codec-c0YEwwWn.d.ts} +21 -2
- package/dist/{codec-Cl73EfRW.d.ts → codec-ejDu-va6.d.ts} +21 -2
- package/dist/{codec-C006F75E.d.ts → codec-kaBUzdpV.d.ts} +21 -2
- package/dist/{codec-C5evFHL-.d.ts → codec-mVYqkIUF.d.ts} +21 -2
- package/dist/{codec-BMwgZIgG.d.ts → codec-qSbO5nOa.d.ts} +21 -2
- package/dist/{codec-BQa6Qsav.d.ts → codec-yYKGOipj.d.ts} +21 -2
- package/dist/{codec-DzLvG8Wb.d.cts → codec-zfzg9uiy.d.cts} +21 -2
- package/dist/draft07.cjs +48 -4
- package/dist/draft07.d.cts +42 -2
- package/dist/draft07.d.ts +42 -2
- package/dist/draft07.js +49 -5
- package/dist/draft08.cjs +76 -3
- package/dist/draft08.d.cts +70 -2
- package/dist/draft08.d.ts +70 -2
- package/dist/draft08.js +77 -4
- package/dist/draft09.cjs +76 -3
- package/dist/draft09.d.cts +70 -2
- package/dist/draft09.d.ts +70 -2
- package/dist/draft09.js +77 -4
- package/dist/draft10.cjs +76 -3
- package/dist/draft10.d.cts +70 -2
- package/dist/draft10.d.ts +70 -2
- package/dist/draft10.js +77 -4
- package/dist/draft11-session.d.cts +1 -1
- package/dist/draft11-session.d.ts +1 -1
- package/dist/draft11.cjs +104 -3
- package/dist/draft11.d.cts +100 -4
- package/dist/draft11.d.ts +100 -4
- package/dist/draft11.js +105 -4
- package/dist/draft12-session.d.cts +1 -1
- package/dist/draft12-session.d.ts +1 -1
- package/dist/draft12.cjs +113 -3
- package/dist/draft12.d.cts +109 -4
- package/dist/draft12.d.ts +109 -4
- package/dist/draft12.js +114 -4
- package/dist/draft13-session.d.cts +1 -1
- package/dist/draft13-session.d.ts +1 -1
- package/dist/draft13.cjs +105 -3
- package/dist/draft13.d.cts +101 -4
- package/dist/draft13.d.ts +101 -4
- package/dist/draft13.js +106 -4
- package/dist/draft14-session.d.cts +1 -1
- package/dist/draft14-session.d.ts +1 -1
- package/dist/draft14.cjs +107 -3
- package/dist/draft14.d.cts +103 -30
- package/dist/draft14.d.ts +103 -30
- package/dist/draft14.js +108 -4
- package/dist/draft15-session.d.cts +1 -1
- package/dist/draft15-session.d.ts +1 -1
- package/dist/draft15.cjs +69 -3
- package/dist/draft15.d.cts +65 -22
- package/dist/draft15.d.ts +65 -22
- package/dist/draft15.js +70 -4
- package/dist/draft16-session.cjs +2 -2
- package/dist/draft16-session.d.cts +1 -1
- package/dist/draft16-session.d.ts +1 -1
- package/dist/draft16-session.js +1 -1
- package/dist/draft16.cjs +76 -8
- package/dist/draft16.d.cts +67 -13
- package/dist/draft16.d.ts +67 -13
- package/dist/draft16.js +73 -5
- package/dist/draft17-session.d.cts +1 -1
- package/dist/draft17-session.d.ts +1 -1
- package/dist/draft17.cjs +77 -3
- package/dist/draft17.d.cts +73 -4
- package/dist/draft17.d.ts +73 -4
- package/dist/draft17.js +78 -4
- package/dist/draft18-session.d.cts +1 -1
- package/dist/draft18-session.d.ts +1 -1
- package/dist/draft18.cjs +8 -3
- package/dist/draft18.d.cts +4 -3
- package/dist/draft18.d.ts +4 -3
- package/dist/draft18.js +9 -4
- package/dist/draft19-session.d.cts +1 -1
- package/dist/draft19-session.d.ts +1 -1
- package/dist/draft19.cjs +11 -4
- package/dist/draft19.d.cts +4 -3
- package/dist/draft19.d.ts +4 -3
- package/dist/draft19.js +12 -5
- package/dist/draft20-session.d.cts +1 -1
- package/dist/draft20-session.d.ts +1 -1
- package/dist/draft20.cjs +8 -3
- package/dist/draft20.d.cts +4 -3
- package/dist/draft20.d.ts +4 -3
- package/dist/draft20.js +9 -4
- package/dist/index.cjs +30 -30
- package/dist/index.d.cts +25 -24
- package/dist/index.d.ts +25 -24
- package/dist/index.js +15 -15
- package/dist/session.cjs +2 -2
- package/dist/session.d.cts +10 -10
- package/dist/session.d.ts +10 -10
- package/dist/session.js +1 -1
- package/dist/{types-zHgCS6o5.d.cts → types-Btp416jt.d.cts} +15 -7
- package/dist/{types-zHgCS6o5.d.ts → types-Btp416jt.d.ts} +15 -7
- package/dist/{types-Cm9fjeYC.d.cts → types-BxTL1NXw.d.cts} +9 -2
- package/dist/{types-Cm9fjeYC.d.ts → types-BxTL1NXw.d.ts} +9 -2
- package/dist/{types-Bio-91Rt.d.cts → types-CI_SX4Xe.d.cts} +2 -2
- package/dist/{types-Bio-91Rt.d.ts → types-CI_SX4Xe.d.ts} +2 -2
- package/dist/{types-HI_bbXka.d.cts → types-CmqT0jUf.d.cts} +1 -1
- package/dist/{types-HI_bbXka.d.ts → types-CmqT0jUf.d.ts} +1 -1
- package/dist/{types-CPaYBsMG.d.cts → types-CuibHYcf.d.cts} +9 -2
- package/dist/{types-CPaYBsMG.d.ts → types-CuibHYcf.d.ts} +9 -2
- package/dist/{types-CWCQwuvy.d.cts → types-CwN7AEoL.d.cts} +24 -12
- package/dist/{types-CWCQwuvy.d.ts → types-CwN7AEoL.d.ts} +24 -12
- package/dist/{types-Ck45Ex5S.d.cts → types-D0kTgUuL.d.cts} +1 -1
- package/dist/{types-Ck45Ex5S.d.ts → types-D0kTgUuL.d.ts} +1 -1
- package/dist/{types-D9eiB_9A.d.cts → types-DAnalt5K.d.cts} +9 -2
- package/dist/{types-D9eiB_9A.d.ts → types-DAnalt5K.d.ts} +9 -2
- package/dist/{types-CXlSn0I9.d.cts → types-DjxexghA.d.cts} +2 -2
- package/dist/{types-CXlSn0I9.d.ts → types-DjxexghA.d.ts} +2 -2
- package/dist/{types-Cqp10JtB.d.cts → types-DxXNP32l.d.cts} +10 -2
- package/dist/{types-Cqp10JtB.d.ts → types-DxXNP32l.d.ts} +10 -2
- package/package.json +3 -3
- package/src/core/auth-redaction.ts +192 -0
- package/src/drafts/draft07/codec.ts +40 -0
- package/src/drafts/draft07/error-codes.ts +44 -0
- package/src/drafts/draft07/index.ts +15 -0
- package/src/drafts/draft08/codec.ts +40 -0
- package/src/drafts/draft08/error-codes.ts +76 -0
- package/src/drafts/draft08/index.ts +21 -0
- package/src/drafts/draft09/codec.ts +40 -0
- package/src/drafts/draft09/error-codes.ts +76 -0
- package/src/drafts/draft09/index.ts +21 -0
- package/src/drafts/draft10/codec.ts +40 -0
- package/src/drafts/draft10/error-codes.ts +76 -0
- package/src/drafts/draft10/index.ts +21 -0
- package/src/drafts/draft11/codec.ts +71 -8
- package/src/drafts/draft11/error-codes.ts +106 -0
- package/src/drafts/draft11/index.ts +23 -0
- package/src/drafts/draft11/types.ts +1 -1
- package/src/drafts/draft12/codec.ts +83 -16
- package/src/drafts/draft12/error-codes.ts +116 -0
- package/src/drafts/draft12/index.ts +25 -0
- package/src/drafts/draft12/types.ts +2 -2
- package/src/drafts/draft13/codec.ts +75 -11
- package/src/drafts/draft13/error-codes.ts +107 -0
- package/src/drafts/draft13/index.ts +23 -0
- package/src/drafts/draft13/types.ts +3 -3
- package/src/drafts/draft14/codec.ts +79 -12
- package/src/drafts/draft14/data-streams.ts +331 -259
- package/src/drafts/draft14/error-codes.ts +109 -0
- package/src/drafts/draft14/index.ts +23 -0
- package/src/drafts/draft14/types.ts +1 -1
- package/src/drafts/draft15/codec.ts +71 -8
- package/src/drafts/draft15/data-streams.ts +489 -444
- package/src/drafts/draft15/error-codes.ts +66 -0
- package/src/drafts/draft15/index.ts +15 -0
- package/src/drafts/draft15/types.ts +9 -2
- package/src/drafts/draft16/codec.ts +149 -49
- package/src/drafts/draft16/data-streams.ts +513 -442
- package/src/drafts/draft16/error-codes.ts +68 -0
- package/src/drafts/draft16/index.ts +15 -0
- package/src/drafts/draft16/messages.ts +4 -4
- package/src/drafts/draft16/session-fsm.ts +0 -1
- package/src/drafts/draft16/types.ts +24 -10
- package/src/drafts/draft17/codec.ts +77 -10
- package/src/drafts/draft17/data-streams.ts +567 -488
- package/src/drafts/draft17/index.ts +15 -0
- package/src/drafts/draft17/types.ts +9 -2
- package/src/drafts/draft18/codec.ts +70 -7
- package/src/drafts/draft18/data-streams.ts +570 -482
- package/src/drafts/draft18/index.ts +3 -0
- package/src/drafts/draft18/types.ts +18 -10
- package/src/drafts/draft19/codec.ts +95 -23
- package/src/drafts/draft19/data-streams.ts +570 -482
- package/src/drafts/draft19/error-codes.ts +3 -1
- package/src/drafts/draft19/index.ts +3 -0
- package/src/drafts/draft19/messages.ts +3 -1
- package/src/drafts/draft19/types.ts +32 -18
- package/src/drafts/draft20/codec.ts +115 -36
- package/src/drafts/draft20/data-streams.ts +610 -563
- package/src/drafts/draft20/index.ts +3 -0
- package/src/drafts/draft20/types.ts +31 -13
- package/dist/codec-BJ7BHuiZ.d.ts +0 -18
- package/dist/codec-C6Mx4bwz.d.cts +0 -18
|
@@ -3,8 +3,10 @@ import {
|
|
|
3
3
|
BufferWriter,
|
|
4
4
|
DecodeError,
|
|
5
5
|
bytesToHex,
|
|
6
|
-
hexToBytes
|
|
7
|
-
|
|
6
|
+
hexToBytes,
|
|
7
|
+
recordAuthValueSpan,
|
|
8
|
+
redactWith
|
|
9
|
+
} from "./chunk-YRZQVNZO.js";
|
|
8
10
|
|
|
9
11
|
// src/drafts/draft11/data-streams.ts
|
|
10
12
|
var FETCH_STREAM_TYPE = 0x05n;
|
|
@@ -428,13 +430,13 @@ function decodeSetupParams(r) {
|
|
|
428
430
|
}
|
|
429
431
|
function encodeParams(params, w) {
|
|
430
432
|
let count = params.unknown ? params.unknown.length : 0;
|
|
431
|
-
|
|
433
|
+
count += params.authorization_token?.length ?? 0;
|
|
432
434
|
if (params.delivery_timeout !== void 0) count++;
|
|
433
435
|
if (params.max_cache_duration !== void 0) count++;
|
|
434
436
|
w.writeVarInt(count);
|
|
435
|
-
|
|
437
|
+
for (const token of params.authorization_token ?? []) {
|
|
436
438
|
w.writeVarInt(PARAM_AUTHORIZATION_TOKEN);
|
|
437
|
-
const at =
|
|
439
|
+
const at = token;
|
|
438
440
|
const tmpW = new BufferWriter(64);
|
|
439
441
|
tmpW.writeVarInt(at.alias_type);
|
|
440
442
|
tmpW.writeVarInt(at.token_type);
|
|
@@ -497,11 +499,15 @@ function decodeParams(r) {
|
|
|
497
499
|
const token_type = r.readVarInt();
|
|
498
500
|
const tokenBytesLen = length - (r.offset - startOff);
|
|
499
501
|
const tokenBytes = r.readBytes(tokenBytesLen);
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
502
|
+
noteAuthTokenValue(startOff, length, tokenBytes);
|
|
503
|
+
result.authorization_token = [
|
|
504
|
+
...result.authorization_token ?? [],
|
|
505
|
+
{
|
|
506
|
+
alias_type,
|
|
507
|
+
token_type,
|
|
508
|
+
token_value: tokenBytes
|
|
509
|
+
}
|
|
510
|
+
];
|
|
505
511
|
} else {
|
|
506
512
|
const bytes = r.readBytes(length);
|
|
507
513
|
unknown.push({
|
|
@@ -1140,6 +1146,23 @@ function createDraft11Codec() {
|
|
|
1140
1146
|
createStreamDecoder
|
|
1141
1147
|
};
|
|
1142
1148
|
}
|
|
1149
|
+
function noteAuthTokenValue(valueStart, valueLength, value) {
|
|
1150
|
+
if (value === void 0 || value.byteLength === 0) return;
|
|
1151
|
+
recordAuthValueSpan(valueStart + valueLength - value.byteLength, value.byteLength);
|
|
1152
|
+
}
|
|
1153
|
+
function redactAuthTokens(bytes) {
|
|
1154
|
+
let payloadStart;
|
|
1155
|
+
try {
|
|
1156
|
+
const probe = new BufferReader(bytes);
|
|
1157
|
+
probe.readVarInt();
|
|
1158
|
+
probe.readUint8();
|
|
1159
|
+
probe.readUint8();
|
|
1160
|
+
payloadStart = probe.offset;
|
|
1161
|
+
} catch {
|
|
1162
|
+
return { bytes, redacted: 0, incomplete: false, decoded: false };
|
|
1163
|
+
}
|
|
1164
|
+
return redactWith(bytes, payloadStart, () => decodeMessage(bytes).ok);
|
|
1165
|
+
}
|
|
1143
1166
|
|
|
1144
1167
|
export {
|
|
1145
1168
|
encodeSubgroupStream,
|
|
@@ -1184,5 +1207,6 @@ export {
|
|
|
1184
1207
|
encodeMessage,
|
|
1185
1208
|
decodeMessage,
|
|
1186
1209
|
createStreamDecoder,
|
|
1187
|
-
createDraft11Codec
|
|
1210
|
+
createDraft11Codec,
|
|
1211
|
+
redactAuthTokens
|
|
1188
1212
|
};
|
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
var _chunk5IMHJIAZcjs = require('./chunk-5IMHJIAZ.cjs');
|
|
8
10
|
|
|
9
11
|
// src/drafts/draft08/data-streams.ts
|
|
10
12
|
var SUBGROUP_STREAM_TYPE = 0x04n;
|
|
@@ -12,7 +14,7 @@ var DATAGRAM_TYPE = 0x01n;
|
|
|
12
14
|
var DATAGRAM_STATUS_TYPE = 0x02n;
|
|
13
15
|
var FETCH_STREAM_TYPE = 0x05n;
|
|
14
16
|
function encodeSubgroupStream(stream) {
|
|
15
|
-
const w = new (0,
|
|
17
|
+
const w = new (0, _chunk5IMHJIAZcjs.BufferWriter)();
|
|
16
18
|
w.writeVarInt(SUBGROUP_STREAM_TYPE);
|
|
17
19
|
w.writeVarInt(stream.trackAlias);
|
|
18
20
|
w.writeVarInt(stream.groupId);
|
|
@@ -32,7 +34,7 @@ function encodeSubgroupStream(stream) {
|
|
|
32
34
|
return w.finish();
|
|
33
35
|
}
|
|
34
36
|
function encodeDatagram(dg) {
|
|
35
|
-
const w = new (0,
|
|
37
|
+
const w = new (0, _chunk5IMHJIAZcjs.BufferWriter)();
|
|
36
38
|
w.writeVarInt(DATAGRAM_TYPE);
|
|
37
39
|
w.writeVarInt(dg.trackAlias);
|
|
38
40
|
w.writeVarInt(dg.groupId);
|
|
@@ -49,7 +51,7 @@ function encodeDatagram(dg) {
|
|
|
49
51
|
return w.finish();
|
|
50
52
|
}
|
|
51
53
|
function encodeDatagramStatus(dg) {
|
|
52
|
-
const w = new (0,
|
|
54
|
+
const w = new (0, _chunk5IMHJIAZcjs.BufferWriter)();
|
|
53
55
|
w.writeVarInt(DATAGRAM_STATUS_TYPE);
|
|
54
56
|
w.writeVarInt(dg.trackAlias);
|
|
55
57
|
w.writeVarInt(dg.groupId);
|
|
@@ -59,7 +61,7 @@ function encodeDatagramStatus(dg) {
|
|
|
59
61
|
return w.finish();
|
|
60
62
|
}
|
|
61
63
|
function encodeFetchStream(stream) {
|
|
62
|
-
const w = new (0,
|
|
64
|
+
const w = new (0, _chunk5IMHJIAZcjs.BufferWriter)();
|
|
63
65
|
w.writeVarInt(FETCH_STREAM_TYPE);
|
|
64
66
|
w.writeVarInt(stream.subscribeId);
|
|
65
67
|
for (const obj of stream.objects) {
|
|
@@ -80,12 +82,12 @@ function encodeFetchStream(stream) {
|
|
|
80
82
|
}
|
|
81
83
|
function decodeSubgroupStream(bytes) {
|
|
82
84
|
try {
|
|
83
|
-
const r = new (0,
|
|
85
|
+
const r = new (0, _chunk5IMHJIAZcjs.BufferReader)(bytes);
|
|
84
86
|
const streamType = Number(r.readVarInt());
|
|
85
87
|
if (streamType !== 4) {
|
|
86
88
|
return {
|
|
87
89
|
ok: false,
|
|
88
|
-
error: new (0,
|
|
90
|
+
error: new (0, _chunk5IMHJIAZcjs.DecodeError)(
|
|
89
91
|
"CONSTRAINT_VIOLATION",
|
|
90
92
|
`Expected subgroup type 0x04, got 0x${streamType.toString(16)}`,
|
|
91
93
|
0
|
|
@@ -151,18 +153,18 @@ function decodeSubgroupStream(bytes) {
|
|
|
151
153
|
bytesRead: r.offset
|
|
152
154
|
};
|
|
153
155
|
} catch (e) {
|
|
154
|
-
if (e instanceof
|
|
156
|
+
if (e instanceof _chunk5IMHJIAZcjs.DecodeError) return { ok: false, error: e };
|
|
155
157
|
throw e;
|
|
156
158
|
}
|
|
157
159
|
}
|
|
158
160
|
function decodeDatagram(bytes) {
|
|
159
161
|
try {
|
|
160
|
-
const r = new (0,
|
|
162
|
+
const r = new (0, _chunk5IMHJIAZcjs.BufferReader)(bytes);
|
|
161
163
|
const streamType = Number(r.readVarInt());
|
|
162
164
|
if (streamType !== 1) {
|
|
163
165
|
return {
|
|
164
166
|
ok: false,
|
|
165
|
-
error: new (0,
|
|
167
|
+
error: new (0, _chunk5IMHJIAZcjs.DecodeError)(
|
|
166
168
|
"CONSTRAINT_VIOLATION",
|
|
167
169
|
`Expected datagram type 0x01, got 0x${streamType.toString(16)}`,
|
|
168
170
|
0
|
|
@@ -209,18 +211,18 @@ function decodeDatagram(bytes) {
|
|
|
209
211
|
};
|
|
210
212
|
return { ok: true, value: result, bytesRead: r.offset };
|
|
211
213
|
} catch (e) {
|
|
212
|
-
if (e instanceof
|
|
214
|
+
if (e instanceof _chunk5IMHJIAZcjs.DecodeError) return { ok: false, error: e };
|
|
213
215
|
throw e;
|
|
214
216
|
}
|
|
215
217
|
}
|
|
216
218
|
function decodeDatagramStatus(bytes) {
|
|
217
219
|
try {
|
|
218
|
-
const r = new (0,
|
|
220
|
+
const r = new (0, _chunk5IMHJIAZcjs.BufferReader)(bytes);
|
|
219
221
|
const streamType = Number(r.readVarInt());
|
|
220
222
|
if (streamType !== 2) {
|
|
221
223
|
return {
|
|
222
224
|
ok: false,
|
|
223
|
-
error: new (0,
|
|
225
|
+
error: new (0, _chunk5IMHJIAZcjs.DecodeError)(
|
|
224
226
|
"CONSTRAINT_VIOLATION",
|
|
225
227
|
`Expected datagram_status type 0x02, got 0x${streamType.toString(16)}`,
|
|
226
228
|
0
|
|
@@ -246,18 +248,18 @@ function decodeDatagramStatus(bytes) {
|
|
|
246
248
|
bytesRead: r.offset
|
|
247
249
|
};
|
|
248
250
|
} catch (e) {
|
|
249
|
-
if (e instanceof
|
|
251
|
+
if (e instanceof _chunk5IMHJIAZcjs.DecodeError) return { ok: false, error: e };
|
|
250
252
|
throw e;
|
|
251
253
|
}
|
|
252
254
|
}
|
|
253
255
|
function decodeFetchStream(bytes) {
|
|
254
256
|
try {
|
|
255
|
-
const r = new (0,
|
|
257
|
+
const r = new (0, _chunk5IMHJIAZcjs.BufferReader)(bytes);
|
|
256
258
|
const streamType = r.readVarInt();
|
|
257
259
|
if (streamType !== FETCH_STREAM_TYPE) {
|
|
258
260
|
return {
|
|
259
261
|
ok: false,
|
|
260
|
-
error: new (0,
|
|
262
|
+
error: new (0, _chunk5IMHJIAZcjs.DecodeError)(
|
|
261
263
|
"CONSTRAINT_VIOLATION",
|
|
262
264
|
`Expected fetch type 0x05, got 0x${streamType.toString(16)}`,
|
|
263
265
|
0
|
|
@@ -318,7 +320,7 @@ function decodeFetchStream(bytes) {
|
|
|
318
320
|
bytesRead: r.offset
|
|
319
321
|
};
|
|
320
322
|
} catch (e) {
|
|
321
|
-
if (e instanceof
|
|
323
|
+
if (e instanceof _chunk5IMHJIAZcjs.DecodeError) return { ok: false, error: e };
|
|
322
324
|
throw e;
|
|
323
325
|
}
|
|
324
326
|
}
|
|
@@ -420,7 +422,7 @@ function encodeSetupParams(params, w) {
|
|
|
420
422
|
}
|
|
421
423
|
if (params.max_subscribe_id !== void 0) {
|
|
422
424
|
w.writeVarInt(SETUP_PARAM_MAX_SUBSCRIBE_ID);
|
|
423
|
-
const tmpW = new (0,
|
|
425
|
+
const tmpW = new (0, _chunk5IMHJIAZcjs.BufferWriter)(16);
|
|
424
426
|
tmpW.writeVarInt(params.max_subscribe_id);
|
|
425
427
|
const raw = tmpW.finish();
|
|
426
428
|
w.writeVarInt(raw.byteLength);
|
|
@@ -429,7 +431,7 @@ function encodeSetupParams(params, w) {
|
|
|
429
431
|
if (params.unknown) {
|
|
430
432
|
for (const u of params.unknown) {
|
|
431
433
|
w.writeVarInt(BigInt(u.id));
|
|
432
|
-
const raw =
|
|
434
|
+
const raw = _chunk5IMHJIAZcjs.hexToBytes.call(void 0, u.raw_hex);
|
|
433
435
|
w.writeVarInt(raw.byteLength);
|
|
434
436
|
w.writeBytes(raw);
|
|
435
437
|
}
|
|
@@ -447,14 +449,14 @@ function decodeSetupParams(r) {
|
|
|
447
449
|
result.path = textDecoder.decode(bytes);
|
|
448
450
|
} else if (paramType === SETUP_PARAM_MAX_SUBSCRIBE_ID) {
|
|
449
451
|
const blob = r.readBytes(length);
|
|
450
|
-
const tmpReader = new (0,
|
|
452
|
+
const tmpReader = new (0, _chunk5IMHJIAZcjs.BufferReader)(blob);
|
|
451
453
|
result.max_subscribe_id = tmpReader.readVarInt();
|
|
452
454
|
} else {
|
|
453
455
|
const bytes = r.readBytes(length);
|
|
454
456
|
unknown.push({
|
|
455
457
|
id: `0x${paramType.toString(16)}`,
|
|
456
458
|
length,
|
|
457
|
-
raw_hex:
|
|
459
|
+
raw_hex: _chunk5IMHJIAZcjs.bytesToHex.call(void 0, bytes)
|
|
458
460
|
});
|
|
459
461
|
}
|
|
460
462
|
}
|
|
@@ -475,7 +477,7 @@ function encodeParams(params, w) {
|
|
|
475
477
|
}
|
|
476
478
|
if (params.delivery_timeout !== void 0) {
|
|
477
479
|
w.writeVarInt(PARAM_DELIVERY_TIMEOUT);
|
|
478
|
-
const tmpW = new (0,
|
|
480
|
+
const tmpW = new (0, _chunk5IMHJIAZcjs.BufferWriter)(16);
|
|
479
481
|
tmpW.writeVarInt(params.delivery_timeout);
|
|
480
482
|
const raw = tmpW.finish();
|
|
481
483
|
w.writeVarInt(raw.byteLength);
|
|
@@ -483,7 +485,7 @@ function encodeParams(params, w) {
|
|
|
483
485
|
}
|
|
484
486
|
if (params.max_cache_duration !== void 0) {
|
|
485
487
|
w.writeVarInt(PARAM_MAX_CACHE_DURATION);
|
|
486
|
-
const tmpW = new (0,
|
|
488
|
+
const tmpW = new (0, _chunk5IMHJIAZcjs.BufferWriter)(16);
|
|
487
489
|
tmpW.writeVarInt(params.max_cache_duration);
|
|
488
490
|
const raw = tmpW.finish();
|
|
489
491
|
w.writeVarInt(raw.byteLength);
|
|
@@ -492,7 +494,7 @@ function encodeParams(params, w) {
|
|
|
492
494
|
if (params.unknown) {
|
|
493
495
|
for (const u of params.unknown) {
|
|
494
496
|
w.writeVarInt(BigInt(u.id));
|
|
495
|
-
const raw =
|
|
497
|
+
const raw = _chunk5IMHJIAZcjs.hexToBytes.call(void 0, u.raw_hex);
|
|
496
498
|
w.writeVarInt(raw.byteLength);
|
|
497
499
|
w.writeBytes(raw);
|
|
498
500
|
}
|
|
@@ -507,21 +509,22 @@ function decodeParams(r) {
|
|
|
507
509
|
const length = Number(r.readVarInt());
|
|
508
510
|
if (paramType === PARAM_AUTHORIZATION_INFO) {
|
|
509
511
|
const bytes = r.readBytes(length);
|
|
512
|
+
_chunk5IMHJIAZcjs.recordAuthValueSpan.call(void 0, r.offset - length, length);
|
|
510
513
|
result.authorization_info = textDecoder.decode(bytes);
|
|
511
514
|
} else if (paramType === PARAM_DELIVERY_TIMEOUT) {
|
|
512
515
|
const blob = r.readBytes(length);
|
|
513
|
-
const tmpReader = new (0,
|
|
516
|
+
const tmpReader = new (0, _chunk5IMHJIAZcjs.BufferReader)(blob);
|
|
514
517
|
result.delivery_timeout = tmpReader.readVarInt();
|
|
515
518
|
} else if (paramType === PARAM_MAX_CACHE_DURATION) {
|
|
516
519
|
const blob = r.readBytes(length);
|
|
517
|
-
const tmpReader = new (0,
|
|
520
|
+
const tmpReader = new (0, _chunk5IMHJIAZcjs.BufferReader)(blob);
|
|
518
521
|
result.max_cache_duration = tmpReader.readVarInt();
|
|
519
522
|
} else {
|
|
520
523
|
const bytes = r.readBytes(length);
|
|
521
524
|
unknown.push({
|
|
522
525
|
id: `0x${paramType.toString(16)}`,
|
|
523
526
|
length,
|
|
524
|
-
raw_hex:
|
|
527
|
+
raw_hex: _chunk5IMHJIAZcjs.bytesToHex.call(void 0, bytes)
|
|
525
528
|
});
|
|
526
529
|
}
|
|
527
530
|
}
|
|
@@ -682,7 +685,7 @@ function encodeSubscribesBlockedPayload(msg, w) {
|
|
|
682
685
|
function decodeClientSetupPayload(r) {
|
|
683
686
|
const numVersions = Number(r.readVarInt());
|
|
684
687
|
if (numVersions === 0) {
|
|
685
|
-
throw new (0,
|
|
688
|
+
throw new (0, _chunk5IMHJIAZcjs.DecodeError)("CONSTRAINT_VIOLATION", "supported_versions must not be empty", r.offset);
|
|
686
689
|
}
|
|
687
690
|
const supported_versions = [];
|
|
688
691
|
for (let i = 0; i < numVersions; i++) supported_versions.push(r.readVarInt());
|
|
@@ -704,7 +707,7 @@ function decodeSubscribePayload(r) {
|
|
|
704
707
|
const filter_type = r.readVarInt();
|
|
705
708
|
const ft = Number(filter_type);
|
|
706
709
|
if (ft < 1 || ft > 4) {
|
|
707
|
-
throw new (0,
|
|
710
|
+
throw new (0, _chunk5IMHJIAZcjs.DecodeError)("CONSTRAINT_VIOLATION", `Invalid filter_type: ${ft}`, r.offset);
|
|
708
711
|
}
|
|
709
712
|
let start_group;
|
|
710
713
|
let start_object;
|
|
@@ -860,7 +863,7 @@ function decodeFetchPayload(r) {
|
|
|
860
863
|
const fetch_type = r.readVarInt();
|
|
861
864
|
const ft = Number(fetch_type);
|
|
862
865
|
if (ft < 1 || ft > 2) {
|
|
863
|
-
throw new (0,
|
|
866
|
+
throw new (0, _chunk5IMHJIAZcjs.DecodeError)("CONSTRAINT_VIOLATION", `Invalid fetch_type: ${ft}`, r.offset);
|
|
864
867
|
}
|
|
865
868
|
let standalone;
|
|
866
869
|
let joining;
|
|
@@ -986,10 +989,10 @@ var payloadDecoders = /* @__PURE__ */ new Map([
|
|
|
986
989
|
function encodeMessage(message) {
|
|
987
990
|
const typeId = MESSAGE_ID_MAP.get(message.type);
|
|
988
991
|
if (typeId === void 0) throw new Error(`Unknown message type: ${message.type}`);
|
|
989
|
-
const payloadWriter = new (0,
|
|
992
|
+
const payloadWriter = new (0, _chunk5IMHJIAZcjs.BufferWriter)();
|
|
990
993
|
encodePayload(message, payloadWriter);
|
|
991
994
|
const payload = payloadWriter.finishView();
|
|
992
|
-
const writer = new (0,
|
|
995
|
+
const writer = new (0, _chunk5IMHJIAZcjs.BufferWriter)(payload.byteLength + 16);
|
|
993
996
|
writer.writeVarInt(typeId);
|
|
994
997
|
writer.writeVarInt(payload.byteLength);
|
|
995
998
|
writer.writeBytes(payload);
|
|
@@ -1057,16 +1060,16 @@ function encodePayload(msg, w) {
|
|
|
1057
1060
|
}
|
|
1058
1061
|
function decodeMessage(bytes) {
|
|
1059
1062
|
try {
|
|
1060
|
-
const reader = new (0,
|
|
1063
|
+
const reader = new (0, _chunk5IMHJIAZcjs.BufferReader)(bytes);
|
|
1061
1064
|
const typeId = reader.readVarInt();
|
|
1062
1065
|
const payloadLength = Number(reader.readVarInt());
|
|
1063
1066
|
const payloadBytes = reader.readBytes(payloadLength);
|
|
1064
|
-
const payloadReader = new (0,
|
|
1067
|
+
const payloadReader = new (0, _chunk5IMHJIAZcjs.BufferReader)(payloadBytes);
|
|
1065
1068
|
const decoder = payloadDecoders.get(typeId);
|
|
1066
1069
|
if (!decoder) {
|
|
1067
1070
|
return {
|
|
1068
1071
|
ok: false,
|
|
1069
|
-
error: new (0,
|
|
1072
|
+
error: new (0, _chunk5IMHJIAZcjs.DecodeError)(
|
|
1070
1073
|
"UNKNOWN_MESSAGE_TYPE",
|
|
1071
1074
|
`Unknown message type ID: 0x${typeId.toString(16)}`,
|
|
1072
1075
|
0
|
|
@@ -1076,7 +1079,7 @@ function decodeMessage(bytes) {
|
|
|
1076
1079
|
const message = decoder(payloadReader);
|
|
1077
1080
|
return { ok: true, value: message, bytesRead: reader.offset };
|
|
1078
1081
|
} catch (e) {
|
|
1079
|
-
if (e instanceof
|
|
1082
|
+
if (e instanceof _chunk5IMHJIAZcjs.DecodeError) return { ok: false, error: e };
|
|
1080
1083
|
throw e;
|
|
1081
1084
|
}
|
|
1082
1085
|
}
|
|
@@ -1106,7 +1109,7 @@ function createStreamDecoder() {
|
|
|
1106
1109
|
},
|
|
1107
1110
|
flush(controller) {
|
|
1108
1111
|
if (offset < buffer.length)
|
|
1109
|
-
controller.error(new (0,
|
|
1112
|
+
controller.error(new (0, _chunk5IMHJIAZcjs.DecodeError)("UNEXPECTED_END", "Stream ended with incomplete data", 0));
|
|
1110
1113
|
}
|
|
1111
1114
|
});
|
|
1112
1115
|
}
|
|
@@ -1127,6 +1130,19 @@ function createDraft08Codec() {
|
|
|
1127
1130
|
createStreamDecoder
|
|
1128
1131
|
};
|
|
1129
1132
|
}
|
|
1133
|
+
function redactAuthTokens(bytes) {
|
|
1134
|
+
let payloadStart;
|
|
1135
|
+
try {
|
|
1136
|
+
const probe = new (0, _chunk5IMHJIAZcjs.BufferReader)(bytes);
|
|
1137
|
+
probe.readVarInt();
|
|
1138
|
+
probe.readVarInt();
|
|
1139
|
+
payloadStart = probe.offset;
|
|
1140
|
+
} catch (e2) {
|
|
1141
|
+
return { bytes, redacted: 0, incomplete: false, decoded: false };
|
|
1142
|
+
}
|
|
1143
|
+
return _chunk5IMHJIAZcjs.redactWith.call(void 0, bytes, payloadStart, () => decodeMessage(bytes).ok);
|
|
1144
|
+
}
|
|
1145
|
+
|
|
1130
1146
|
|
|
1131
1147
|
|
|
1132
1148
|
|
|
@@ -1175,4 +1191,4 @@ function createDraft08Codec() {
|
|
|
1175
1191
|
|
|
1176
1192
|
|
|
1177
1193
|
|
|
1178
|
-
exports.encodeSubgroupStream = encodeSubgroupStream; exports.encodeDatagram = encodeDatagram; exports.encodeDatagramStatus = encodeDatagramStatus; exports.encodeFetchStream = encodeFetchStream; exports.decodeSubgroupStream = decodeSubgroupStream; exports.decodeDatagram = decodeDatagram; exports.decodeDatagramStatus = decodeDatagramStatus; exports.decodeFetchStream = decodeFetchStream; exports.decodeDataStream = decodeDataStream; exports.MSG_SUBSCRIBE_UPDATE = MSG_SUBSCRIBE_UPDATE; exports.MSG_SUBSCRIBE = MSG_SUBSCRIBE; exports.MSG_SUBSCRIBE_OK = MSG_SUBSCRIBE_OK; exports.MSG_SUBSCRIBE_ERROR = MSG_SUBSCRIBE_ERROR; exports.MSG_ANNOUNCE = MSG_ANNOUNCE; exports.MSG_ANNOUNCE_OK = MSG_ANNOUNCE_OK; exports.MSG_ANNOUNCE_ERROR = MSG_ANNOUNCE_ERROR; exports.MSG_UNANNOUNCE = MSG_UNANNOUNCE; exports.MSG_UNSUBSCRIBE = MSG_UNSUBSCRIBE; exports.MSG_SUBSCRIBE_DONE = MSG_SUBSCRIBE_DONE; exports.MSG_ANNOUNCE_CANCEL = MSG_ANNOUNCE_CANCEL; exports.MSG_TRACK_STATUS_REQUEST = MSG_TRACK_STATUS_REQUEST; exports.MSG_TRACK_STATUS = MSG_TRACK_STATUS; exports.MSG_GOAWAY = MSG_GOAWAY; exports.MSG_SUBSCRIBE_ANNOUNCES = MSG_SUBSCRIBE_ANNOUNCES; exports.MSG_SUBSCRIBE_ANNOUNCES_OK = MSG_SUBSCRIBE_ANNOUNCES_OK; exports.MSG_SUBSCRIBE_ANNOUNCES_ERROR = MSG_SUBSCRIBE_ANNOUNCES_ERROR; exports.MSG_UNSUBSCRIBE_ANNOUNCES = MSG_UNSUBSCRIBE_ANNOUNCES; exports.MSG_MAX_SUBSCRIBE_ID = MSG_MAX_SUBSCRIBE_ID; exports.MSG_FETCH = MSG_FETCH; exports.MSG_FETCH_CANCEL = MSG_FETCH_CANCEL; exports.MSG_FETCH_OK = MSG_FETCH_OK; exports.MSG_FETCH_ERROR = MSG_FETCH_ERROR; exports.MSG_SUBSCRIBES_BLOCKED = MSG_SUBSCRIBES_BLOCKED; exports.MSG_CLIENT_SETUP = MSG_CLIENT_SETUP; exports.MSG_SERVER_SETUP = MSG_SERVER_SETUP; exports.SETUP_PARAM_PATH = SETUP_PARAM_PATH; exports.SETUP_PARAM_MAX_SUBSCRIBE_ID = SETUP_PARAM_MAX_SUBSCRIBE_ID; exports.PARAM_AUTHORIZATION_INFO = PARAM_AUTHORIZATION_INFO; exports.PARAM_DELIVERY_TIMEOUT = PARAM_DELIVERY_TIMEOUT; exports.PARAM_MAX_CACHE_DURATION = PARAM_MAX_CACHE_DURATION; exports.MESSAGE_TYPE_MAP = MESSAGE_TYPE_MAP; exports.MESSAGE_ID_MAP = MESSAGE_ID_MAP; exports.encodeMessage = encodeMessage; exports.decodeMessage = decodeMessage; exports.createStreamDecoder = createStreamDecoder; exports.createDraft08Codec = createDraft08Codec;
|
|
1194
|
+
exports.encodeSubgroupStream = encodeSubgroupStream; exports.encodeDatagram = encodeDatagram; exports.encodeDatagramStatus = encodeDatagramStatus; exports.encodeFetchStream = encodeFetchStream; exports.decodeSubgroupStream = decodeSubgroupStream; exports.decodeDatagram = decodeDatagram; exports.decodeDatagramStatus = decodeDatagramStatus; exports.decodeFetchStream = decodeFetchStream; exports.decodeDataStream = decodeDataStream; exports.MSG_SUBSCRIBE_UPDATE = MSG_SUBSCRIBE_UPDATE; exports.MSG_SUBSCRIBE = MSG_SUBSCRIBE; exports.MSG_SUBSCRIBE_OK = MSG_SUBSCRIBE_OK; exports.MSG_SUBSCRIBE_ERROR = MSG_SUBSCRIBE_ERROR; exports.MSG_ANNOUNCE = MSG_ANNOUNCE; exports.MSG_ANNOUNCE_OK = MSG_ANNOUNCE_OK; exports.MSG_ANNOUNCE_ERROR = MSG_ANNOUNCE_ERROR; exports.MSG_UNANNOUNCE = MSG_UNANNOUNCE; exports.MSG_UNSUBSCRIBE = MSG_UNSUBSCRIBE; exports.MSG_SUBSCRIBE_DONE = MSG_SUBSCRIBE_DONE; exports.MSG_ANNOUNCE_CANCEL = MSG_ANNOUNCE_CANCEL; exports.MSG_TRACK_STATUS_REQUEST = MSG_TRACK_STATUS_REQUEST; exports.MSG_TRACK_STATUS = MSG_TRACK_STATUS; exports.MSG_GOAWAY = MSG_GOAWAY; exports.MSG_SUBSCRIBE_ANNOUNCES = MSG_SUBSCRIBE_ANNOUNCES; exports.MSG_SUBSCRIBE_ANNOUNCES_OK = MSG_SUBSCRIBE_ANNOUNCES_OK; exports.MSG_SUBSCRIBE_ANNOUNCES_ERROR = MSG_SUBSCRIBE_ANNOUNCES_ERROR; exports.MSG_UNSUBSCRIBE_ANNOUNCES = MSG_UNSUBSCRIBE_ANNOUNCES; exports.MSG_MAX_SUBSCRIBE_ID = MSG_MAX_SUBSCRIBE_ID; exports.MSG_FETCH = MSG_FETCH; exports.MSG_FETCH_CANCEL = MSG_FETCH_CANCEL; exports.MSG_FETCH_OK = MSG_FETCH_OK; exports.MSG_FETCH_ERROR = MSG_FETCH_ERROR; exports.MSG_SUBSCRIBES_BLOCKED = MSG_SUBSCRIBES_BLOCKED; exports.MSG_CLIENT_SETUP = MSG_CLIENT_SETUP; exports.MSG_SERVER_SETUP = MSG_SERVER_SETUP; exports.SETUP_PARAM_PATH = SETUP_PARAM_PATH; exports.SETUP_PARAM_MAX_SUBSCRIBE_ID = SETUP_PARAM_MAX_SUBSCRIBE_ID; exports.PARAM_AUTHORIZATION_INFO = PARAM_AUTHORIZATION_INFO; exports.PARAM_DELIVERY_TIMEOUT = PARAM_DELIVERY_TIMEOUT; exports.PARAM_MAX_CACHE_DURATION = PARAM_MAX_CACHE_DURATION; exports.MESSAGE_TYPE_MAP = MESSAGE_TYPE_MAP; exports.MESSAGE_ID_MAP = MESSAGE_ID_MAP; exports.encodeMessage = encodeMessage; exports.decodeMessage = decodeMessage; exports.createStreamDecoder = createStreamDecoder; exports.createDraft08Codec = createDraft08Codec; exports.redactAuthTokens = redactAuthTokens;
|