{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/cbor/options.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,aAAgB,CAAC;AACzC,eAAO,MAAM,UAAU,aAAc,CAAC;AAGtC,qDAAqD;AACrD,eAAO,MAAM,4BAA4B,QAAmB,CAAC;AAC7D,eAAO,MAAM,iCAAiC,UAAY,CAAC;AAC3D,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC,MAAM,WAAW,WAAW;IAC3B,8EAA8E;IAC9E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kEAAkE;IAClE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,SAAU,SAAQ,KAAK;IACnC,YAAY,OAAO,EAAE,MAAM,EAG1B;CACD;AAED,eAAO,MAAM,WAAW,4BAAoB,CAAC;AAC7C,eAAO,MAAM,WAAW,4BAA6D,CAAC;AAStF,wBAAgB,cAAc,CAAC,OAAO,EAAE,WAAW,GAAG,SAAS,GAAG,mBAAmB,CAUpF","sourcesContent":["export const UINT32_BASE = 0x1_0000_0000;\nexport const MAX_UINT32 = 0xffff_ffff;\nconst MAX_CONFIGURED_DEPTH = 512;\n\n/** Safe defaults for untrusted protocol payloads. */\nexport const DEFAULT_MAX_CBOR_BYTE_LENGTH = 16 * 1024 * 1024;\nexport const DEFAULT_MAX_CBOR_CONTAINER_LENGTH = 1_000_000;\nexport const DEFAULT_MAX_CBOR_DEPTH = 64;\n\nexport interface CborOptions {\n\t/** Maximum encoded input/output bytes and maximum byte/text string length. */\n\tmaxByteLength?: number;\n\t/** Maximum number of elements in an array or entries in a map. */\n\tmaxContainerLength?: number;\n\t/** Maximum recursive item depth. */\n\tmaxDepth?: number;\n}\n\nexport interface ResolvedCborOptions {\n\tmaxByteLength: number;\n\tmaxContainerLength: number;\n\tmaxDepth: number;\n}\n\nexport class CborError extends Error {\n\tconstructor(message: string) {\n\t\tsuper(message);\n\t\tthis.name = \"CborError\";\n\t}\n}\n\nexport const textEncoder = new TextEncoder();\nexport const textDecoder = new TextDecoder(\"utf-8\", { fatal: true, ignoreBOM: true });\n\nfunction resolveLimit(name: string, value: number, maximum: number): number {\n\tif (!Number.isSafeInteger(value) || value < 0 || value > maximum) {\n\t\tthrow new RangeError(`${name} must be an integer between 0 and ${maximum}`);\n\t}\n\treturn value;\n}\n\nexport function resolveOptions(options: CborOptions | undefined): ResolvedCborOptions {\n\treturn {\n\t\tmaxByteLength: resolveLimit(\"maxByteLength\", options?.maxByteLength ?? DEFAULT_MAX_CBOR_BYTE_LENGTH, MAX_UINT32),\n\t\tmaxContainerLength: resolveLimit(\n\t\t\t\"maxContainerLength\",\n\t\t\toptions?.maxContainerLength ?? DEFAULT_MAX_CBOR_CONTAINER_LENGTH,\n\t\t\tMAX_UINT32,\n\t\t),\n\t\tmaxDepth: resolveLimit(\"maxDepth\", options?.maxDepth ?? DEFAULT_MAX_CBOR_DEPTH, MAX_CONFIGURED_DEPTH),\n\t};\n}\n"]}