🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

cborg

Package Overview
Dependencies
Maintainers
1
Versions
120
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

cborg - npm Package Compare versions

Comparing version
5.1.11
to
6.0.0
+2
-0
CHANGELOG.md

@@ -0,1 +1,3 @@

## [6.0.0](https://github.com/rvagg/cborg/compare/v5.1.11...v6.0.0) (2026-07-29)
## [5.1.11](https://github.com/rvagg/cborg/compare/v5.1.10...v5.1.11) (2026-07-29)

@@ -2,0 +4,0 @@

+2
-2

@@ -21,3 +21,3 @@ import { Token } from './lib/token.js'

(writer: ByteWriter, token: Token, options?: EncodeOptions): void;
compareTokens(t1: Token, t2: Token): number;
compareTokens(t1: Token, t2: Token, options?: EncodeOptions): number;
// TODO: make this non-optional as a breaking change and remove the throw in length.js

@@ -27,3 +27,3 @@ encodedSize?(token: Token, options?: EncodeOptions): number;

export type MapSorter = (e1: (Token | Token[])[], e2: (Token | Token[])[]) => number
export type MapSorter = (e1: (Token | Token[])[], e2: (Token | Token[])[], options?: EncodeOptions) => number

@@ -30,0 +30,0 @@ export type QuickEncodeToken = (token: Token) => AllocatedByteView | undefined

@@ -6,3 +6,3 @@ // TODO: shift some of the bytes logic to bytes-utils so we can use Buffer

import { decodeErrPrefix } from './common.js'
import { encodeUint } from './0uint.js'
import { compare } from './byte-utils.js'

@@ -297,12 +297,91 @@ /**

/**
* @param {Token} _tok1
* @param {Token} _tok2
* @typedef {Token & {
* _keyBytes?: Uint8Array,
* _keyBytesFloat64?: Uint8Array
* }} TokenEx
*/
/**
* The canonical CBOR bytes for a major 7 map key. The four simple values encode
* to a single byte and every float to its 3, 5 or 9 byte form, exactly as
* {@link encodeFloat} writes them. This mirrors the width selection in
* `encodeFloat` because the sorter needs the bytes in hand to compare.
* @param {Token} token
* @param {boolean} float64
* @returns {Uint8Array}
*/
function encodeMajorSevenBytes (token, float64) {
const float = token.value
if (float === false) {
return Uint8Array.of(Type.float.majorEncoded | MINOR_FALSE)
}
if (float === true) {
return Uint8Array.of(Type.float.majorEncoded | MINOR_TRUE)
}
if (float === null) {
return Uint8Array.of(Type.float.majorEncoded | MINOR_NULL)
}
if (float === undefined) {
return Uint8Array.of(Type.float.majorEncoded | MINOR_UNDEFINED)
}
if (!float64) {
encodeFloat16(float)
if (float === readFloat16(ui8a, 1) || Number.isNaN(float)) {
ui8a[0] = 0xf9
return ui8a.slice(0, 3)
}
encodeFloat32(float)
if (float === readFloat32(ui8a, 1)) {
ui8a[0] = 0xfa
return ui8a.slice(0, 5)
}
}
encodeFloat64(float)
ui8a[0] = 0xfb
return ui8a.slice(0, 9)
}
/**
* Get the canonical CBOR bytes for a major 7 map key, honouring
* `options.float64`. Bytes are cached because Array.sort compares each key
* multiple times.
* @param {Token} token
* @param {EncodeOptions} [options]
* @returns {Uint8Array}
*/
function majorSevenBytes (token, options) {
const tokenEx = /** @type {TokenEx} */ (token)
const float64 = options?.float64 === true
const cached = float64 ? tokenEx._keyBytesFloat64 : tokenEx._keyBytes
if (cached !== undefined) {
return cached
}
const bytes = encodeMajorSevenBytes(token, float64)
if (float64) {
tokenEx._keyBytesFloat64 = bytes
} else {
tokenEx._keyBytes = bytes
}
return bytes
}
/**
* Order two major 7 map keys by RFC 7049 §3.9 canonical order: shorter encoding
* first, then bytewise. Because the four simple values encode to one byte they
* sort ahead of every float, and comparing the `float64`-honouring encoded bytes
* (rather than the numeric value) makes negative floats, mixed encoding widths
* and `NaN` deterministic regardless of insertion order.
* @param {Token} tok1
* @param {Token} tok2
* @param {EncodeOptions} [options]
* @returns {number}
*/
encodeFloat.compareTokens = encodeUint.compareTokens
/*
encodeFloat.compareTokens = function compareTokens (_tok1, _tok2) {
return _tok1
throw new Error(`${encodeErrPrefix} cannot use floats as map keys`)
encodeFloat.compareTokens = function compareTokens (tok1, tok2, options) {
const b1 = majorSevenBytes(tok1, options)
const b2 = majorSevenBytes(tok2, options)
if (b1.length !== b2.length) {
return b1.length < b2.length ? -1 : 1
}
return compare(b1, b2)
}
*/

