@moqtap/codec 0.6.0 → 0.7.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.
Files changed (66) hide show
  1. package/README.md +4 -2
  2. package/dist/{chunk-CXFAQKL3.js → chunk-23KRITJ6.js} +1 -1
  3. package/dist/{chunk-JL3NEW3O.cjs → chunk-4XLYCT5Q.cjs} +90 -1
  4. package/dist/{chunk-DLSGOZ6P.js → chunk-5XZKO2U5.js} +34 -34
  5. package/dist/{chunk-62LYLROG.js → chunk-APTV6F72.js} +35 -35
  6. package/dist/{chunk-JB5VDJ2V.cjs → chunk-B56AG5HU.cjs} +37 -37
  7. package/dist/{chunk-4HBKHNU2.cjs → chunk-CZNW3R5E.cjs} +37 -37
  8. package/dist/{chunk-Q5D6OW6Q.js → chunk-DORX55MO.js} +1 -1
  9. package/dist/{chunk-OGZTQA24.cjs → chunk-EQAYMCXO.cjs} +64 -64
  10. package/dist/{chunk-HYI6LFMD.js → chunk-HEO2JG6C.js} +1 -1
  11. package/dist/{chunk-UP4XPH4J.js → chunk-I55J3KXD.js} +31 -31
  12. package/dist/{chunk-HZHSO7EW.cjs → chunk-IDV2JYJ6.cjs} +39 -39
  13. package/dist/{chunk-BAG6YWCP.cjs → chunk-IEJULBKB.cjs} +63 -63
  14. package/dist/{chunk-Y6KCSM3V.js → chunk-IJAF6PAY.js} +1 -1
  15. package/dist/{chunk-WMJVSBBE.cjs → chunk-J3ASFPCX.cjs} +57 -57
  16. package/dist/{chunk-COWGGUL4.js → chunk-JKMYAUGY.js} +1 -1
  17. package/dist/{chunk-SIYYMFCC.cjs → chunk-KCH4BQXK.cjs} +37 -37
  18. package/dist/{chunk-VOU7PNHI.js → chunk-KLPWJU6W.js} +89 -0
  19. package/dist/{chunk-NZ7GYEMT.js → chunk-KNLPX3YA.js} +1 -1
  20. package/dist/{chunk-A33U4WVS.cjs → chunk-KTVN4P6J.cjs} +67 -67
  21. package/dist/{chunk-7KBAWOBA.js → chunk-KYVTM5VI.js} +1 -1
  22. package/dist/{chunk-RZ3UML47.js → chunk-MD2OA7SE.js} +1 -1
  23. package/dist/{chunk-MSG2FXJ2.cjs → chunk-MH7537FB.cjs} +68 -68
  24. package/dist/{chunk-SHMA4PBY.js → chunk-N2V7Z37J.js} +1 -1
  25. package/dist/{chunk-HO44OANK.cjs → chunk-QGIHC6BA.cjs} +36 -36
  26. package/dist/{chunk-PKEOQSSZ.cjs → chunk-RIIA4ALQ.cjs} +37 -37
  27. package/dist/{chunk-XZE5R57R.cjs → chunk-VZHL2U2N.cjs} +37 -37
  28. package/dist/{chunk-RW4UG7CN.js → chunk-XHAP2YST.js} +1 -1
  29. package/dist/{chunk-JTRU76JN.cjs → chunk-Y4FRXYX6.cjs} +59 -59
  30. package/dist/draft07.cjs +4 -4
  31. package/dist/draft07.js +2 -2
  32. package/dist/draft08.cjs +3 -3
  33. package/dist/draft08.js +2 -2
  34. package/dist/draft09.cjs +3 -3
  35. package/dist/draft09.js +2 -2
  36. package/dist/draft10.cjs +3 -3
  37. package/dist/draft10.js +2 -2
  38. package/dist/draft11.cjs +3 -3
  39. package/dist/draft11.js +2 -2
  40. package/dist/draft12.cjs +3 -3
  41. package/dist/draft12.js +2 -2
  42. package/dist/draft13.cjs +3 -3
  43. package/dist/draft13.js +2 -2
  44. package/dist/draft14.cjs +3 -3
  45. package/dist/draft14.js +2 -2
  46. package/dist/draft15.cjs +3 -3
  47. package/dist/draft15.js +2 -2
  48. package/dist/draft16.cjs +3 -3
  49. package/dist/draft16.js +2 -2
  50. package/dist/draft17.cjs +3 -3
  51. package/dist/draft17.js +2 -2
  52. package/dist/draft18.cjs +3 -3
  53. package/dist/draft18.js +2 -2
  54. package/dist/draft19.cjs +3 -3
  55. package/dist/draft19.js +2 -2
  56. package/dist/index.cjs +28 -28
  57. package/dist/index.js +14 -14
  58. package/package.json +2 -2
  59. package/src/core/buffer-reader.ts +74 -2
  60. package/src/core/buffer-writer.ts +56 -4
  61. package/src/drafts/draft17/codec.ts +2 -2
  62. package/src/drafts/draft17/data-streams.ts +2 -2
  63. package/src/drafts/draft18/codec.ts +2 -2
  64. package/src/drafts/draft18/data-streams.ts +2 -2
  65. package/src/drafts/draft19/codec.ts +2 -2
  66. package/src/drafts/draft19/data-streams.ts +2 -2
