cborg 1.8.0 → 1.9.1

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 (54) hide show
  1. package/README.md +15 -0
  2. package/cjs/browser-test/common.js +24 -0
  3. package/cjs/browser-test/test-6tag.js +5 -19
  4. package/cjs/browser-test/test-length.js +63 -0
  5. package/cjs/lib/4array.js +3 -0
  6. package/cjs/lib/5map.js +3 -0
  7. package/cjs/lib/6tag.js +3 -0
  8. package/cjs/lib/7float.js +1 -2
  9. package/cjs/lib/bl.js +3 -1
  10. package/cjs/lib/encode.js +15 -9
  11. package/cjs/lib/length.js +36 -0
  12. package/cjs/node-test/common.js +24 -0
  13. package/cjs/node-test/test-6tag.js +5 -19
  14. package/cjs/node-test/test-length.js +63 -0
  15. package/esm/browser-test/common.js +19 -0
  16. package/esm/browser-test/test-6tag.js +4 -15
  17. package/esm/browser-test/test-length.js +55 -0
  18. package/esm/lib/4array.js +4 -1
  19. package/esm/lib/5map.js +4 -1
  20. package/esm/lib/6tag.js +4 -1
  21. package/esm/lib/7float.js +1 -2
  22. package/esm/lib/bl.js +3 -1
  23. package/esm/lib/encode.js +14 -9
  24. package/esm/lib/length.js +31 -0
  25. package/esm/node-test/common.js +19 -0
  26. package/esm/node-test/test-6tag.js +4 -15
  27. package/esm/node-test/test-length.js +55 -0
  28. package/interface.ts +1 -0
  29. package/length +1 -0
  30. package/lib/4array.js +8 -0
  31. package/lib/5map.js +8 -0
  32. package/lib/6tag.js +8 -0
  33. package/lib/7float.js +1 -2
  34. package/lib/bl.js +3 -1
  35. package/lib/byte-utils.js +4 -4
  36. package/lib/encode.js +16 -10
  37. package/lib/length.js +61 -0
  38. package/package.json +12 -3
  39. package/test/common.js +18 -0
  40. package/test/test-6tag.js +1 -17
  41. package/test/test-length.js +65 -0
  42. package/types/interface.d.ts.map +1 -1
  43. package/types/lib/4array.d.ts +5 -0
  44. package/types/lib/4array.d.ts.map +1 -1
  45. package/types/lib/5map.d.ts +5 -0
  46. package/types/lib/5map.d.ts.map +1 -1
  47. package/types/lib/6tag.d.ts +5 -0
  48. package/types/lib/6tag.d.ts.map +1 -1
  49. package/types/lib/7float.d.ts.map +1 -1
  50. package/types/lib/bl.d.ts.map +1 -1
  51. package/types/lib/encode.d.ts +2 -0
  52. package/types/lib/encode.d.ts.map +1 -1
  53. package/types/lib/length.d.ts +27 -0
  54. package/types/lib/length.d.ts.map +1 -0
@@ -0,0 +1,31 @@
1
+ import {
2
+ makeCborEncoders,
3
+ objectToTokens
4
+ } from './encode.js';
5
+ import { quickEncodeToken } from './jump.js';
6
+ const cborEncoders = makeCborEncoders();
7
+ const defaultEncodeOptions = {
8
+ float64: false,
9
+ quickEncodeToken
10
+ };
11
+ export function encodedLength(data, options) {
12
+ options = Object.assign({}, defaultEncodeOptions, options);
13
+ options.mapSorter = undefined;
14
+ const tokens = objectToTokens(data, options);
15
+ return tokensToLength(tokens, cborEncoders, options);
16
+ }
17
+ export function tokensToLength(tokens, encoders = cborEncoders, options = defaultEncodeOptions) {
18
+ if (Array.isArray(tokens)) {
19
+ let len = 0;
20
+ for (const token of tokens) {
21
+ len += tokensToLength(token, encoders, options);
22
+ }
23
+ return len;
24
+ } else {
25
+ const encoder = encoders[tokens.type.major];
26
+ if (encoder.encodedSize === undefined || typeof encoder.encodedSize !== 'function') {
27
+ throw new Error(`Encoder for ${ tokens.type.name } does not have an encodedSize()`);
28
+ }
29
+ return encoder.encodedSize(tokens, options);
30
+ }
31
+ }
@@ -0,0 +1,19 @@
1
+ import {
2
+ Token,
3
+ Type
4
+ } from '../lib/token.js';
5
+ export function dateDecoder(obj) {
6
+ if (typeof obj !== 'string') {
7
+ throw new Error('expected string for tag 1');
8
+ }
9
+ return new Date(obj);
10
+ }
11
+ export function dateEncoder(obj) {
12
+ if (!(obj instanceof Date)) {
13
+ throw new Error('expected Date for "Date" encoder');
14
+ }
15
+ return [
16
+ new Token(Type.tag, 0),
17
+ new Token(Type.string, obj.toISOString().replace(/\.000Z$/, 'Z'))
18
+ ];
19
+ }
@@ -11,22 +11,11 @@ import {
11
11
  fromHex,
12
12
  toHex
13
13
  } from '../lib/byte-utils.js';
