cborg 4.4.0 → 4.5.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 (58) hide show
  1. package/.github/workflows/test-and-release.yml +1 -0
  2. package/CHANGELOG.md +13 -0
  3. package/README.md +21 -0
  4. package/bench/README.md +115 -0
  5. package/bench/bench-comparative.js +133 -0
  6. package/bench/bench.js +414 -101
  7. package/bench/fixtures.js +558 -0
  8. package/bench/index.html +405 -0
  9. package/cborg.js +2 -1
  10. package/interface.ts +8 -2
  11. package/lib/0uint.js +11 -11
  12. package/lib/1negint.js +4 -4
  13. package/lib/2bytes.js +5 -5
  14. package/lib/3string.js +1 -1
  15. package/lib/4array.js +4 -4
  16. package/lib/5map.js +4 -4
  17. package/lib/6tag.js +4 -4
  18. package/lib/7float.js +10 -10
  19. package/lib/bl.js +46 -0
  20. package/lib/encode.js +40 -15
  21. package/lib/json/encode.js +10 -10
  22. package/package.json +1 -1
  23. package/test/test-0uint.js +12 -1
  24. package/test/test-1negint.js +12 -1
  25. package/test/test-2bytes.js +11 -1
  26. package/test/test-3string.js +11 -1
  27. package/test/test-4array.js +11 -1
  28. package/test/test-5map.js +11 -3
  29. package/test/test-6tag.js +19 -1
  30. package/test/test-7float.js +11 -1
  31. package/test/test-cbor-vectors.js +13 -2
  32. package/test/test-encodeInto.js +246 -0
  33. package/types/cborg.d.ts +2 -1
  34. package/types/cborg.d.ts.map +1 -1
  35. package/types/interface.d.ts +7 -2
  36. package/types/interface.d.ts.map +1 -1
  37. package/types/lib/0uint.d.ts +6 -6
  38. package/types/lib/0uint.d.ts.map +1 -1
  39. package/types/lib/1negint.d.ts +4 -4
  40. package/types/lib/1negint.d.ts.map +1 -1
  41. package/types/lib/2bytes.d.ts +3 -3
  42. package/types/lib/2bytes.d.ts.map +1 -1
  43. package/types/lib/3string.d.ts +1 -1
  44. package/types/lib/3string.d.ts.map +1 -1
  45. package/types/lib/4array.d.ts +3 -3
  46. package/types/lib/4array.d.ts.map +1 -1
  47. package/types/lib/5map.d.ts +3 -3
  48. package/types/lib/5map.d.ts.map +1 -1
  49. package/types/lib/6tag.d.ts +4 -4
  50. package/types/lib/6tag.d.ts.map +1 -1
  51. package/types/lib/7float.d.ts +3 -3
  52. package/types/lib/7float.d.ts.map +1 -1
  53. package/types/lib/bl.d.ts +25 -0
  54. package/types/lib/bl.d.ts.map +1 -1
  55. package/types/lib/encode.d.ts +12 -1
  56. package/types/lib/encode.d.ts.map +1 -1
  57. package/types/lib/json/encode.d.ts +1 -1
  58. package/types/lib/json/encode.d.ts.map +1 -1
@@ -2,7 +2,7 @@
2
2
 
3
3
  import * as chai from 'chai'
4
4
 
5
- import { decode, encode } from '../cborg.js'
5
+ import { decode, encode, encodeInto } from '../cborg.js'
6
6
  import * as taglib from 'cborg/taglib'
7
7
  import { fromHex, toHex } from '../lib/byte-utils.js'
8
8
  // fixtures from https://github.com/cbor/test-vectors
@@ -10,6 +10,14 @@ import { fixtures } from './appendix_a.js'
10
10
 
11
11
  const { assert } = chai
12
12
 
13
+ // Helper to get encoded bytes from encodeInto (which returns { written })
14
+ const encodeIntoBytes = (data, dest, options) => {
15
+ const { written } = encodeInto(data, dest, options)
16
+ return dest.subarray(0, written)
17
+ }
18
+
19
+ const fixedDest = new Uint8Array(1024)
20
+
13
21
  const tags = []
14
22
  const typeEncoders = {}
15
23
 