package/dist/index.cjs CHANGED
@@ -1,45 +1,45 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkA33U4WVScjs = require('./chunk-A33U4WVS.cjs');
3
+ var _chunkKTVN4P6Jcjs = require('./chunk-KTVN4P6J.cjs');
4
4
 
5
5
 
6
- var _chunkMSG2FXJ2cjs = require('./chunk-MSG2FXJ2.cjs');
6
+ var _chunkMH7537FBcjs = require('./chunk-MH7537FB.cjs');
7
7
 
8
8
 
9
- var _chunkJTRU76JNcjs = require('./chunk-JTRU76JN.cjs');
9
+ var _chunkY4FRXYX6cjs = require('./chunk-Y4FRXYX6.cjs');
10
10
 
11
11
 
12
- var _chunkWMJVSBBEcjs = require('./chunk-WMJVSBBE.cjs');
12
+ var _chunkJ3ASFPCXcjs = require('./chunk-J3ASFPCX.cjs');
13
13
 
14
14
 
15
- var _chunkBAG6YWCPcjs = require('./chunk-BAG6YWCP.cjs');
15
+ var _chunkIEJULBKBcjs = require('./chunk-IEJULBKB.cjs');
16
16
 
17
17
 
18
- var _chunkOGZTQA24cjs = require('./chunk-OGZTQA24.cjs');
18
+ var _chunkEQAYMCXOcjs = require('./chunk-EQAYMCXO.cjs');
19
19
 
20
20
 
21
- var _chunkPKEOQSSZcjs = require('./chunk-PKEOQSSZ.cjs');
21
+ var _chunkRIIA4ALQcjs = require('./chunk-RIIA4ALQ.cjs');
22
22
 
23
23
 
24
- var _chunkHO44OANKcjs = require('./chunk-HO44OANK.cjs');
24
+ var _chunkQGIHC6BAcjs = require('./chunk-QGIHC6BA.cjs');
25
25
 
26
26
 
27
- var _chunkJB5VDJ2Vcjs = require('./chunk-JB5VDJ2V.cjs');
27
+ var _chunkB56AG5HUcjs = require('./chunk-B56AG5HU.cjs');
28
28
 
29
29
 
30
- var _chunkSIYYMFCCcjs = require('./chunk-SIYYMFCC.cjs');
30
+ var _chunkKCH4BQXKcjs = require('./chunk-KCH4BQXK.cjs');
31
31
 
32
32
 
33
- var _chunkHZHSO7EWcjs = require('./chunk-HZHSO7EW.cjs');
33
+ var _chunkIDV2JYJ6cjs = require('./chunk-IDV2JYJ6.cjs');
34
34
 
35
35
 
36
- var _chunkXZE5R57Rcjs = require('./chunk-XZE5R57R.cjs');
36
+ var _chunkVZHL2U2Ncjs = require('./chunk-VZHL2U2N.cjs');
37
37
 
38
38
 
39
- var _chunk4HBKHNU2cjs = require('./chunk-4HBKHNU2.cjs');
39
+ var _chunkCZNW3R5Ecjs = require('./chunk-CZNW3R5E.cjs');
40
40
 
41
41
 
42
- var _chunkJL3NEW3Ocjs = require('./chunk-JL3NEW3O.cjs');
42
+ var _chunk4XLYCT5Qcjs = require('./chunk-4XLYCT5Q.cjs');
43
43
 