@@ -406,4 +406,11 @@ import { is } from './is.js'

function sortMapEntries (entries, options) {
if (options.mapSorter) {
entries.sort(options.mapSorter)
// cast because entries carry the wider TokenOrNestedTokens element type while
// MapSorter narrows to (Token | Token[])[]; the original direct sort relied on
// sort's bivariant parameter check, the wrapper below re-states it
const mapSorter = /** @type {(e1: TokenOrNestedTokens, e2: TokenOrNestedTokens, options?: EncodeOptions) => number} */ (options.mapSorter)
if (mapSorter) {
// pass options so a sorter can honour encode options (e.g. major 7 keys
// order by their float64-honouring encoding); custom sorters that take
// only (e1, e2) simply ignore the extra argument
entries.sort((e1, e2) => mapSorter(e1, e2, options))
}

@@ -415,5 +422,6 @@ }

* @param {(Token|Token[])[]} e2
* @param {EncodeOptions} [options]
* @returns {number}
*/
function mapSorter (e1, e2) {
function mapSorter (e1, e2, options) {
// the key position ([0]) could have a single token or an array

@@ -424,4 +432,4 @@ // almost always it'll be a single token but complex key might get involved

// different key types
if (keyToken1.type !== keyToken2.type) {
// different key type majors
if (keyToken1.type.major !== keyToken2.type.major) {
return keyToken1.type.compare(keyToken2.type)

@@ -432,3 +440,3 @@ }

// TODO: handle case where cmp === 0 but there are more keyToken e. complex type)
const tcmp = cborEncoders[major].compareTokens(keyToken1, keyToken2)
const tcmp = cborEncoders[major].compareTokens(keyToken1, keyToken2, options)
if (tcmp === 0) {

@@ -435,0 +443,0 @@ // duplicate key or complex type where the first token matched,

{
"name": "cborg",
"version": "5.1.11",
"version": "6.0.0",
"description": "Fast CBOR with a focus on strictness",

@@ -5,0 +5,0 @@ "main": "cborg.js",

@@ -290,4 +290,49 @@ /* eslint-env mocha */

it('sorts simple value map keys', () => {
// false (0xf4), true (0xf5), null (0xf6), undefined (0xf7)
assert.strictEqual(toHex(encode(new Map([[true, 1], [false, 2]]))), 'a2f402f501')
assert.strictEqual(toHex(encode(new Map([[false, 2], [true, 1]]))), 'a2f402f501')
assert.strictEqual(toHex(encode(new Map([[undefined, 1], [null, 2], [true, 3], [false, 4]]))), 'a4f404f503f602f701')
assert.strictEqual(toHex(encode(new Map([[false, 4], [true, 3], [null, 2], [undefined, 1]]))), 'a4f404f503f602f701')
})
it('sorts float and simple value map keys', () => {
// simple values sort before floats
assert.strictEqual(toHex(encode(new Map([[1.5, 'a'], [true, 'b']]))), 'a2f56162f93e006161')
assert.strictEqual(toHex(encode(new Map([[true, 'b'], [1.5, 'a']]))), 'a2f56162f93e006161')
})
it('sorts float map keys by encoded bytes, not numeric value', () => {
// +1.5 (f93e00) sorts before -1.5 (f9be00) even though -1.5 is the smaller
// number: RFC 7049 3.9 orders by the encoded bytes, not the value
assert.strictEqual(toHex(encode(new Map([[-1.5, 'a'], [1.5, 'b']]))), 'a2f93e006162f9be006161')
assert.strictEqual(toHex(encode(new Map([[1.5, 'b'], [-1.5, 'a']]))), 'a2f93e006162f9be006161')
})
it('sorts float map keys of different widths shortest-first', () => {
// Infinity is a 3-byte float16 (f97c00), 1.1 a 9-byte float64
// (fb3ff199999999999a): shorter encoding sorts first regardless of value
assert.strictEqual(toHex(encode(new Map([[1.1, 'a'], [Infinity, 'b']]))), 'a2f97c006162fb3ff199999999999a6161')
assert.strictEqual(toHex(encode(new Map([[Infinity, 'b'], [1.1, 'a']]))), 'a2f97c006162fb3ff199999999999a6161')
})
it('sorts NaN float map keys deterministically', () => {
// NaN compares false against every number, so ordering must not fall back
// to insertion order; 1.5 (f93e00) sorts before NaN (f97e00) by bytes
assert.strictEqual(toHex(encode(new Map([[NaN, 'a'], [1.5, 'b']]))), 'a2f93e006162f97e006161')
assert.strictEqual(toHex(encode(new Map([[1.5, 'b'], [NaN, 'a']]))), 'a2f93e006162f97e006161')
})
it('sorts float map keys honouring the float64 option', () => {
// default: 1.5 is a 3-byte float16, sorts before the 9-byte 1.1
assert.strictEqual(toHex(encode(new Map([[1.5, 'b'], [1.1, 'a']]))), 'a2f93e006162fb3ff199999999999a6161')
// float64: both encode to 9 bytes, so bytewise order applies and 1.1
// (fb3ff1…) now sorts before 1.5 (fb3ff8…) — the sort follows the bytes
// that are actually written
assert.strictEqual(toHex(encode(new Map([[1.5, 'b'], [1.1, 'a']]), { float64: true })), 'a2fb3ff199999999999a6161fb3ff80000000000006162')
assert.strictEqual(toHex(encode(new Map([[1.1, 'a'], [1.5, 'b']]), { float64: true })), 'a2fb3ff199999999999a6161fb3ff80000000000006162')
})
// TODO: tag keys .. but why would you do this!?
})
})

@@ -14,6 +14,6 @@ import { Token } from './lib/token.js';

(writer: ByteWriter, token: Token, options?: EncodeOptions): void;
compareTokens(t1: Token, t2: Token): number;
compareTokens(t1: Token, t2: Token, options?: EncodeOptions): number;
encodedSize?(token: Token, options?: EncodeOptions): number;
};
export type MapSorter = (e1: (Token | Token[])[], e2: (Token | Token[])[]) => number;
export type MapSorter = (e1: (Token | Token[])[], e2: (Token | Token[])[], options?: EncodeOptions) => number;
export type QuickEncodeToken = (token: Token) => AllocatedByteView | undefined;

@@ -20,0 +20,0 @@ export interface DecodeTokenizer {

@@ -1,1 +0,1 @@

{"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAEtC,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe,IAAI,UAAU,CAAC,CAAC,CAAC,CAAA;AAEjF,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,WAAW,CAAC,CAAA;AAEvD,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,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAClE,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,iBAAiB,GAAG,SAAS,CAAA;AAE9E,MAAM,WAAW,eAAe;IAC9B,IAAI,IAAI,OAAO,CAAC;IAChB,IAAI,IAAI,KAAK,CAAC;IACd,GAAG,IAAI,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,gCAAgC;IAChC,IAAI,OAAO,CAAA;IACX,kFAAkF;IAClF,OAAO,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAA;CAGrC;AAED,MAAM,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,gBAAgB,KAAK,GAAG,CAAA;AAE1D,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;QAAE,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,CAAA;KAAE,CAAC;IAC3C,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;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,CAAC,QAAQ,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC;IAChC,KAAK,IAAI,IAAI,CAAC;IACd,IAAI,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC;IACvC,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC;CAChD"}
{"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../interface.ts"],"names":[],"mappings":"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"}

@@ -62,4 +62,8 @@ import { Token } from './token.js';

var encodedSize: (token: Token, options: EncodeOptions) => number;
var compareTokens: (tok1: Token, tok2: Token) => number;
var compareTokens: (tok1: Token, tok2: Token, options?: EncodeOptions) => number;
}
export type TokenEx = Token & {
_keyBytes?: Uint8Array;
_keyBytesFloat64?: Uint8Array;
};
//# sourceMappingURL=7float.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"7float.d.ts","sourceRoot":"","sources":["../../lib/7float.js"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAQ,MAAM,YAAY,CAAA;AAKrC,YAAgD,UAAU,GAAhD,OAAO,iBAAiB,EAAE,UAAU,CAAY;AAC1D,YAAmD,aAAa,GAAtD,OAAO,iBAAiB,EAAE,aAAa,CAAe;AAChE,YAAmD,aAAa,GAAtD,OAAO,iBAAiB,EAAE,aAAa,CAAe;AAHnE;;;;GAIG;AAEH,eAAO,MAAM,WAAW,KAAK,CAAA;AAC7B,eAAO,MAAM,UAAU,KAAK,CAAA;AAC5B,eAAO,MAAM,UAAU,KAAK,CAAA;AAC5B,eAAO,MAAM,eAAe,KAAK,CAAA;AAEjC;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAE,KAAK,EAN3B,UAM2B,EAAE,IAAI,EALjC,MAKiC,EAAE,MAAM,EAJzC,MAIyC,EAAE,OAAO,EAHlD,aAGkD,GAFhD,KAAK,CASjB;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAE,KAAK,EANvB,UAMuB,EAAE,IAAI,EAL7B,MAK6B,EAAE,MAAM,EAJrC,MAIqC,EAAE,OAAO,EAH9C,aAG8C,GAF5C,KAAK,CAOjB;AAoBD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAE,IAAI,EANxB,UAMwB,EAAE,GAAG,EAL7B,MAK6B,EAAE,MAAM,EAJrC,MAIqC,EAAE,OAAO,EAH9C,aAG8C,GAF5C,KAAK,CAIjB;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAE,IAAI,EANxB,UAMwB,EAAE,GAAG,EAL7B,MAK6B,EAAE,MAAM,EAJrC,MAIqC,EAAE,OAAO,EAH9C,aAG8C,GAF5C,KAAK,CAIjB;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAE,IAAI,EANxB,UAMwB,EAAE,GAAG,EAL7B,MAK6B,EAAE,MAAM,EAJrC,MAIqC,EAAE,OAAO,EAH9C,aAG8C,GAF5C,KAAK,CAIjB;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAE,MAAM,EAJxB,UAIwB,EAAE,KAAK,EAH/B,KAG+B,EAAE,OAAO,EAFxC,aAEwC,QAsClD;yBAtCe,WAAW;6BAyChB,KAAK,WACL,aAAa,KACX,MAAM"}
{"version":3,"file":"7float.d.ts","sourceRoot":"","sources":["../../lib/7float.js"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAQ,MAAM,YAAY,CAAA;AAKrC,YAAgD,UAAU,GAAhD,OAAO,iBAAiB,EAAE,UAAU,CAAY;AAC1D,YAAmD,aAAa,GAAtD,OAAO,iBAAiB,EAAE,aAAa,CAAe;AAChE,YAAmD,aAAa,GAAtD,OAAO,iBAAiB,EAAE,aAAa,CAAe;AAHnE;;;;GAIG;AAEH,eAAO,MAAM,WAAW,KAAK,CAAA;AAC7B,eAAO,MAAM,UAAU,KAAK,CAAA;AAC5B,eAAO,MAAM,UAAU,KAAK,CAAA;AAC5B,eAAO,MAAM,eAAe,KAAK,CAAA;AAEjC;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAE,KAAK,EAN3B,UAM2B,EAAE,IAAI,EALjC,MAKiC,EAAE,MAAM,EAJzC,MAIyC,EAAE,OAAO,EAHlD,aAGkD,GAFhD,KAAK,CASjB;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAE,KAAK,EANvB,UAMuB,EAAE,IAAI,EAL7B,MAK6B,EAAE,MAAM,EAJrC,MAIqC,EAAE,OAAO,EAH9C,aAG8C,GAF5C,KAAK,CAOjB;AAoBD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAE,IAAI,EANxB,UAMwB,EAAE,GAAG,EAL7B,MAK6B,EAAE,MAAM,EAJrC,MAIqC,EAAE,OAAO,EAH9C,aAG8C,GAF5C,KAAK,CAIjB;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAE,IAAI,EANxB,UAMwB,EAAE,GAAG,EAL7B,MAK6B,EAAE,MAAM,EAJrC,MAIqC,EAAE,OAAO,EAH9C,aAG8C,GAF5C,KAAK,CAIjB;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAE,IAAI,EANxB,UAMwB,EAAE,GAAG,EAL7B,MAK6B,EAAE,MAAM,EAJrC,MAIqC,EAAE,OAAO,EAH9C,aAG8C,GAF5C,KAAK,CAIjB;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAE,MAAM,EAJxB,UAIwB,EAAE,KAAK,EAH/B,KAG+B,EAAE,OAAO,EAFxC,aAEwC,QAsClD;yBAtCe,WAAW;6BAyChB,KAAK,WACL,aAAa,KACX,MAAM;8BAiOR,KAAK,QACL,KAAK,YACL,aAAa,KACX,MAAM;;AAhFhB,YAGG,OAAO,GAHA,KAAK,GAAG;IAChB,SAAS,CAAC,EAAE,UAAU,CAAC;IACvB,gBAAgB,CAAC,EAAE,UAAU,CAAA;CAC9B,CAAS"}

@@ -1,1 +0,1 @@

{"version":3,"file":"encode.d.ts","sourceRoot":"","sources":["../../lib/encode.js"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAQ,MAAM,YAAY,CAAA;AAgBrC,YAAmD,aAAa,GAAtD,OAAO,iBAAiB,EAAE,aAAa,CAAe;AAChE,YAAyD,mBAAmB,GAAlE,OAAO,iBAAiB,EAAE,mBAAmB,CAAqB;AAC5E,YAA+C,SAAS,GAA9C,OAAO,iBAAiB,EAAE,SAAS,CAAW;AACxD,YAAuD,iBAAiB,GAA9D,OAAO,iBAAiB,EAAE,iBAAiB,CAAmB;AACxE,YAAsD,gBAAgB,GAA5D,OAAO,iBAAiB,EAAE,gBAAgB,CAAkB;AACtE,YAAyD,mBAAmB,GAAlE,OAAO,iBAAiB,EAAE,mBAAmB,CAAqB;AAC5E,YAAgD,UAAU,GAAhD,OAAO,iBAAiB,EAAE,UAAU,CAAY;AAC1D,YAA8C,QAAQ,GAA5C,OAAO,iBAAiB,EAAE,QAAQ,CAAU;AACtD,YAAuD,iBAAiB,GAA9D,OAAO,iBAAiB,EAAE,iBAAiB,CAAmB;AAU3E,4BAA4B;AAC5B,eAAO,MAAM,oBAAoB,EADtB,aAIT,CAAA;AAEF,oCAAoC;AACpC,wBAAgB,gBAAgB,IADlB,gBAAgB,EAAE,CAY/B;AAMD,8BAA8B;AAC9B,cAAM,GAAG,AADQ,YAAA,SAAS;IAOjB,GAAG;IACH,MAAM;IANb;;;OAGG;IACH,YAAa,GAAG,EAHL,MAAM,GAAC,GAAG,EAGL,EAAE,MAAM,EAFb,SAAS,GAAC,SAEG,EAGvB;IAED;;;OAGG;IACH,QAAQ,CAAE,GAAG,EAHF,MAAM,GAAC,GAAG,EAGR,GAFA,OAAO,CAWnB;IAED;;;;OAIG;IACH,MAAM,CAAC,WAAW,CAAE,KAAK,EAJd,SAAS,GAAC,SAII,EAAE,GAAG,EAHnB,MAAM,GAAC,GAAG,EAGS,GAFjB,SAAS,CAOrB;CACF;AAoOD;;;;;GAKG;AACH,iBAAS,cAAc,CAAE,GAAG,EALjB,GAKiB,EAAE,OAAO,AAJlC,CACA,EADQ,aAI+B,EAAE,QAAQ,AAHjD,CACA,EADQ,SAGyC,GAFvC,mBAAmB,CAgB/B;AA8FE,YAAqD,OAAO,GAAlD,KAAK,GAAG;IAAE,SAAS,CAAC,EAAE,iBAAiB,CAAA;CAAE,CAAS;AAwL3D,iBAqBK,YAAY,CAtBU,CAAC,SAAlB,eAAkB,EAEhB,IAAI,EAAT,GACR,EAA4B,QAAQ,EAA5B,gBAAgB,EACxB,EAAuB,OAAO,EAAtB,aACR,EAAuB,WAAW,EAA1B,UAAU,CAAC,CAAC,CACpB,GAAU,UAAU,CAAC,CAAC,CAAC,CALd;AAQR,iBAaK,YAAY,CAZL,IAAI,EAAT,GACR,EAA4B,QAAQ,EAA5B,gBAAgB,EACxB,EAAuB,OAAO,EAAtB,aACR,GAAU,iBAAiB,CAJlB;AAgDZ;;;;GAIG;AACH,iBAAS,MAAM,CAAE,IAAI,EAJV,GAIU,EAAE,OAAO,AAH3B,CACA,EADQ,aAGmB,GAFjB,iBAAiB,CAa7B;AAED;;;;;;GAMG;AACH,iBAAS,UAAU,CANY,CAAC,SAAlB,eAAkB,EAMX,IAAI,EALd,GAKc,EAAE,WAAW,EAJ3B,UAAU,CAAC,CAAC,CAIe,EAAE,OAAO,AAH5C,CACA,EADQ,aAGoC,GAFlC;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAc/B;AAED,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,EAAE,CAAA"}
{"version":3,"file":"encode.d.ts","sourceRoot":"","sources":["../../lib/encode.js"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAQ,MAAM,YAAY,CAAA;AAgBrC,YAAmD,aAAa,GAAtD,OAAO,iBAAiB,EAAE,aAAa,CAAe;AAChE,YAAyD,mBAAmB,GAAlE,OAAO,iBAAiB,EAAE,mBAAmB,CAAqB;AAC5E,YAA+C,SAAS,GAA9C,OAAO,iBAAiB,EAAE,SAAS,CAAW;AACxD,YAAuD,iBAAiB,GAA9D,OAAO,iBAAiB,EAAE,iBAAiB,CAAmB;AACxE,YAAsD,gBAAgB,GAA5D,OAAO,iBAAiB,EAAE,gBAAgB,CAAkB;AACtE,YAAyD,mBAAmB,GAAlE,OAAO,iBAAiB,EAAE,mBAAmB,CAAqB;AAC5E,YAAgD,UAAU,GAAhD,OAAO,iBAAiB,EAAE,UAAU,CAAY;AAC1D,YAA8C,QAAQ,GAA5C,OAAO,iBAAiB,EAAE,QAAQ,CAAU;AACtD,YAAuD,iBAAiB,GAA9D,OAAO,iBAAiB,EAAE,iBAAiB,CAAmB;AAU3E,4BAA4B;AAC5B,eAAO,MAAM,oBAAoB,EADtB,aAIT,CAAA;AAEF,oCAAoC;AACpC,wBAAgB,gBAAgB,IADlB,gBAAgB,EAAE,CAY/B;AAMD,8BAA8B;AAC9B,cAAM,GAAG,AADQ,YAAA,SAAS;IAOjB,GAAG;IACH,MAAM;IANb;;;OAGG;IACH,YAAa,GAAG,EAHL,MAAM,GAAC,GAAG,EAGL,EAAE,MAAM,EAFb,SAAS,GAAC,SAEG,EAGvB;IAED;;;OAGG;IACH,QAAQ,CAAE,GAAG,EAHF,MAAM,GAAC,GAAG,EAGR,GAFA,OAAO,CAWnB;IAED;;;;OAIG;IACH,MAAM,CAAC,WAAW,CAAE,KAAK,EAJd,SAAS,GAAC,SAII,EAAE,GAAG,EAHnB,MAAM,GAAC,GAAG,EAGS,GAFjB,SAAS,CAOrB;CACF;AAoOD;;;;;GAKG;AACH,iBAAS,cAAc,CAAE,GAAG,EALjB,GAKiB,EAAE,OAAO,AAJlC,CACA,EADQ,aAI+B,EAAE,QAAQ,AAHjD,CACA,EADQ,SAGyC,GAFvC,mBAAmB,CAgB/B;AAsGE,YAAqD,OAAO,GAAlD,KAAK,GAAG;IAAE,SAAS,CAAC,EAAE,iBAAiB,CAAA;CAAE,CAAS;AAwL3D,iBAqBK,YAAY,CAtBU,CAAC,SAAlB,eAAkB,EAEhB,IAAI,EAAT,GACR,EAA4B,QAAQ,EAA5B,gBAAgB,EACxB,EAAuB,OAAO,EAAtB,aACR,EAAuB,WAAW,EAA1B,UAAU,CAAC,CAAC,CACpB,GAAU,UAAU,CAAC,CAAC,CAAC,CALd;AAQR,iBAaK,YAAY,CAZL,IAAI,EAAT,GACR,EAA4B,QAAQ,EAA5B,gBAAgB,EACxB,EAAuB,OAAO,EAAtB,aACR,GAAU,iBAAiB,CAJlB;AAgDZ;;;;GAIG;AACH,iBAAS,MAAM,CAAE,IAAI,EAJV,GAIU,EAAE,OAAO,AAH3B,CACA,EADQ,aAGmB,GAFjB,iBAAiB,CAa7B;AAED;;;;;;GAMG;AACH,iBAAS,UAAU,CANY,CAAC,SAAlB,eAAkB,EAMX,IAAI,EALd,GAKc,EAAE,WAAW,EAJ3B,UAAU,CAAC,CAAC,CAIe,EAAE,OAAO,AAH5C,CACA,EADQ,aAGoC,GAFlC;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAc/B;AAED,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,EAAE,CAAA"}