14
+ import {
15
+ dateDecoder,
16
+ dateEncoder
17
+ } from './common.js';
14
18
  const {assert} = chai;
15
- function dateDecoder(obj) {
16
- if (typeof obj !== 'string') {
17
- throw new Error('expected string for tag 1');
18
- }
19
- return new Date(obj);
20
- }
21
- function dateEncoder(obj) {
22
- if (!(obj instanceof Date)) {
23
- throw new Error('expected Date for "Date" encoder');
24
- }
25
- return [
26
- new Token(Type.tag, 0),
27
- new Token(Type.string, obj.toISOString().replace(/\.000Z$/, 'Z'))
28
- ];
29
- }
30
19
  function Uint16ArrayDecoder(obj) {
31
20
  if (typeof obj !== 'string') {
32
21
  throw new Error('expected string for tag 23');
@@ -0,0 +1,55 @@
1
+ import chai from 'chai';
2
+ import { garbage } from 'ipld-garbage';
3
+ import { uintBoundaries } from '../lib/0uint.js';
4
+ import { encode } from '../cborg.js';
5
+ import { encodedLength } from '../lib/length.js';
6
+ import { dateEncoder } from './common.js';
7
+ const {assert} = chai;
8
+ function verifyLength(object, options) {
9
+ const len = encodedLength(object, options);
10
+ const encoded = encode(object, options);
11
+ const actual = encoded.length;
12
+ assert.strictEqual(actual, len, JSON.stringify(object));
13
+ }
14
+ describe('encodedLength', () => {
15
+ it('int boundaries', () => {
16
+ for (let ii = 0; ii < 4; ii++) {
17
+ verifyLength(uintBoundaries[ii]);
18
+ verifyLength(uintBoundaries[ii] - 1);
19
+ verifyLength(uintBoundaries[ii] + 1);
20
+ verifyLength(-1 * uintBoundaries[ii]);
21
+ verifyLength(-1 * uintBoundaries[ii] - 1);
22
+ verifyLength(-1 * uintBoundaries[ii] + 1);
23
+ }
24
+ });
25
+ it('tags', () => {
26
+ verifyLength({ date: new Date('2013-03-21T20:04:00Z') }, { typeEncoders: { Date: dateEncoder } });
27
+ });
28
+ it('floats', () => {
29
+ verifyLength(0.5);
30
+ verifyLength(0.5, { float64: true });
31
+ verifyLength(8.940696716308594e-8);
32
+ verifyLength(8.940696716308594e-8, { float64: true });
33
+ });
34
+ it('small garbage', function () {
35
+ this.timeout(10000);
36
+ for (let ii = 0; ii < 1000; ii++) {
37
+ const gbg = garbage(1 << 6, { weights: { CID: 0 } });
38
+ verifyLength(gbg);
39
+ }
40
+ });
41
+ it('medium garbage', function () {
42
+ this.timeout(10000);
43
+ for (let ii = 0; ii < 100; ii++) {
44
+ const gbg = garbage(1 << 16, { weights: { CID: 0 } });
45
+ verifyLength(gbg);
46
+ }
47
+ });
48
+ it('large garbage', function () {
49
+ this.timeout(10000);
50
+ for (let ii = 0; ii < 10; ii++) {
51
+ const gbg = garbage(1 << 20, { weights: { CID: 0 } });
52
+ verifyLength(gbg);
53
+ }
54
+ });
55
+ });
package/interface.ts CHANGED
@@ -16,6 +16,7 @@ export type StrictTypeEncoder = (data: any, typ: string, options: EncodeOptions,
16
16
  export type TokenTypeEncoder = {
17
17
  (buf: Bl, token: Token, options?: EncodeOptions): void;
18
18
  compareTokens(t1: Token, t2: Token): number;
19
+ // TODO: make this non-optional as a breaking change and remove the throw in length.js
19
20
  encodedSize?(token: Token, options?: EncodeOptions): number;
20
21
  }
21
22
 
package/length ADDED
@@ -0,0 +1 @@
1
+ module.exports = require('./cjs/lib/length.js')
package/lib/4array.js CHANGED
@@ -103,3 +103,11 @@ export function encodeArray (buf, token) {
103
103
  // using an array as a map key, are you sure about this? we can only sort
104
104
  // by map length here, it's up to the encoder to decide to look deeper
105
105
  encodeArray.compareTokens = uint.encodeUint.compareTokens
106
+
107
+ /**
108
+ * @param {Token} token
109
+ * @returns {number}
110
+ */
111
+ encodeArray.encodedSize = function encodedSize (token) {
112
+ return uint.encodeUintValue.encodedSize(token.value)
113
+ }
package/lib/5map.js CHANGED
@@ -103,3 +103,11 @@ export function encodeMap (buf, token) {
103
103
  // using a map as a map key, are you sure about this? we can only sort
104
104
  // by map length here, it's up to the encoder to decide to look deeper
105
105
  encodeMap.compareTokens = uint.encodeUint.compareTokens
106
+
107
+ /**
108
+ * @param {Token} token
109
+ * @returns {number}
110
+ */
111
+ encodeMap.encodedSize = function encodedSize (token) {
112
+ return uint.encodeUintValue.encodedSize(token.value)
113
+ }
package/lib/6tag.js CHANGED
@@ -70,3 +70,11 @@ export function encodeTag (buf, token) {
70
70
  }
71
71
 
72
72
  encodeTag.compareTokens = uint.encodeUint.compareTokens
73
+
74
+ /**
75
+ * @param {Token} token
76
+ * @returns {number}
77
+ */
78
+ encodeTag.encodedSize = function encodedSize (token) {
79
+ return uint.encodeUintValue.encodedSize(token.value)
80
+ }
package/lib/7float.js CHANGED
@@ -154,10 +154,9 @@ encodeFloat.encodedSize = function encodedSize (token, options) {
154
154
  return 1
155
155
  }
156
156
 
157
- let decoded
158
157
  if (!options || options.float64 !== true) {
159
158
  encodeFloat16(float)
160
- decoded = readFloat16(ui8a, 1)
159
+ let decoded = readFloat16(ui8a, 1)
161
160
  if (float === decoded || Number.isNaN(float)) {
162
161
  return 3
163
162
  }
package/lib/bl.js CHANGED
@@ -42,9 +42,11 @@ export class Bl {
42
42
  }
43
43
 
44
44
  reset () {
45
- this.chunks = []
46
45
  this.cursor = 0
47
46
  this.maxCursor = -1
47
+ if (this.chunks.length) {
48
+ this.chunks = []
49
+ }
48
50
  if (this._initReuseChunk !== null) {
49
51
  this.chunks.push(this._initReuseChunk)
50
52
  this.maxCursor = this._initReuseChunk.length - 1
package/lib/byte-utils.js CHANGED
@@ -44,8 +44,8 @@ export const toString = useBuffer
44
44
  (bytes, start, end) => {
45
45
  return end - start > 64
46
46
  ? // eslint-disable-line operator-linebreak
47
- // @ts-ignore
48
- globalThis.Buffer.from(bytes.subarray(start, end)).toString('utf8')
47
+ // @ts-ignore
48
+ globalThis.Buffer.from(bytes.subarray(start, end)).toString('utf8')
49
49
  : utf8Slice(bytes, start, end)
50
50
  }
51
51
  /* c8 ignore next 11 */
@@ -69,8 +69,8 @@ export const fromString = useBuffer
69
69
  (string) => {
70
70
  return string.length > 64
71
71
  ? // eslint-disable-line operator-linebreak
72
- // @ts-ignore
73
- globalThis.Buffer.from(string)
72
+ // @ts-ignore
73
+ globalThis.Buffer.from(string)
74
74
  : utf8ToBytes(string)
75
75
  }
76
76
  /* c8 ignore next 7 */
package/lib/encode.js CHANGED
@@ -30,16 +30,21 @@ const defaultEncodeOptions = {
30
30
  quickEncodeToken
31
31
  }
32
32
 
33
- /** @type {TokenTypeEncoder[]} */
34
- const cborEncoders = []
35
- cborEncoders[Type.uint.major] = encodeUint
36
- cborEncoders[Type.negint.major] = encodeNegint
37
- cborEncoders[Type.bytes.major] = encodeBytes
38
- cborEncoders[Type.string.major] = encodeString
39
- cborEncoders[Type.array.major] = encodeArray
40
- cborEncoders[Type.map.major] = encodeMap
41
- cborEncoders[Type.tag.major] = encodeTag
42
- cborEncoders[Type.float.major] = encodeFloat
33
+ /** @returns {TokenTypeEncoder[]} */
34
+ export function makeCborEncoders () {
35
+ const encoders = []
36
+ encoders[Type.uint.major] = encodeUint
37
+ encoders[Type.negint.major] = encodeNegint
38
+ encoders[Type.bytes.major] = encodeBytes
39
+ encoders[Type.string.major] = encodeString
40
+ encoders[Type.array.major] = encodeArray
41
+ encoders[Type.map.major] = encodeMap
42
+ encoders[Type.tag.major] = encodeTag
43
+ encoders[Type.float.major] = encodeFloat
44
+ return encoders
45
+ }
46
+
47
+ const cborEncoders = makeCborEncoders()
43
48
 
44
49
  const buf = new Bl()
45
50
 
@@ -441,6 +446,7 @@ function encodeCustom (data, encoders, options) {
441
446
  return asU8A(buf.chunks[0])
442
447
  }
443
448
  }
449
+ buf.reset()
444
450
  tokensToEncoded(buf, tokens, encoders, options)
445
451
  return buf.toBytes(true)
446
452
  }
package/lib/length.js ADDED
@@ -0,0 +1,61 @@
1
+ import { makeCborEncoders, objectToTokens } from './encode.js'
2
+ import { quickEncodeToken } from './jump.js'
3
+
4
+ /**
5
+ * @typedef {import('../interface').EncodeOptions} EncodeOptions
6
+ * @typedef {import('../interface').TokenTypeEncoder} TokenTypeEncoder
7
+ * @typedef {import('../interface').TokenOrNestedTokens} TokenOrNestedTokens
8
+ */
9
+
10
+ const cborEncoders = makeCborEncoders()
11
+
12
+ /** @type {EncodeOptions} */
13
+ const defaultEncodeOptions = {
14
+ float64: false,
15
+ quickEncodeToken
16
+ }
17
+
18
+ /**
19
+ * Calculate the byte length of the given data when encoded as CBOR with the
20
+ * options provided.
21
+ * This calculation will be accurate if the same options are used as when
22
+ * performing a normal encode. Some encode options can change the encoding
23
+ * output length.
24
+ *
25
+ * @param {any} data
26
+ * @param {EncodeOptions} [options]
27
+ * @returns {number}
28
+ */
29
+ export function encodedLength (data, options) {
30
+ options = Object.assign({}, defaultEncodeOptions, options)
31
+ options.mapSorter = undefined // won't change the length
32
+ const tokens = objectToTokens(data, options)
33
+ return tokensToLength(tokens, cborEncoders, options)
34
+ }
35
+
36
+ /**
37
+ * Calculate the byte length of the data as represented by the given tokens when
38
+ * encoded as CBOR with the options provided.
39
+ * This function is for advanced users and would not normally be called
40
+ * directly. See `encodedLength()` for appropriate use.
41
+ *
42
+ * @param {TokenOrNestedTokens} tokens
43
+ * @param {TokenTypeEncoder[]} [encoders]
44
+ * @param {EncodeOptions} [options]
45
+ */
46
+ export function tokensToLength (tokens, encoders = cborEncoders, options = defaultEncodeOptions) {
47
+ if (Array.isArray(tokens)) {
48
+ let len = 0
49
+ for (const token of tokens) {
50
+ len += tokensToLength(token, encoders, options)
51
+ }
52
+ return len
53
+ } else {
54
+ const encoder = encoders[tokens.type.major]
55
+ /* c8 ignore next 3 */
56
+ if (encoder.encodedSize === undefined || typeof encoder.encodedSize !== 'function') {
57
+ throw new Error(`Encoder for ${tokens.type.name} does not have an encodedSize()`)
58
+ }
59
+ return encoder.encodedSize(tokens, options)
60
+ }
61
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cborg",
3
- "version": "1.8.0",
3
+ "version": "1.9.1",
4
4
  "description": "Fast CBOR with a focus on strictness",
5
5
  "main": "./cjs/cborg.js",
6
6
  "bin": {
@@ -38,8 +38,8 @@
38
38
  "ipld-garbage": "^4.0.10",
39
39
  "mocha": "^9.1.3",
40
40
  "polendina": "~2.0.1",
41
- "standard": "^16.0.4",
42
- "typescript": "~4.5.3"
41
+ "standard": "^17.0.0",
42
+ "typescript": "~4.6.2"
43
43
  },
44
44
  "exports": {
45
45
  ".": {
@@ -47,6 +47,11 @@
47
47
  "require": "./cjs/cborg.js",
48
48
  "import": "./esm/cborg.js"
49
49
  },
50
+ "./length": {
51
+ "browser": "./esm/lib/length.js",
52
+ "require": "./cjs/lib/length.js",
53
+ "import": "./esm/lib/length.js"
54
+ },
50
55
  "./taglib": {
51
56
  "browser": "./esm/taglib.js",
52
57
  "require": "./cjs/taglib.js",
@@ -64,6 +69,9 @@
64
69
  "json": [
65
70
  "types/lib/json/json.d.ts"
66
71
  ],
72
+ "length": [
73
+ "types/lib/length.d.ts"
74
+ ],
67
75
  "*": [
68
76
  "types/*"
69
77
  ],
@@ -160,6 +168,7 @@
160
168
  },
161
169
  "browser": {
162
170
  ".": "./cjs/cborg.js",
171
+ "./length": "./cjs/lib/length.js",
163
172
  "./taglib": "./cjs/taglib.js",
164
173
  "./json": "./cjs/lib/json/json.js"
165
174
  }
package/test/common.js ADDED
@@ -0,0 +1,18 @@
1
+ import { Token, Type } from '../lib/token.js'
2
+
3
+ export function dateDecoder (obj) {
4
+ if (typeof obj !== 'string') {
5
+ throw new Error('expected string for tag 1')
6
+ }
7
+ return new Date(obj)
8
+ }
9
+
10
+ export function dateEncoder (obj) {
11
+ if (!(obj instanceof Date)) {
12
+ throw new Error('expected Date for "Date" encoder')
13
+ }
14
+ return [
15
+ new Token(Type.tag, 0),
16
+ new Token(Type.string, obj.toISOString().replace(/\.000Z$/, 'Z'))
17
+ ]
18
+ }
package/test/test-6tag.js CHANGED
@@ -5,26 +5,10 @@ import chai from 'chai'
5
5
  import { Token, Type } from '../lib/token.js'
6
6
  import { decode, encode } from '../cborg.js'
7
7
  import { fromHex, toHex } from '../lib/byte-utils.js'
8
+ import { dateDecoder, dateEncoder } from './common.js'
8
9
 
9
10
  const { assert } = chai
10
11
 
11
- function dateDecoder (obj) {
12
- if (typeof obj !== 'string') {
13
- throw new Error('expected string for tag 1')
14
- }
15
- return new Date(obj)
16
- }
17
-
18
- function dateEncoder (obj) {
19
- if (!(obj instanceof Date)) {
20
- throw new Error('expected Date for "Date" encoder')
21
- }
22
- return [
23
- new Token(Type.tag, 0),
24
- new Token(Type.string, obj.toISOString().replace(/\.000Z$/, 'Z'))
25
- ]
26
- }
27
-
28
12
  function Uint16ArrayDecoder (obj) {
29
13
  if (typeof obj !== 'string') {
30
14
  throw new Error('expected string for tag 23')
@@ -0,0 +1,65 @@
1
+ /* eslint-env mocha */
2
+
3
+ import chai from 'chai'
4
+ import { garbage } from 'ipld-garbage'
5
+ import { uintBoundaries } from '../lib/0uint.js'
6
+ import { encode } from '../cborg.js'
7
+ import { encodedLength } from '../lib/length.js'
8
+ import { dateEncoder } from './common.js'
9
+
10
+ const { assert } = chai
11
+
12
+ function verifyLength (object, options) {
13
+ const len = encodedLength(object, options)
14
+ const encoded = encode(object, options)
15
+ const actual = encoded.length
16
+ assert.strictEqual(actual, len, JSON.stringify(object))
17
+ }
18
+
19
+ describe('encodedLength', () => {
20
+ it('int boundaries', () => {
21
+ for (let ii = 0; ii < 4; ii++) {
22
+ verifyLength(uintBoundaries[ii])
23
+ verifyLength(uintBoundaries[ii] - 1)
24
+ verifyLength(uintBoundaries[ii] + 1)
25
+ verifyLength(-1 * uintBoundaries[ii])
26
+ verifyLength(-1 * uintBoundaries[ii] - 1)
27
+ verifyLength(-1 * uintBoundaries[ii] + 1)
28
+ }
29
+ })
30
+
31
+ it('tags', () => {
32
+ verifyLength({ date: new Date('2013-03-21T20:04:00Z') }, { typeEncoders: { Date: dateEncoder } })
33
+ })
34
+
35
+ it('floats', () => {
36
+ verifyLength(0.5)
37
+ verifyLength(0.5, { float64: true })
38
+ verifyLength(8.940696716308594e-08)
39
+ verifyLength(8.940696716308594e-08, { float64: true })
40
+ })
41
+
42
+ it('small garbage', function () {
43
+ this.timeout(10000)
44
+ for (let ii = 0; ii < 1000; ii++) {
45
+ const gbg = garbage(1 << 6, { weights: { CID: 0 } })
46
+ verifyLength(gbg)
47
+ }
48
+ })
49
+
50
+ it('medium garbage', function () {
51
+ this.timeout(10000)
52
+ for (let ii = 0; ii < 100; ii++) {
53
+ const gbg = garbage(1 << 16, { weights: { CID: 0 } })
54
+ verifyLength(gbg)
55
+ }
56
+ })
57
+
58
+ it('large garbage', function () {
59
+ this.timeout(10000)
60
+ for (let ii = 0; ii < 10; ii++) {
61
+ const gbg = garbage(1 << 20, { weights: { CID: 0 } })
62
+ verifyLength(gbg)
63
+ }
64
+ })
65
+ })
@@ -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,oBAAY,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,oBAAY,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,oBAAY,iBAAiB,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,SAAS,KAAK,mBAAmB,CAAA;AAE7H,oBAAY,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;IAC5C,WAAW,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,MAAM,CAAC;CAC7D,CAAA;AAED,oBAAY,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,oBAAY,gBAAgB,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,UAAU,GAAG,SAAS,CAAA;AAEvE,MAAM,WAAW,eAAe;IAC9B,IAAI,IAAI,OAAO,CAAC;IAChB,IAAI,IAAI,KAAK,CAAA;CACd;AAED,oBAAY,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,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;CAC3D"}
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,oBAAY,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,oBAAY,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,oBAAY,iBAAiB,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,SAAS,KAAK,mBAAmB,CAAA;AAE7H,oBAAY,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,oBAAY,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,oBAAY,gBAAgB,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,UAAU,GAAG,SAAS,CAAA;AAEvE,MAAM,WAAW,eAAe;IAC9B,IAAI,IAAI,OAAO,CAAC;IAChB,IAAI,IAAI,KAAK,CAAA;CACd;AAED,oBAAY,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,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;CAC3D"}
@@ -53,6 +53,11 @@ export function decodeArrayIndefinite(data: Uint8Array, pos: number, _minor: num
53
53
  export function encodeArray(buf: Bl, token: Token): void;
54
54
  export namespace encodeArray {
55
55
  const compareTokens: (tok1: Token, tok2: Token) => number;
56
+ /**
57
+ * @param {Token} token
58
+ * @returns {number}
59
+ */
60
+ function encodedSize(token: Token): number;
56
61
  }
57
62
  export type Bl = import('./bl.js').Bl;
58
63
  export type DecodeOptions = import('../interface').DecodeOptions;
@@ -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;;;;iBA/FY,OAAO,SAAS,EAAE,EAAE;4BACpB,OAAO,cAAc,EAAE,aAAa"}
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,2CAEC;;iBA3GY,OAAO,SAAS,EAAE,EAAE;4BACpB,OAAO,cAAc,EAAE,aAAa"}
@@ -53,6 +53,11 @@ export function decodeMapIndefinite(data: Uint8Array, pos: number, _minor: numbe
53
53
  export function encodeMap(buf: Bl, token: Token): void;
54
54
  export namespace encodeMap {
55
55
  const compareTokens: (tok1: Token, tok2: Token) => number;
56
+ /**
57
+ * @param {Token} token
58
+ * @returns {number}
59
+ */
60
+ function encodedSize(token: Token): number;
56
61
  }
57
62
  export type Bl = import('./bl.js').Bl;
58
63
  export type DecodeOptions = import('../interface').DecodeOptions;
@@ -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;;;;iBA/FY,OAAO,SAAS,EAAE,EAAE;4BACpB,OAAO,cAAc,EAAE,aAAa"}
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,2CAEC;;iBA3GY,OAAO,SAAS,EAAE,EAAE;4BACpB,OAAO,cAAc,EAAE,aAAa"}
@@ -49,6 +49,11 @@ export function decodeTag64(data: Uint8Array, pos: number, _minor: number, optio
49
49
  export function encodeTag(buf: Bl, token: Token): void;
50
50
  export namespace encodeTag {
51
51
  const compareTokens: (tok1: Token, tok2: Token) => number;
52
+ /**
53
+ * @param {Token} token
54
+ * @returns {number}
55
+ */
56
+ function encodedSize(token: Token): number;
52
57
  }
53
58
  export type Bl = import('./bl.js').Bl;
54
59
  export type DecodeOptions = import('../interface').DecodeOptions;
@@ -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;;;;iBAjEY,OAAO,SAAS,EAAE,EAAE;4BACpB,OAAO,cAAc,EAAE,aAAa"}
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,2CAEC;;iBA3EY,OAAO,SAAS,EAAE,EAAE;4BACpB,OAAO,cAAc,EAAE,aAAa"}
@@ -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,0FAqBC;;;iBAlKY,OAAO,SAAS,EAAE,EAAE;4BACpB,OAAO,cAAc,EAAE,aAAa;4BACpC,OAAO,cAAc,EAAE,aAAa"}
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,0FAoBC;;;iBAjKY,OAAO,SAAS,EAAE,EAAE;4BACpB,OAAO,cAAc,EAAE,aAAa;4BACpC,OAAO,cAAc,EAAE,aAAa"}
@@ -1 +1 @@
1
- {"version":3,"file":"bl.d.ts","sourceRoot":"","sources":["../../lib/bl.js"],"names":[],"mappings":"AA0BA;IACE;;OAEG;IACH,4CAWC;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,cAQC;IAED;;OAEG;IACH,YAFW,UAAU,GAAC,MAAM,EAAE,QAsC7B;IAED;;;OAGG;IACH,sCAFa,UAAU,CAwBtB;CACF"}
1
+ {"version":3,"file":"bl.d.ts","sourceRoot":"","sources":["../../lib/bl.js"],"names":[],"mappings":"AA0BA;IACE;;OAEG;IACH,4CAWC;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,sCAFa,UAAU,CAwBtB;CACF"}
@@ -1,3 +1,5 @@
1
+ /** @returns {TokenTypeEncoder[]} */
2
+ export function makeCborEncoders(): TokenTypeEncoder[];
1
3
  export type EncodeOptions = import('../interface').EncodeOptions;
2
4
  export type OptionalTypeEncoder = import('../interface').OptionalTypeEncoder;
3
5
  export type Reference = import('../interface').Reference;
@@ -1 +1 @@
1
- {"version":3,"file":"encode.d.ts","sourceRoot":"","sources":["../../lib/encode.js"],"names":[],"mappings":"4BAiBa,OAAO,cAAc,EAAE,aAAa;kCACpC,OAAO,cAAc,EAAE,mBAAmB;wBAC1C,OAAO,cAAc,EAAE,SAAS;gCAChC,OAAO,cAAc,EAAE,iBAAiB;+BACxC,OAAO,cAAc,EAAE,gBAAgB;kCACvC,OAAO,cAAc,EAAE,mBAAmB;AA2PvD;;;;;GAKG;AACH,oCALW,GAAG,wHAGD,mBAAmB,CAgB/B;AA0JD;;;;GAIG;AACH,6BAJW,GAAG,+DAED,UAAU,CAKtB;AAtCD;;;;;GAKG;AACH,mCALW,GAAG,YACH,gBAAgB,EAAE,WAClB,aAAa,GACX,UAAU,CAwBtB;AAhZD,8BAA8B;AAC9B;IAyBE;;;;OAIG;IACH,0BAJW,SAAS,GAAC,SAAS,OACnB,MAAM,GAAC,GAAG,EAAE,GACV,SAAS,CAOrB;IAlCD;;;OAGG;IACH,iBAHW,MAAM,GAAC,GAAG,EAAE,UACZ,SAAS,GAAC,SAAS,EAK7B;IAFC,oBAAc;IACd,qDAAoB;IAGtB;;;OAGG;IACH,cAHW,MAAM,GAAC,GAAG,EAAE,GACV,OAAO,CAWnB;CAaF"}
1
+ {"version":3,"file":"encode.d.ts","sourceRoot":"","sources":["../../lib/encode.js"],"names":[],"mappings":"AAgCA,oCAAoC;AACpC,oCADc,gBAAgB,EAAE,CAY/B;4BA3BY,OAAO,cAAc,EAAE,aAAa;kCACpC,OAAO,cAAc,EAAE,mBAAmB;wBAC1C,OAAO,cAAc,EAAE,SAAS;gCAChC,OAAO,cAAc,EAAE,iBAAiB;+BACxC,OAAO,cAAc,EAAE,gBAAgB;kCACvC,OAAO,cAAc,EAAE,mBAAmB;AAgQvD;;;;;GAKG;AACH,oCALW,GAAG,wHAGD,mBAAmB,CAgB/B;AA2JD;;;;GAIG;AACH,6BAJW,GAAG,+DAED,UAAU,CAKtB;AAvCD;;;;;GAKG;AACH,mCALW,GAAG,YACH,gBAAgB,EAAE,WAClB,aAAa,GACX,UAAU,CAyBtB;AAjZD,8BAA8B;AAC9B;IAyBE;;;;OAIG;IACH,0BAJW,SAAS,GAAC,SAAS,OACnB,MAAM,GAAC,GAAG,EAAE,GACV,SAAS,CAOrB;IAlCD;;;OAGG;IACH,iBAHW,MAAM,GAAC,GAAG,EAAE,UACZ,SAAS,GAAC,SAAS,EAK7B;IAFC,oBAAc;IACd,qDAAoB;IAGtB;;;OAGG;IACH,cAHW,MAAM,GAAC,GAAG,EAAE,GACV,OAAO,CAWnB;CAaF"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Calculate the byte length of the given data when encoded as CBOR with the
3
+ * options provided.
4
+ * This calculation will be accurate if the same options are used as when
5
+ * performing a normal encode. Some encode options can change the encoding
6
+ * output length.
7
+ *
8
+ * @param {any} data
9
+ * @param {EncodeOptions} [options]
10
+ * @returns {number}
11
+ */
12
+ export function encodedLength(data: any, options?: import("../interface").EncodeOptions | undefined): number;
13
+ /**
14
+ * Calculate the byte length of the data as represented by the given tokens when
15
+ * encoded as CBOR with the options provided.
16
+ * This function is for advanced users and would not normally be called
17
+ * directly. See `encodedLength()` for appropriate use.
18
+ *
19
+ * @param {TokenOrNestedTokens} tokens
20
+ * @param {TokenTypeEncoder[]} [encoders]
21
+ * @param {EncodeOptions} [options]
22
+ */
23
+ export function tokensToLength(tokens: TokenOrNestedTokens, encoders?: import("../interface").TokenTypeEncoder[] | undefined, options?: import("../interface").EncodeOptions | undefined): number;
24
+ export type EncodeOptions = import('../interface').EncodeOptions;
25
+ export type TokenTypeEncoder = import('../interface').TokenTypeEncoder;
26
+ export type TokenOrNestedTokens = import('../interface').TokenOrNestedTokens;
27
+ //# sourceMappingURL=length.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"length.d.ts","sourceRoot":"","sources":["../../lib/length.js"],"names":[],"mappings":"AAiBA;;;;;;;;;;GAUG;AACH,oCAJW,GAAG,+DAED,MAAM,CAOlB;AAED;;;;;;;;;GASG;AACH,uCAJW,mBAAmB,wIAmB7B;4BAxDY,OAAO,cAAc,EAAE,aAAa;+BACpC,OAAO,cAAc,EAAE,gBAAgB;kCACvC,OAAO,cAAc,EAAE,mBAAmB"}