44
44
  // src/index.ts
45
45
  var DRAFT_VERSIONS = {
@@ -67,31 +67,31 @@ Supported draft values: ${Object.keys(DRAFT_VERSIONS).join(", ")}`
67
67
  }
68
68
  switch (options.draft) {
69
69
  case "07":
70
- return _chunkHZHSO7EWcjs.createDraft07Codec.call(void 0, );
70
+ return _chunkIDV2JYJ6cjs.createDraft07Codec.call(void 0, );
71
71
  case "08":
72
- return _chunkXZE5R57Rcjs.createDraft08Codec.call(void 0, );
72
+ return _chunkVZHL2U2Ncjs.createDraft08Codec.call(void 0, );
73
73
  case "09":
74
- return _chunk4HBKHNU2cjs.createDraft09Codec.call(void 0, );
74
+ return _chunkCZNW3R5Ecjs.createDraft09Codec.call(void 0, );
75
75
  case "10":
76
- return _chunkPKEOQSSZcjs.createDraft10Codec.call(void 0, );
76
+ return _chunkRIIA4ALQcjs.createDraft10Codec.call(void 0, );
77
77
  case "11":
78
- return _chunkHO44OANKcjs.createDraft11Codec.call(void 0, );
78
+ return _chunkQGIHC6BAcjs.createDraft11Codec.call(void 0, );
79
79
  case "12":
80
- return _chunkJB5VDJ2Vcjs.createDraft12Codec.call(void 0, );
80
+ return _chunkB56AG5HUcjs.createDraft12Codec.call(void 0, );
81
81
  case "13":
82
- return _chunkSIYYMFCCcjs.createDraft13Codec.call(void 0, );
82
+ return _chunkKCH4BQXKcjs.createDraft13Codec.call(void 0, );
83
83
  case "14":
84
- return _chunkJTRU76JNcjs.createDraft14Codec.call(void 0, );
84
+ return _chunkY4FRXYX6cjs.createDraft14Codec.call(void 0, );
85
85
  case "15":
86
- return _chunkWMJVSBBEcjs.createDraft15Codec.call(void 0, );
86
+ return _chunkJ3ASFPCXcjs.createDraft15Codec.call(void 0, );
87
87
  case "16":
88
- return _chunkBAG6YWCPcjs.createDraft16Codec.call(void 0, );
88
+ return _chunkIEJULBKBcjs.createDraft16Codec.call(void 0, );
89
89
  case "17":
90
- return _chunkOGZTQA24cjs.createDraft17Codec.call(void 0, );
90
+ return _chunkEQAYMCXOcjs.createDraft17Codec.call(void 0, );
91
91
  case "18":
92
- return _chunkA33U4WVScjs.createDraft18Codec.call(void 0, );
92
+ return _chunkKTVN4P6Jcjs.createDraft18Codec.call(void 0, );
93
93
  case "19":
94
- return _chunkMSG2FXJ2cjs.createDraft19Codec.call(void 0, );
94
+ return _chunkMH7537FBcjs.createDraft19Codec.call(void 0, );
95
95
  default:
96
96
  throw new Error(`Unsupported draft: ${draft}`);
97
97
  }
@@ -100,4 +100,4 @@ Supported draft values: ${Object.keys(DRAFT_VERSIONS).join(", ")}`
100
100
 
101
101
 
102
102
 
103
- exports.DRAFT_VERSIONS = DRAFT_VERSIONS; exports.DecodeError = _chunkJL3NEW3Ocjs.DecodeError; exports.createCodec = createCodec;
103
+ exports.DRAFT_VERSIONS = DRAFT_VERSIONS; exports.DecodeError = _chunk4XLYCT5Qcjs.DecodeError; exports.createCodec = createCodec;
package/dist/index.js CHANGED
@@ -1,45 +1,45 @@
1
1
  import {
2
2
  createDraft18Codec
3
- } from "./chunk-DLSGOZ6P.js";
3
+ } from "./chunk-5XZKO2U5.js";
4
4
  import {
5
5
  createDraft19Codec
6
- } from "./chunk-62LYLROG.js";
6
+ } from "./chunk-APTV6F72.js";
7
7
  import {
8
8
  createDraft14Codec
9
- } from "./chunk-Q5D6OW6Q.js";
9
+ } from "./chunk-DORX55MO.js";
10
10
  import {
11
11
  createDraft15Codec
12
- } from "./chunk-RZ3UML47.js";
12
+ } from "./chunk-MD2OA7SE.js";
13
13
  import {
14
14
  createDraft16Codec
15
- } from "./chunk-HYI6LFMD.js";
15
+ } from "./chunk-HEO2JG6C.js";
16
16
  import {
17
17
  createDraft17Codec
18
- } from "./chunk-UP4XPH4J.js";
18
+ } from "./chunk-I55J3KXD.js";
19
19
  import {
20
20
  createDraft10Codec
21
- } from "./chunk-SHMA4PBY.js";
21
+ } from "./chunk-N2V7Z37J.js";
22
22
  import {
23
23
  createDraft11Codec
24
- } from "./chunk-COWGGUL4.js";
24
+ } from "./chunk-JKMYAUGY.js";
25
25
  import {
26
26
  createDraft12Codec
27
- } from "./chunk-NZ7GYEMT.js";
27
+ } from "./chunk-KNLPX3YA.js";
28
28
  import {
29
29
  createDraft13Codec
30
- } from "./chunk-CXFAQKL3.js";
30
+ } from "./chunk-23KRITJ6.js";
31
31
  import {
32
32
  createDraft07Codec
33
- } from "./chunk-7KBAWOBA.js";
33
+ } from "./chunk-KYVTM5VI.js";
34
34
  import {
35
35
  createDraft08Codec
36
- } from "./chunk-RW4UG7CN.js";
36
+ } from "./chunk-XHAP2YST.js";
37
37
  import {
38
38
  createDraft09Codec
39
- } from "./chunk-Y6KCSM3V.js";
39
+ } from "./chunk-IJAF6PAY.js";
40
40
  import {
41
41
  DecodeError
42
- } from "./chunk-VOU7PNHI.js";
42
+ } from "./chunk-KLPWJU6W.js";
43
43
 