@@ -80,8 +88,11 @@ describe('cbor/test-vectors', () => {
80
88
  if (fixture.roundtrip) {
81
89
  if (fixture.noTagEncodeError) {
82
90
  assert.throws(() => encode(decode(u8a, { tags })), fixture.noTagEncodeError)
91
+ assert.throws(() => encodeInto(decode(u8a, { tags }), fixedDest), fixture.noTagEncodeError)
83
92
  }
84
- const reencoded = encode(decode(u8a, { tags }), { typeEncoders })
93
+ let reencoded = encode(decode(u8a, { tags }), { typeEncoders })
94
+ assert.equal(toHex(reencoded), fixture.hex)
95
+ reencoded = encodeIntoBytes(decode(u8a, { tags }), fixedDest, { typeEncoders })
85
96
  assert.equal(toHex(reencoded), fixture.hex)
86
97
  }
87
98
  }
@@ -0,0 +1,246 @@
1
+ /* eslint-env mocha */
2
+
3
+ import * as chai from 'chai'
4
+
5
+ import { encode, encodeInto } from '../cborg.js'
6
+ import { toHex } from '../lib/byte-utils.js'
7
+
8
+ const { assert } = chai
9
+
10
+ describe('encodeInto', () => {
11
+ describe('basic functionality', () => {
12
+ it('should encode into provided buffer and return { written }', () => {
13
+ const dest = new Uint8Array(100)
14
+ const result = encodeInto({ a: 1, b: [2, 3] }, dest)
15
+
16
+ // Result should be { written: number } matching TextEncoder.encodeInto pattern
17
+ assert.isObject(result)
18
+ assert.property(result, 'written')
19
+ assert.isNumber(result.written)
20
+
21
+ // Should match normal encode output
22
+ const expected = encode({ a: 1, b: [2, 3] })
23
+ assert.strictEqual(result.written, expected.length)
24
+ assert.strictEqual(toHex(dest.subarray(0, result.written)), toHex(expected))
25
+ })
26
+
27
+ it('should return correct written count', () => {
28
+ const dest = new Uint8Array(100)
29
+ const { written } = encodeInto(42, dest)
30
+ const expected = encode(42)
31
+
32
+ assert.strictEqual(written, expected.length)
33
+ assert.strictEqual(toHex(dest.subarray(0, written)), toHex(expected))
34
+ })
35
+ })
36
+
37
+ describe('quickEncodeToken bypass bug', () => {
38
+ // These tests verify that simple values that would normally be handled
39
+ // by quickEncodeToken still write to the destination buffer
40
+
41
+ it('should write small integers (0-23) to destination buffer', () => {
42
+ const dest = new Uint8Array(10)
43
+ dest.fill(0xff) // Fill with sentinel value
44
+
45
+ const { written } = encodeInto(5, dest)
46
+
47
+ // Verify the value was actually written to dest
48
+ assert.strictEqual(written, 1)
49
+ assert.strictEqual(dest[0], 0x05, 'value should be written to dest[0]')
50
+ })
51
+
52
+ it('should write integer 0 to destination buffer', () => {
53
+ const dest = new Uint8Array(10)
54
+ dest.fill(0xff)
55
+
56
+ const { written } = encodeInto(0, dest)
57
+
58
+ assert.strictEqual(written, 1)
59
+ assert.strictEqual(dest[0], 0x00)
60
+ })
61
+
62
+ it('should write integer 23 to destination buffer', () => {
63
+ const dest = new Uint8Array(10)
64
+ dest.fill(0xff)
65
+
66
+ const { written } = encodeInto(23, dest)
67
+
68
+ assert.strictEqual(written, 1)
69
+ assert.strictEqual(dest[0], 0x17)
70
+ })
71
+
72
+ it('should write true to destination buffer', () => {
73
+ const dest = new Uint8Array(10)
74
+ dest.fill(0xff)
75
+
76
+ const { written } = encodeInto(true, dest)
77
+
78
+ assert.strictEqual(written, 1)
79
+ assert.strictEqual(dest[0], 0xf5) // CBOR true
80
+ })
81
+
82
+ it('should write false to destination buffer', () => {
83
+ const dest = new Uint8Array(10)
84
+ dest.fill(0xff)
85
+
86
+ const { written } = encodeInto(false, dest)
87
+
88
+ assert.strictEqual(written, 1)
89
+ assert.strictEqual(dest[0], 0xf4) // CBOR false
90
+ })
91
+
92
+ it('should write null to destination buffer', () => {
93
+ const dest = new Uint8Array(10)
94
+ dest.fill(0xff)
95
+
96
+ const { written } = encodeInto(null, dest)
97
+
98
+ assert.strictEqual(written, 1)
99
+ assert.strictEqual(dest[0], 0xf6) // CBOR null
100
+ })
101
+
102
+ it('should write empty string to destination buffer', () => {
103
+ const dest = new Uint8Array(10)
104
+ dest.fill(0xff)
105
+
106
+ const { written } = encodeInto('', dest)
107
+
108
+ assert.strictEqual(written, 1)
109
+ assert.strictEqual(dest[0], 0x60) // CBOR empty string
110
+ })
111
+
112
+ it('should write empty array to destination buffer', () => {
113
+ const dest = new Uint8Array(10)
114
+ dest.fill(0xff)
115
+
116
+ const { written } = encodeInto([], dest)
117
+
118
+ assert.strictEqual(written, 1)
119
+ assert.strictEqual(dest[0], 0x80) // CBOR empty array
120
+ })
121
+
122
+ it('should write empty object to destination buffer', () => {
123
+ const dest = new Uint8Array(10)
124
+ dest.fill(0xff)
125
+
126
+ const { written } = encodeInto({}, dest)
127
+
128
+ assert.strictEqual(written, 1)
129
+ assert.strictEqual(dest[0], 0xa0) // CBOR empty map
130
+ })
131
+
132
+ it('should write negative integers (-1 to -24) to destination buffer', () => {
133
+ const dest = new Uint8Array(10)
134
+ dest.fill(0xff)
135
+
136
+ const { written } = encodeInto(-1, dest)
137
+
138
+ assert.strictEqual(written, 1)
139
+ assert.strictEqual(dest[0], 0x20) // CBOR -1
140
+ })
141
+ })
142
+
143
+ describe('buffer overflow', () => {
144
+ it('should throw when destination buffer is too small', () => {
145
+ const dest = new Uint8Array(1) // Too small for { a: 1 }
146
+
147
+ assert.throws(
148
+ () => encodeInto({ a: 1 }, dest),
149
+ /write out of bounds|destination buffer is too small/
150
+ )
151
+ })
152
+
153
+ it('should throw when destination buffer is empty', () => {
154
+ const dest = new Uint8Array(0)
155
+
156
+ assert.throws(
157
+ () => encodeInto(1, dest),
158
+ /write out of bounds|destination buffer is too small/
159
+ )
160
+ })
161
+
162
+ it('should throw when destination is exactly one byte too small', () => {
163
+ const data = { key: 'value' }
164
+ const needed = encode(data).length
165
+ const dest = new Uint8Array(needed - 1)
166
+
167
+ assert.throws(
168
+ () => encodeInto(data, dest),
169
+ /write out of bounds|destination buffer is too small/
170
+ )
171
+ })
172
+
173
+ it('should succeed when destination is exactly the right size', () => {
174
+ const data = { key: 'value' }
175
+ const needed = encode(data).length
176
+ const dest = new Uint8Array(needed)
177
+
178
+ const { written } = encodeInto(data, dest)
179
+ assert.strictEqual(written, needed)
180
+ assert.strictEqual(toHex(dest.subarray(0, written)), toHex(encode(data)))
181
+ })
182
+ })
183
+
184
+ describe('data integrity', () => {
185
+ it('should produce identical output to encode()', () => {
186
+ const testCases = [
187
+ 0,
188
+ 1,
189
+ 23,
190
+ 24,
191
+ 255,
192
+ 256,
193
+ 65535,
194
+ 65536,
195
+ -1,
196
+ -24,
197
+ -25,
198
+ -256,
199
+ true,
200
+ false,
201
+ null,
202
+ '',
203
+ 'hello',
204
+ 'a'.repeat(100),
205
+ [],
206
+ [1, 2, 3],
207
+ {},
208
+ { a: 1 },
209
+ { nested: { deeply: { value: [1, 2, 3] } } },
210
+ new Uint8Array([1, 2, 3]),
211
+ 1.5,
212
+ -1.5,
213
+ Math.PI
214
+ ]
215
+
216
+ for (const data of testCases) {
217
+ const expected = encode(data)
218
+ const dest = new Uint8Array(expected.length + 10)
219
+ const { written } = encodeInto(data, dest)
220
+
221
+ assert.strictEqual(written, expected.length,
222
+ `encodeInto should return correct written count for: ${JSON.stringify(data)}`)
223
+ assert.strictEqual(toHex(dest.subarray(0, written)), toHex(expected),
224
+ `encodeInto should match encode for: ${JSON.stringify(data)}`)
225
+ }
226
+ })
227
+ })
228
+
229
+ describe('buffer reuse pattern', () => {
230
+ it('should support reusing the same buffer for multiple encodes', () => {
231
+ const dest = new Uint8Array(100)
232
+
233
+ // First encode
234
+ const { written: written1 } = encodeInto({ a: 1 }, dest)
235
+ const hex1 = toHex(dest.subarray(0, written1))
236
+
237
+ // Second encode into same buffer (overwrites from start)
238
+ const { written: written2 } = encodeInto({ b: 2 }, dest)
239
+ const hex2 = toHex(dest.subarray(0, written2))
240
+
241
+ // Both should be correct
242
+ assert.strictEqual(hex1, toHex(encode({ a: 1 })))
243
+ assert.strictEqual(hex2, toHex(encode({ b: 2 })))
244
+ })
245
+ })
246
+ })
package/types/cborg.d.ts CHANGED
@@ -19,8 +19,9 @@ import { decodeFirst } from './lib/decode.js';
19
19
  import { Tokeniser } from './lib/decode.js';
20
20
  import { tokensToObject } from './lib/decode.js';
21
21
  import { encode } from './lib/encode.js';
22
+ import { encodeInto } from './lib/encode.js';
22
23
  import { rfc8949EncodeOptions } from './lib/encode.js';
23
24
  import { Token } from './lib/token.js';
24
25
  import { Type } from './lib/token.js';
25
- export { decode, decodeFirst, Tokeniser as Tokenizer, tokensToObject, encode, rfc8949EncodeOptions, Token, Type };
26
+ export { decode, decodeFirst, Tokeniser as Tokenizer, tokensToObject, encode, encodeInto, rfc8949EncodeOptions, Token, Type };
26
27
  //# sourceMappingURL=cborg.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cborg.d.ts","sourceRoot":"","sources":["../cborg.js"],"names":[],"mappings":";;;yBAMa,OAAO,aAAa,EAAE,UAAU;;;;0BAEhC,OAAO,aAAa,EAAE,mBAAmB;;;;4BACzC,OAAO,aAAa,EAAE,aAAa;;;;4BACnC,OAAO,aAAa,EAAE,aAAa;uBATe,iBAAiB;4BAAjB,iBAAiB;0BAAjB,iBAAiB;+BAAjB,iBAAiB;uBADnC,iBAAiB;qCAAjB,iBAAiB;sBAElC,gBAAgB;qBAAhB,gBAAgB"}
1
+ {"version":3,"file":"cborg.d.ts","sourceRoot":"","sources":["../cborg.js"],"names":[],"mappings":";;;yBAMa,OAAO,aAAa,EAAE,UAAU;;;;0BAEhC,OAAO,aAAa,EAAE,mBAAmB;;;;4BACzC,OAAO,aAAa,EAAE,aAAa;;;;4BACnC,OAAO,aAAa,EAAE,aAAa;uBATe,iBAAiB;4BAAjB,iBAAiB;0BAAjB,iBAAiB;+BAAjB,iBAAiB;uBADvB,iBAAiB;2BAAjB,iBAAiB;qCAAjB,iBAAiB;sBAE9C,gBAAgB;qBAAhB,gBAAgB"}
@@ -1,5 +1,4 @@
1
1
  import { Token } from './lib/token';
2
- import { Bl } from './lib/bl';
3
2
  export type TokenOrNestedTokens = Token | Token[] | TokenOrNestedTokens[];
4
3
  export interface Reference {
5
4
  parent: Reference | undefined;
@@ -9,7 +8,7 @@ export interface Reference {
9
8
  export type OptionalTypeEncoder = (data: any, typ: string, options: EncodeOptions, refStack?: Reference) => TokenOrNestedTokens | null;
10
9
  export type StrictTypeEncoder = (data: any, typ: string, options: EncodeOptions, refStack?: Reference) => TokenOrNestedTokens;
11
10
  export type TokenTypeEncoder = {
12
- (buf: Bl, token: Token, options?: EncodeOptions): void;
11
+ (writer: ByteWriter, token: Token, options?: EncodeOptions): void;
13
12
  compareTokens(t1: Token, t2: Token): number;
14
13
  encodedSize?(token: Token, options?: EncodeOptions): number;
15
14
  };
@@ -49,4 +48,10 @@ export interface EncodeOptions {
49
48
  */
50
49
  ignoreUndefinedProperties?: boolean;
51
50
  }
51
+ export interface ByteWriter {
52
+ chunks: (Uint8Array | number[])[];
53
+ reset(): void;
54
+ push(bytes: Uint8Array | number[]): void;
55
+ toBytes(reset?: boolean | undefined): Uint8Array;
56
+ }
52
57
  //# sourceMappingURL=interface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,EAAE,EAAE,EAAE,MAAM,UAAU,CAAA;AAE7B,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG,KAAK,EAAE,GAAG,mBAAmB,EAAE,CAAA;AAEzE,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,SAAS,GAAG,SAAS,CAAA;IAC7B,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,CAAA;IACnB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,GAAG,OAAO,CAAA;CACvC;AAED,MAAM,MAAM,mBAAmB,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,SAAS,KAAK,mBAAmB,GAAG,IAAI,CAAA;AAEtI,MAAM,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,SAAS,KAAK,mBAAmB,CAAA;AAE7H,MAAM,MAAM,gBAAgB,GAAG;IAC7B,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IACvD,aAAa,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,GAAG,MAAM,CAAC;IAE5C,WAAW,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,MAAM,CAAC;CAC7D,CAAA;AAED,MAAM,MAAM,SAAS,GAAG,CAAC,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,EAAE,KAAK,MAAM,CAAA;AAEpF,MAAM,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,UAAU,GAAG,SAAS,CAAA;AAEvE,MAAM,WAAW,eAAe;IAC9B,IAAI,IAAI,OAAO,CAAC;IAChB,IAAI,IAAI,KAAK,CAAC;IACd,GAAG,IAAI,MAAM,CAAC;CACf;AAED,MAAM,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAA;AAE5C,MAAM,WAAW,aAAa;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC;IACpB,SAAS,CAAC,EAAE,eAAe,CAAA;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,YAAY,CAAC,EAAE;QAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,mBAAmB,CAAA;KAAE,CAAA;IAC1D;;;OAGG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACrC"}
1
+ {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../interface.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @typedef {import('./bl.js').Bl} Bl
2
+ * @typedef {import('../interface').ByteWriter} ByteWriter
3
3
  * @typedef {import('../interface').DecodeOptions} DecodeOptions
4
4
  */
5
5
  /**
@@ -63,10 +63,10 @@ export function decodeUint32(data: Uint8Array, pos: number, _minor: number, opti
63
63
  */
64
64
  export function decodeUint64(data: Uint8Array, pos: number, _minor: number, options: DecodeOptions): Token;
65
65
  /**
66
- * @param {Bl} buf
66
+ * @param {ByteWriter} writer
67
67
  * @param {Token} token
68
68
  */
69
- export function encodeUint(buf: Bl, token: Token): void;
69
+ export function encodeUint(writer: ByteWriter, token: Token): void;
70
70
  export namespace encodeUint {
71
71
  /**
72
72
  * @param {Token} token
@@ -81,11 +81,11 @@ export namespace encodeUint {
81
81
  function compareTokens(tok1: Token, tok2: Token): number;
82
82
  }
83
83
  /**
84
- * @param {Bl} buf
84
+ * @param {ByteWriter} writer
85
85
  * @param {number} major
86
86
  * @param {number|bigint} uint
87
87
  */
88
- export function encodeUintValue(buf: Bl, major: number, uint: number | bigint): void;
88
+ export function encodeUintValue(writer: ByteWriter, major: number, uint: number | bigint): void;
89
89
  export namespace encodeUintValue {
90
90
  /**
91
91
  * @param {number} uint
@@ -94,7 +94,7 @@ export namespace encodeUintValue {
94
94
  function encodedSize(uint: number): number;
95
95
  }
96
96
  export const uintBoundaries: (number | bigint)[];
97
- export type Bl = import("./bl.js").Bl;
97
+ export type ByteWriter = import("../interface").ByteWriter;
98
98
  export type DecodeOptions = import("../interface").DecodeOptions;
99
99
  import { Token } from './token.js';
100
100
  //# sourceMappingURL=0uint.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"0uint.d.ts","sourceRoot":"","sources":["../../lib/0uint.js"],"names":[],"mappings":"AAOA;;;GAGG;AAEH;;;;;GAKG;AACH,gCALW,UAAU,UACV,MAAM,WACN,aAAa,GACX,MAAM,CASlB;AAED;;;;;GAKG;AACH,iCALW,UAAU,UACV,MAAM,WACN,aAAa,GACX,MAAM,CASlB;AAED;;;;;GAKG;AACH,iCALW,UAAU,UACV,MAAM,WACN,aAAa,GACX,MAAM,CASlB;AAED;;;;;GAKG;AACH,iCALW,UAAU,UACV,MAAM,WACN,aAAa,GACX,MAAM,GAAC,MAAM,CAkBzB;AASD;;;;;;GAMG;AACH,kCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAIjB;AAED;;;;;;GAMG;AACH,mCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAIjB;AAED;;;;;;GAMG;AACH,mCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAIjB;AAED;;;;;;GAMG;AACH,mCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAIjB;AAED;;;GAGG;AACH,gCAHW,EAAE,SACF,KAAK,QAIf;;IAqDD;;;OAGG;IACH,4BAHW,KAAK,GACH,MAAM,CAIlB;IAsBD;;;;OAIG;IACH,6BAJW,KAAK,QACL,KAAK,GACH,MAAM,CAIlB;;AAtFD;;;;GAIG;AACH,qCAJW,EAAE,SACF,MAAM,QACN,MAAM,GAAC,MAAM,QA8CvB;;IAUD;;;OAGG;IACH,2BAHW,MAAM,GACJ,MAAM,CAgBlB;;AApND,iDAA0F;iBAG7E,OAAO,SAAS,EAAE,EAAE;4BACpB,OAAO,cAAc,EAAE,aAAa;sBAPrB,YAAY"}
1
+ {"version":3,"file":"0uint.d.ts","sourceRoot":"","sources":["../../lib/0uint.js"],"names":[],"mappings":"AAOA;;;GAGG;AAEH;;;;;GAKG;AACH,gCALW,UAAU,UACV,MAAM,WACN,aAAa,GACX,MAAM,CASlB;AAED;;;;;GAKG;AACH,iCALW,UAAU,UACV,MAAM,WACN,aAAa,GACX,MAAM,CASlB;AAED;;;;;GAKG;AACH,iCALW,UAAU,UACV,MAAM,WACN,aAAa,GACX,MAAM,CASlB;AAED;;;;;GAKG;AACH,iCALW,UAAU,UACV,MAAM,WACN,aAAa,GACX,MAAM,GAAC,MAAM,CAkBzB;AASD;;;;;;GAMG;AACH,kCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAIjB;AAED;;;;;;GAMG;AACH,mCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAIjB;AAED;;;;;;GAMG;AACH,mCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAIjB;AAED;;;;;;GAMG;AACH,mCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAIjB;AAED;;;GAGG;AACH,mCAHW,UAAU,SACV,KAAK,QAIf;;IAqDD;;;OAGG;IACH,4BAHW,KAAK,GACH,MAAM,CAIlB;IAsBD;;;;OAIG;IACH,6BAJW,KAAK,QACL,KAAK,GACH,MAAM,CAIlB;;AAtFD;;;;GAIG;AACH,wCAJW,UAAU,SACV,MAAM,QACN,MAAM,GAAC,MAAM,QA8CvB;;IAUD;;;OAGG;IACH,2BAHW,MAAM,GACJ,MAAM,CAgBlB;;AApND,iDAA0F;yBAG7E,OAAO,cAAc,EAAE,UAAU;4BACjC,OAAO,cAAc,EAAE,aAAa;sBAPrB,YAAY"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @typedef {import('./bl.js').Bl} Bl
2
+ * @typedef {import('../interface').ByteWriter} ByteWriter
3
3
  * @typedef {import('../interface').DecodeOptions} DecodeOptions
4
4
  */
5
5
  /**
@@ -35,10 +35,10 @@ export function decodeNegint32(data: Uint8Array, pos: number, _minor: number, op
35
35
  */
36
36
  export function decodeNegint64(data: Uint8Array, pos: number, _minor: number, options: DecodeOptions): Token;
37
37
  /**
38
- * @param {Bl} buf
38
+ * @param {ByteWriter} writer
39
39
  * @param {Token} token
40
40
  */
41
- export function encodeNegint(buf: Bl, token: Token): void;
41
+ export function encodeNegint(writer: ByteWriter, token: Token): void;
42
42
  export namespace encodeNegint {
43
43
  /**
44
44
  * @param {Token} token
@@ -52,7 +52,7 @@ export namespace encodeNegint {
52
52
  */
53
53
  function compareTokens(tok1: Token, tok2: Token): number;
54
54
  }
55
- export type Bl = import("./bl.js").Bl;
55
+ export type ByteWriter = import("../interface").ByteWriter;
56
56
  export type DecodeOptions = import("../interface").DecodeOptions;
57
57
  import { Token } from './token.js';
58
58
  //# sourceMappingURL=1negint.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"1negint.d.ts","sourceRoot":"","sources":["../../lib/1negint.js"],"names":[],"mappings":"AAMA;;;GAGG;AAEH;;;;;;GAMG;AACH,oCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAIjB;AAED;;;;;;GAMG;AACH,qCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAIjB;AAED;;;;;;GAMG;AACH,qCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAIjB;AAKD;;;;;;GAMG;AACH,qCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAcjB;AAED;;;GAGG;AACH,kCAHW,EAAE,SACF,KAAK,QAMf;;IAED;;;OAGG;IACH,4BAHW,KAAK,GACH,MAAM,CAoBlB;IAED;;;;OAIG;IACH,6BAJW,KAAK,QACL,KAAK,GACH,MAAM,CAKlB;;iBAvGY,OAAO,SAAS,EAAE,EAAE;4BACpB,OAAO,cAAc,EAAE,aAAa;sBANrB,YAAY"}
1
+ {"version":3,"file":"1negint.d.ts","sourceRoot":"","sources":["../../lib/1negint.js"],"names":[],"mappings":"AAMA;;;GAGG;AAEH;;;;;;GAMG;AACH,oCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAIjB;AAED;;;;;;GAMG;AACH,qCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAIjB;AAED;;;;;;GAMG;AACH,qCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAIjB;AAKD;;;;;;GAMG;AACH,qCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAcjB;AAED;;;GAGG;AACH,qCAHW,UAAU,SACV,KAAK,QAMf;;IAED;;;OAGG;IACH,4BAHW,KAAK,GACH,MAAM,CAoBlB;IAED;;;;OAIG;IACH,6BAJW,KAAK,QACL,KAAK,GACH,MAAM,CAKlB;;yBAvGY,OAAO,cAAc,EAAE,UAAU;4BACjC,OAAO,cAAc,EAAE,aAAa;sBANrB,YAAY"}
@@ -39,10 +39,10 @@ export function decodeBytes32(data: Uint8Array, pos: number, _minor: number, opt
39
39
  */
40
40
  export function decodeBytes64(data: Uint8Array, pos: number, _minor: number, options: DecodeOptions): Token;
41
41
  /**
42
- * @param {Bl} buf
42
+ * @param {ByteWriter} writer
43
43
  * @param {Token} token
44
44
  */
45
- export function encodeBytes(buf: Bl, token: Token): void;
45
+ export function encodeBytes(writer: ByteWriter, token: Token): void;
46
46
  export namespace encodeBytes {
47
47
  /**
48
48
  * @param {Token} token
@@ -62,7 +62,7 @@ export namespace encodeBytes {
62
62
  * @returns {number}
63
63
  */
64
64
  export function compareBytes(b1: Uint8Array, b2: Uint8Array): number;
65
- export type Bl = import("./bl.js").Bl;
65
+ export type ByteWriter = import("../interface").ByteWriter;
66
66
  export type DecodeOptions = import("../interface").DecodeOptions;
67
67
  import { Token } from './token.js';
68
68
  //# sourceMappingURL=2bytes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"2bytes.d.ts","sourceRoot":"","sources":["../../lib/2bytes.js"],"names":[],"mappings":"AAuBA;;;;;;GAMG;AACH,yCANW,UAAU,OACV,MAAM,SACN,MAAM,YACN,aAAa,GACX,KAAK,CAIjB;AAED;;;;;;GAMG;AACH,mCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAIjB;AAED;;;;;;GAMG;AACH,oCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAIjB;AAED;;;;;;GAMG;AACH,oCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAIjB;AAGD;;;;;;GAMG;AACH,oCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAQjB;AAgBD;;;GAGG;AACH,iCAHW,EAAE,SACF,KAAK,QAMf;;IAED;;;OAGG;IACH,4BAHW,KAAK,GACH,MAAM,CAKlB;IAED;;;;OAIG;IACH,6BAJW,KAAK,QACL,KAAK,GACH,MAAM,CAIlB;;AAED;;;;GAIG;AACH,iCAJW,UAAU,MACV,UAAU,GACR,MAAM,CAIlB;iBA9HY,OAAO,SAAS,EAAE,EAAE;4BACpB,OAAO,cAAc,EAAE,aAAa;sBAPrB,YAAY"}
1
+ {"version":3,"file":"2bytes.d.ts","sourceRoot":"","sources":["../../lib/2bytes.js"],"names":[],"mappings":"AAuBA;;;;;;GAMG;AACH,yCANW,UAAU,OACV,MAAM,SACN,MAAM,YACN,aAAa,GACX,KAAK,CAIjB;AAED;;;;;;GAMG;AACH,mCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAIjB;AAED;;;;;;GAMG;AACH,oCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAIjB;AAED;;;;;;GAMG;AACH,oCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAIjB;AAGD;;;;;;GAMG;AACH,oCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAQjB;AAgBD;;;GAGG;AACH,oCAHW,UAAU,SACV,KAAK,QAMf;;IAED;;;OAGG;IACH,4BAHW,KAAK,GACH,MAAM,CAKlB;IAED;;;;OAIG;IACH,6BAJW,KAAK,QACL,KAAK,GACH,MAAM,CAIlB;;AAED;;;;GAIG;AACH,iCAJW,UAAU,MACV,UAAU,GACR,MAAM,CAIlB;yBA9HY,OAAO,cAAc,EAAE,UAAU;4BACjC,OAAO,cAAc,EAAE,aAAa;sBAPrB,YAAY"}
@@ -39,7 +39,7 @@ export function decodeString32(data: Uint8Array, pos: number, _minor: number, op
39
39
  */
40
40
  export function decodeString64(data: Uint8Array, pos: number, _minor: number, options: DecodeOptions): Token;
41
41
  export const encodeString: typeof encodeBytes;
42
- export type Bl = import("./bl.js").Bl;
42
+ export type ByteWriter = import("../interface").ByteWriter;
43
43
  export type DecodeOptions = import("../interface").DecodeOptions;
44
44
  import { Token } from './token.js';
45
45
  import { encodeBytes } from './2bytes.js';
@@ -1 +1 @@
1
- {"version":3,"file":"3string.d.ts","sourceRoot":"","sources":["../../lib/3string.js"],"names":[],"mappings":"AA6BA;;;;;;GAMG;AACH,0CANW,UAAU,OACV,MAAM,SACN,MAAM,WACN,aAAa,GACX,KAAK,CAIjB;AAED;;;;;;GAMG;AACH,oCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAIjB;AAED;;;;;;GAMG;AACH,qCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAIjB;AAED;;;;;;GAMG;AACH,qCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAIjB;AAGD;;;;;;GAMG;AACH,qCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAQjB;AAED,8CAAuC;iBAlF1B,OAAO,SAAS,EAAE,EAAE;4BACpB,OAAO,cAAc,EAAE,aAAa;sBARrB,YAAY;4BAGZ,aAAa"}
1
+ {"version":3,"file":"3string.d.ts","sourceRoot":"","sources":["../../lib/3string.js"],"names":[],"mappings":"AA6BA;;;;;;GAMG;AACH,0CANW,UAAU,OACV,MAAM,SACN,MAAM,WACN,aAAa,GACX,KAAK,CAIjB;AAED;;;;;;GAMG;AACH,oCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAIjB;AAED;;;;;;GAMG;AACH,qCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAIjB;AAED;;;;;;GAMG;AACH,qCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAIjB;AAGD;;;;;;GAMG;AACH,qCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAQjB;AAED,8CAAuC;yBAlF1B,OAAO,cAAc,EAAE,UAAU;4BACjC,OAAO,cAAc,EAAE,aAAa;sBARrB,YAAY;4BAGZ,aAAa"}
@@ -47,10 +47,10 @@ export function decodeArray64(data: Uint8Array, pos: number, _minor: number, opt
47
47
  */
48
48
  export function decodeArrayIndefinite(data: Uint8Array, pos: number, _minor: number, options: DecodeOptions): Token;
49
49
  /**
50
- * @param {Bl} buf
50
+ * @param {ByteWriter} writer
51
51
  * @param {Token} token
52
52
  */
53
- export function encodeArray(buf: Bl, token: Token): void;
53
+ export function encodeArray(writer: ByteWriter, token: Token): void;
54
54
  export namespace encodeArray {
55
55
  let compareTokens: (tok1: Token, tok2: Token) => number;
56
56
  /**
@@ -59,7 +59,7 @@ export namespace encodeArray {
59
59
  */
60
60
  function encodedSize(token: Token): number;
61
61
  }
62
- export type Bl = import("./bl.js").Bl;
62
+ export type ByteWriter = import("../interface").ByteWriter;
63
63
  export type DecodeOptions = import("../interface").DecodeOptions;
64
64
  import { Token } from './token.js';
65
65
  //# sourceMappingURL=4array.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"4array.d.ts","sourceRoot":"","sources":["../../lib/4array.js"],"names":[],"mappings":"AAoBA;;;;;;GAMG;AACH,yCANW,UAAU,OACV,MAAM,SACN,MAAM,YACN,aAAa,GACX,KAAK,CAIjB;AAED;;;;;;GAMG;AACH,mCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAIjB;AAED;;;;;;GAMG;AACH,oCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAIjB;AAED;;;;;;GAMG;AACH,oCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAIjB;AAGD;;;;;;GAMG;AACH,oCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAQjB;AAED;;;;;;GAMG;AACH,4CANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAOjB;AAED;;;GAGG;AACH,iCAHW,EAAE,SACF,KAAK,QAIf;;;IAMD;;;OAGG;IACH,4BAHW,KAAK,GACH,MAAM,CAIlB;;iBA3GY,OAAO,SAAS,EAAE,EAAE;4BACpB,OAAO,cAAc,EAAE,aAAa;sBANrB,YAAY"}
1
+ {"version":3,"file":"4array.d.ts","sourceRoot":"","sources":["../../lib/4array.js"],"names":[],"mappings":"AAoBA;;;;;;GAMG;AACH,yCANW,UAAU,OACV,MAAM,SACN,MAAM,YACN,aAAa,GACX,KAAK,CAIjB;AAED;;;;;;GAMG;AACH,mCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAIjB;AAED;;;;;;GAMG;AACH,oCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAIjB;AAED;;;;;;GAMG;AACH,oCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAIjB;AAGD;;;;;;GAMG;AACH,oCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAQjB;AAED;;;;;;GAMG;AACH,4CANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAOjB;AAED;;;GAGG;AACH,oCAHW,UAAU,SACV,KAAK,QAIf;;;IAMD;;;OAGG;IACH,4BAHW,KAAK,GACH,MAAM,CAIlB;;yBA3GY,OAAO,cAAc,EAAE,UAAU;4BACjC,OAAO,cAAc,EAAE,aAAa;sBANrB,YAAY"}
@@ -47,10 +47,10 @@ export function decodeMap64(data: Uint8Array, pos: number, _minor: number, optio
47
47
  */
48
48
  export function decodeMapIndefinite(data: Uint8Array, pos: number, _minor: number, options: DecodeOptions): Token;
49
49
  /**
50
- * @param {Bl} buf
50
+ * @param {ByteWriter} writer
51
51
  * @param {Token} token
52
52
  */
53
- export function encodeMap(buf: Bl, token: Token): void;
53
+ export function encodeMap(writer: ByteWriter, token: Token): void;
54
54
  export namespace encodeMap {
55
55
  let compareTokens: (tok1: Token, tok2: Token) => number;
56
56
  /**
@@ -59,7 +59,7 @@ export namespace encodeMap {
59
59
  */
60
60
  function encodedSize(token: Token): number;
61
61
  }
62
- export type Bl = import("./bl.js").Bl;
62
+ export type ByteWriter = import("../interface").ByteWriter;
63
63
  export type DecodeOptions = import("../interface").DecodeOptions;
64
64
  import { Token } from './token.js';
65
65
  //# sourceMappingURL=5map.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"5map.d.ts","sourceRoot":"","sources":["../../lib/5map.js"],"names":[],"mappings":"AAoBA;;;;;;GAMG;AACH,uCANW,UAAU,OACV,MAAM,SACN,MAAM,YACN,aAAa,GACX,KAAK,CAIjB;AAED;;;;;;GAMG;AACH,iCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAIjB;AAED;;;;;;GAMG;AACH,kCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAIjB;AAED;;;;;;GAMG;AACH,kCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAIjB;AAGD;;;;;;GAMG;AACH,kCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAQjB;AAED;;;;;;GAMG;AACH,0CANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAOjB;AAED;;;GAGG;AACH,+BAHW,EAAE,SACF,KAAK,QAIf;;;IAMD;;;OAGG;IACH,4BAHW,KAAK,GACH,MAAM,CAIlB;;iBA3GY,OAAO,SAAS,EAAE,EAAE;4BACpB,OAAO,cAAc,EAAE,aAAa;sBANrB,YAAY"}
1
+ {"version":3,"file":"5map.d.ts","sourceRoot":"","sources":["../../lib/5map.js"],"names":[],"mappings":"AAoBA;;;;;;GAMG;AACH,uCANW,UAAU,OACV,MAAM,SACN,MAAM,YACN,aAAa,GACX,KAAK,CAIjB;AAED;;;;;;GAMG;AACH,iCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAIjB;AAED;;;;;;GAMG;AACH,kCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAIjB;AAED;;;;;;GAMG;AACH,kCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAIjB;AAGD;;;;;;GAMG;AACH,kCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAQjB;AAED;;;;;;GAMG;AACH,0CANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAOjB;AAED;;;GAGG;AACH,kCAHW,UAAU,SACV,KAAK,QAIf;;;IAMD;;;OAGG;IACH,4BAHW,KAAK,GACH,MAAM,CAIlB;;yBA3GY,OAAO,cAAc,EAAE,UAAU;4BACjC,OAAO,cAAc,EAAE,aAAa;sBANrB,YAAY"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @typedef {import('./bl.js').Bl} Bl
2
+ * @typedef {import('../interface').ByteWriter} ByteWriter
3
3
  * @typedef {import('../interface').DecodeOptions} DecodeOptions
4
4
  */
5
5
  /**
@@ -43,10 +43,10 @@ export function decodeTag32(data: Uint8Array, pos: number, _minor: number, optio
43
43
  */
44
44
  export function decodeTag64(data: Uint8Array, pos: number, _minor: number, options: DecodeOptions): Token;
45
45
  /**
46
- * @param {Bl} buf
46
+ * @param {ByteWriter} writer
47
47
  * @param {Token} token
48
48
  */
49
- export function encodeTag(buf: Bl, token: Token): void;
49
+ export function encodeTag(writer: ByteWriter, token: Token): void;
50
50
  export namespace encodeTag {
51
51
  let compareTokens: (tok1: Token, tok2: Token) => number;
52
52
  /**
@@ -55,7 +55,7 @@ export namespace encodeTag {
55
55
  */
56
56
  function encodedSize(token: Token): number;
57
57
  }
58
- export type Bl = import("./bl.js").Bl;
58
+ export type ByteWriter = import("../interface").ByteWriter;
59
59
  export type DecodeOptions = import("../interface").DecodeOptions;
60
60
  import { Token } from './token.js';
61
61
  //# sourceMappingURL=6tag.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"6tag.d.ts","sourceRoot":"","sources":["../../lib/6tag.js"],"names":[],"mappings":"AAGA;;;GAGG;AAEH;;;;;;GAMG;AACH,wCANW,UAAU,QACV,MAAM,SACN,MAAM,YACN,aAAa,GACX,KAAK,CAIjB;AAED;;;;;;GAMG;AACH,iCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAIjB;AAED;;;;;;GAMG;AACH,kCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAIjB;AAED;;;;;;GAMG;AACH,kCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAIjB;AAED;;;;;;GAMG;AACH,kCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAIjB;AAED;;;GAGG;AACH,+BAHW,EAAE,SACF,KAAK,QAIf;;;IAID;;;OAGG;IACH,4BAHW,KAAK,GACH,MAAM,CAIlB;;iBA3EY,OAAO,SAAS,EAAE,EAAE;4BACpB,OAAO,cAAc,EAAE,aAAa;sBALrB,YAAY"}
1
+ {"version":3,"file":"6tag.d.ts","sourceRoot":"","sources":["../../lib/6tag.js"],"names":[],"mappings":"AAGA;;;GAGG;AAEH;;;;;;GAMG;AACH,wCANW,UAAU,QACV,MAAM,SACN,MAAM,YACN,aAAa,GACX,KAAK,CAIjB;AAED;;;;;;GAMG;AACH,iCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAIjB;AAED;;;;;;GAMG;AACH,kCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAIjB;AAED;;;;;;GAMG;AACH,kCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAIjB;AAED;;;;;;GAMG;AACH,kCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAIjB;AAED;;;GAGG;AACH,kCAHW,UAAU,SACV,KAAK,QAIf;;;IAID;;;OAGG;IACH,4BAHW,KAAK,GACH,MAAM,CAIlB;;yBA3EY,OAAO,cAAc,EAAE,UAAU;4BACjC,OAAO,cAAc,EAAE,aAAa;sBALrB,YAAY"}
@@ -39,11 +39,11 @@ export function decodeFloat32(data: Uint8Array, pos: number, _minor: number, opt
39
39
  */
40
40
  export function decodeFloat64(data: Uint8Array, pos: number, _minor: number, options: DecodeOptions): Token;
41
41
  /**
42
- * @param {Bl} buf
42
+ * @param {ByteWriter} writer
43
43
  * @param {Token} token
44
44
  * @param {EncodeOptions} options
45
45
  */
46
- export function encodeFloat(buf: Bl, token: Token, options: EncodeOptions): void;
46
+ export function encodeFloat(writer: ByteWriter, token: Token, options: EncodeOptions): void;
47
47
  export namespace encodeFloat {
48
48
  /**
49
49
  * @param {Token} token
@@ -53,7 +53,7 @@ export namespace encodeFloat {
53
53
  function encodedSize(token: Token, options: EncodeOptions): number;
54
54
  let compareTokens: (tok1: Token, tok2: Token) => number;
55
55
  }
56
- export type Bl = import("./bl.js").Bl;
56
+ export type ByteWriter = import("../interface").ByteWriter;
57
57
  export type DecodeOptions = import("../interface").DecodeOptions;
58
58
  export type EncodeOptions = import("../interface").EncodeOptions;
59
59
  import { Token } from './token.js';
@@ -1 +1 @@
1
- {"version":3,"file":"7float.d.ts","sourceRoot":"","sources":["../../lib/7float.js"],"names":[],"mappings":"AAkBA;;;;;;GAMG;AACH,uCANW,UAAU,QACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CASjB;AAED;;;;;;GAMG;AACH,mCANW,UAAU,QACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAOjB;AAoBD;;;;;;GAMG;AACH,oCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAIjB;AAED;;;;;;GAMG;AACH,oCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAIjB;AAED;;;;;;GAMG;AACH,oCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAIjB;AAED;;;;GAIG;AACH,iCAJW,EAAE,SACF,KAAK,WACL,aAAa,QAwCvB;;IAED;;;;OAIG;IACH,4BAJW,KAAK,WACL,aAAa,GACX,MAAM,CAsBlB;;;iBAjKY,OAAO,SAAS,EAAE,EAAE;4BACpB,OAAO,cAAc,EAAE,aAAa;4BACpC,OAAO,cAAc,EAAE,aAAa;sBAPrB,YAAY"}
1
+ {"version":3,"file":"7float.d.ts","sourceRoot":"","sources":["../../lib/7float.js"],"names":[],"mappings":"AAkBA;;;;;;GAMG;AACH,uCANW,UAAU,QACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CASjB;AAED;;;;;;GAMG;AACH,mCANW,UAAU,QACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAOjB;AAoBD;;;;;;GAMG;AACH,oCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAIjB;AAED;;;;;;GAMG;AACH,oCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAIjB;AAED;;;;;;GAMG;AACH,oCANW,UAAU,OACV,MAAM,UACN,MAAM,WACN,aAAa,GACX,KAAK,CAIjB;AAED;;;;GAIG;AACH,oCAJW,UAAU,SACV,KAAK,WACL,aAAa,QAwCvB;;IAED;;;;OAIG;IACH,4BAJW,KAAK,WACL,aAAa,GACX,MAAM,CAsBlB;;;yBAjKY,OAAO,cAAc,EAAE,UAAU;4BACjC,OAAO,cAAc,EAAE,aAAa;4BACpC,OAAO,cAAc,EAAE,aAAa;sBAPrB,YAAY"}
package/types/lib/bl.d.ts CHANGED
@@ -23,4 +23,29 @@ export class Bl {
23
23
  */
24
24
  toBytes(reset?: boolean): Uint8Array;
25
25
  }
26
+ /**
27
+ * U8Bl is a buffer list that writes directly to a user-provided Uint8Array.
28
+ * It provides the same interface as Bl but writes to a fixed destination.
29
+ */
30
+ export class U8Bl {
31
+ /**
32
+ * @param {Uint8Array} dest
33
+ */
34
+ constructor(dest: Uint8Array);
35
+ dest: Uint8Array<ArrayBufferLike>;
36
+ /** @type {number} */
37
+ cursor: number;
38
+ /** @type {Uint8Array[]} */
39
+ chunks: Uint8Array[];
40
+ reset(): void;
41
+ /**
42
+ * @param {Uint8Array|number[]} bytes
43
+ */
44
+ push(bytes: Uint8Array | number[]): void;
45
+ /**
46
+ * @param {boolean} [reset]
47
+ * @returns {Uint8Array}
48
+ */
49
+ toBytes(reset?: boolean): Uint8Array;
50
+ }
26
51
  //# sourceMappingURL=bl.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bl.d.ts","sourceRoot":"","sources":["../../lib/bl.js"],"names":[],"mappings":"AA0BA;IACE;;OAEG;IACH,wBAFW,MAAM,EAahB;IAVC,kBAA0B;IAC1B,qBAAqB;IACrB,QADW,MAAM,CACF;IACf,qBAAqB;IACrB,WADW,MAAM,CACE;IACnB,sCAAsC;IACtC,QADW,CAAC,UAAU,GAAC,MAAM,EAAE,CAAC,EAAE,CAClB;IAEhB,uCAAuC;IACvC,iBADW,UAAU,GAAC,MAAM,EAAE,GAAC,IAAI,CACR;IAG7B,cAUC;IAED;;OAEG;IACH,YAFW,UAAU,GAAC,MAAM,EAAE,QAsC7B;IAED;;;OAGG;IACH,gBAHW,OAAO,GACL,UAAU,CAwBtB;CACF"}
1
+ {"version":3,"file":"bl.d.ts","sourceRoot":"","sources":["../../lib/bl.js"],"names":[],"mappings":"AA0BA;IACE;;OAEG;IACH,wBAFW,MAAM,EAahB;IAVC,kBAA0B;IAC1B,qBAAqB;IACrB,QADW,MAAM,CACF;IACf,qBAAqB;IACrB,WADW,MAAM,CACE;IACnB,sCAAsC;IACtC,QADW,CAAC,UAAU,GAAC,MAAM,EAAE,CAAC,EAAE,CAClB;IAEhB,uCAAuC;IACvC,iBADW,UAAU,GAAC,MAAM,EAAE,GAAC,IAAI,CACR;IAG7B,cAUC;IAED;;OAEG;IACH,YAFW,UAAU,GAAC,MAAM,EAAE,QAsC7B;IAED;;;OAGG;IACH,gBAHW,OAAO,GACL,UAAU,CAwBtB;CACF;AAED;;;GAGG;AACH;IACE;;OAEG;IACH,kBAFW,UAAU,EAUpB;IAPC,kCAAgB;IAChB,qBAAqB;IACrB,QADW,MAAM,CACF;IAGf,2BAA2B;IAC3B,QADW,UAAU,EAAE,CACH;IAGtB,cAEC;IAED;;OAEG;IACH,YAFW,UAAU,GAAC,MAAM,EAAE,QAQ7B;IAED;;;OAGG;IACH,gBAHW,OAAO,GACL,UAAU,CAQtB;CACF"}