44
44
  // src/index.ts
45
45
  var DRAFT_VERSIONS = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moqtap/codec",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "description": "MoQT wire-format codec and session state machine — multi-draft, zero dependencies",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -208,7 +208,7 @@
208
208
  "test": "vitest run"
209
209
  },
210
210
  "devDependencies": {
211
- "@moqtap/test-vectors": "^0.10.0",
211
+ "@moqtap/test-vectors": "^0.11.0",
212
212
  "tsup": "^8.0.0",
213
213
  "typescript": "^5.5.0",
214
214
  "vitest": "^3.0.0"
@@ -3,8 +3,8 @@ import { DecodeError } from './types.js'
3
3
  const textDecoder = /* @__PURE__ */ new TextDecoder()
4
4
 
5
5
  export class BufferReader {
6
- private readonly view: DataView
7
- private pos: number
6
+ protected readonly view: DataView
7
+ protected pos: number
8
8
 
9
9
  constructor(
10
10
  readonly buffer: Uint8Array,
@@ -128,3 +128,75 @@ export class BufferReader {
128
128
  return params
129
129
  }
130
130
  }
131
+
132
+ /**
133
+ * Reader for drafts 17 and later, which dropped the RFC 9000 varint for MoQT's
134
+ * own (§1.4.1).
135
+ *
136
+ * The number of leading 1 bits in the first byte gives the encoded length; the
137
+ * bits after the terminating 0, followed by the remaining bytes, are the value
138
+ * in network byte order. One byte therefore carries 0-127 rather than 0-63,
139
+ * and nine bytes carry the full 64-bit range instead of RFC 9000's 62. A first
140
+ * byte of 0xff is the nine-byte form and is prefix only.
141
+ *
142
+ * Encodings need not be minimal: draft-19 §1.4.1 says any length that can
143
+ * represent the value is valid, so 0 may arrive as 0x00, 0x8000, 0xc00000 or
144
+ * longer.
145
+ */
146
+ export class MoqtBufferReader extends BufferReader {
147
+ /** Draft-17 omits the 7-byte length; draft-18 restored it. */
148
+ protected get allowSevenByte(): boolean {
149
+ return true
150
+ }
151
+
152
+ override readVarInt(): bigint {
153
+ if (this.remaining < 1) {
154
+ throw new DecodeError('UNEXPECTED_END', 'Not enough bytes for varint', this.pos)
155
+ }
156
+ const first = this.view.getUint8(this.pos)
157
+
158
+ if (first === 0xff) {
159
+ if (this.remaining < 9) {
160
+ throw new DecodeError('UNEXPECTED_END', 'Not enough bytes for 9-byte varint', this.pos)
161
+ }
162
+ const value = this.view.getBigUint64(this.pos + 1)
163
+ this.pos += 9
164
+ return value
165
+ }
166
+
167
+ let leadingOnes = 0
168
+ while (leadingOnes < 8 && (first & (0x80 >> leadingOnes)) !== 0) leadingOnes++
169
+ const length = leadingOnes + 1
170
+
171
+ if (length === 7 && !this.allowSevenByte) {
172
+ // draft-17 §1.4.1: "11111100 is an invalid code point. An endpoint that
173
+ // receives this value MUST close the session with a PROTOCOL_VIOLATION."
174
+ throw new DecodeError(
175
+ 'INVALID_VARINT',
176
+ 'The 7-byte varint is not defined in draft-17',
177
+ this.pos,
178
+ )
179
+ }
180
+ if (this.remaining < length) {
181
+ throw new DecodeError(
182
+ 'UNEXPECTED_END',
183
+ `Not enough bytes for ${length}-byte varint`,
184
+ this.pos,
185
+ )
186
+ }
187
+
188
+ let value = BigInt(first & ((1 << (8 - length)) - 1))
189
+ for (let i = 1; i < length; i++) {
190
+ value = (value << 8n) | BigInt(this.view.getUint8(this.pos + i))
191
+ }
192
+ this.pos += length
193
+ return value
194
+ }
195
+ }
196
+
197
+ /** Draft-17's reader, which rejects the 7-byte form draft-18 restored. */
198
+ export class Draft17BufferReader extends MoqtBufferReader {
199
+ protected override get allowSevenByte(): boolean {
200
+ return false
201
+ }
202
+ }
@@ -1,9 +1,9 @@
1
1
  const textEncoder = /* @__PURE__ */ new TextEncoder()
2
2
 
3
3
  export class BufferWriter {
4
- private buffer: Uint8Array
5
- private view: DataView
6
- private pos: number
4
+ protected buffer: Uint8Array
5
+ protected view: DataView
6
+ protected pos: number
7
7
 
8
8
  constructor(initialSize = 256) {
9
9
  this.buffer = new Uint8Array(initialSize)
@@ -15,7 +15,7 @@ export class BufferWriter {
15
15
  return this.pos
16
16
  }
17
17
 
18
- private ensureCapacity(needed: number): void {
18
+ protected ensureCapacity(needed: number): void {
19
19
  const required = this.pos + needed
20
20
  if (required <= this.buffer.byteLength) return
21
21
 
@@ -98,3 +98,55 @@ export class BufferWriter {
98
98
  return this.buffer.subarray(0, this.pos)
99
99
  }
100
100
  }
101
+
102
+ /**
103
+ * Writer for drafts 17 and later, which dropped the RFC 9000 varint for MoQT's
104
+ * own (§1.4.1). See {@link MoqtBufferReader} for the encoding.
105
+ *
106
+ * Values are always written in the fewest bytes that hold them. Longer forms
107
+ * are legal on the wire and decode fine, but there is no reason to emit them.
108
+ */
109
+ export class MoqtBufferWriter extends BufferWriter {
110
+ /** Draft-17 omits the 7-byte length; draft-18 restored it. */
111
+ protected get allowSevenByte(): boolean {
112
+ return true
113
+ }
114
+
115
+ override writeVarInt(value: number | bigint): void {
116
+ const v = BigInt(value)
117
+ if (v < 0n) throw new Error('VarInt value must be non-negative')
118
+ if (v > 0xffffffffffffffffn) throw new Error('VarInt value exceeds 64-bit range')
119
+
120
+ let length = 9
121
+ for (let n = 1; n <= 8; n++) {
122
+ if (n === 7 && !this.allowSevenByte) continue
123
+ if (v < 1n << BigInt(7 * n)) {
124
+ length = n
125
+ break
126
+ }
127
+ }
128
+
129
+ this.ensureCapacity(length)
130
+ if (length === 9) {
131
+ this.view.setUint8(this.pos, 0xff)
132
+ this.view.setBigUint64(this.pos + 1, v)
133
+ this.pos += 9
134
+ return
135
+ }
136
+
137
+ // (length - 1) leading 1 bits, then a 0, in the top `length` bits.
138
+ const prefix = BigInt(((1 << (length - 1)) - 1) << (9 - length)) & 0xffn
139
+ const combined = (prefix << BigInt(8 * (length - 1))) | v
140
+ for (let i = 0; i < length; i++) {
141
+ this.view.setUint8(this.pos + i, Number((combined >> BigInt(8 * (length - 1 - i))) & 0xffn))
142
+ }
143
+ this.pos += length
144
+ }
145
+ }
146
+
147
+ /** Draft-17's writer, which never emits the 7-byte form draft-18 restored. */
148
+ export class Draft17BufferWriter extends MoqtBufferWriter {
149
+ protected override get allowSevenByte(): boolean {
150
+ return false
151
+ }
152
+ }
@@ -1,5 +1,5 @@
1
- import { BufferReader } from '../../core/buffer-reader.js'
2
- import { BufferWriter } from '../../core/buffer-writer.js'
1
+ import { Draft17BufferReader as BufferReader } from '../../core/buffer-reader.js'
2
+ import { Draft17BufferWriter as BufferWriter } from '../../core/buffer-writer.js'
3
3
  import { bytesToHex, hexToBytes } from '../../core/hex.js'
4
4
  import type { BaseCodec, DecodeResult } from '../../core/types.js'
5
5
  import { DecodeError } from '../../core/types.js'
@@ -1,5 +1,5 @@
1
- import { BufferReader } from '../../core/buffer-reader.js'
2
- import { BufferWriter } from '../../core/buffer-writer.js'
1
+ import { Draft17BufferReader as BufferReader } from '../../core/buffer-reader.js'
2
+ import { Draft17BufferWriter as BufferWriter } from '../../core/buffer-writer.js'
3
3
  import type { DecodeResult } from '../../core/types.js'
4
4
  import { DecodeError } from '../../core/types.js'
5
5
  import type {
@@ -1,5 +1,5 @@
1
- import { BufferReader } from '../../core/buffer-reader.js'
2
- import { BufferWriter } from '../../core/buffer-writer.js'
1
+ import { MoqtBufferReader as BufferReader } from '../../core/buffer-reader.js'
2
+ import { MoqtBufferWriter as BufferWriter } from '../../core/buffer-writer.js'
3
3
  import { bytesToHex, hexToBytes } from '../../core/hex.js'
4
4
  import type { BaseCodec, DecodeResult } from '../../core/types.js'
5
5
  import { DecodeError } from '../../core/types.js'
@@ -1,5 +1,5 @@
1
- import { BufferReader } from '../../core/buffer-reader.js'
2
- import { BufferWriter } from '../../core/buffer-writer.js'
1
+ import { MoqtBufferReader as BufferReader } from '../../core/buffer-reader.js'
2
+ import { MoqtBufferWriter as BufferWriter } from '../../core/buffer-writer.js'
3
3
  import type { DecodeResult } from '../../core/types.js'
4
4
  import { DecodeError } from '../../core/types.js'
5
5
  import type {
@@ -1,5 +1,5 @@
1
- import { BufferReader } from '../../core/buffer-reader.js'
2
- import { BufferWriter } from '../../core/buffer-writer.js'
1
+ import { MoqtBufferReader as BufferReader } from '../../core/buffer-reader.js'
2
+ import { MoqtBufferWriter as BufferWriter } from '../../core/buffer-writer.js'
3
3
  import { bytesToHex, hexToBytes } from '../../core/hex.js'
4
4
  import type { BaseCodec, DecodeResult } from '../../core/types.js'
5
5
  import { DecodeError } from '../../core/types.js'
@@ -1,5 +1,5 @@
1
- import { BufferReader } from '../../core/buffer-reader.js'
2
- import { BufferWriter } from '../../core/buffer-writer.js'
1
+ import { MoqtBufferReader as BufferReader } from '../../core/buffer-reader.js'
2
+ import { MoqtBufferWriter as BufferWriter } from '../../core/buffer-writer.js'
3
3
  import type { DecodeResult } from '../../core/types.js'
4
4
  import { DecodeError } from '../../core/types.js'
5
5
  import type {