@fireproof/core 0.10.0-dev → 0.10.1-dev

Sign up to get free protection for your applications and to get access to all the features.
Files changed (90) hide show
  1. package/package.json +5 -1
  2. package/.eslintrc.cjs +0 -37
  3. package/.vscode/launch.json +0 -12
  4. package/dist/crdt-helpers.browser.js +0 -4961
  5. package/dist/crdt-helpers.browser.js.map +0 -7
  6. package/dist/crdt-helpers.cjs.js +0 -4823
  7. package/dist/crdt-helpers.cjs.js.map +0 -7
  8. package/dist/crdt-helpers.esm.js +0 -4788
  9. package/dist/crdt-helpers.esm.js.map +0 -7
  10. package/dist/crdt.browser.js +0 -18214
  11. package/dist/crdt.browser.js.map +0 -7
  12. package/dist/crdt.cjs.js +0 -8692
  13. package/dist/crdt.cjs.js.map +0 -7
  14. package/dist/crdt.esm.js +0 -8682
  15. package/dist/crdt.esm.js.map +0 -7
  16. package/dist/database.browser.js +0 -18867
  17. package/dist/database.browser.js.map +0 -7
  18. package/dist/database.cjs.js +0 -9296
  19. package/dist/database.cjs.js.map +0 -7
  20. package/dist/database.esm.js +0 -9288
  21. package/dist/database.esm.js.map +0 -7
  22. package/dist/loader-helpers.browser.js +0 -6943
  23. package/dist/loader-helpers.browser.js.map +0 -7
  24. package/dist/loader-helpers.cjs.js +0 -4419
  25. package/dist/loader-helpers.cjs.js.map +0 -7
  26. package/dist/loader-helpers.esm.js +0 -4408
  27. package/dist/loader-helpers.esm.js.map +0 -7
  28. package/dist/loader.browser.js +0 -15968
  29. package/dist/loader.browser.js.map +0 -7
  30. package/dist/loader.cjs.js +0 -6667
  31. package/dist/loader.cjs.js.map +0 -7
  32. package/dist/loader.esm.js +0 -6657
  33. package/dist/loader.esm.js.map +0 -7
  34. package/dist/store-browser.browser.js +0 -1414
  35. package/dist/store-browser.browser.js.map +0 -7
  36. package/dist/store-browser.cjs.js +0 -1387
  37. package/dist/store-browser.cjs.js.map +0 -7
  38. package/dist/store-browser.esm.js +0 -1358
  39. package/dist/store-browser.esm.js.map +0 -7
  40. package/dist/store-fs.browser.js +0 -16142
  41. package/dist/store-fs.browser.js.map +0 -7
  42. package/dist/store-fs.cjs.js +0 -1171
  43. package/dist/store-fs.cjs.js.map +0 -7
  44. package/dist/store-fs.esm.js +0 -1143
  45. package/dist/store-fs.esm.js.map +0 -7
  46. package/dist/store.browser.js +0 -1113
  47. package/dist/store.browser.js.map +0 -7
  48. package/dist/store.cjs.js +0 -1126
  49. package/dist/store.cjs.js.map +0 -7
  50. package/dist/store.esm.js +0 -1097
  51. package/dist/store.esm.js.map +0 -7
  52. package/dist/transaction.browser.js +0 -17241
  53. package/dist/transaction.browser.js.map +0 -7
  54. package/dist/transaction.cjs.js +0 -7842
  55. package/dist/transaction.cjs.js.map +0 -7
  56. package/dist/transaction.esm.js +0 -7831
  57. package/dist/transaction.esm.js.map +0 -7
  58. package/dist/types.d.browser.js +0 -4
  59. package/dist/types.d.browser.js.map +0 -7
  60. package/dist/types.d.cjs.js +0 -19
  61. package/dist/types.d.cjs.js.map +0 -7
  62. package/dist/types.d.esm.js +0 -1
  63. package/dist/types.d.esm.js.map +0 -7
  64. package/scripts/analyze.js +0 -31
  65. package/scripts/build.js +0 -20
  66. package/scripts/serve.js +0 -20
  67. package/scripts/settings.js +0 -65
  68. package/scripts/test.js +0 -14
  69. package/src/crdt-helpers.ts +0 -89
  70. package/src/crdt.ts +0 -45
  71. package/src/database.ts +0 -61
  72. package/src/fireproof.ts +0 -6
  73. package/src/loader-helpers.ts +0 -53
  74. package/src/loader.ts +0 -66
  75. package/src/store-browser.ts +0 -76
  76. package/src/store-fs.ts +0 -51
  77. package/src/store.ts +0 -32
  78. package/src/transaction.ts +0 -68
  79. package/src/types.d.ts +0 -38
  80. package/test/crdt.test.js +0 -142
  81. package/test/database.test.js +0 -144
  82. package/test/fireproof.test.js +0 -50
  83. package/test/globals.d.ts +0 -4
  84. package/test/hello.test.js +0 -9
  85. package/test/helpers.js +0 -34
  86. package/test/loader.test.js +0 -112
  87. package/test/store-fs.test.js +0 -105
  88. package/test/transaction.test.js +0 -90
  89. package/tsconfig.json +0 -18
  90. package/webpack.config.cjs +0 -17
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../node_modules/esbuild-plugin-polyfill-node/polyfills/__dirname.js", "../node_modules/@jspm/core/nodelibs/browser/process.js", "../node_modules/esbuild-plugin-polyfill-node/polyfills/process.js", "../node_modules/@jspm/core/nodelibs/browser/buffer.js", "../node_modules/esbuild-plugin-polyfill-node/polyfills/buffer.js", "../node_modules/varint/encode.js", "../node_modules/varint/decode.js", "../node_modules/varint/length.js", "../node_modules/varint/index.js", "../src/loader-helpers.ts", "../node_modules/multiformats/src/block.js", "../node_modules/multiformats/src/index.js", "../node_modules/multiformats/src/cid.js", "../node_modules/multiformats/src/varint.js", "../node_modules/multiformats/vendor/varint.js", "../node_modules/multiformats/src/hashes/digest.js", "../node_modules/multiformats/src/bytes.js", "../node_modules/multiformats/src/bases/base58.js", "../node_modules/multiformats/src/bases/base.js", "../node_modules/multiformats/vendor/base-x.js", "../node_modules/multiformats/src/bases/interface.js", "../node_modules/multiformats/src/bases/base32.js", "../node_modules/multiformats/src/link/interface.js", "../node_modules/multiformats/src/hashes/hasher.js", "../node_modules/multiformats/src/interface.js", "../node_modules/multiformats/src/hashes/sha2-browser.js", "../node_modules/multiformats/src/codecs/raw.js", "../node_modules/@ipld/car/src/buffer-writer.js", "../node_modules/cborg/esm/cborg.js", "../node_modules/cborg/esm/lib/encode.js", "../node_modules/cborg/esm/lib/is.js", "../node_modules/cborg/esm/lib/token.js", "../node_modules/cborg/esm/lib/bl.js", "../node_modules/cborg/esm/lib/byte-utils.js", "../node_modules/cborg/esm/lib/common.js", "../node_modules/cborg/esm/lib/jump.js", "../node_modules/cborg/esm/lib/0uint.js", "../node_modules/cborg/esm/lib/1negint.js", "../node_modules/cborg/esm/lib/2bytes.js", "../node_modules/cborg/esm/lib/3string.js", "../node_modules/cborg/esm/lib/4array.js", "../node_modules/cborg/esm/lib/5map.js", "../node_modules/cborg/esm/lib/6tag.js", "../node_modules/cborg/esm/lib/7float.js", "../node_modules/cborg/esm/lib/decode.js", "../node_modules/cborg/esm/lib/length.js", "../node_modules/@ipld/dag-cbor/src/index.js", "../node_modules/@ipld/dag-cbor/node_modules/cborg/esm/cborg.js", "../node_modules/@ipld/dag-cbor/node_modules/cborg/esm/lib/encode.js", "../node_modules/@ipld/dag-cbor/node_modules/cborg/esm/lib/is.js", "../node_modules/@ipld/dag-cbor/node_modules/cborg/esm/lib/token.js", "../node_modules/@ipld/dag-cbor/node_modules/cborg/esm/lib/bl.js", "../node_modules/@ipld/dag-cbor/node_modules/cborg/esm/lib/byte-utils.js", "../node_modules/@ipld/dag-cbor/node_modules/cborg/esm/lib/common.js", "../node_modules/@ipld/dag-cbor/node_modules/cborg/esm/lib/jump.js", "../node_modules/@ipld/dag-cbor/node_modules/cborg/esm/lib/0uint.js", "../node_modules/@ipld/dag-cbor/node_modules/cborg/esm/lib/1negint.js", "../node_modules/@ipld/dag-cbor/node_modules/cborg/esm/lib/2bytes.js", "../node_modules/@ipld/dag-cbor/node_modules/cborg/esm/lib/3string.js", "../node_modules/@ipld/dag-cbor/node_modules/cborg/esm/lib/4array.js", "../node_modules/@ipld/dag-cbor/node_modules/cborg/esm/lib/5map.js", "../node_modules/@ipld/dag-cbor/node_modules/cborg/esm/lib/6tag.js", "../node_modules/@ipld/dag-cbor/node_modules/cborg/esm/lib/7float.js", "../node_modules/@ipld/dag-cbor/node_modules/cborg/esm/lib/decode.js"],
4
- "sourcesContent": ["export const __dirname = \"/\";\n", "function unimplemented(name) {\r\n throw new Error('Node.js process ' + name + ' is not supported by JSPM core outside of Node.js');\r\n}\r\n\r\nvar queue = [];\r\nvar draining = false;\r\nvar currentQueue;\r\nvar queueIndex = -1;\r\n\r\nfunction cleanUpNextTick() {\r\n if (!draining || !currentQueue)\r\n return;\r\n draining = false;\r\n if (currentQueue.length) {\r\n queue = currentQueue.concat(queue);\r\n }\r\n else {\r\n queueIndex = -1;\r\n }\r\n if (queue.length)\r\n drainQueue();\r\n}\r\n\r\nfunction drainQueue() {\r\n if (draining)\r\n return;\r\n var timeout = setTimeout(cleanUpNextTick, 0);\r\n draining = true;\r\n\r\n var len = queue.length;\r\n while(len) {\r\n currentQueue = queue;\r\n queue = [];\r\n while (++queueIndex < len) {\r\n if (currentQueue)\r\n currentQueue[queueIndex].run();\r\n }\r\n queueIndex = -1;\r\n len = queue.length;\r\n }\r\n currentQueue = null;\r\n draining = false;\r\n clearTimeout(timeout);\r\n}\r\n\r\nfunction nextTick (fun) {\r\n var args = new Array(arguments.length - 1);\r\n if (arguments.length > 1) {\r\n for (var i = 1; i < arguments.length; i++)\r\n args[i - 1] = arguments[i];\r\n }\r\n queue.push(new Item(fun, args));\r\n if (queue.length === 1 && !draining)\r\n setTimeout(drainQueue, 0);\r\n}\r\n// v8 likes predictible objects\r\nfunction Item(fun, array) {\r\n this.fun = fun;\r\n this.array = array;\r\n}\r\nItem.prototype.run = function () {\r\n this.fun.apply(null, this.array);\r\n};\r\n\r\nvar title = 'browser';\r\nvar arch = 'x64';\r\nvar platform = 'browser';\r\nvar env = {\r\n PATH: '/usr/bin',\r\n LANG: navigator.language + '.UTF-8',\r\n PWD: '/',\r\n HOME: '/home',\r\n TMP: '/tmp',\r\n};\r\nvar argv = ['/usr/bin/node'];\r\nvar execArgv = [];\r\nvar version = 'v16.8.0';\r\nvar versions = {};\r\n\r\nvar emitWarning = function(message, type) {\r\n console.warn((type ? (type + ': ') : '') + message);\r\n};\r\n\r\nvar binding = function(name) { unimplemented('binding'); };\r\n\r\nvar umask = function(mask) { return 0; };\r\n\r\nvar cwd = function() { return '/'; };\r\nvar chdir = function(dir) {};\r\n\r\nvar release = {\r\n name: 'node',\r\n sourceUrl: '',\r\n headersUrl: '',\r\n libUrl: '',\r\n};\r\n\r\nfunction noop() {}\r\n\r\nvar _rawDebug = noop;\r\nvar moduleLoadList = [];\r\nfunction _linkedBinding(name) { unimplemented('_linkedBinding'); }\r\nvar domain = {};\r\nvar _exiting = false;\r\nvar config = {};\r\nfunction dlopen(name) { unimplemented('dlopen'); }\r\nfunction _getActiveRequests() { return []; }\r\nfunction _getActiveHandles() { return []; }\r\nvar reallyExit = noop;\r\nvar _kill = noop;\r\nvar cpuUsage = function() { return {}; };\r\nvar resourceUsage = cpuUsage;\r\nvar memoryUsage = cpuUsage;\r\nvar kill = noop;\r\nvar exit = noop;\r\nvar openStdin = noop;\r\nvar allowedNodeEnvironmentFlags = {};\r\nfunction assert(condition, message) {\r\n if (!condition) throw new Error(message || 'assertion error');\r\n}\r\nvar features = {\r\n inspector: false,\r\n debug: false,\r\n uv: false,\r\n ipv6: false,\r\n tls_alpn: false,\r\n tls_sni: false,\r\n tls_ocsp: false,\r\n tls: false,\r\n cached_builtins: true,\r\n};\r\nvar _fatalExceptions = noop;\r\nvar setUncaughtExceptionCaptureCallback = noop;\r\nfunction hasUncaughtExceptionCaptureCallback() { return false; }var _tickCallback = noop;\r\nvar _debugProcess = noop;\r\nvar _debugEnd = noop;\r\nvar _startProfilerIdleNotifier = noop;\r\nvar _stopProfilerIdleNotifier = noop;\r\nvar stdout = undefined;\r\nvar stderr = undefined;\r\nvar stdin = undefined;\r\nvar abort = noop;\r\nvar pid = 2;\r\nvar ppid = 1;\r\nvar execPath = '/bin/usr/node';\r\nvar debugPort = 9229;\r\nvar argv0 = 'node';\r\nvar _preload_modules = [];\r\nvar setSourceMapsEnabled = noop;\r\n\r\nvar _performance = {\r\n now: typeof performance !== 'undefined' ? performance.now.bind(performance) : undefined,\r\n timing: typeof performance !== 'undefined' ? performance.timing : undefined,\r\n};\r\nif (_performance.now === undefined) {\r\n var nowOffset = Date.now();\r\n\r\n if (_performance.timing && _performance.timing.navigationStart) {\r\n nowOffset = _performance.timing.navigationStart;\r\n }\r\n _performance.now = () => Date.now() - nowOffset;\r\n}\r\n\r\nfunction uptime() {\r\n return _performance.now() / 1000;\r\n}\r\n\r\nvar nanoPerSec = 1000000000;\r\nfunction hrtime(previousTimestamp) {\r\n var baseNow = Math.floor((Date.now() - _performance.now()) * 1e-3);\r\n var clocktime = _performance.now() * 1e-3;\r\n var seconds = Math.floor(clocktime) + baseNow;\r\n var nanoseconds = Math.floor((clocktime % 1) * 1e9);\r\n if (previousTimestamp) {\r\n seconds = seconds - previousTimestamp[0];\r\n nanoseconds = nanoseconds - previousTimestamp[1];\r\n if (nanoseconds < 0) {\r\n seconds--;\r\n nanoseconds += nanoPerSec;\r\n }\r\n }\r\n return [seconds, nanoseconds];\r\n}hrtime.bigint = function(time) {\r\n var diff = hrtime(time);\r\n if (typeof BigInt === 'undefined') {\r\n return diff[0] * nanoPerSec + diff[1];\r\n }\r\n return BigInt(diff[0] * nanoPerSec) + BigInt(diff[1]);\r\n};\r\n\r\nvar _maxListeners = 10;\r\nvar _events = {};\r\nvar _eventsCount = 0;\r\nfunction on () { return process }var addListener = on;\r\nvar once = on;\r\nvar off = on;\r\nvar removeListener = on;\r\nvar removeAllListeners = on;\r\nvar emit = noop;\r\nvar prependListener = on;\r\nvar prependOnceListener = on;\r\nfunction listeners (name) { return []; }\r\nvar process = {\r\n version,\r\n versions,\r\n arch,\r\n platform,\r\n release,\r\n _rawDebug,\r\n moduleLoadList,\r\n binding,\r\n _linkedBinding,\r\n _events,\r\n _eventsCount,\r\n _maxListeners,\r\n on,\r\n addListener,\r\n once,\r\n off,\r\n removeListener,\r\n removeAllListeners,\r\n emit,\r\n prependListener,\r\n prependOnceListener,\r\n listeners,\r\n domain,\r\n _exiting,\r\n config,\r\n dlopen,\r\n uptime,\r\n _getActiveRequests,\r\n _getActiveHandles,\r\n reallyExit,\r\n _kill,\r\n cpuUsage,\r\n resourceUsage,\r\n memoryUsage,\r\n kill,\r\n exit,\r\n openStdin,\r\n allowedNodeEnvironmentFlags,\r\n assert,\r\n features,\r\n _fatalExceptions,\r\n setUncaughtExceptionCaptureCallback,\r\n hasUncaughtExceptionCaptureCallback,\r\n emitWarning,\r\n nextTick,\r\n _tickCallback,\r\n _debugProcess,\r\n _debugEnd,\r\n _startProfilerIdleNotifier,\r\n _stopProfilerIdleNotifier,\r\n stdout,\r\n stdin,\r\n stderr,\r\n abort,\r\n umask,\r\n chdir,\r\n cwd,\r\n env,\r\n title,\r\n argv,\r\n execArgv,\r\n pid,\r\n ppid,\r\n execPath,\r\n debugPort,\r\n hrtime,\r\n argv0,\r\n _preload_modules,\r\n setSourceMapsEnabled,\r\n};\n\nexport { _debugEnd, _debugProcess, _events, _eventsCount, _exiting, _fatalExceptions, _getActiveHandles, _getActiveRequests, _kill, _linkedBinding, _maxListeners, _preload_modules, _rawDebug, _startProfilerIdleNotifier, _stopProfilerIdleNotifier, _tickCallback, abort, addListener, allowedNodeEnvironmentFlags, arch, argv, argv0, assert, binding, chdir, config, cpuUsage, cwd, debugPort, process as default, dlopen, domain, emit, emitWarning, env, execArgv, execPath, exit, features, hasUncaughtExceptionCaptureCallback, hrtime, kill, listeners, memoryUsage, moduleLoadList, nextTick, off, on, once, openStdin, pid, platform, ppid, prependListener, prependOnceListener, reallyExit, release, removeAllListeners, removeListener, resourceUsage, setSourceMapsEnabled, setUncaughtExceptionCaptureCallback, stderr, stdin, stdout, title, umask, uptime, version, versions };\n", "export * as process from \"process\";\n", "var exports$3 = {},\n _dewExec$2 = false;\nfunction dew$2() {\n if (_dewExec$2) return exports$3;\n _dewExec$2 = true;\n exports$3.byteLength = byteLength;\n exports$3.toByteArray = toByteArray;\n exports$3.fromByteArray = fromByteArray;\n var lookup = [];\n var revLookup = [];\n var Arr = typeof Uint8Array !== \"undefined\" ? Uint8Array : Array;\n var code = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n\n for (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n } // Support decoding URL-safe base64 strings, as Node.js does.\n // See: https://en.wikipedia.org/wiki/Base64#URL_applications\n\n\n revLookup[\"-\".charCodeAt(0)] = 62;\n revLookup[\"_\".charCodeAt(0)] = 63;\n\n function getLens(b64) {\n var len = b64.length;\n\n if (len % 4 > 0) {\n throw new Error(\"Invalid string. Length must be a multiple of 4\");\n } // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n\n\n var validLen = b64.indexOf(\"=\");\n if (validLen === -1) validLen = len;\n var placeHoldersLen = validLen === len ? 0 : 4 - validLen % 4;\n return [validLen, placeHoldersLen];\n } // base64 is 4/3 + up to two characters of the original data\n\n\n function byteLength(b64) {\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n }\n\n function _byteLength(b64, validLen, placeHoldersLen) {\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n }\n\n function toByteArray(b64) {\n var tmp;\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n var curByte = 0; // if there are placeholders, only get up to the last complete 4 chars\n\n var len = placeHoldersLen > 0 ? validLen - 4 : validLen;\n var i;\n\n for (i = 0; i < len; i += 4) {\n tmp = revLookup[b64.charCodeAt(i)] << 18 | revLookup[b64.charCodeAt(i + 1)] << 12 | revLookup[b64.charCodeAt(i + 2)] << 6 | revLookup[b64.charCodeAt(i + 3)];\n arr[curByte++] = tmp >> 16 & 255;\n arr[curByte++] = tmp >> 8 & 255;\n arr[curByte++] = tmp & 255;\n }\n\n if (placeHoldersLen === 2) {\n tmp = revLookup[b64.charCodeAt(i)] << 2 | revLookup[b64.charCodeAt(i + 1)] >> 4;\n arr[curByte++] = tmp & 255;\n }\n\n if (placeHoldersLen === 1) {\n tmp = revLookup[b64.charCodeAt(i)] << 10 | revLookup[b64.charCodeAt(i + 1)] << 4 | revLookup[b64.charCodeAt(i + 2)] >> 2;\n arr[curByte++] = tmp >> 8 & 255;\n arr[curByte++] = tmp & 255;\n }\n\n return arr;\n }\n\n function tripletToBase64(num) {\n return lookup[num >> 18 & 63] + lookup[num >> 12 & 63] + lookup[num >> 6 & 63] + lookup[num & 63];\n }\n\n function encodeChunk(uint8, start, end) {\n var tmp;\n var output = [];\n\n for (var i = start; i < end; i += 3) {\n tmp = (uint8[i] << 16 & 16711680) + (uint8[i + 1] << 8 & 65280) + (uint8[i + 2] & 255);\n output.push(tripletToBase64(tmp));\n }\n\n return output.join(\"\");\n }\n\n function fromByteArray(uint8) {\n var tmp;\n var len = uint8.length;\n var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\n\n var parts = [];\n var maxChunkLength = 16383; // must be multiple of 3\n // go through the array every three bytes, we'll deal with trailing stuff later\n\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, i + maxChunkLength > len2 ? len2 : i + maxChunkLength));\n } // pad the end with zeros, but make sure to not forget the extra bytes\n\n\n if (extraBytes === 1) {\n tmp = uint8[len - 1];\n parts.push(lookup[tmp >> 2] + lookup[tmp << 4 & 63] + \"==\");\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1];\n parts.push(lookup[tmp >> 10] + lookup[tmp >> 4 & 63] + lookup[tmp << 2 & 63] + \"=\");\n }\n\n return parts.join(\"\");\n }\n\n return exports$3;\n}\n\nvar exports$2 = {},\n _dewExec$1 = false;\nfunction dew$1() {\n if (_dewExec$1) return exports$2;\n _dewExec$1 = true;\n\n /*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\n exports$2.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? nBytes - 1 : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n i += d;\n e = s & (1 << -nBits) - 1;\n s >>= -nBits;\n nBits += eLen;\n\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & (1 << -nBits) - 1;\n e >>= -nBits;\n nBits += mLen;\n\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : (s ? -1 : 1) * Infinity;\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\n };\n\n exports$2.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0;\n var i = isLE ? 0 : nBytes - 1;\n var d = isLE ? 1 : -1;\n var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n value = Math.abs(value);\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 255, i += d, m /= 256, mLen -= 8) {}\n\n e = e << mLen | m;\n eLen += mLen;\n\n for (; eLen > 0; buffer[offset + i] = e & 255, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128;\n };\n\n return exports$2;\n}\n\nvar exports$1 = {},\n _dewExec = false;\nfunction dew() {\n if (_dewExec) return exports$1;\n _dewExec = true;\n\n const base64 = dew$2();\n\n const ieee754 = dew$1();\n\n const customInspectSymbol = typeof Symbol === \"function\" && typeof Symbol[\"for\"] === \"function\" ? Symbol[\"for\"](\"nodejs.util.inspect.custom\") // eslint-disable-line dot-notation\n : null;\n exports$1.Buffer = Buffer;\n exports$1.SlowBuffer = SlowBuffer;\n exports$1.INSPECT_MAX_BYTES = 50;\n const K_MAX_LENGTH = 2147483647;\n exports$1.kMaxLength = K_MAX_LENGTH;\n /**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\n\n Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport();\n\n if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== \"undefined\" && typeof console.error === \"function\") {\n console.error(\"This browser lacks typed array (Uint8Array) support which is required by \" + \"`buffer` v5.x. Use `buffer` v4.x if you require old browser support.\");\n }\n\n function typedArraySupport() {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1);\n const proto = {\n foo: function () {\n return 42;\n }\n };\n Object.setPrototypeOf(proto, Uint8Array.prototype);\n Object.setPrototypeOf(arr, proto);\n return arr.foo() === 42;\n } catch (e) {\n return false;\n }\n }\n\n Object.defineProperty(Buffer.prototype, \"parent\", {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined;\n return this.buffer;\n }\n });\n Object.defineProperty(Buffer.prototype, \"offset\", {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined;\n return this.byteOffset;\n }\n });\n\n function createBuffer(length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError(\"The value \\\"\" + length + \"\\\" is invalid for option \\\"size\\\"\");\n } // Return an augmented `Uint8Array` instance\n\n\n const buf = new Uint8Array(length);\n Object.setPrototypeOf(buf, Buffer.prototype);\n return buf;\n }\n /**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\n\n function Buffer(arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === \"number\") {\n if (typeof encodingOrOffset === \"string\") {\n throw new TypeError(\"The \\\"string\\\" argument must be of type string. Received type number\");\n }\n\n return allocUnsafe(arg);\n }\n\n return from(arg, encodingOrOffset, length);\n }\n\n Buffer.poolSize = 8192; // not used by this implementation\n\n function from(value, encodingOrOffset, length) {\n if (typeof value === \"string\") {\n return fromString(value, encodingOrOffset);\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value);\n }\n\n if (value == null) {\n throw new TypeError(\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, \" + \"or Array-like Object. Received type \" + typeof value);\n }\n\n if (isInstance(value, ArrayBuffer) || value && isInstance(value.buffer, ArrayBuffer)) {\n return fromArrayBuffer(value, encodingOrOffset, length);\n }\n\n if (typeof SharedArrayBuffer !== \"undefined\" && (isInstance(value, SharedArrayBuffer) || value && isInstance(value.buffer, SharedArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length);\n }\n\n if (typeof value === \"number\") {\n throw new TypeError(\"The \\\"value\\\" argument must not be of type number. Received type number\");\n }\n\n const valueOf = value.valueOf && value.valueOf();\n\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length);\n }\n\n const b = fromObject(value);\n if (b) return b;\n\n if (typeof Symbol !== \"undefined\" && Symbol.toPrimitive != null && typeof value[Symbol.toPrimitive] === \"function\") {\n return Buffer.from(value[Symbol.toPrimitive](\"string\"), encodingOrOffset, length);\n }\n\n throw new TypeError(\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, \" + \"or Array-like Object. Received type \" + typeof value);\n }\n /**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\n\n\n Buffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length);\n }; // Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n // https://github.com/feross/buffer/pull/148\n\n\n Object.setPrototypeOf(Buffer.prototype, Uint8Array.prototype);\n Object.setPrototypeOf(Buffer, Uint8Array);\n\n function assertSize(size) {\n if (typeof size !== \"number\") {\n throw new TypeError(\"\\\"size\\\" argument must be of type number\");\n } else if (size < 0) {\n throw new RangeError(\"The value \\\"\" + size + \"\\\" is invalid for option \\\"size\\\"\");\n }\n }\n\n function alloc(size, fill, encoding) {\n assertSize(size);\n\n if (size <= 0) {\n return createBuffer(size);\n }\n\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === \"string\" ? createBuffer(size).fill(fill, encoding) : createBuffer(size).fill(fill);\n }\n\n return createBuffer(size);\n }\n /**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\n\n\n Buffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding);\n };\n\n function allocUnsafe(size) {\n assertSize(size);\n return createBuffer(size < 0 ? 0 : checked(size) | 0);\n }\n /**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\n\n\n Buffer.allocUnsafe = function (size) {\n return allocUnsafe(size);\n };\n /**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\n\n\n Buffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size);\n };\n\n function fromString(string, encoding) {\n if (typeof encoding !== \"string\" || encoding === \"\") {\n encoding = \"utf8\";\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError(\"Unknown encoding: \" + encoding);\n }\n\n const length = byteLength(string, encoding) | 0;\n let buf = createBuffer(length);\n const actual = buf.write(string, encoding);\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual);\n }\n\n return buf;\n }\n\n function fromArrayLike(array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0;\n const buf = createBuffer(length);\n\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255;\n }\n\n return buf;\n }\n\n function fromArrayView(arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView);\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength);\n }\n\n return fromArrayLike(arrayView);\n }\n\n function fromArrayBuffer(array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError(\"\\\"offset\\\" is outside of buffer bounds\");\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError(\"\\\"length\\\" is outside of buffer bounds\");\n }\n\n let buf;\n\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array);\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset);\n } else {\n buf = new Uint8Array(array, byteOffset, length);\n } // Return an augmented `Uint8Array` instance\n\n\n Object.setPrototypeOf(buf, Buffer.prototype);\n return buf;\n }\n\n function fromObject(obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0;\n const buf = createBuffer(len);\n\n if (buf.length === 0) {\n return buf;\n }\n\n obj.copy(buf, 0, 0, len);\n return buf;\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== \"number\" || numberIsNaN(obj.length)) {\n return createBuffer(0);\n }\n\n return fromArrayLike(obj);\n }\n\n if (obj.type === \"Buffer\" && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data);\n }\n }\n\n function checked(length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError(\"Attempt to allocate Buffer larger than maximum \" + \"size: 0x\" + K_MAX_LENGTH.toString(16) + \" bytes\");\n }\n\n return length | 0;\n }\n\n function SlowBuffer(length) {\n if (+length != length) {\n // eslint-disable-line eqeqeq\n length = 0;\n }\n\n return Buffer.alloc(+length);\n }\n\n Buffer.isBuffer = function isBuffer(b) {\n return b != null && b._isBuffer === true && b !== Buffer.prototype; // so Buffer.isBuffer(Buffer.prototype) will be false\n };\n\n Buffer.compare = function compare(a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength);\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength);\n\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\"The \\\"buf1\\\", \\\"buf2\\\" arguments must be one of type Buffer or Uint8Array\");\n }\n\n if (a === b) return 0;\n let x = a.length;\n let y = b.length;\n\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n\n if (x < y) return -1;\n if (y < x) return 1;\n return 0;\n };\n\n Buffer.isEncoding = function isEncoding(encoding) {\n switch (String(encoding).toLowerCase()) {\n case \"hex\":\n case \"utf8\":\n case \"utf-8\":\n case \"ascii\":\n case \"latin1\":\n case \"binary\":\n case \"base64\":\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n return true;\n\n default:\n return false;\n }\n };\n\n Buffer.concat = function concat(list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError(\"\\\"list\\\" argument must be an Array of Buffers\");\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0);\n }\n\n let i;\n\n if (length === undefined) {\n length = 0;\n\n for (i = 0; i < list.length; ++i) {\n length += list[i].length;\n }\n }\n\n const buffer = Buffer.allocUnsafe(length);\n let pos = 0;\n\n for (i = 0; i < list.length; ++i) {\n let buf = list[i];\n\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf);\n buf.copy(buffer, pos);\n } else {\n Uint8Array.prototype.set.call(buffer, buf, pos);\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError(\"\\\"list\\\" argument must be an Array of Buffers\");\n } else {\n buf.copy(buffer, pos);\n }\n\n pos += buf.length;\n }\n\n return buffer;\n };\n\n function byteLength(string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length;\n }\n\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength;\n }\n\n if (typeof string !== \"string\") {\n throw new TypeError(\"The \\\"string\\\" argument must be one of type string, Buffer, or ArrayBuffer. \" + \"Received type \" + typeof string);\n }\n\n const len = string.length;\n const mustMatch = arguments.length > 2 && arguments[2] === true;\n if (!mustMatch && len === 0) return 0; // Use a for loop to avoid recursion\n\n let loweredCase = false;\n\n for (;;) {\n switch (encoding) {\n case \"ascii\":\n case \"latin1\":\n case \"binary\":\n return len;\n\n case \"utf8\":\n case \"utf-8\":\n return utf8ToBytes(string).length;\n\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n return len * 2;\n\n case \"hex\":\n return len >>> 1;\n\n case \"base64\":\n return base64ToBytes(string).length;\n\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length; // assume utf8\n }\n\n encoding = (\"\" + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n }\n\n Buffer.byteLength = byteLength;\n\n function slowToString(encoding, start, end) {\n let loweredCase = false; // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n\n if (start === undefined || start < 0) {\n start = 0;\n } // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n\n\n if (start > this.length) {\n return \"\";\n }\n\n if (end === undefined || end > this.length) {\n end = this.length;\n }\n\n if (end <= 0) {\n return \"\";\n } // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n\n\n end >>>= 0;\n start >>>= 0;\n\n if (end <= start) {\n return \"\";\n }\n\n if (!encoding) encoding = \"utf8\";\n\n while (true) {\n switch (encoding) {\n case \"hex\":\n return hexSlice(this, start, end);\n\n case \"utf8\":\n case \"utf-8\":\n return utf8Slice(this, start, end);\n\n case \"ascii\":\n return asciiSlice(this, start, end);\n\n case \"latin1\":\n case \"binary\":\n return latin1Slice(this, start, end);\n\n case \"base64\":\n return base64Slice(this, start, end);\n\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n return utf16leSlice(this, start, end);\n\n default:\n if (loweredCase) throw new TypeError(\"Unknown encoding: \" + encoding);\n encoding = (encoding + \"\").toLowerCase();\n loweredCase = true;\n }\n }\n } // This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n // to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n // reliably in a browserify context because there could be multiple different\n // copies of the 'buffer' package in use. This method works even for Buffer\n // instances that were created from another copy of the `buffer` package.\n // See: https://github.com/feross/buffer/issues/154\n\n\n Buffer.prototype._isBuffer = true;\n\n function swap(b, n, m) {\n const i = b[n];\n b[n] = b[m];\n b[m] = i;\n }\n\n Buffer.prototype.swap16 = function swap16() {\n const len = this.length;\n\n if (len % 2 !== 0) {\n throw new RangeError(\"Buffer size must be a multiple of 16-bits\");\n }\n\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n\n return this;\n };\n\n Buffer.prototype.swap32 = function swap32() {\n const len = this.length;\n\n if (len % 4 !== 0) {\n throw new RangeError(\"Buffer size must be a multiple of 32-bits\");\n }\n\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3);\n swap(this, i + 1, i + 2);\n }\n\n return this;\n };\n\n Buffer.prototype.swap64 = function swap64() {\n const len = this.length;\n\n if (len % 8 !== 0) {\n throw new RangeError(\"Buffer size must be a multiple of 64-bits\");\n }\n\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7);\n swap(this, i + 1, i + 6);\n swap(this, i + 2, i + 5);\n swap(this, i + 3, i + 4);\n }\n\n return this;\n };\n\n Buffer.prototype.toString = function toString() {\n const length = this.length;\n if (length === 0) return \"\";\n if (arguments.length === 0) return utf8Slice(this, 0, length);\n return slowToString.apply(this, arguments);\n };\n\n Buffer.prototype.toLocaleString = Buffer.prototype.toString;\n\n Buffer.prototype.equals = function equals(b) {\n if (!Buffer.isBuffer(b)) throw new TypeError(\"Argument must be a Buffer\");\n if (this === b) return true;\n return Buffer.compare(this, b) === 0;\n };\n\n Buffer.prototype.inspect = function inspect() {\n let str = \"\";\n const max = exports$1.INSPECT_MAX_BYTES;\n str = this.toString(\"hex\", 0, max).replace(/(.{2})/g, \"$1 \").trim();\n if (this.length > max) str += \" ... \";\n return \"<Buffer \" + str + \">\";\n };\n\n if (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect;\n }\n\n Buffer.prototype.compare = function compare(target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength);\n }\n\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\"The \\\"target\\\" argument must be one of type Buffer or Uint8Array. \" + \"Received type \" + typeof target);\n }\n\n if (start === undefined) {\n start = 0;\n }\n\n if (end === undefined) {\n end = target ? target.length : 0;\n }\n\n if (thisStart === undefined) {\n thisStart = 0;\n }\n\n if (thisEnd === undefined) {\n thisEnd = this.length;\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError(\"out of range index\");\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0;\n }\n\n if (thisStart >= thisEnd) {\n return -1;\n }\n\n if (start >= end) {\n return 1;\n }\n\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n if (this === target) return 0;\n let x = thisEnd - thisStart;\n let y = end - start;\n const len = Math.min(x, y);\n const thisCopy = this.slice(thisStart, thisEnd);\n const targetCopy = target.slice(start, end);\n\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i];\n y = targetCopy[i];\n break;\n }\n }\n\n if (x < y) return -1;\n if (y < x) return 1;\n return 0;\n }; // Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n // OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n //\n // Arguments:\n // - buffer - a Buffer to search\n // - val - a string, Buffer, or number\n // - byteOffset - an index into `buffer`; will be clamped to an int32\n // - encoding - an optional encoding, relevant is val is a string\n // - dir - true for indexOf, false for lastIndexOf\n\n\n function bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1; // Normalize byteOffset\n\n if (typeof byteOffset === \"string\") {\n encoding = byteOffset;\n byteOffset = 0;\n } else if (byteOffset > 2147483647) {\n byteOffset = 2147483647;\n } else if (byteOffset < -2147483648) {\n byteOffset = -2147483648;\n }\n\n byteOffset = +byteOffset; // Coerce to Number.\n\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : buffer.length - 1;\n } // Normalize byteOffset: negative offsets start from the end of the buffer\n\n\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n\n if (byteOffset >= buffer.length) {\n if (dir) return -1;else byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0;else return -1;\n } // Normalize val\n\n\n if (typeof val === \"string\") {\n val = Buffer.from(val, encoding);\n } // Finally, search either indexOf (if dir is true) or lastIndexOf\n\n\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1;\n }\n\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir);\n } else if (typeof val === \"number\") {\n val = val & 255; // Search for a byte value [0-255]\n\n if (typeof Uint8Array.prototype.indexOf === \"function\") {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset);\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset);\n }\n }\n\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir);\n }\n\n throw new TypeError(\"val must be string, number or Buffer\");\n }\n\n function arrayIndexOf(arr, val, byteOffset, encoding, dir) {\n let indexSize = 1;\n let arrLength = arr.length;\n let valLength = val.length;\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase();\n\n if (encoding === \"ucs2\" || encoding === \"ucs-2\" || encoding === \"utf16le\" || encoding === \"utf-16le\") {\n if (arr.length < 2 || val.length < 2) {\n return -1;\n }\n\n indexSize = 2;\n arrLength /= 2;\n valLength /= 2;\n byteOffset /= 2;\n }\n }\n\n function read(buf, i) {\n if (indexSize === 1) {\n return buf[i];\n } else {\n return buf.readUInt16BE(i * indexSize);\n }\n }\n\n let i;\n\n if (dir) {\n let foundIndex = -1;\n\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i;\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize;\n } else {\n if (foundIndex !== -1) i -= i - foundIndex;\n foundIndex = -1;\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n\n for (i = byteOffset; i >= 0; i--) {\n let found = true;\n\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false;\n break;\n }\n }\n\n if (found) return i;\n }\n }\n\n return -1;\n }\n\n Buffer.prototype.includes = function includes(val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1;\n };\n\n Buffer.prototype.indexOf = function indexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true);\n };\n\n Buffer.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false);\n };\n\n function hexWrite(buf, string, offset, length) {\n offset = Number(offset) || 0;\n const remaining = buf.length - offset;\n\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n\n if (length > remaining) {\n length = remaining;\n }\n }\n\n const strLen = string.length;\n\n if (length > strLen / 2) {\n length = strLen / 2;\n }\n\n let i;\n\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16);\n if (numberIsNaN(parsed)) return i;\n buf[offset + i] = parsed;\n }\n\n return i;\n }\n\n function utf8Write(buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length);\n }\n\n function asciiWrite(buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length);\n }\n\n function base64Write(buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length);\n }\n\n function ucs2Write(buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length);\n }\n\n Buffer.prototype.write = function write(string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = \"utf8\";\n length = this.length;\n offset = 0; // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === \"string\") {\n encoding = offset;\n length = this.length;\n offset = 0; // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0;\n\n if (isFinite(length)) {\n length = length >>> 0;\n if (encoding === undefined) encoding = \"utf8\";\n } else {\n encoding = length;\n length = undefined;\n }\n } else {\n throw new Error(\"Buffer.write(string, encoding, offset[, length]) is no longer supported\");\n }\n\n const remaining = this.length - offset;\n if (length === undefined || length > remaining) length = remaining;\n\n if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) {\n throw new RangeError(\"Attempt to write outside buffer bounds\");\n }\n\n if (!encoding) encoding = \"utf8\";\n let loweredCase = false;\n\n for (;;) {\n switch (encoding) {\n case \"hex\":\n return hexWrite(this, string, offset, length);\n\n case \"utf8\":\n case \"utf-8\":\n return utf8Write(this, string, offset, length);\n\n case \"ascii\":\n case \"latin1\":\n case \"binary\":\n return asciiWrite(this, string, offset, length);\n\n case \"base64\":\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length);\n\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n return ucs2Write(this, string, offset, length);\n\n default:\n if (loweredCase) throw new TypeError(\"Unknown encoding: \" + encoding);\n encoding = (\"\" + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n };\n\n Buffer.prototype.toJSON = function toJSON() {\n return {\n type: \"Buffer\",\n data: Array.prototype.slice.call(this._arr || this, 0)\n };\n };\n\n function base64Slice(buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf);\n } else {\n return base64.fromByteArray(buf.slice(start, end));\n }\n }\n\n function utf8Slice(buf, start, end) {\n end = Math.min(buf.length, end);\n const res = [];\n let i = start;\n\n while (i < end) {\n const firstByte = buf[i];\n let codePoint = null;\n let bytesPerSequence = firstByte > 239 ? 4 : firstByte > 223 ? 3 : firstByte > 191 ? 2 : 1;\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint;\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 128) {\n codePoint = firstByte;\n }\n\n break;\n\n case 2:\n secondByte = buf[i + 1];\n\n if ((secondByte & 192) === 128) {\n tempCodePoint = (firstByte & 31) << 6 | secondByte & 63;\n\n if (tempCodePoint > 127) {\n codePoint = tempCodePoint;\n }\n }\n\n break;\n\n case 3:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 12 | (secondByte & 63) << 6 | thirdByte & 63;\n\n if (tempCodePoint > 2047 && (tempCodePoint < 55296 || tempCodePoint > 57343)) {\n codePoint = tempCodePoint;\n }\n }\n\n break;\n\n case 4:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n fourthByte = buf[i + 3];\n\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128 && (fourthByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 18 | (secondByte & 63) << 12 | (thirdByte & 63) << 6 | fourthByte & 63;\n\n if (tempCodePoint > 65535 && tempCodePoint < 1114112) {\n codePoint = tempCodePoint;\n }\n }\n\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 65533;\n bytesPerSequence = 1;\n } else if (codePoint > 65535) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 65536;\n res.push(codePoint >>> 10 & 1023 | 55296);\n codePoint = 56320 | codePoint & 1023;\n }\n\n res.push(codePoint);\n i += bytesPerSequence;\n }\n\n return decodeCodePointsArray(res);\n } // Based on http://stackoverflow.com/a/22747272/680742, the browser with\n // the lowest limit is Chrome, with 0x10000 args.\n // We go 1 magnitude less, for safety\n\n\n const MAX_ARGUMENTS_LENGTH = 4096;\n\n function decodeCodePointsArray(codePoints) {\n const len = codePoints.length;\n\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints); // avoid extra slice()\n } // Decode in chunks to avoid \"call stack size exceeded\".\n\n\n let res = \"\";\n let i = 0;\n\n while (i < len) {\n res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH));\n }\n\n return res;\n }\n\n function asciiSlice(buf, start, end) {\n let ret = \"\";\n end = Math.min(buf.length, end);\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 127);\n }\n\n return ret;\n }\n\n function latin1Slice(buf, start, end) {\n let ret = \"\";\n end = Math.min(buf.length, end);\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i]);\n }\n\n return ret;\n }\n\n function hexSlice(buf, start, end) {\n const len = buf.length;\n if (!start || start < 0) start = 0;\n if (!end || end < 0 || end > len) end = len;\n let out = \"\";\n\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]];\n }\n\n return out;\n }\n\n function utf16leSlice(buf, start, end) {\n const bytes = buf.slice(start, end);\n let res = \"\"; // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\n\n return res;\n }\n\n Buffer.prototype.slice = function slice(start, end) {\n const len = this.length;\n start = ~~start;\n end = end === undefined ? len : ~~end;\n\n if (start < 0) {\n start += len;\n if (start < 0) start = 0;\n } else if (start > len) {\n start = len;\n }\n\n if (end < 0) {\n end += len;\n if (end < 0) end = 0;\n } else if (end > len) {\n end = len;\n }\n\n if (end < start) end = start;\n const newBuf = this.subarray(start, end); // Return an augmented `Uint8Array` instance\n\n Object.setPrototypeOf(newBuf, Buffer.prototype);\n return newBuf;\n };\n /*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\n\n\n function checkOffset(offset, ext, length) {\n if (offset % 1 !== 0 || offset < 0) throw new RangeError(\"offset is not uint\");\n if (offset + ext > length) throw new RangeError(\"Trying to access beyond buffer length\");\n }\n\n Buffer.prototype.readUintLE = Buffer.prototype.readUIntLE = function readUIntLE(offset, byteLength, noAssert) {\n offset = offset >>> 0;\n byteLength = byteLength >>> 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n let val = this[offset];\n let mul = 1;\n let i = 0;\n\n while (++i < byteLength && (mul *= 256)) {\n val += this[offset + i] * mul;\n }\n\n return val;\n };\n\n Buffer.prototype.readUintBE = Buffer.prototype.readUIntBE = function readUIntBE(offset, byteLength, noAssert) {\n offset = offset >>> 0;\n byteLength = byteLength >>> 0;\n\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length);\n }\n\n let val = this[offset + --byteLength];\n let mul = 1;\n\n while (byteLength > 0 && (mul *= 256)) {\n val += this[offset + --byteLength] * mul;\n }\n\n return val;\n };\n\n Buffer.prototype.readUint8 = Buffer.prototype.readUInt8 = function readUInt8(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 1, this.length);\n return this[offset];\n };\n\n Buffer.prototype.readUint16LE = Buffer.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] | this[offset + 1] << 8;\n };\n\n Buffer.prototype.readUint16BE = Buffer.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] << 8 | this[offset + 1];\n };\n\n Buffer.prototype.readUint32LE = Buffer.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 16777216;\n };\n\n Buffer.prototype.readUint32BE = Buffer.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] * 16777216 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]);\n };\n\n Buffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, \"offset\");\n const first = this[offset];\n const last = this[offset + 7];\n\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8);\n }\n\n const lo = first + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24;\n const hi = this[++offset] + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + last * 2 ** 24;\n return BigInt(lo) + (BigInt(hi) << BigInt(32));\n });\n Buffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, \"offset\");\n const first = this[offset];\n const last = this[offset + 7];\n\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8);\n }\n\n const hi = first * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset];\n const lo = this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last;\n return (BigInt(hi) << BigInt(32)) + BigInt(lo);\n });\n\n Buffer.prototype.readIntLE = function readIntLE(offset, byteLength, noAssert) {\n offset = offset >>> 0;\n byteLength = byteLength >>> 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n let val = this[offset];\n let mul = 1;\n let i = 0;\n\n while (++i < byteLength && (mul *= 256)) {\n val += this[offset + i] * mul;\n }\n\n mul *= 128;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n return val;\n };\n\n Buffer.prototype.readIntBE = function readIntBE(offset, byteLength, noAssert) {\n offset = offset >>> 0;\n byteLength = byteLength >>> 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n let i = byteLength;\n let mul = 1;\n let val = this[offset + --i];\n\n while (i > 0 && (mul *= 256)) {\n val += this[offset + --i] * mul;\n }\n\n mul *= 128;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n return val;\n };\n\n Buffer.prototype.readInt8 = function readInt8(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 1, this.length);\n if (!(this[offset] & 128)) return this[offset];\n return (255 - this[offset] + 1) * -1;\n };\n\n Buffer.prototype.readInt16LE = function readInt16LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 2, this.length);\n const val = this[offset] | this[offset + 1] << 8;\n return val & 32768 ? val | 4294901760 : val;\n };\n\n Buffer.prototype.readInt16BE = function readInt16BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 2, this.length);\n const val = this[offset + 1] | this[offset] << 8;\n return val & 32768 ? val | 4294901760 : val;\n };\n\n Buffer.prototype.readInt32LE = function readInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24;\n };\n\n Buffer.prototype.readInt32BE = function readInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3];\n };\n\n Buffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, \"offset\");\n const first = this[offset];\n const last = this[offset + 7];\n\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8);\n }\n\n const val = this[offset + 4] + this[offset + 5] * 2 ** 8 + this[offset + 6] * 2 ** 16 + (last << 24); // Overflow\n\n return (BigInt(val) << BigInt(32)) + BigInt(first + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24);\n });\n Buffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, \"offset\");\n const first = this[offset];\n const last = this[offset + 7];\n\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8);\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset];\n return (BigInt(val) << BigInt(32)) + BigInt(this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last);\n });\n\n Buffer.prototype.readFloatLE = function readFloatLE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return ieee754.read(this, offset, true, 23, 4);\n };\n\n Buffer.prototype.readFloatBE = function readFloatBE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return ieee754.read(this, offset, false, 23, 4);\n };\n\n Buffer.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 8, this.length);\n return ieee754.read(this, offset, true, 52, 8);\n };\n\n Buffer.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 8, this.length);\n return ieee754.read(this, offset, false, 52, 8);\n };\n\n function checkInt(buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError(\"\\\"buffer\\\" argument must be a Buffer instance\");\n if (value > max || value < min) throw new RangeError(\"\\\"value\\\" argument is out of bounds\");\n if (offset + ext > buf.length) throw new RangeError(\"Index out of range\");\n }\n\n Buffer.prototype.writeUintLE = Buffer.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength = byteLength >>> 0;\n\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n let mul = 1;\n let i = 0;\n this[offset] = value & 255;\n\n while (++i < byteLength && (mul *= 256)) {\n this[offset + i] = value / mul & 255;\n }\n\n return offset + byteLength;\n };\n\n Buffer.prototype.writeUintBE = Buffer.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength = byteLength >>> 0;\n\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n let i = byteLength - 1;\n let mul = 1;\n this[offset + i] = value & 255;\n\n while (--i >= 0 && (mul *= 256)) {\n this[offset + i] = value / mul & 255;\n }\n\n return offset + byteLength;\n };\n\n Buffer.prototype.writeUint8 = Buffer.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 1, 255, 0);\n this[offset] = value & 255;\n return offset + 1;\n };\n\n Buffer.prototype.writeUint16LE = Buffer.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 2, 65535, 0);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n return offset + 2;\n };\n\n Buffer.prototype.writeUint16BE = Buffer.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 2, 65535, 0);\n this[offset] = value >>> 8;\n this[offset + 1] = value & 255;\n return offset + 2;\n };\n\n Buffer.prototype.writeUint32LE = Buffer.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 4, 4294967295, 0);\n this[offset + 3] = value >>> 24;\n this[offset + 2] = value >>> 16;\n this[offset + 1] = value >>> 8;\n this[offset] = value & 255;\n return offset + 4;\n };\n\n Buffer.prototype.writeUint32BE = Buffer.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 4, 4294967295, 0);\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 255;\n return offset + 4;\n };\n\n function wrtBigUInt64LE(buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7);\n let lo = Number(value & BigInt(4294967295));\n buf[offset++] = lo;\n lo = lo >> 8;\n buf[offset++] = lo;\n lo = lo >> 8;\n buf[offset++] = lo;\n lo = lo >> 8;\n buf[offset++] = lo;\n let hi = Number(value >> BigInt(32) & BigInt(4294967295));\n buf[offset++] = hi;\n hi = hi >> 8;\n buf[offset++] = hi;\n hi = hi >> 8;\n buf[offset++] = hi;\n hi = hi >> 8;\n buf[offset++] = hi;\n return offset;\n }\n\n function wrtBigUInt64BE(buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7);\n let lo = Number(value & BigInt(4294967295));\n buf[offset + 7] = lo;\n lo = lo >> 8;\n buf[offset + 6] = lo;\n lo = lo >> 8;\n buf[offset + 5] = lo;\n lo = lo >> 8;\n buf[offset + 4] = lo;\n let hi = Number(value >> BigInt(32) & BigInt(4294967295));\n buf[offset + 3] = hi;\n hi = hi >> 8;\n buf[offset + 2] = hi;\n hi = hi >> 8;\n buf[offset + 1] = hi;\n hi = hi >> 8;\n buf[offset] = hi;\n return offset + 8;\n }\n\n Buffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE(value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt(\"0xffffffffffffffff\"));\n });\n Buffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE(value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt(\"0xffffffffffffffff\"));\n });\n\n Buffer.prototype.writeIntLE = function writeIntLE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset >>> 0;\n\n if (!noAssert) {\n const limit = Math.pow(2, 8 * byteLength - 1);\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n let i = 0;\n let mul = 1;\n let sub = 0;\n this[offset] = value & 255;\n\n while (++i < byteLength && (mul *= 256)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\n\n this[offset + i] = (value / mul >> 0) - sub & 255;\n }\n\n return offset + byteLength;\n };\n\n Buffer.prototype.writeIntBE = function writeIntBE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset >>> 0;\n\n if (!noAssert) {\n const limit = Math.pow(2, 8 * byteLength - 1);\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n let i = byteLength - 1;\n let mul = 1;\n let sub = 0;\n this[offset + i] = value & 255;\n\n while (--i >= 0 && (mul *= 256)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\n\n this[offset + i] = (value / mul >> 0) - sub & 255;\n }\n\n return offset + byteLength;\n };\n\n Buffer.prototype.writeInt8 = function writeInt8(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 1, 127, -128);\n if (value < 0) value = 255 + value + 1;\n this[offset] = value & 255;\n return offset + 1;\n };\n\n Buffer.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 2, 32767, -32768);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n return offset + 2;\n };\n\n Buffer.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 2, 32767, -32768);\n this[offset] = value >>> 8;\n this[offset + 1] = value & 255;\n return offset + 2;\n };\n\n Buffer.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 4, 2147483647, -2147483648);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n this[offset + 2] = value >>> 16;\n this[offset + 3] = value >>> 24;\n return offset + 4;\n };\n\n Buffer.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 4, 2147483647, -2147483648);\n if (value < 0) value = 4294967295 + value + 1;\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 255;\n return offset + 4;\n };\n\n Buffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE(value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt(\"0x8000000000000000\"), BigInt(\"0x7fffffffffffffff\"));\n });\n Buffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE(value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt(\"0x8000000000000000\"), BigInt(\"0x7fffffffffffffff\"));\n });\n\n function checkIEEE754(buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError(\"Index out of range\");\n if (offset < 0) throw new RangeError(\"Index out of range\");\n }\n\n function writeFloat(buf, value, offset, littleEndian, noAssert) {\n value = +value;\n offset = offset >>> 0;\n\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4);\n }\n\n ieee754.write(buf, value, offset, littleEndian, 23, 4);\n return offset + 4;\n }\n\n Buffer.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert);\n };\n\n Buffer.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert);\n };\n\n function writeDouble(buf, value, offset, littleEndian, noAssert) {\n value = +value;\n offset = offset >>> 0;\n\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8);\n }\n\n ieee754.write(buf, value, offset, littleEndian, 52, 8);\n return offset + 8;\n }\n\n Buffer.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert);\n };\n\n Buffer.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert);\n }; // copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n\n\n Buffer.prototype.copy = function copy(target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError(\"argument should be a Buffer\");\n if (!start) start = 0;\n if (!end && end !== 0) end = this.length;\n if (targetStart >= target.length) targetStart = target.length;\n if (!targetStart) targetStart = 0;\n if (end > 0 && end < start) end = start; // Copy 0 bytes; we're done\n\n if (end === start) return 0;\n if (target.length === 0 || this.length === 0) return 0; // Fatal error conditions\n\n if (targetStart < 0) {\n throw new RangeError(\"targetStart out of bounds\");\n }\n\n if (start < 0 || start >= this.length) throw new RangeError(\"Index out of range\");\n if (end < 0) throw new RangeError(\"sourceEnd out of bounds\"); // Are we oob?\n\n if (end > this.length) end = this.length;\n\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start;\n }\n\n const len = end - start;\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === \"function\") {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end);\n } else {\n Uint8Array.prototype.set.call(target, this.subarray(start, end), targetStart);\n }\n\n return len;\n }; // Usage:\n // buffer.fill(number[, offset[, end]])\n // buffer.fill(buffer[, offset[, end]])\n // buffer.fill(string[, offset[, end]][, encoding])\n\n\n Buffer.prototype.fill = function fill(val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === \"string\") {\n if (typeof start === \"string\") {\n encoding = start;\n start = 0;\n end = this.length;\n } else if (typeof end === \"string\") {\n encoding = end;\n end = this.length;\n }\n\n if (encoding !== undefined && typeof encoding !== \"string\") {\n throw new TypeError(\"encoding must be a string\");\n }\n\n if (typeof encoding === \"string\" && !Buffer.isEncoding(encoding)) {\n throw new TypeError(\"Unknown encoding: \" + encoding);\n }\n\n if (val.length === 1) {\n const code = val.charCodeAt(0);\n\n if (encoding === \"utf8\" && code < 128 || encoding === \"latin1\") {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code;\n }\n }\n } else if (typeof val === \"number\") {\n val = val & 255;\n } else if (typeof val === \"boolean\") {\n val = Number(val);\n } // Invalid ranges are not set to a default, so can range check early.\n\n\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError(\"Out of range index\");\n }\n\n if (end <= start) {\n return this;\n }\n\n start = start >>> 0;\n end = end === undefined ? this.length : end >>> 0;\n if (!val) val = 0;\n let i;\n\n if (typeof val === \"number\") {\n for (i = start; i < end; ++i) {\n this[i] = val;\n }\n } else {\n const bytes = Buffer.isBuffer(val) ? val : Buffer.from(val, encoding);\n const len = bytes.length;\n\n if (len === 0) {\n throw new TypeError(\"The value \\\"\" + val + \"\\\" is invalid for argument \\\"value\\\"\");\n }\n\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n\n return this;\n }; // CUSTOM ERRORS\n // =============\n // Simplified versions from Node, changed for Buffer-only usage\n\n\n const errors = {};\n\n function E(sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor() {\n super();\n Object.defineProperty(this, \"message\", {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n }); // Add the error code to the name to include it in the stack trace.\n\n this.name = `${this.name} [${sym}]`; // Access the stack to generate the error message including the error code\n // from the name.\n\n this.stack; // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n\n delete this.name;\n }\n\n get code() {\n return sym;\n }\n\n set code(value) {\n Object.defineProperty(this, \"code\", {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n });\n }\n\n toString() {\n return `${this.name} [${sym}]: ${this.message}`;\n }\n\n };\n }\n\n E(\"ERR_BUFFER_OUT_OF_BOUNDS\", function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`;\n }\n\n return \"Attempt to access memory outside buffer bounds\";\n }, RangeError);\n E(\"ERR_INVALID_ARG_TYPE\", function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`;\n }, TypeError);\n E(\"ERR_OUT_OF_RANGE\", function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`;\n let received = input;\n\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input));\n } else if (typeof input === \"bigint\") {\n received = String(input);\n\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received);\n }\n\n received += \"n\";\n }\n\n msg += ` It must be ${range}. Received ${received}`;\n return msg;\n }, RangeError);\n\n function addNumericalSeparator(val) {\n let res = \"\";\n let i = val.length;\n const start = val[0] === \"-\" ? 1 : 0;\n\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`;\n }\n\n return `${val.slice(0, i)}${res}`;\n } // CHECK FUNCTIONS\n // ===============\n\n\n function checkBounds(buf, offset, byteLength) {\n validateNumber(offset, \"offset\");\n\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1));\n }\n }\n\n function checkIntBI(value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === \"bigint\" ? \"n\" : \"\";\n let range;\n\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`;\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` + `${(byteLength + 1) * 8 - 1}${n}`;\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`;\n }\n\n throw new errors.ERR_OUT_OF_RANGE(\"value\", range, value);\n }\n\n checkBounds(buf, offset, byteLength);\n }\n\n function validateNumber(value, name) {\n if (typeof value !== \"number\") {\n throw new errors.ERR_INVALID_ARG_TYPE(name, \"number\", value);\n }\n }\n\n function boundsError(value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type);\n throw new errors.ERR_OUT_OF_RANGE(type || \"offset\", \"an integer\", value);\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS();\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || \"offset\", `>= ${type ? 1 : 0} and <= ${length}`, value);\n } // HELPER FUNCTIONS\n // ================\n\n\n const INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n\n function base64clean(str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split(\"=\")[0]; // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n\n str = str.trim().replace(INVALID_BASE64_RE, \"\"); // Node converts strings with length < 2 to ''\n\n if (str.length < 2) return \"\"; // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n\n while (str.length % 4 !== 0) {\n str = str + \"=\";\n }\n\n return str;\n }\n\n function utf8ToBytes(string, units) {\n units = units || Infinity;\n let codePoint;\n const length = string.length;\n let leadSurrogate = null;\n const bytes = [];\n\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i); // is surrogate component\n\n if (codePoint > 55295 && codePoint < 57344) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 56319) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(239, 191, 189);\n continue;\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(239, 191, 189);\n continue;\n } // valid lead\n\n\n leadSurrogate = codePoint;\n continue;\n } // 2 leads in a row\n\n\n if (codePoint < 56320) {\n if ((units -= 3) > -1) bytes.push(239, 191, 189);\n leadSurrogate = codePoint;\n continue;\n } // valid surrogate pair\n\n\n codePoint = (leadSurrogate - 55296 << 10 | codePoint - 56320) + 65536;\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(239, 191, 189);\n }\n\n leadSurrogate = null; // encode utf8\n\n if (codePoint < 128) {\n if ((units -= 1) < 0) break;\n bytes.push(codePoint);\n } else if (codePoint < 2048) {\n if ((units -= 2) < 0) break;\n bytes.push(codePoint >> 6 | 192, codePoint & 63 | 128);\n } else if (codePoint < 65536) {\n if ((units -= 3) < 0) break;\n bytes.push(codePoint >> 12 | 224, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n } else if (codePoint < 1114112) {\n if ((units -= 4) < 0) break;\n bytes.push(codePoint >> 18 | 240, codePoint >> 12 & 63 | 128, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n } else {\n throw new Error(\"Invalid code point\");\n }\n }\n\n return bytes;\n }\n\n function asciiToBytes(str) {\n const byteArray = [];\n\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 255);\n }\n\n return byteArray;\n }\n\n function utf16leToBytes(str, units) {\n let c, hi, lo;\n const byteArray = [];\n\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break;\n c = str.charCodeAt(i);\n hi = c >> 8;\n lo = c % 256;\n byteArray.push(lo);\n byteArray.push(hi);\n }\n\n return byteArray;\n }\n\n function base64ToBytes(str) {\n return base64.toByteArray(base64clean(str));\n }\n\n function blitBuffer(src, dst, offset, length) {\n let i;\n\n for (i = 0; i < length; ++i) {\n if (i + offset >= dst.length || i >= src.length) break;\n dst[i + offset] = src[i];\n }\n\n return i;\n } // ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n // the `instanceof` check but they should be treated as of that type.\n // See: https://github.com/feross/buffer/issues/166\n\n\n function isInstance(obj, type) {\n return obj instanceof type || obj != null && obj.constructor != null && obj.constructor.name != null && obj.constructor.name === type.name;\n }\n\n function numberIsNaN(obj) {\n // For IE11 support\n return obj !== obj; // eslint-disable-line no-self-compare\n } // Create lookup table for `toString('hex')`\n // See: https://github.com/feross/buffer/issues/219\n\n\n const hexSliceLookupTable = function () {\n const alphabet = \"0123456789abcdef\";\n const table = new Array(256);\n\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16;\n\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j];\n }\n }\n\n return table;\n }(); // Return not function with Error if BigInt not supported\n\n\n function defineBigIntMethod(fn) {\n return typeof BigInt === \"undefined\" ? BufferBigIntNotDefined : fn;\n }\n\n function BufferBigIntNotDefined() {\n throw new Error(\"BigInt not supported\");\n }\n\n return exports$1;\n}\n\nconst exports = dew();\nexports['Buffer']; exports['SlowBuffer']; exports['INSPECT_MAX_BYTES']; exports['kMaxLength'];\n\nvar Buffer = exports.Buffer;\r\nvar INSPECT_MAX_BYTES = exports.INSPECT_MAX_BYTES;\r\nvar kMaxLength = exports.kMaxLength;\n\nexport { Buffer, INSPECT_MAX_BYTES, exports as default, kMaxLength };\n", "export { Buffer } from \"buffer\";\n", "module.exports = encode\n\nvar MSB = 0x80\n , REST = 0x7F\n , MSBALL = ~REST\n , INT = Math.pow(2, 31)\n\nfunction encode(num, out, offset) {\n if (Number.MAX_SAFE_INTEGER && num > Number.MAX_SAFE_INTEGER) {\n encode.bytes = 0\n throw new RangeError('Could not encode varint')\n }\n out = out || []\n offset = offset || 0\n var oldOffset = offset\n\n while(num >= INT) {\n out[offset++] = (num & 0xFF) | MSB\n num /= 128\n }\n while(num & MSBALL) {\n out[offset++] = (num & 0xFF) | MSB\n num >>>= 7\n }\n out[offset] = num | 0\n \n encode.bytes = offset - oldOffset + 1\n \n return out\n}\n", "module.exports = read\n\nvar MSB = 0x80\n , REST = 0x7F\n\nfunction read(buf, offset) {\n var res = 0\n , offset = offset || 0\n , shift = 0\n , counter = offset\n , b\n , l = buf.length\n\n do {\n if (counter >= l || shift > 49) {\n read.bytes = 0\n throw new RangeError('Could not decode varint')\n }\n b = buf[counter++]\n res += shift < 28\n ? (b & REST) << shift\n : (b & REST) * Math.pow(2, shift)\n shift += 7\n } while (b >= MSB)\n\n read.bytes = counter - offset\n\n return res\n}\n", "\nvar N1 = Math.pow(2, 7)\nvar N2 = Math.pow(2, 14)\nvar N3 = Math.pow(2, 21)\nvar N4 = Math.pow(2, 28)\nvar N5 = Math.pow(2, 35)\nvar N6 = Math.pow(2, 42)\nvar N7 = Math.pow(2, 49)\nvar N8 = Math.pow(2, 56)\nvar N9 = Math.pow(2, 63)\n\nmodule.exports = function (value) {\n return (\n value < N1 ? 1\n : value < N2 ? 2\n : value < N3 ? 3\n : value < N4 ? 4\n : value < N5 ? 5\n : value < N6 ? 6\n : value < N7 ? 7\n : value < N8 ? 8\n : value < N9 ? 9\n : 10\n )\n}\n", "module.exports = {\n encode: require('./encode.js')\n , decode: require('./decode.js')\n , encodingLength: require('./length.js')\n}\n", "import { BlockView, CID } from 'multiformats'\nimport { Block, encode, decode } from 'multiformats/block'\nimport { sha256 as hasher } from 'multiformats/hashes/sha2'\nimport * as raw from 'multiformats/codecs/raw'\nimport * as CBW from '@ipld/car/buffer-writer'\nimport * as codec from '@ipld/dag-cbor'\nimport { CarReader } from '@ipld/car'\n\nimport { Transaction } from './transaction'\nimport { AnyBlock, BulkResult, ClockHead, AnyLink } from './types'\n\nexport async function makeCarFile(\n t: Transaction,\n { head }: BulkResult,\n cars: AnyLink[]\n): Promise<BlockView<unknown, number, number, 1>> {\n if (!head) throw new Error('no head')\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call\n const fpCarHeaderBlock = (await encode({\n value: { fp: { head, cars } },\n hasher,\n codec\n })) as AnyBlock\n await t.put(fpCarHeaderBlock.cid, fpCarHeaderBlock.bytes)\n\n let size = 0\n const headerSize = CBW.headerLength({ roots: [fpCarHeaderBlock.cid as CID<unknown, number, number, 1>] })\n size += headerSize\n for (const { cid, bytes } of t.entries()) {\n size += CBW.blockLength({ cid, bytes } as Block<unknown, number, number, 1>)\n }\n const buffer = new Uint8Array(size)\n const writer = CBW.createWriter(buffer, { headerSize })\n\n writer.addRoot(fpCarHeaderBlock.cid as CID<unknown, number, number, 1>)\n\n for (const { cid, bytes } of t.entries()) {\n writer.write({ cid, bytes } as Block<unknown, number, number, 1>)\n }\n writer.close()\n return await encode({ value: writer.bytes, hasher, codec: raw })\n}\n\nexport async function parseCarFile(reader: CarReader): Promise<{ head: ClockHead; cars: AnyLink[] }> {\n const roots = await reader.getRoots()\n const header = await reader.get(roots[0])\n if (!header) throw new Error('missing header block')\n const got = await decode({ bytes: header.bytes, hasher, codec })\n const {\n fp: { head, cars }\n } = got.value as { fp: { head: ClockHead; cars: AnyLink[] } }\n return { head, cars }\n}\n", "import { bytes as binary, CID } from './index.js'\n// Linter can see that API is used in types.\n// eslint-disable-next-line\nimport * as API from './interface.js'\n\nfunction readonly ({ enumerable = true, configurable = false } = {}) {\n return { enumerable, configurable, writable: false }\n}\n\n/**\n * @param {[string|number, string]} path\n * @param {any} value\n * @returns {Iterable<[string, CID]>}\n */\nfunction * linksWithin (path, value) {\n if (value != null && typeof value === 'object') {\n if (Array.isArray(value)) {\n for (const [index, element] of value.entries()) {\n const elementPath = [...path, index]\n const cid = CID.asCID(element)\n if (cid) {\n yield [elementPath.join('/'), cid]\n } else if (typeof element === 'object') {\n yield * links(element, elementPath)\n }\n }\n } else {\n const cid = CID.asCID(value)\n if (cid) {\n yield [path.join('/'), cid]\n } else {\n yield * links(value, path)\n }\n }\n }\n}\n\n/**\n * @template T\n * @param {T} source\n * @param {Array<string|number>} base\n * @returns {Iterable<[string, CID]>}\n */\nfunction * links (source, base) {\n if (source == null || source instanceof Uint8Array) {\n return\n }\n const cid = CID.asCID(source)\n if (cid) {\n yield [base.join('/'), cid]\n }\n for (const [key, value] of Object.entries(source)) {\n const path = /** @type {[string|number, string]} */ ([...base, key])\n yield * linksWithin(path, value)\n }\n}\n\n/**\n * @param {[string|number, string]} path\n * @param {any} value\n * @returns {Iterable<string>}\n */\nfunction * treeWithin (path, value) {\n if (Array.isArray(value)) {\n for (const [index, element] of value.entries()) {\n const elementPath = [...path, index]\n yield elementPath.join('/')\n if (typeof element === 'object' && !CID.asCID(element)) {\n yield * tree(element, elementPath)\n }\n }\n } else {\n yield * tree(value, path)\n }\n}\n\n/**\n * @template T\n * @param {T} source\n * @param {Array<string|number>} base\n * @returns {Iterable<string>}\n */\nfunction * tree (source, base) {\n if (source == null || typeof source !== 'object') {\n return\n }\n for (const [key, value] of Object.entries(source)) {\n const path = /** @type {[string|number, string]} */ ([...base, key])\n yield path.join('/')\n if (value != null && !(value instanceof Uint8Array) && typeof value === 'object' && !CID.asCID(value)) {\n yield * treeWithin(path, value)\n }\n }\n}\n\n/**\n *\n * @template T\n * @param {T} source\n * @param {string[]} path\n * @returns {API.BlockCursorView<unknown>}\n */\nfunction get (source, path) {\n let node = /** @type {Record<string, any>} */(source)\n for (const [index, key] of path.entries()) {\n node = node[key]\n if (node == null) {\n throw new Error(`Object has no property at ${path.slice(0, index + 1).map(part => `[${JSON.stringify(part)}]`).join('')}`)\n }\n const cid = CID.asCID(node)\n if (cid) {\n return { value: cid, remaining: path.slice(index + 1).join('/') }\n }\n }\n return { value: node }\n}\n\n/**\n * @template {unknown} T - Logical type of the data encoded in the block\n * @template {number} C - multicodec code corresponding to codec used to encode the block\n * @template {number} A - multicodec code corresponding to the hashing algorithm used in CID creation.\n * @template {API.Version} V - CID version\n * @implements {API.BlockView<T, C, A, V>}\n */\nclass Block {\n /**\n * @param {object} options\n * @param {CID<T, C, A, V>} options.cid\n * @param {API.ByteView<T>} options.bytes\n * @param {T} options.value\n */\n constructor ({ cid, bytes, value }) {\n if (!cid || !bytes || typeof value === 'undefined') { throw new Error('Missing required argument') }\n\n this.cid = cid\n this.bytes = bytes\n this.value = value\n this.asBlock = this\n\n // Mark all the properties immutable\n Object.defineProperties(this, {\n cid: readonly(),\n bytes: readonly(),\n value: readonly(),\n asBlock: readonly()\n })\n }\n\n links () {\n return links(this.value, [])\n }\n\n tree () {\n return tree(this.value, [])\n }\n\n /**\n *\n * @param {string} [path]\n * @returns {API.BlockCursorView<unknown>}\n */\n get (path = '/') {\n return get(this.value, path.split('/').filter(Boolean))\n }\n}\n\n/**\n * @template {unknown} T - Logical type of the data encoded in the block\n * @template {number} Code - multicodec code corresponding to codec used to encode the block\n * @template {number} Alg - multicodec code corresponding to the hashing algorithm used in CID creation.\n * @param {object} options\n * @param {T} options.value\n * @param {API.BlockEncoder<Code, T>} options.codec\n * @param {API.MultihashHasher<Alg>} options.hasher\n * @returns {Promise<API.BlockView<T, Code, Alg>>}\n */\nasync function encode ({ value, codec, hasher }) {\n if (typeof value === 'undefined') throw new Error('Missing required argument \"value\"')\n if (!codec || !hasher) throw new Error('Missing required argument: codec or hasher')\n\n const bytes = codec.encode(value)\n const hash = await hasher.digest(bytes)\n /** @type {CID<T, Code, Alg, 1>} */\n const cid = CID.create(\n 1,\n codec.code,\n hash\n )\n\n return new Block({ value, bytes, cid })\n}\n\n/**\n * @template {unknown} T - Logical type of the data encoded in the block\n * @template {number} Code - multicodec code corresponding to codec used to encode the block\n * @template {number} Alg - multicodec code corresponding to the hashing algorithm used in CID creation.\n * @param {object} options\n * @param {API.ByteView<T>} options.bytes\n * @param {API.BlockDecoder<Code, T>} options.codec\n * @param {API.MultihashHasher<Alg>} options.hasher\n * @returns {Promise<API.BlockView<T, Code, Alg>>}\n */\nasync function decode ({ bytes, codec, hasher }) {\n if (!bytes) throw new Error('Missing required argument \"bytes\"')\n if (!codec || !hasher) throw new Error('Missing required argument: codec or hasher')\n\n const value = codec.decode(bytes)\n const hash = await hasher.digest(bytes)\n /** @type {CID<T, Code, Alg, 1>} */\n const cid = CID.create(1, codec.code, hash)\n\n return new Block({ value, bytes, cid })\n}\n\n/**\n * @typedef {object} RequiredCreateOptions\n * @property {CID} options.cid\n */\n\n/**\n * @template {unknown} T - Logical type of the data encoded in the block\n * @template {number} Code - multicodec code corresponding to codec used to encode the block\n * @template {number} Alg - multicodec code corresponding to the hashing algorithm used in CID creation.\n * @template {API.Version} V - CID version\n * @param {{ cid: API.Link<T, Code, Alg, V>, value:T, codec?: API.BlockDecoder<Code, T>, bytes: API.ByteView<T> }|{cid:API.Link<T, Code, Alg, V>, bytes:API.ByteView<T>, value?:void, codec:API.BlockDecoder<Code, T>}} options\n * @returns {API.BlockView<T, Code, Alg, V>}\n */\nfunction createUnsafe ({ bytes, cid, value: maybeValue, codec }) {\n const value = maybeValue !== undefined\n ? maybeValue\n : (codec && codec.decode(bytes))\n\n if (value === undefined) throw new Error('Missing required argument, must either provide \"value\" or \"codec\"')\n\n return new Block({\n // eslint-disable-next-line object-shorthand\n cid: /** @type {CID<T, Code, Alg, V>} */ (cid),\n bytes,\n value\n })\n}\n\n/**\n * @template {unknown} T - Logical type of the data encoded in the block\n * @template {number} Code - multicodec code corresponding to codec used to encode the block\n * @template {number} Alg - multicodec code corresponding to the hashing algorithm used in CID creation.\n * @template {API.Version} V - CID version\n * @param {object} options\n * @param {API.Link<T, Code, Alg, V>} options.cid\n * @param {API.ByteView<T>} options.bytes\n * @param {API.BlockDecoder<Code, T>} options.codec\n * @param {API.MultihashHasher<Alg>} options.hasher\n * @returns {Promise<API.BlockView<T, Code, Alg, V>>}\n */\nasync function create ({ bytes, cid, hasher, codec }) {\n if (!bytes) throw new Error('Missing required argument \"bytes\"')\n if (!hasher) throw new Error('Missing required argument \"hasher\"')\n const value = codec.decode(bytes)\n const hash = await hasher.digest(bytes)\n if (!binary.equals(cid.multihash.bytes, hash.bytes)) {\n throw new Error('CID hash does not match bytes')\n }\n\n return createUnsafe({\n bytes,\n cid,\n value,\n codec\n })\n}\n\nexport { encode, decode, create, createUnsafe, Block }\n", "import { CID } from './cid.js'\nimport * as varint from './varint.js'\nimport * as bytes from './bytes.js'\nimport * as hasher from './hashes/hasher.js'\nimport * as digest from './hashes/digest.js'\n// This way TS will also expose all the types from module\nexport * from './interface.js'\n\nexport { CID, hasher, digest, varint, bytes }\n", "import * as varint from './varint.js'\nimport * as Digest from './hashes/digest.js'\nimport { base58btc } from './bases/base58.js'\nimport { base32 } from './bases/base32.js'\nimport { coerce } from './bytes.js'\n// Linter can see that API is used in types.\n// eslint-disable-next-line\nimport * as API from \"./link/interface.js\"\n\n// This way TS will also expose all the types from module\nexport * from './link/interface.js'\n\n/**\n * @template {API.Link<unknown, number, number, API.Version>} T\n * @template {string} Prefix\n * @param {T} link\n * @param {API.MultibaseEncoder<Prefix>} [base]\n * @returns {API.ToString<T, Prefix>}\n */\nexport const format = (link, base) => {\n const { bytes, version } = link\n switch (version) {\n case 0:\n return toStringV0(\n bytes,\n baseCache(link),\n /** @type {API.MultibaseEncoder<\"z\">} */ (base) || base58btc.encoder\n )\n default:\n return toStringV1(\n bytes,\n baseCache(link),\n /** @type {API.MultibaseEncoder<Prefix>} */ (base || base32.encoder)\n )\n }\n}\n\n/**\n * @template {API.UnknownLink} Link\n * @param {Link} link\n * @returns {API.LinkJSON<Link>}\n */\nexport const toJSON = (link) => ({\n '/': format(link)\n})\n\n/**\n * @template {API.UnknownLink} Link\n * @param {API.LinkJSON<Link>} json\n */\nexport const fromJSON = (json) =>\n CID.parse(json['/'])\n\n/** @type {WeakMap<API.UnknownLink, Map<string, string>>} */\nconst cache = new WeakMap()\n\n/**\n * @param {API.UnknownLink} cid\n * @returns {Map<string, string>}\n */\nconst baseCache = cid => {\n const baseCache = cache.get(cid)\n if (baseCache == null) {\n const baseCache = new Map()\n cache.set(cid, baseCache)\n return baseCache\n }\n return baseCache\n}\n\n/**\n * @template {unknown} [Data=unknown]\n * @template {number} [Format=number]\n * @template {number} [Alg=number]\n * @template {API.Version} [Version=API.Version]\n * @implements {API.Link<Data, Format, Alg, Version>}\n */\n\nexport class CID {\n /**\n * @param {Version} version - Version of the CID\n * @param {Format} code - Code of the codec content is encoded in, see https://github.com/multiformats/multicodec/blob/master/table.csv\n * @param {API.MultihashDigest<Alg>} multihash - (Multi)hash of the of the content.\n * @param {Uint8Array} bytes\n *\n */\n constructor (version, code, multihash, bytes) {\n /** @readonly */\n this.code = code\n /** @readonly */\n this.version = version\n /** @readonly */\n this.multihash = multihash\n /** @readonly */\n this.bytes = bytes\n\n // flag to serializers that this is a CID and\n // should be treated specially\n /** @readonly */\n this['/'] = bytes\n }\n\n /**\n * Signalling `cid.asCID === cid` has been replaced with `cid['/'] === cid.bytes`\n * please either use `CID.asCID(cid)` or switch to new signalling mechanism\n *\n * @deprecated\n */\n get asCID () {\n return this\n }\n\n // ArrayBufferView\n get byteOffset () {\n return this.bytes.byteOffset\n }\n\n // ArrayBufferView\n get byteLength () {\n return this.bytes.byteLength\n }\n\n /**\n * @returns {CID<Data, API.DAG_PB, API.SHA_256, 0>}\n */\n toV0 () {\n switch (this.version) {\n case 0: {\n return /** @type {CID<Data, API.DAG_PB, API.SHA_256, 0>} */ (this)\n }\n case 1: {\n const { code, multihash } = this\n\n if (code !== DAG_PB_CODE) {\n throw new Error('Cannot convert a non dag-pb CID to CIDv0')\n }\n\n // sha2-256\n if (multihash.code !== SHA_256_CODE) {\n throw new Error('Cannot convert non sha2-256 multihash CID to CIDv0')\n }\n\n return /** @type {CID<Data, API.DAG_PB, API.SHA_256, 0>} */ (\n CID.createV0(\n /** @type {API.MultihashDigest<API.SHA_256>} */ (multihash)\n )\n )\n }\n default: {\n throw Error(\n `Can not convert CID version ${this.version} to version 0. This is a bug please report`\n )\n }\n }\n }\n\n /**\n * @returns {CID<Data, Format, Alg, 1>}\n */\n toV1 () {\n switch (this.version) {\n case 0: {\n const { code, digest } = this.multihash\n const multihash = Digest.create(code, digest)\n return /** @type {CID<Data, Format, Alg, 1>} */ (\n CID.createV1(this.code, multihash)\n )\n }\n case 1: {\n return /** @type {CID<Data, Format, Alg, 1>} */ (this)\n }\n default: {\n throw Error(\n `Can not convert CID version ${this.version} to version 1. This is a bug please report`\n )\n }\n }\n }\n\n /**\n * @param {unknown} other\n * @returns {other is CID<Data, Format, Alg, Version>}\n */\n equals (other) {\n return CID.equals(this, other)\n }\n\n /**\n * @template {unknown} Data\n * @template {number} Format\n * @template {number} Alg\n * @template {API.Version} Version\n * @param {API.Link<Data, Format, Alg, Version>} self\n * @param {unknown} other\n * @returns {other is CID}\n */\n static equals (self, other) {\n const unknown =\n /** @type {{code?:unknown, version?:unknown, multihash?:unknown}} */ (\n other\n )\n return (\n unknown &&\n self.code === unknown.code &&\n self.version === unknown.version &&\n Digest.equals(self.multihash, unknown.multihash)\n )\n }\n\n /**\n * @param {API.MultibaseEncoder<string>} [base]\n * @returns {string}\n */\n toString (base) {\n return format(this, base)\n }\n\n toJSON () {\n return { '/': format(this) }\n }\n\n link () {\n return this\n }\n\n get [Symbol.toStringTag] () {\n return 'CID'\n }\n\n // Legacy\n\n [Symbol.for('nodejs.util.inspect.custom')] () {\n return `CID(${this.toString()})`\n }\n\n /**\n * Takes any input `value` and returns a `CID` instance if it was\n * a `CID` otherwise returns `null`. If `value` is instanceof `CID`\n * it will return value back. If `value` is not instance of this CID\n * class, but is compatible CID it will return new instance of this\n * `CID` class. Otherwise returns null.\n *\n * This allows two different incompatible versions of CID library to\n * co-exist and interop as long as binary interface is compatible.\n *\n * @template {unknown} Data\n * @template {number} Format\n * @template {number} Alg\n * @template {API.Version} Version\n * @template {unknown} U\n * @param {API.Link<Data, Format, Alg, Version>|U} input\n * @returns {CID<Data, Format, Alg, Version>|null}\n */\n static asCID (input) {\n if (input == null) {\n return null\n }\n\n const value = /** @type {any} */ (input)\n if (value instanceof CID) {\n // If value is instance of CID then we're all set.\n return value\n } else if ((value['/'] != null && value['/'] === value.bytes) || value.asCID === value) {\n // If value isn't instance of this CID class but `this.asCID === this` or\n // `value['/'] === value.bytes` is true it is CID instance coming from a\n // different implementation (diff version or duplicate). In that case we\n // rebase it to this `CID` implementation so caller is guaranteed to get\n // instance with expected API.\n const { version, code, multihash, bytes } = value\n return new CID(\n version,\n code,\n /** @type {API.MultihashDigest<Alg>} */ (multihash),\n bytes || encodeCID(version, code, multihash.bytes)\n )\n } else if (value[cidSymbol] === true) {\n // If value is a CID from older implementation that used to be tagged via\n // symbol we still rebase it to the this `CID` implementation by\n // delegating that to a constructor.\n const { version, multihash, code } = value\n const digest =\n /** @type {API.MultihashDigest<Alg>} */\n (Digest.decode(multihash))\n return CID.create(version, code, digest)\n } else {\n // Otherwise value is not a CID (or an incompatible version of it) in\n // which case we return `null`.\n return null\n }\n }\n\n /**\n *\n * @template {unknown} Data\n * @template {number} Format\n * @template {number} Alg\n * @template {API.Version} Version\n * @param {Version} version - Version of the CID\n * @param {Format} code - Code of the codec content is encoded in, see https://github.com/multiformats/multicodec/blob/master/table.csv\n * @param {API.MultihashDigest<Alg>} digest - (Multi)hash of the of the content.\n * @returns {CID<Data, Format, Alg, Version>}\n */\n static create (version, code, digest) {\n if (typeof code !== 'number') {\n throw new Error('String codecs are no longer supported')\n }\n\n if (!(digest.bytes instanceof Uint8Array)) {\n throw new Error('Invalid digest')\n }\n\n switch (version) {\n case 0: {\n if (code !== DAG_PB_CODE) {\n throw new Error(\n `Version 0 CID must use dag-pb (code: ${DAG_PB_CODE}) block encoding`\n )\n } else {\n return new CID(version, code, digest, digest.bytes)\n }\n }\n case 1: {\n const bytes = encodeCID(version, code, digest.bytes)\n return new CID(version, code, digest, bytes)\n }\n default: {\n throw new Error('Invalid version')\n }\n }\n }\n\n /**\n * Simplified version of `create` for CIDv0.\n *\n * @template {unknown} [T=unknown]\n * @param {API.MultihashDigest<typeof SHA_256_CODE>} digest - Multihash.\n * @returns {CID<T, typeof DAG_PB_CODE, typeof SHA_256_CODE, 0>}\n */\n static createV0 (digest) {\n return CID.create(0, DAG_PB_CODE, digest)\n }\n\n /**\n * Simplified version of `create` for CIDv1.\n *\n * @template {unknown} Data\n * @template {number} Code\n * @template {number} Alg\n * @param {Code} code - Content encoding format code.\n * @param {API.MultihashDigest<Alg>} digest - Miltihash of the content.\n * @returns {CID<Data, Code, Alg, 1>}\n */\n static createV1 (code, digest) {\n return CID.create(1, code, digest)\n }\n\n /**\n * Decoded a CID from its binary representation. The byte array must contain\n * only the CID with no additional bytes.\n *\n * An error will be thrown if the bytes provided do not contain a valid\n * binary representation of a CID.\n *\n * @template {unknown} Data\n * @template {number} Code\n * @template {number} Alg\n * @template {API.Version} Ver\n * @param {API.ByteView<API.Link<Data, Code, Alg, Ver>>} bytes\n * @returns {CID<Data, Code, Alg, Ver>}\n */\n static decode (bytes) {\n const [cid, remainder] = CID.decodeFirst(bytes)\n if (remainder.length) {\n throw new Error('Incorrect length')\n }\n return cid\n }\n\n /**\n * Decoded a CID from its binary representation at the beginning of a byte\n * array.\n *\n * Returns an array with the first element containing the CID and the second\n * element containing the remainder of the original byte array. The remainder\n * will be a zero-length byte array if the provided bytes only contained a\n * binary CID representation.\n *\n * @template {unknown} T\n * @template {number} C\n * @template {number} A\n * @template {API.Version} V\n * @param {API.ByteView<API.Link<T, C, A, V>>} bytes\n * @returns {[CID<T, C, A, V>, Uint8Array]}\n */\n static decodeFirst (bytes) {\n const specs = CID.inspectBytes(bytes)\n const prefixSize = specs.size - specs.multihashSize\n const multihashBytes = coerce(\n bytes.subarray(prefixSize, prefixSize + specs.multihashSize)\n )\n if (multihashBytes.byteLength !== specs.multihashSize) {\n throw new Error('Incorrect length')\n }\n const digestBytes = multihashBytes.subarray(\n specs.multihashSize - specs.digestSize\n )\n const digest = new Digest.Digest(\n specs.multihashCode,\n specs.digestSize,\n digestBytes,\n multihashBytes\n )\n const cid =\n specs.version === 0\n ? CID.createV0(/** @type {API.MultihashDigest<API.SHA_256>} */ (digest))\n : CID.createV1(specs.codec, digest)\n return [/** @type {CID<T, C, A, V>} */(cid), bytes.subarray(specs.size)]\n }\n\n /**\n * Inspect the initial bytes of a CID to determine its properties.\n *\n * Involves decoding up to 4 varints. Typically this will require only 4 to 6\n * bytes but for larger multicodec code values and larger multihash digest\n * lengths these varints can be quite large. It is recommended that at least\n * 10 bytes be made available in the `initialBytes` argument for a complete\n * inspection.\n *\n * @template {unknown} T\n * @template {number} C\n * @template {number} A\n * @template {API.Version} V\n * @param {API.ByteView<API.Link<T, C, A, V>>} initialBytes\n * @returns {{ version:V, codec:C, multihashCode:A, digestSize:number, multihashSize:number, size:number }}\n */\n static inspectBytes (initialBytes) {\n let offset = 0\n const next = () => {\n const [i, length] = varint.decode(initialBytes.subarray(offset))\n offset += length\n return i\n }\n\n let version = /** @type {V} */ (next())\n let codec = /** @type {C} */ (DAG_PB_CODE)\n if (/** @type {number} */(version) === 18) {\n // CIDv0\n version = /** @type {V} */ (0)\n offset = 0\n } else {\n codec = /** @type {C} */ (next())\n }\n\n if (version !== 0 && version !== 1) {\n throw new RangeError(`Invalid CID version ${version}`)\n }\n\n const prefixSize = offset\n const multihashCode = /** @type {A} */ (next()) // multihash code\n const digestSize = next() // multihash length\n const size = offset + digestSize\n const multihashSize = size - prefixSize\n\n return { version, codec, multihashCode, digestSize, multihashSize, size }\n }\n\n /**\n * Takes cid in a string representation and creates an instance. If `base`\n * decoder is not provided will use a default from the configuration. It will\n * throw an error if encoding of the CID is not compatible with supplied (or\n * a default decoder).\n *\n * @template {string} Prefix\n * @template {unknown} Data\n * @template {number} Code\n * @template {number} Alg\n * @template {API.Version} Ver\n * @param {API.ToString<API.Link<Data, Code, Alg, Ver>, Prefix>} source\n * @param {API.MultibaseDecoder<Prefix>} [base]\n * @returns {CID<Data, Code, Alg, Ver>}\n */\n static parse (source, base) {\n const [prefix, bytes] = parseCIDtoBytes(source, base)\n\n const cid = CID.decode(bytes)\n\n if (cid.version === 0 && source[0] !== 'Q') {\n throw Error('Version 0 CID string must not include multibase prefix')\n }\n\n // Cache string representation to avoid computing it on `this.toString()`\n baseCache(cid).set(prefix, source)\n\n return cid\n }\n}\n\n/**\n * @template {string} Prefix\n * @template {unknown} Data\n * @template {number} Code\n * @template {number} Alg\n * @template {API.Version} Ver\n * @param {API.ToString<API.Link<Data, Code, Alg, Ver>, Prefix>} source\n * @param {API.MultibaseDecoder<Prefix>} [base]\n * @returns {[Prefix, API.ByteView<API.Link<Data, Code, Alg, Ver>>]}\n */\nconst parseCIDtoBytes = (source, base) => {\n switch (source[0]) {\n // CIDv0 is parsed differently\n case 'Q': {\n const decoder = base || base58btc\n return [\n /** @type {Prefix} */ (base58btc.prefix),\n decoder.decode(`${base58btc.prefix}${source}`)\n ]\n }\n case base58btc.prefix: {\n const decoder = base || base58btc\n return [/** @type {Prefix} */(base58btc.prefix), decoder.decode(source)]\n }\n case base32.prefix: {\n const decoder = base || base32\n return [/** @type {Prefix} */(base32.prefix), decoder.decode(source)]\n }\n default: {\n if (base == null) {\n throw Error(\n 'To parse non base32 or base58btc encoded CID multibase decoder must be provided'\n )\n }\n return [/** @type {Prefix} */(source[0]), base.decode(source)]\n }\n }\n}\n\n/**\n *\n * @param {Uint8Array} bytes\n * @param {Map<string, string>} cache\n * @param {API.MultibaseEncoder<'z'>} base\n */\nconst toStringV0 = (bytes, cache, base) => {\n const { prefix } = base\n if (prefix !== base58btc.prefix) {\n throw Error(`Cannot string encode V0 in ${base.name} encoding`)\n }\n\n const cid = cache.get(prefix)\n if (cid == null) {\n const cid = base.encode(bytes).slice(1)\n cache.set(prefix, cid)\n return cid\n } else {\n return cid\n }\n}\n\n/**\n * @template {string} Prefix\n * @param {Uint8Array} bytes\n * @param {Map<string, string>} cache\n * @param {API.MultibaseEncoder<Prefix>} base\n */\nconst toStringV1 = (bytes, cache, base) => {\n const { prefix } = base\n const cid = cache.get(prefix)\n if (cid == null) {\n const cid = base.encode(bytes)\n cache.set(prefix, cid)\n return cid\n } else {\n return cid\n }\n}\n\nconst DAG_PB_CODE = 0x70\nconst SHA_256_CODE = 0x12\n\n/**\n * @param {API.Version} version\n * @param {number} code\n * @param {Uint8Array} multihash\n * @returns {Uint8Array}\n */\nconst encodeCID = (version, code, multihash) => {\n const codeOffset = varint.encodingLength(version)\n const hashOffset = codeOffset + varint.encodingLength(code)\n const bytes = new Uint8Array(hashOffset + multihash.byteLength)\n varint.encodeTo(version, bytes, 0)\n varint.encodeTo(code, bytes, codeOffset)\n bytes.set(multihash, hashOffset)\n return bytes\n}\n\nconst cidSymbol = Symbol.for('@ipld/js-cid/CID')\n", "import varint from '../vendor/varint.js'\n\n/**\n * @param {Uint8Array} data\n * @param {number} [offset=0]\n * @returns {[number, number]}\n */\nexport const decode = (data, offset = 0) => {\n const code = varint.decode(data, offset)\n return [code, varint.decode.bytes]\n}\n\n/**\n * @param {number} int\n * @param {Uint8Array} target\n * @param {number} [offset=0]\n */\nexport const encodeTo = (int, target, offset = 0) => {\n varint.encode(int, target, offset)\n return target\n}\n\n/**\n * @param {number} int\n * @returns {number}\n */\nexport const encodingLength = (int) => {\n return varint.encodingLength(int)\n}\n", "var encode_1 = encode;\n\nvar MSB = 0x80\n , REST = 0x7F\n , MSBALL = ~REST\n , INT = Math.pow(2, 31);\n\nfunction encode(num, out, offset) {\n out = out || [];\n offset = offset || 0;\n var oldOffset = offset;\n\n while(num >= INT) {\n out[offset++] = (num & 0xFF) | MSB;\n num /= 128;\n }\n while(num & MSBALL) {\n out[offset++] = (num & 0xFF) | MSB;\n num >>>= 7;\n }\n out[offset] = num | 0;\n \n encode.bytes = offset - oldOffset + 1;\n \n return out\n}\n\nvar decode = read;\n\nvar MSB$1 = 0x80\n , REST$1 = 0x7F;\n\nfunction read(buf, offset) {\n var res = 0\n , offset = offset || 0\n , shift = 0\n , counter = offset\n , b\n , l = buf.length;\n\n do {\n if (counter >= l) {\n read.bytes = 0;\n throw new RangeError('Could not decode varint')\n }\n b = buf[counter++];\n res += shift < 28\n ? (b & REST$1) << shift\n : (b & REST$1) * Math.pow(2, shift);\n shift += 7;\n } while (b >= MSB$1)\n\n read.bytes = counter - offset;\n\n return res\n}\n\nvar N1 = Math.pow(2, 7);\nvar N2 = Math.pow(2, 14);\nvar N3 = Math.pow(2, 21);\nvar N4 = Math.pow(2, 28);\nvar N5 = Math.pow(2, 35);\nvar N6 = Math.pow(2, 42);\nvar N7 = Math.pow(2, 49);\nvar N8 = Math.pow(2, 56);\nvar N9 = Math.pow(2, 63);\n\nvar length = function (value) {\n return (\n value < N1 ? 1\n : value < N2 ? 2\n : value < N3 ? 3\n : value < N4 ? 4\n : value < N5 ? 5\n : value < N6 ? 6\n : value < N7 ? 7\n : value < N8 ? 8\n : value < N9 ? 9\n : 10\n )\n};\n\nvar varint = {\n encode: encode_1\n , decode: decode\n , encodingLength: length\n};\n\nvar _brrp_varint = varint;\n\nexport default _brrp_varint;\n", "import { coerce, equals as equalBytes } from '../bytes.js'\nimport * as varint from '../varint.js'\n\n/**\n * Creates a multihash digest.\n *\n * @template {number} Code\n * @param {Code} code\n * @param {Uint8Array} digest\n */\nexport const create = (code, digest) => {\n const size = digest.byteLength\n const sizeOffset = varint.encodingLength(code)\n const digestOffset = sizeOffset + varint.encodingLength(size)\n\n const bytes = new Uint8Array(digestOffset + size)\n varint.encodeTo(code, bytes, 0)\n varint.encodeTo(size, bytes, sizeOffset)\n bytes.set(digest, digestOffset)\n\n return new Digest(code, size, digest, bytes)\n}\n\n/**\n * Turns bytes representation of multihash digest into an instance.\n *\n * @param {Uint8Array} multihash\n * @returns {MultihashDigest}\n */\nexport const decode = (multihash) => {\n const bytes = coerce(multihash)\n const [code, sizeOffset] = varint.decode(bytes)\n const [size, digestOffset] = varint.decode(bytes.subarray(sizeOffset))\n const digest = bytes.subarray(sizeOffset + digestOffset)\n\n if (digest.byteLength !== size) {\n throw new Error('Incorrect length')\n }\n\n return new Digest(code, size, digest, bytes)\n}\n\n/**\n * @param {MultihashDigest} a\n * @param {unknown} b\n * @returns {b is MultihashDigest}\n */\nexport const equals = (a, b) => {\n if (a === b) {\n return true\n } else {\n const data = /** @type {{code?:unknown, size?:unknown, bytes?:unknown}} */(b)\n\n return (\n a.code === data.code &&\n a.size === data.size &&\n data.bytes instanceof Uint8Array &&\n equalBytes(a.bytes, data.bytes)\n )\n }\n}\n\n/**\n * @typedef {import('./interface.js').MultihashDigest} MultihashDigest\n */\n\n/**\n * Represents a multihash digest which carries information about the\n * hashing algorithm and an actual hash digest.\n *\n * @template {number} Code\n * @template {number} Size\n * @class\n * @implements {MultihashDigest}\n */\nexport class Digest {\n /**\n * Creates a multihash digest.\n *\n * @param {Code} code\n * @param {Size} size\n * @param {Uint8Array} digest\n * @param {Uint8Array} bytes\n */\n constructor (code, size, digest, bytes) {\n this.code = code\n this.size = size\n this.digest = digest\n this.bytes = bytes\n }\n}\n", "const empty = new Uint8Array(0)\n\n/**\n * @param {Uint8Array} d\n */\nconst toHex = d => d.reduce((hex, byte) => hex + byte.toString(16).padStart(2, '0'), '')\n\n/**\n * @param {string} hex\n */\nconst fromHex = hex => {\n const hexes = hex.match(/../g)\n return hexes ? new Uint8Array(hexes.map(b => parseInt(b, 16))) : empty\n}\n\n/**\n * @param {Uint8Array} aa\n * @param {Uint8Array} bb\n */\nconst equals = (aa, bb) => {\n if (aa === bb) return true\n if (aa.byteLength !== bb.byteLength) {\n return false\n }\n\n for (let ii = 0; ii < aa.byteLength; ii++) {\n if (aa[ii] !== bb[ii]) {\n return false\n }\n }\n\n return true\n}\n\n/**\n * @param {ArrayBufferView|ArrayBuffer|Uint8Array} o\n * @returns {Uint8Array}\n */\nconst coerce = o => {\n if (o instanceof Uint8Array && o.constructor.name === 'Uint8Array') return o\n if (o instanceof ArrayBuffer) return new Uint8Array(o)\n if (ArrayBuffer.isView(o)) {\n return new Uint8Array(o.buffer, o.byteOffset, o.byteLength)\n }\n throw new Error('Unknown type, must be binary type')\n}\n\n/**\n * @param {any} o\n * @returns {o is ArrayBuffer|ArrayBufferView}\n */\nconst isBinary = o =>\n o instanceof ArrayBuffer || ArrayBuffer.isView(o)\n\n/**\n * @param {string} str\n * @returns {Uint8Array}\n */\nconst fromString = str => (new TextEncoder()).encode(str)\n\n/**\n * @param {Uint8Array} b\n * @returns {string}\n */\nconst toString = b => (new TextDecoder()).decode(b)\n\nexport { equals, coerce, isBinary, fromHex, toHex, fromString, toString, empty }\n", "import { baseX } from './base.js'\n\nexport const base58btc = baseX({\n name: 'base58btc',\n prefix: 'z',\n alphabet: '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'\n})\n\nexport const base58flickr = baseX({\n name: 'base58flickr',\n prefix: 'Z',\n alphabet: '123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ'\n})\n", "import basex from '../../vendor/base-x.js'\nimport { coerce } from '../bytes.js'\n// Linter can't see that API is used in types.\n// eslint-disable-next-line\nimport * as API from './interface.js'\n\n/**\n * Class represents both BaseEncoder and MultibaseEncoder meaning it\n * can be used to encode to multibase or base encode without multibase\n * prefix.\n *\n * @class\n * @template {string} Base\n * @template {string} Prefix\n * @implements {API.MultibaseEncoder<Prefix>}\n * @implements {API.BaseEncoder}\n */\nclass Encoder {\n /**\n * @param {Base} name\n * @param {Prefix} prefix\n * @param {(bytes:Uint8Array) => string} baseEncode\n */\n constructor (name, prefix, baseEncode) {\n this.name = name\n this.prefix = prefix\n this.baseEncode = baseEncode\n }\n\n /**\n * @param {Uint8Array} bytes\n * @returns {API.Multibase<Prefix>}\n */\n encode (bytes) {\n if (bytes instanceof Uint8Array) {\n return `${this.prefix}${this.baseEncode(bytes)}`\n } else {\n throw Error('Unknown type, must be binary type')\n }\n }\n}\n\n/**\n * @template {string} Prefix\n */\n/**\n * Class represents both BaseDecoder and MultibaseDecoder so it could be used\n * to decode multibases (with matching prefix) or just base decode strings\n * with corresponding base encoding.\n *\n * @class\n * @template {string} Base\n * @template {string} Prefix\n * @implements {API.MultibaseDecoder<Prefix>}\n * @implements {API.UnibaseDecoder<Prefix>}\n * @implements {API.BaseDecoder}\n */\nclass Decoder {\n /**\n * @param {Base} name\n * @param {Prefix} prefix\n * @param {(text:string) => Uint8Array} baseDecode\n */\n constructor (name, prefix, baseDecode) {\n this.name = name\n this.prefix = prefix\n /* c8 ignore next 3 */\n if (prefix.codePointAt(0) === undefined) {\n throw new Error('Invalid prefix character')\n }\n /** @private */\n this.prefixCodePoint = /** @type {number} */ (prefix.codePointAt(0))\n this.baseDecode = baseDecode\n }\n\n /**\n * @param {string} text\n */\n decode (text) {\n if (typeof text === 'string') {\n if (text.codePointAt(0) !== this.prefixCodePoint) {\n throw Error(`Unable to decode multibase string ${JSON.stringify(text)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`)\n }\n return this.baseDecode(text.slice(this.prefix.length))\n } else {\n throw Error('Can only multibase decode strings')\n }\n }\n\n /**\n * @template {string} OtherPrefix\n * @param {API.UnibaseDecoder<OtherPrefix>|ComposedDecoder<OtherPrefix>} decoder\n * @returns {ComposedDecoder<Prefix|OtherPrefix>}\n */\n or (decoder) {\n return or(this, decoder)\n }\n}\n\n/**\n * @template {string} Prefix\n * @typedef {Record<Prefix, API.UnibaseDecoder<Prefix>>} Decoders\n */\n\n/**\n * @template {string} Prefix\n * @implements {API.MultibaseDecoder<Prefix>}\n * @implements {API.CombobaseDecoder<Prefix>}\n */\nclass ComposedDecoder {\n /**\n * @param {Decoders<Prefix>} decoders\n */\n constructor (decoders) {\n this.decoders = decoders\n }\n\n /**\n * @template {string} OtherPrefix\n * @param {API.UnibaseDecoder<OtherPrefix>|ComposedDecoder<OtherPrefix>} decoder\n * @returns {ComposedDecoder<Prefix|OtherPrefix>}\n */\n or (decoder) {\n return or(this, decoder)\n }\n\n /**\n * @param {string} input\n * @returns {Uint8Array}\n */\n decode (input) {\n const prefix = /** @type {Prefix} */ (input[0])\n const decoder = this.decoders[prefix]\n if (decoder) {\n return decoder.decode(input)\n } else {\n throw RangeError(`Unable to decode multibase string ${JSON.stringify(input)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)\n }\n }\n}\n\n/**\n * @template {string} L\n * @template {string} R\n * @param {API.UnibaseDecoder<L>|API.CombobaseDecoder<L>} left\n * @param {API.UnibaseDecoder<R>|API.CombobaseDecoder<R>} right\n * @returns {ComposedDecoder<L|R>}\n */\nexport const or = (left, right) => new ComposedDecoder(/** @type {Decoders<L|R>} */({\n ...(left.decoders || { [/** @type API.UnibaseDecoder<L> */(left).prefix]: left }),\n ...(right.decoders || { [/** @type API.UnibaseDecoder<R> */(right).prefix]: right })\n}))\n\n/**\n * @class\n * @template {string} Base\n * @template {string} Prefix\n * @implements {API.MultibaseCodec<Prefix>}\n * @implements {API.MultibaseEncoder<Prefix>}\n * @implements {API.MultibaseDecoder<Prefix>}\n * @implements {API.BaseCodec}\n * @implements {API.BaseEncoder}\n * @implements {API.BaseDecoder}\n */\nexport class Codec {\n /**\n * @param {Base} name\n * @param {Prefix} prefix\n * @param {(bytes:Uint8Array) => string} baseEncode\n * @param {(text:string) => Uint8Array} baseDecode\n */\n constructor (name, prefix, baseEncode, baseDecode) {\n this.name = name\n this.prefix = prefix\n this.baseEncode = baseEncode\n this.baseDecode = baseDecode\n this.encoder = new Encoder(name, prefix, baseEncode)\n this.decoder = new Decoder(name, prefix, baseDecode)\n }\n\n /**\n * @param {Uint8Array} input\n */\n encode (input) {\n return this.encoder.encode(input)\n }\n\n /**\n * @param {string} input\n */\n decode (input) {\n return this.decoder.decode(input)\n }\n}\n\n/**\n * @template {string} Base\n * @template {string} Prefix\n * @param {object} options\n * @param {Base} options.name\n * @param {Prefix} options.prefix\n * @param {(bytes:Uint8Array) => string} options.encode\n * @param {(input:string) => Uint8Array} options.decode\n * @returns {Codec<Base, Prefix>}\n */\nexport const from = ({ name, prefix, encode, decode }) =>\n new Codec(name, prefix, encode, decode)\n\n/**\n * @template {string} Base\n * @template {string} Prefix\n * @param {object} options\n * @param {Base} options.name\n * @param {Prefix} options.prefix\n * @param {string} options.alphabet\n * @returns {Codec<Base, Prefix>}\n */\nexport const baseX = ({ prefix, name, alphabet }) => {\n const { encode, decode } = basex(alphabet, name)\n return from({\n prefix,\n name,\n encode,\n /**\n * @param {string} text\n */\n decode: text => coerce(decode(text))\n })\n}\n\n/**\n * @param {string} string\n * @param {string} alphabet\n * @param {number} bitsPerChar\n * @param {string} name\n * @returns {Uint8Array}\n */\nconst decode = (string, alphabet, bitsPerChar, name) => {\n // Build the character lookup table:\n /** @type {Record<string, number>} */\n const codes = {}\n for (let i = 0; i < alphabet.length; ++i) {\n codes[alphabet[i]] = i\n }\n\n // Count the padding bytes:\n let end = string.length\n while (string[end - 1] === '=') {\n --end\n }\n\n // Allocate the output:\n const out = new Uint8Array((end * bitsPerChar / 8) | 0)\n\n // Parse the data:\n let bits = 0 // Number of bits currently in the buffer\n let buffer = 0 // Bits waiting to be written out, MSB first\n let written = 0 // Next byte to write\n for (let i = 0; i < end; ++i) {\n // Read one character from the string:\n const value = codes[string[i]]\n if (value === undefined) {\n throw new SyntaxError(`Non-${name} character`)\n }\n\n // Append the bits to the buffer:\n buffer = (buffer << bitsPerChar) | value\n bits += bitsPerChar\n\n // Write out some bits if the buffer has a byte's worth:\n if (bits >= 8) {\n bits -= 8\n out[written++] = 0xff & (buffer >> bits)\n }\n }\n\n // Verify that we have received just enough bits:\n if (bits >= bitsPerChar || 0xff & (buffer << (8 - bits))) {\n throw new SyntaxError('Unexpected end of data')\n }\n\n return out\n}\n\n/**\n * @param {Uint8Array} data\n * @param {string} alphabet\n * @param {number} bitsPerChar\n * @returns {string}\n */\nconst encode = (data, alphabet, bitsPerChar) => {\n const pad = alphabet[alphabet.length - 1] === '='\n const mask = (1 << bitsPerChar) - 1\n let out = ''\n\n let bits = 0 // Number of bits currently in the buffer\n let buffer = 0 // Bits waiting to be written out, MSB first\n for (let i = 0; i < data.length; ++i) {\n // Slurp data into the buffer:\n buffer = (buffer << 8) | data[i]\n bits += 8\n\n // Write out as much as we can:\n while (bits > bitsPerChar) {\n bits -= bitsPerChar\n out += alphabet[mask & (buffer >> bits)]\n }\n }\n\n // Partial character:\n if (bits) {\n out += alphabet[mask & (buffer << (bitsPerChar - bits))]\n }\n\n // Add padding characters until we hit a byte boundary:\n if (pad) {\n while ((out.length * bitsPerChar) & 7) {\n out += '='\n }\n }\n\n return out\n}\n\n/**\n * RFC4648 Factory\n *\n * @template {string} Base\n * @template {string} Prefix\n * @param {object} options\n * @param {Base} options.name\n * @param {Prefix} options.prefix\n * @param {string} options.alphabet\n * @param {number} options.bitsPerChar\n */\nexport const rfc4648 = ({ name, prefix, bitsPerChar, alphabet }) => {\n return from({\n prefix,\n name,\n encode (input) {\n return encode(input, alphabet, bitsPerChar)\n },\n decode (input) {\n return decode(input, alphabet, bitsPerChar, name)\n }\n })\n}\n", "// base-x encoding / decoding\n// Copyright (c) 2018 base-x contributors\n// Copyright (c) 2014-2018 The Bitcoin Core developers (base58.cpp)\n// Distributed under the MIT software license, see the accompanying\n// file LICENSE or http://www.opensource.org/licenses/mit-license.php.\nfunction base (ALPHABET, name) {\n if (ALPHABET.length >= 255) { throw new TypeError('Alphabet too long') }\n var BASE_MAP = new Uint8Array(256);\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255;\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i);\n var xc = x.charCodeAt(0);\n if (BASE_MAP[xc] !== 255) { throw new TypeError(x + ' is ambiguous') }\n BASE_MAP[xc] = i;\n }\n var BASE = ALPHABET.length;\n var LEADER = ALPHABET.charAt(0);\n var FACTOR = Math.log(BASE) / Math.log(256); // log(BASE) / log(256), rounded up\n var iFACTOR = Math.log(256) / Math.log(BASE); // log(256) / log(BASE), rounded up\n function encode (source) {\n if (source instanceof Uint8Array) ; else if (ArrayBuffer.isView(source)) {\n source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength);\n } else if (Array.isArray(source)) {\n source = Uint8Array.from(source);\n }\n if (!(source instanceof Uint8Array)) { throw new TypeError('Expected Uint8Array') }\n if (source.length === 0) { return '' }\n // Skip & count leading zeroes.\n var zeroes = 0;\n var length = 0;\n var pbegin = 0;\n var pend = source.length;\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++;\n zeroes++;\n }\n // Allocate enough space in big-endian base58 representation.\n var size = ((pend - pbegin) * iFACTOR + 1) >>> 0;\n var b58 = new Uint8Array(size);\n // Process the bytes.\n while (pbegin !== pend) {\n var carry = source[pbegin];\n // Apply \"b58 = b58 * 256 + ch\".\n var i = 0;\n for (var it1 = size - 1; (carry !== 0 || i < length) && (it1 !== -1); it1--, i++) {\n carry += (256 * b58[it1]) >>> 0;\n b58[it1] = (carry % BASE) >>> 0;\n carry = (carry / BASE) >>> 0;\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i;\n pbegin++;\n }\n // Skip leading zeroes in base58 result.\n var it2 = size - length;\n while (it2 !== size && b58[it2] === 0) {\n it2++;\n }\n // Translate the result into a string.\n var str = LEADER.repeat(zeroes);\n for (; it2 < size; ++it2) { str += ALPHABET.charAt(b58[it2]); }\n return str\n }\n function decodeUnsafe (source) {\n if (typeof source !== 'string') { throw new TypeError('Expected String') }\n if (source.length === 0) { return new Uint8Array() }\n var psz = 0;\n // Skip leading spaces.\n if (source[psz] === ' ') { return }\n // Skip and count leading '1's.\n var zeroes = 0;\n var length = 0;\n while (source[psz] === LEADER) {\n zeroes++;\n psz++;\n }\n // Allocate enough space in big-endian base256 representation.\n var size = (((source.length - psz) * FACTOR) + 1) >>> 0; // log(58) / log(256), rounded up.\n var b256 = new Uint8Array(size);\n // Process the characters.\n while (source[psz]) {\n // Decode character\n var carry = BASE_MAP[source.charCodeAt(psz)];\n // Invalid character\n if (carry === 255) { return }\n var i = 0;\n for (var it3 = size - 1; (carry !== 0 || i < length) && (it3 !== -1); it3--, i++) {\n carry += (BASE * b256[it3]) >>> 0;\n b256[it3] = (carry % 256) >>> 0;\n carry = (carry / 256) >>> 0;\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i;\n psz++;\n }\n // Skip trailing spaces.\n if (source[psz] === ' ') { return }\n // Skip leading zeroes in b256.\n var it4 = size - length;\n while (it4 !== size && b256[it4] === 0) {\n it4++;\n }\n var vch = new Uint8Array(zeroes + (size - it4));\n var j = zeroes;\n while (it4 !== size) {\n vch[j++] = b256[it4++];\n }\n return vch\n }\n function decode (string) {\n var buffer = decodeUnsafe(string);\n if (buffer) { return buffer }\n throw new Error(`Non-${name} character`)\n }\n return {\n encode: encode,\n decodeUnsafe: decodeUnsafe,\n decode: decode\n }\n}\nvar src = base;\n\nvar _brrp__multiformats_scope_baseX = src;\n\nexport default _brrp__multiformats_scope_baseX;\n", "// this is dummy module overlayed by interface.ts\n", "import { rfc4648 } from './base.js'\n\nexport const base32 = rfc4648({\n prefix: 'b',\n name: 'base32',\n alphabet: 'abcdefghijklmnopqrstuvwxyz234567',\n bitsPerChar: 5\n})\n\nexport const base32upper = rfc4648({\n prefix: 'B',\n name: 'base32upper',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567',\n bitsPerChar: 5\n})\n\nexport const base32pad = rfc4648({\n prefix: 'c',\n name: 'base32pad',\n alphabet: 'abcdefghijklmnopqrstuvwxyz234567=',\n bitsPerChar: 5\n})\n\nexport const base32padupper = rfc4648({\n prefix: 'C',\n name: 'base32padupper',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=',\n bitsPerChar: 5\n})\n\nexport const base32hex = rfc4648({\n prefix: 'v',\n name: 'base32hex',\n alphabet: '0123456789abcdefghijklmnopqrstuv',\n bitsPerChar: 5\n})\n\nexport const base32hexupper = rfc4648({\n prefix: 'V',\n name: 'base32hexupper',\n alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUV',\n bitsPerChar: 5\n})\n\nexport const base32hexpad = rfc4648({\n prefix: 't',\n name: 'base32hexpad',\n alphabet: '0123456789abcdefghijklmnopqrstuv=',\n bitsPerChar: 5\n})\n\nexport const base32hexpadupper = rfc4648({\n prefix: 'T',\n name: 'base32hexpadupper',\n alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUV=',\n bitsPerChar: 5\n})\n\nexport const base32z = rfc4648({\n prefix: 'h',\n name: 'base32z',\n alphabet: 'ybndrfg8ejkmcpqxot1uwisza345h769',\n bitsPerChar: 5\n})\n", "// this is dummy module overlayed by interface.ts\n", "import * as Digest from './digest.js'\n\n/**\n * @template {string} Name\n * @template {number} Code\n * @param {object} options\n * @param {Name} options.name\n * @param {Code} options.code\n * @param {(input: Uint8Array) => Await<Uint8Array>} options.encode\n */\nexport const from = ({ name, code, encode }) => new Hasher(name, code, encode)\n\n/**\n * Hasher represents a hashing algorithm implementation that produces as\n * `MultihashDigest`.\n *\n * @template {string} Name\n * @template {number} Code\n * @class\n * @implements {MultihashHasher<Code>}\n */\nexport class Hasher {\n /**\n *\n * @param {Name} name\n * @param {Code} code\n * @param {(input: Uint8Array) => Await<Uint8Array>} encode\n */\n constructor (name, code, encode) {\n this.name = name\n this.code = code\n this.encode = encode\n }\n\n /**\n * @param {Uint8Array} input\n * @returns {Await<Digest.Digest<Code, number>>}\n */\n digest (input) {\n if (input instanceof Uint8Array) {\n const result = this.encode(input)\n return result instanceof Uint8Array\n ? Digest.create(this.code, result)\n /* c8 ignore next 1 */\n : result.then(digest => Digest.create(this.code, digest))\n } else {\n throw Error('Unknown type, must be binary type')\n /* c8 ignore next 1 */\n }\n }\n}\n\n/**\n * @template {number} Alg\n * @typedef {import('./interface.js').MultihashHasher} MultihashHasher\n */\n\n/**\n * @template T\n * @typedef {Promise<T>|T} Await\n */\n", "// this is dummy module overlayed by interface.ts\n", "/* global crypto */\n\nimport { from } from './hasher.js'\n\n/**\n * @param {AlgorithmIdentifier} name\n */\nconst sha = name =>\n /**\n * @param {Uint8Array} data\n */\n async data => new Uint8Array(await crypto.subtle.digest(name, data))\n\nexport const sha256 = from({\n name: 'sha2-256',\n code: 0x12,\n encode: sha('SHA-256')\n})\n\nexport const sha512 = from({\n name: 'sha2-512',\n code: 0x13,\n encode: sha('SHA-512')\n})\n", "// @ts-check\n\nimport { coerce } from '../bytes.js'\n\n/**\n * @template T\n * @typedef {import('./interface.js').ByteView<T>} ByteView\n */\n\nexport const name = 'raw'\nexport const code = 0x55\n\n/**\n * @param {Uint8Array} node\n * @returns {ByteView<Uint8Array>}\n */\nexport const encode = (node) => coerce(node)\n\n/**\n * @param {ByteView<Uint8Array>} data\n * @returns {Uint8Array}\n */\nexport const decode = (data) => coerce(data)\n", "import varint from 'varint'\nimport { Token, Type } from 'cborg'\nimport { tokensToLength } from 'cborg/length'\nimport * as CBOR from '@ipld/dag-cbor'\n\n/**\n * @typedef {import('./api').CID} CID\n * @typedef {import('./api').Block} Block\n * @typedef {import('./api').CarBufferWriter} Writer\n * @typedef {import('./api').CarBufferWriterOptions} Options\n * @typedef {import('./coding').CarEncoder} CarEncoder\n */\n\n/**\n * A simple CAR writer that writes to a pre-allocated buffer.\n *\n * @class\n * @name CarBufferWriter\n * @implements {Writer}\n */\nclass CarBufferWriter {\n /**\n * @param {Uint8Array} bytes\n * @param {number} headerSize\n */\n constructor (bytes, headerSize) {\n /** @readonly */\n this.bytes = bytes\n this.byteOffset = headerSize\n\n /**\n * @readonly\n * @type {CID[]}\n */\n this.roots = []\n this.headerSize = headerSize\n }\n\n /**\n * Add a root to this writer, to be used to create a header when the CAR is\n * finalized with {@link CarBufferWriter.close `close()`}\n *\n * @param {CID} root\n * @param {{resize?:boolean}} [options]\n * @returns {CarBufferWriter}\n */\n addRoot (root, options) {\n addRoot(this, root, options)\n return this\n }\n\n /**\n * Write a `Block` (a `{ cid:CID, bytes:Uint8Array }` pair) to the archive.\n * Throws if there is not enough capacity.\n *\n * @param {Block} block - A `{ cid:CID, bytes:Uint8Array }` pair.\n * @returns {CarBufferWriter}\n */\n write (block) {\n addBlock(this, block)\n return this\n }\n\n /**\n * Finalize the CAR and return it as a `Uint8Array`.\n *\n * @param {object} [options]\n * @param {boolean} [options.resize]\n * @returns {Uint8Array}\n */\n close (options) {\n return close(this, options)\n }\n}\n\n/**\n * @param {CarBufferWriter} writer\n * @param {CID} root\n * @param {{resize?:boolean}} [options]\n */\nexport const addRoot = (writer, root, options = {}) => {\n const { resize = false } = options\n const { bytes, headerSize, byteOffset, roots } = writer\n writer.roots.push(root)\n const size = headerLength(writer)\n // If there is not enough space for the new root\n if (size > headerSize) {\n // Check if we root would fit if we were to resize the head.\n if (size - headerSize + byteOffset < bytes.byteLength) {\n // If resize is enabled resize head\n if (resize) {\n resizeHeader(writer, size)\n // otherwise remove head and throw an error suggesting to resize\n } else {\n roots.pop()\n throw new RangeError(`Header of size ${headerSize} has no capacity for new root ${root}.\n However there is a space in the buffer and you could call addRoot(root, { resize: root }) to resize header to make a space for this root.`)\n }\n // If head would not fit even with resize pop new root and throw error\n } else {\n roots.pop()\n throw new RangeError(`Buffer has no capacity for a new root ${root}`)\n }\n }\n}\n\n/**\n * Calculates number of bytes required for storing given block in CAR. Useful in\n * estimating size of an `ArrayBuffer` for the `CarBufferWriter`.\n *\n * @name CarBufferWriter.blockLength(Block)\n * @param {Block} block\n * @returns {number}\n */\nexport const blockLength = ({ cid, bytes }) => {\n const size = cid.bytes.byteLength + bytes.byteLength\n return varint.encodingLength(size) + size\n}\n\n/**\n * @param {CarBufferWriter} writer\n * @param {Block} block\n */\nexport const addBlock = (writer, { cid, bytes }) => {\n const byteLength = cid.bytes.byteLength + bytes.byteLength\n const size = varint.encode(byteLength)\n if (writer.byteOffset + size.length + byteLength > writer.bytes.byteLength) {\n throw new RangeError('Buffer has no capacity for this block')\n } else {\n writeBytes(writer, size)\n writeBytes(writer, cid.bytes)\n writeBytes(writer, bytes)\n }\n}\n\n/**\n * @param {CarBufferWriter} writer\n * @param {object} [options]\n * @param {boolean} [options.resize]\n */\nexport const close = (writer, options = {}) => {\n const { resize = false } = options\n const { roots, bytes, byteOffset, headerSize } = writer\n\n const headerBytes = CBOR.encode({ version: 1, roots })\n const varintBytes = varint.encode(headerBytes.length)\n\n const size = varintBytes.length + headerBytes.byteLength\n const offset = headerSize - size\n\n // If header size estimate was accurate we just write header and return\n // view into buffer.\n if (offset === 0) {\n writeHeader(writer, varintBytes, headerBytes)\n return bytes.subarray(0, byteOffset)\n // If header was overestimated and `{resize: true}` is passed resize header\n } else if (resize) {\n resizeHeader(writer, size)\n writeHeader(writer, varintBytes, headerBytes)\n return bytes.subarray(0, writer.byteOffset)\n } else {\n throw new RangeError(`Header size was overestimated.\nYou can use close({ resize: true }) to resize header`)\n }\n}\n\n/**\n * @param {CarBufferWriter} writer\n * @param {number} byteLength\n */\nexport const resizeHeader = (writer, byteLength) => {\n const { bytes, headerSize } = writer\n // Move data section to a new offset\n bytes.set(bytes.subarray(headerSize, writer.byteOffset), byteLength)\n // Update header size & byteOffset\n writer.byteOffset += byteLength - headerSize\n writer.headerSize = byteLength\n}\n\n/**\n * @param {CarBufferWriter} writer\n * @param {number[]|Uint8Array} bytes\n */\n\nconst writeBytes = (writer, bytes) => {\n writer.bytes.set(bytes, writer.byteOffset)\n writer.byteOffset += bytes.length\n}\n/**\n * @param {{bytes:Uint8Array}} writer\n * @param {number[]} varint\n * @param {Uint8Array} header\n */\nconst writeHeader = ({ bytes }, varint, header) => {\n bytes.set(varint)\n bytes.set(header, varint.length)\n}\n\nconst headerPreludeTokens = [\n new Token(Type.map, 2),\n new Token(Type.string, 'version'),\n new Token(Type.uint, 1),\n new Token(Type.string, 'roots')\n]\n\nconst CID_TAG = new Token(Type.tag, 42)\n\n/**\n * Calculates header size given the array of byteLength for roots.\n *\n * @name CarBufferWriter.calculateHeaderLength(rootLengths)\n * @param {number[]} rootLengths\n * @returns {number}\n */\nexport const calculateHeaderLength = (rootLengths) => {\n const tokens = [...headerPreludeTokens]\n tokens.push(new Token(Type.array, rootLengths.length))\n for (const rootLength of rootLengths) {\n tokens.push(CID_TAG)\n tokens.push(new Token(Type.bytes, { length: rootLength + 1 }))\n }\n const length = tokensToLength(tokens) // no options needed here because we have simple tokens\n return varint.encodingLength(length) + length\n}\n\n/**\n * Calculates header size given the array of roots.\n *\n * @name CarBufferWriter.headerLength({ roots })\n * @param {object} options\n * @param {CID[]} options.roots\n * @returns {number}\n */\nexport const headerLength = ({ roots }) =>\n calculateHeaderLength(roots.map(cid => cid.bytes.byteLength))\n\n/**\n * Estimates header size given a count of the roots and the expected byte length\n * of the root CIDs. The default length works for a standard CIDv1 with a\n * single-byte multihash code, such as SHA2-256 (i.e. the most common CIDv1).\n *\n * @name CarBufferWriter.estimateHeaderLength(rootCount[, rootByteLength])\n * @param {number} rootCount\n * @param {number} [rootByteLength]\n * @returns {number}\n */\nexport const estimateHeaderLength = (rootCount, rootByteLength = 36) =>\n calculateHeaderLength(new Array(rootCount).fill(rootByteLength))\n\n/**\n * Creates synchronous CAR writer that can be used to encode blocks into a given\n * buffer. Optionally you could pass `byteOffset` and `byteLength` to specify a\n * range inside buffer to write into. If car file is going to have `roots` you\n * need to either pass them under `options.roots` (from which header size will\n * be calculated) or provide `options.headerSize` to allocate required space\n * in the buffer. You may also provide known `roots` and `headerSize` to\n * allocate space for the roots that may not be known ahead of time.\n *\n * Note: Incorrect `headerSize` may lead to copying bytes inside a buffer\n * which will have a negative impact on performance.\n *\n * @name CarBufferWriter.createWriter(buffer[, options])\n * @param {ArrayBuffer} buffer\n * @param {object} [options]\n * @param {CID[]} [options.roots]\n * @param {number} [options.byteOffset]\n * @param {number} [options.byteLength]\n * @param {number} [options.headerSize]\n * @returns {CarBufferWriter}\n */\nexport const createWriter = (buffer, options = {}) => {\n const {\n roots = [],\n byteOffset = 0,\n byteLength = buffer.byteLength,\n headerSize = headerLength({ roots })\n } = options\n const bytes = new Uint8Array(buffer, byteOffset, byteLength)\n\n const writer = new CarBufferWriter(bytes, headerSize)\n for (const root of roots) {\n writer.addRoot(root)\n }\n\n return writer\n}\n", "import { encode } from './lib/encode.js';\nimport { decode } from './lib/decode.js';\nimport {\n Token,\n Type\n} from './lib/token.js';\nexport {\n decode,\n encode,\n Token,\n Type\n};", "import { is } from './is.js';\nimport {\n Token,\n Type\n} from './token.js';\nimport { Bl } from './bl.js';\nimport { encodeErrPrefix } from './common.js';\nimport { quickEncodeToken } from './jump.js';\nimport { asU8A } from './byte-utils.js';\nimport { encodeUint } from './0uint.js';\nimport { encodeNegint } from './1negint.js';\nimport { encodeBytes } from './2bytes.js';\nimport { encodeString } from './3string.js';\nimport { encodeArray } from './4array.js';\nimport { encodeMap } from './5map.js';\nimport { encodeTag } from './6tag.js';\nimport { encodeFloat } from './7float.js';\nconst defaultEncodeOptions = {\n float64: false,\n mapSorter,\n quickEncodeToken\n};\nexport function makeCborEncoders() {\n const encoders = [];\n encoders[Type.uint.major] = encodeUint;\n encoders[Type.negint.major] = encodeNegint;\n encoders[Type.bytes.major] = encodeBytes;\n encoders[Type.string.major] = encodeString;\n encoders[Type.array.major] = encodeArray;\n encoders[Type.map.major] = encodeMap;\n encoders[Type.tag.major] = encodeTag;\n encoders[Type.float.major] = encodeFloat;\n return encoders;\n}\nconst cborEncoders = makeCborEncoders();\nconst buf = new Bl();\nclass Ref {\n constructor(obj, parent) {\n this.obj = obj;\n this.parent = parent;\n }\n includes(obj) {\n let p = this;\n do {\n if (p.obj === obj) {\n return true;\n }\n } while (p = p.parent);\n return false;\n }\n static createCheck(stack, obj) {\n if (stack && stack.includes(obj)) {\n throw new Error(`${ encodeErrPrefix } object contains circular references`);\n }\n return new Ref(obj, stack);\n }\n}\nconst simpleTokens = {\n null: new Token(Type.null, null),\n undefined: new Token(Type.undefined, undefined),\n true: new Token(Type.true, true),\n false: new Token(Type.false, false),\n emptyArray: new Token(Type.array, 0),\n emptyMap: new Token(Type.map, 0)\n};\nconst typeEncoders = {\n number(obj, _typ, _options, _refStack) {\n if (!Number.isInteger(obj) || !Number.isSafeInteger(obj)) {\n return new Token(Type.float, obj);\n } else if (obj >= 0) {\n return new Token(Type.uint, obj);\n } else {\n return new Token(Type.negint, obj);\n }\n },\n bigint(obj, _typ, _options, _refStack) {\n if (obj >= BigInt(0)) {\n return new Token(Type.uint, obj);\n } else {\n return new Token(Type.negint, obj);\n }\n },\n Uint8Array(obj, _typ, _options, _refStack) {\n return new Token(Type.bytes, obj);\n },\n string(obj, _typ, _options, _refStack) {\n return new Token(Type.string, obj);\n },\n boolean(obj, _typ, _options, _refStack) {\n return obj ? simpleTokens.true : simpleTokens.false;\n },\n null(_obj, _typ, _options, _refStack) {\n return simpleTokens.null;\n },\n undefined(_obj, _typ, _options, _refStack) {\n return simpleTokens.undefined;\n },\n ArrayBuffer(obj, _typ, _options, _refStack) {\n return new Token(Type.bytes, new Uint8Array(obj));\n },\n DataView(obj, _typ, _options, _refStack) {\n return new Token(Type.bytes, new Uint8Array(obj.buffer, obj.byteOffset, obj.byteLength));\n },\n Array(obj, _typ, options, refStack) {\n if (!obj.length) {\n if (options.addBreakTokens === true) {\n return [\n simpleTokens.emptyArray,\n new Token(Type.break)\n ];\n }\n return simpleTokens.emptyArray;\n }\n refStack = Ref.createCheck(refStack, obj);\n const entries = [];\n let i = 0;\n for (const e of obj) {\n entries[i++] = objectToTokens(e, options, refStack);\n }\n if (options.addBreakTokens) {\n return [\n new Token(Type.array, obj.length),\n entries,\n new Token(Type.break)\n ];\n }\n return [\n new Token(Type.array, obj.length),\n entries\n ];\n },\n Object(obj, typ, options, refStack) {\n const isMap = typ !== 'Object';\n const keys = isMap ? obj.keys() : Object.keys(obj);\n const length = isMap ? obj.size : keys.length;\n if (!length) {\n if (options.addBreakTokens === true) {\n return [\n simpleTokens.emptyMap,\n new Token(Type.break)\n ];\n }\n return simpleTokens.emptyMap;\n }\n refStack = Ref.createCheck(refStack, obj);\n const entries = [];\n let i = 0;\n for (const key of keys) {\n entries[i++] = [\n objectToTokens(key, options, refStack),\n objectToTokens(isMap ? obj.get(key) : obj[key], options, refStack)\n ];\n }\n sortMapEntries(entries, options);\n if (options.addBreakTokens) {\n return [\n new Token(Type.map, length),\n entries,\n new Token(Type.break)\n ];\n }\n return [\n new Token(Type.map, length),\n entries\n ];\n }\n};\ntypeEncoders.Map = typeEncoders.Object;\ntypeEncoders.Buffer = typeEncoders.Uint8Array;\nfor (const typ of 'Uint8Clamped Uint16 Uint32 Int8 Int16 Int32 BigUint64 BigInt64 Float32 Float64'.split(' ')) {\n typeEncoders[`${ typ }Array`] = typeEncoders.DataView;\n}\nfunction objectToTokens(obj, options = {}, refStack) {\n const typ = is(obj);\n const customTypeEncoder = options && options.typeEncoders && options.typeEncoders[typ] || typeEncoders[typ];\n if (typeof customTypeEncoder === 'function') {\n const tokens = customTypeEncoder(obj, typ, options, refStack);\n if (tokens != null) {\n return tokens;\n }\n }\n const typeEncoder = typeEncoders[typ];\n if (!typeEncoder) {\n throw new Error(`${ encodeErrPrefix } unsupported type: ${ typ }`);\n }\n return typeEncoder(obj, typ, options, refStack);\n}\nfunction sortMapEntries(entries, options) {\n if (options.mapSorter) {\n entries.sort(options.mapSorter);\n }\n}\nfunction mapSorter(e1, e2) {\n const keyToken1 = Array.isArray(e1[0]) ? e1[0][0] : e1[0];\n const keyToken2 = Array.isArray(e2[0]) ? e2[0][0] : e2[0];\n if (keyToken1.type !== keyToken2.type) {\n return keyToken1.type.compare(keyToken2.type);\n }\n const major = keyToken1.type.major;\n const tcmp = cborEncoders[major].compareTokens(keyToken1, keyToken2);\n if (tcmp === 0) {\n console.warn('WARNING: complex key types used, CBOR key sorting guarantees are gone');\n }\n return tcmp;\n}\nfunction tokensToEncoded(buf, tokens, encoders, options) {\n if (Array.isArray(tokens)) {\n for (const token of tokens) {\n tokensToEncoded(buf, token, encoders, options);\n }\n } else {\n encoders[tokens.type.major](buf, tokens, options);\n }\n}\nfunction encodeCustom(data, encoders, options) {\n const tokens = objectToTokens(data, options);\n if (!Array.isArray(tokens) && options.quickEncodeToken) {\n const quickBytes = options.quickEncodeToken(tokens);\n if (quickBytes) {\n return quickBytes;\n }\n const encoder = encoders[tokens.type.major];\n if (encoder.encodedSize) {\n const size = encoder.encodedSize(tokens, options);\n const buf = new Bl(size);\n encoder(buf, tokens, options);\n if (buf.chunks.length !== 1) {\n throw new Error(`Unexpected error: pre-calculated length for ${ tokens } was wrong`);\n }\n return asU8A(buf.chunks[0]);\n }\n }\n buf.reset();\n tokensToEncoded(buf, tokens, encoders, options);\n return buf.toBytes(true);\n}\nfunction encode(data, options) {\n options = Object.assign({}, defaultEncodeOptions, options);\n return encodeCustom(data, cborEncoders, options);\n}\nexport {\n objectToTokens,\n encode,\n encodeCustom,\n Ref\n};", "const typeofs = [\n 'string',\n 'number',\n 'bigint',\n 'symbol'\n];\nconst objectTypeNames = [\n 'Function',\n 'Generator',\n 'AsyncGenerator',\n 'GeneratorFunction',\n 'AsyncGeneratorFunction',\n 'AsyncFunction',\n 'Observable',\n 'Array',\n 'Buffer',\n 'Object',\n 'RegExp',\n 'Date',\n 'Error',\n 'Map',\n 'Set',\n 'WeakMap',\n 'WeakSet',\n 'ArrayBuffer',\n 'SharedArrayBuffer',\n 'DataView',\n 'Promise',\n 'URL',\n 'HTMLElement',\n 'Int8Array',\n 'Uint8Array',\n 'Uint8ClampedArray',\n 'Int16Array',\n 'Uint16Array',\n 'Int32Array',\n 'Uint32Array',\n 'Float32Array',\n 'Float64Array',\n 'BigInt64Array',\n 'BigUint64Array'\n];\nexport function is(value) {\n if (value === null) {\n return 'null';\n }\n if (value === undefined) {\n return 'undefined';\n }\n if (value === true || value === false) {\n return 'boolean';\n }\n const typeOf = typeof value;\n if (typeofs.includes(typeOf)) {\n return typeOf;\n }\n if (typeOf === 'function') {\n return 'Function';\n }\n if (Array.isArray(value)) {\n return 'Array';\n }\n if (isBuffer(value)) {\n return 'Buffer';\n }\n const objectType = getObjectType(value);\n if (objectType) {\n return objectType;\n }\n return 'Object';\n}\nfunction isBuffer(value) {\n return value && value.constructor && value.constructor.isBuffer && value.constructor.isBuffer.call(null, value);\n}\nfunction getObjectType(value) {\n const objectTypeName = Object.prototype.toString.call(value).slice(8, -1);\n if (objectTypeNames.includes(objectTypeName)) {\n return objectTypeName;\n }\n return undefined;\n}", "class Type {\n constructor(major, name, terminal) {\n this.major = major;\n this.majorEncoded = major << 5;\n this.name = name;\n this.terminal = terminal;\n }\n toString() {\n return `Type[${ this.major }].${ this.name }`;\n }\n compare(typ) {\n return this.major < typ.major ? -1 : this.major > typ.major ? 1 : 0;\n }\n}\nType.uint = new Type(0, 'uint', true);\nType.negint = new Type(1, 'negint', true);\nType.bytes = new Type(2, 'bytes', true);\nType.string = new Type(3, 'string', true);\nType.array = new Type(4, 'array', false);\nType.map = new Type(5, 'map', false);\nType.tag = new Type(6, 'tag', false);\nType.float = new Type(7, 'float', true);\nType.false = new Type(7, 'false', true);\nType.true = new Type(7, 'true', true);\nType.null = new Type(7, 'null', true);\nType.undefined = new Type(7, 'undefined', true);\nType.break = new Type(7, 'break', true);\nclass Token {\n constructor(type, value, encodedLength) {\n this.type = type;\n this.value = value;\n this.encodedLength = encodedLength;\n this.encodedBytes = undefined;\n this.byteValue = undefined;\n }\n toString() {\n return `Token[${ this.type }].${ this.value }`;\n }\n}\nexport {\n Type,\n Token\n};", "import {\n alloc,\n concat,\n slice\n} from './byte-utils.js';\nconst defaultChunkSize = 256;\nexport class Bl {\n constructor(chunkSize = defaultChunkSize) {\n this.chunkSize = chunkSize;\n this.cursor = 0;\n this.maxCursor = -1;\n this.chunks = [];\n this._initReuseChunk = null;\n }\n reset() {\n this.cursor = 0;\n this.maxCursor = -1;\n if (this.chunks.length) {\n this.chunks = [];\n }\n if (this._initReuseChunk !== null) {\n this.chunks.push(this._initReuseChunk);\n this.maxCursor = this._initReuseChunk.length - 1;\n }\n }\n push(bytes) {\n let topChunk = this.chunks[this.chunks.length - 1];\n const newMax = this.cursor + bytes.length;\n if (newMax <= this.maxCursor + 1) {\n const chunkPos = topChunk.length - (this.maxCursor - this.cursor) - 1;\n topChunk.set(bytes, chunkPos);\n } else {\n if (topChunk) {\n const chunkPos = topChunk.length - (this.maxCursor - this.cursor) - 1;\n if (chunkPos < topChunk.length) {\n this.chunks[this.chunks.length - 1] = topChunk.subarray(0, chunkPos);\n this.maxCursor = this.cursor - 1;\n }\n }\n if (bytes.length < 64 && bytes.length < this.chunkSize) {\n topChunk = alloc(this.chunkSize);\n this.chunks.push(topChunk);\n this.maxCursor += topChunk.length;\n if (this._initReuseChunk === null) {\n this._initReuseChunk = topChunk;\n }\n topChunk.set(bytes, 0);\n } else {\n this.chunks.push(bytes);\n this.maxCursor += bytes.length;\n }\n }\n this.cursor += bytes.length;\n }\n toBytes(reset = false) {\n let byts;\n if (this.chunks.length === 1) {\n const chunk = this.chunks[0];\n if (reset && this.cursor > chunk.length / 2) {\n byts = this.cursor === chunk.length ? chunk : chunk.subarray(0, this.cursor);\n this._initReuseChunk = null;\n this.chunks = [];\n } else {\n byts = slice(chunk, 0, this.cursor);\n }\n } else {\n byts = concat(this.chunks, this.cursor);\n }\n if (reset) {\n this.reset();\n }\n return byts;\n }\n}", "export const useBuffer = globalThis.process && !globalThis.process.browser && globalThis.Buffer && typeof globalThis.Buffer.isBuffer === 'function';\nconst textDecoder = new TextDecoder();\nconst textEncoder = new TextEncoder();\nfunction isBuffer(buf) {\n return useBuffer && globalThis.Buffer.isBuffer(buf);\n}\nexport function asU8A(buf) {\n if (!(buf instanceof Uint8Array)) {\n return Uint8Array.from(buf);\n }\n return isBuffer(buf) ? new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength) : buf;\n}\nexport const toString = useBuffer ? (bytes, start, end) => {\n return end - start > 64 ? globalThis.Buffer.from(bytes.subarray(start, end)).toString('utf8') : utf8Slice(bytes, start, end);\n} : (bytes, start, end) => {\n return end - start > 64 ? textDecoder.decode(bytes.subarray(start, end)) : utf8Slice(bytes, start, end);\n};\nexport const fromString = useBuffer ? string => {\n return string.length > 64 ? globalThis.Buffer.from(string) : utf8ToBytes(string);\n} : string => {\n return string.length > 64 ? textEncoder.encode(string) : utf8ToBytes(string);\n};\nexport const fromArray = arr => {\n return Uint8Array.from(arr);\n};\nexport const slice = useBuffer ? (bytes, start, end) => {\n if (isBuffer(bytes)) {\n return new Uint8Array(bytes.subarray(start, end));\n }\n return bytes.slice(start, end);\n} : (bytes, start, end) => {\n return bytes.slice(start, end);\n};\nexport const concat = useBuffer ? (chunks, length) => {\n chunks = chunks.map(c => c instanceof Uint8Array ? c : globalThis.Buffer.from(c));\n return asU8A(globalThis.Buffer.concat(chunks, length));\n} : (chunks, length) => {\n const out = new Uint8Array(length);\n let off = 0;\n for (let b of chunks) {\n if (off + b.length > out.length) {\n b = b.subarray(0, out.length - off);\n }\n out.set(b, off);\n off += b.length;\n }\n return out;\n};\nexport const alloc = useBuffer ? size => {\n return globalThis.Buffer.allocUnsafe(size);\n} : size => {\n return new Uint8Array(size);\n};\nexport const toHex = useBuffer ? d => {\n if (typeof d === 'string') {\n return d;\n }\n return globalThis.Buffer.from(toBytes(d)).toString('hex');\n} : d => {\n if (typeof d === 'string') {\n return d;\n }\n return Array.prototype.reduce.call(toBytes(d), (p, c) => `${ p }${ c.toString(16).padStart(2, '0') }`, '');\n};\nexport const fromHex = useBuffer ? hex => {\n if (hex instanceof Uint8Array) {\n return hex;\n }\n return globalThis.Buffer.from(hex, 'hex');\n} : hex => {\n if (hex instanceof Uint8Array) {\n return hex;\n }\n if (!hex.length) {\n return new Uint8Array(0);\n }\n return new Uint8Array(hex.split('').map((c, i, d) => i % 2 === 0 ? `0x${ c }${ d[i + 1] }` : '').filter(Boolean).map(e => parseInt(e, 16)));\n};\nfunction toBytes(obj) {\n if (obj instanceof Uint8Array && obj.constructor.name === 'Uint8Array') {\n return obj;\n }\n if (obj instanceof ArrayBuffer) {\n return new Uint8Array(obj);\n }\n if (ArrayBuffer.isView(obj)) {\n return new Uint8Array(obj.buffer, obj.byteOffset, obj.byteLength);\n }\n throw new Error('Unknown type, must be binary type');\n}\nexport function compare(b1, b2) {\n if (isBuffer(b1) && isBuffer(b2)) {\n return b1.compare(b2);\n }\n for (let i = 0; i < b1.length; i++) {\n if (b1[i] === b2[i]) {\n continue;\n }\n return b1[i] < b2[i] ? -1 : 1;\n }\n return 0;\n}\nfunction utf8ToBytes(string, units = Infinity) {\n let codePoint;\n const length = string.length;\n let leadSurrogate = null;\n const bytes = [];\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i);\n if (codePoint > 55295 && codePoint < 57344) {\n if (!leadSurrogate) {\n if (codePoint > 56319) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n continue;\n } else if (i + 1 === length) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n continue;\n }\n leadSurrogate = codePoint;\n continue;\n }\n if (codePoint < 56320) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n leadSurrogate = codePoint;\n continue;\n }\n codePoint = (leadSurrogate - 55296 << 10 | codePoint - 56320) + 65536;\n } else if (leadSurrogate) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n }\n leadSurrogate = null;\n if (codePoint < 128) {\n if ((units -= 1) < 0)\n break;\n bytes.push(codePoint);\n } else if (codePoint < 2048) {\n if ((units -= 2) < 0)\n break;\n bytes.push(codePoint >> 6 | 192, codePoint & 63 | 128);\n } else if (codePoint < 65536) {\n if ((units -= 3) < 0)\n break;\n bytes.push(codePoint >> 12 | 224, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n } else if (codePoint < 1114112) {\n if ((units -= 4) < 0)\n break;\n bytes.push(codePoint >> 18 | 240, codePoint >> 12 & 63 | 128, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n } else {\n throw new Error('Invalid code point');\n }\n }\n return bytes;\n}\nfunction utf8Slice(buf, offset, end) {\n const res = [];\n while (offset < end) {\n const firstByte = buf[offset];\n let codePoint = null;\n let bytesPerSequence = firstByte > 239 ? 4 : firstByte > 223 ? 3 : firstByte > 191 ? 2 : 1;\n if (offset + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint;\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 128) {\n codePoint = firstByte;\n }\n break;\n case 2:\n secondByte = buf[offset + 1];\n if ((secondByte & 192) === 128) {\n tempCodePoint = (firstByte & 31) << 6 | secondByte & 63;\n if (tempCodePoint > 127) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 3:\n secondByte = buf[offset + 1];\n thirdByte = buf[offset + 2];\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 12 | (secondByte & 63) << 6 | thirdByte & 63;\n if (tempCodePoint > 2047 && (tempCodePoint < 55296 || tempCodePoint > 57343)) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 4:\n secondByte = buf[offset + 1];\n thirdByte = buf[offset + 2];\n fourthByte = buf[offset + 3];\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128 && (fourthByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 18 | (secondByte & 63) << 12 | (thirdByte & 63) << 6 | fourthByte & 63;\n if (tempCodePoint > 65535 && tempCodePoint < 1114112) {\n codePoint = tempCodePoint;\n }\n }\n }\n }\n if (codePoint === null) {\n codePoint = 65533;\n bytesPerSequence = 1;\n } else if (codePoint > 65535) {\n codePoint -= 65536;\n res.push(codePoint >>> 10 & 1023 | 55296);\n codePoint = 56320 | codePoint & 1023;\n }\n res.push(codePoint);\n offset += bytesPerSequence;\n }\n return decodeCodePointsArray(res);\n}\nconst MAX_ARGUMENTS_LENGTH = 4096;\nexport function decodeCodePointsArray(codePoints) {\n const len = codePoints.length;\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints);\n }\n let res = '';\n let i = 0;\n while (i < len) {\n res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH));\n }\n return res;\n}", "const decodeErrPrefix = 'CBOR decode error:';\nconst encodeErrPrefix = 'CBOR encode error:';\nconst uintMinorPrefixBytes = [];\nuintMinorPrefixBytes[23] = 1;\nuintMinorPrefixBytes[24] = 2;\nuintMinorPrefixBytes[25] = 3;\nuintMinorPrefixBytes[26] = 5;\nuintMinorPrefixBytes[27] = 9;\nfunction assertEnoughData(data, pos, need) {\n if (data.length - pos < need) {\n throw new Error(`${ decodeErrPrefix } not enough data for type`);\n }\n}\nexport {\n decodeErrPrefix,\n encodeErrPrefix,\n uintMinorPrefixBytes,\n assertEnoughData\n};", "import {\n Token,\n Type\n} from './token.js';\nimport * as uint from './0uint.js';\nimport * as negint from './1negint.js';\nimport * as bytes from './2bytes.js';\nimport * as string from './3string.js';\nimport * as array from './4array.js';\nimport * as map from './5map.js';\nimport * as tag from './6tag.js';\nimport * as float from './7float.js';\nimport { decodeErrPrefix } from './common.js';\nimport { fromArray } from './byte-utils.js';\nfunction invalidMinor(data, pos, minor) {\n throw new Error(`${ decodeErrPrefix } encountered invalid minor (${ minor }) for major ${ data[pos] >>> 5 }`);\n}\nfunction errorer(msg) {\n return () => {\n throw new Error(`${ decodeErrPrefix } ${ msg }`);\n };\n}\nexport const jump = [];\nfor (let i = 0; i <= 23; i++) {\n jump[i] = invalidMinor;\n}\njump[24] = uint.decodeUint8;\njump[25] = uint.decodeUint16;\njump[26] = uint.decodeUint32;\njump[27] = uint.decodeUint64;\njump[28] = invalidMinor;\njump[29] = invalidMinor;\njump[30] = invalidMinor;\njump[31] = invalidMinor;\nfor (let i = 32; i <= 55; i++) {\n jump[i] = invalidMinor;\n}\njump[56] = negint.decodeNegint8;\njump[57] = negint.decodeNegint16;\njump[58] = negint.decodeNegint32;\njump[59] = negint.decodeNegint64;\njump[60] = invalidMinor;\njump[61] = invalidMinor;\njump[62] = invalidMinor;\njump[63] = invalidMinor;\nfor (let i = 64; i <= 87; i++) {\n jump[i] = bytes.decodeBytesCompact;\n}\njump[88] = bytes.decodeBytes8;\njump[89] = bytes.decodeBytes16;\njump[90] = bytes.decodeBytes32;\njump[91] = bytes.decodeBytes64;\njump[92] = invalidMinor;\njump[93] = invalidMinor;\njump[94] = invalidMinor;\njump[95] = errorer('indefinite length bytes/strings are not supported');\nfor (let i = 96; i <= 119; i++) {\n jump[i] = string.decodeStringCompact;\n}\njump[120] = string.decodeString8;\njump[121] = string.decodeString16;\njump[122] = string.decodeString32;\njump[123] = string.decodeString64;\njump[124] = invalidMinor;\njump[125] = invalidMinor;\njump[126] = invalidMinor;\njump[127] = errorer('indefinite length bytes/strings are not supported');\nfor (let i = 128; i <= 151; i++) {\n jump[i] = array.decodeArrayCompact;\n}\njump[152] = array.decodeArray8;\njump[153] = array.decodeArray16;\njump[154] = array.decodeArray32;\njump[155] = array.decodeArray64;\njump[156] = invalidMinor;\njump[157] = invalidMinor;\njump[158] = invalidMinor;\njump[159] = array.decodeArrayIndefinite;\nfor (let i = 160; i <= 183; i++) {\n jump[i] = map.decodeMapCompact;\n}\njump[184] = map.decodeMap8;\njump[185] = map.decodeMap16;\njump[186] = map.decodeMap32;\njump[187] = map.decodeMap64;\njump[188] = invalidMinor;\njump[189] = invalidMinor;\njump[190] = invalidMinor;\njump[191] = map.decodeMapIndefinite;\nfor (let i = 192; i <= 215; i++) {\n jump[i] = tag.decodeTagCompact;\n}\njump[216] = tag.decodeTag8;\njump[217] = tag.decodeTag16;\njump[218] = tag.decodeTag32;\njump[219] = tag.decodeTag64;\njump[220] = invalidMinor;\njump[221] = invalidMinor;\njump[222] = invalidMinor;\njump[223] = invalidMinor;\nfor (let i = 224; i <= 243; i++) {\n jump[i] = errorer('simple values are not supported');\n}\njump[244] = invalidMinor;\njump[245] = invalidMinor;\njump[246] = invalidMinor;\njump[247] = float.decodeUndefined;\njump[248] = errorer('simple values are not supported');\njump[249] = float.decodeFloat16;\njump[250] = float.decodeFloat32;\njump[251] = float.decodeFloat64;\njump[252] = invalidMinor;\njump[253] = invalidMinor;\njump[254] = invalidMinor;\njump[255] = float.decodeBreak;\nexport const quick = [];\nfor (let i = 0; i < 24; i++) {\n quick[i] = new Token(Type.uint, i, 1);\n}\nfor (let i = -1; i >= -24; i--) {\n quick[31 - i] = new Token(Type.negint, i, 1);\n}\nquick[64] = new Token(Type.bytes, new Uint8Array(0), 1);\nquick[96] = new Token(Type.string, '', 1);\nquick[128] = new Token(Type.array, 0, 1);\nquick[160] = new Token(Type.map, 0, 1);\nquick[244] = new Token(Type.false, false, 1);\nquick[245] = new Token(Type.true, true, 1);\nquick[246] = new Token(Type.null, null, 1);\nexport function quickEncodeToken(token) {\n switch (token.type) {\n case Type.false:\n return fromArray([244]);\n case Type.true:\n return fromArray([245]);\n case Type.null:\n return fromArray([246]);\n case Type.bytes:\n if (!token.value.length) {\n return fromArray([64]);\n }\n return;\n case Type.string:\n if (token.value === '') {\n return fromArray([96]);\n }\n return;\n case Type.array:\n if (token.value === 0) {\n return fromArray([128]);\n }\n return;\n case Type.map:\n if (token.value === 0) {\n return fromArray([160]);\n }\n return;\n case Type.uint:\n if (token.value < 24) {\n return fromArray([Number(token.value)]);\n }\n return;\n case Type.negint:\n if (token.value >= -24) {\n return fromArray([31 - Number(token.value)]);\n }\n }\n}", "import {\n Token,\n Type\n} from './token.js';\nimport {\n decodeErrPrefix,\n assertEnoughData\n} from './common.js';\nexport const uintBoundaries = [\n 24,\n 256,\n 65536,\n 4294967296,\n BigInt('18446744073709551616')\n];\nexport function readUint8(data, offset, options) {\n assertEnoughData(data, offset, 1);\n const value = data[offset];\n if (options.strict === true && value < uintBoundaries[0]) {\n throw new Error(`${ decodeErrPrefix } integer encoded in more bytes than necessary (strict decode)`);\n }\n return value;\n}\nexport function readUint16(data, offset, options) {\n assertEnoughData(data, offset, 2);\n const value = data[offset] << 8 | data[offset + 1];\n if (options.strict === true && value < uintBoundaries[1]) {\n throw new Error(`${ decodeErrPrefix } integer encoded in more bytes than necessary (strict decode)`);\n }\n return value;\n}\nexport function readUint32(data, offset, options) {\n assertEnoughData(data, offset, 4);\n const value = data[offset] * 16777216 + (data[offset + 1] << 16) + (data[offset + 2] << 8) + data[offset + 3];\n if (options.strict === true && value < uintBoundaries[2]) {\n throw new Error(`${ decodeErrPrefix } integer encoded in more bytes than necessary (strict decode)`);\n }\n return value;\n}\nexport function readUint64(data, offset, options) {\n assertEnoughData(data, offset, 8);\n const hi = data[offset] * 16777216 + (data[offset + 1] << 16) + (data[offset + 2] << 8) + data[offset + 3];\n const lo = data[offset + 4] * 16777216 + (data[offset + 5] << 16) + (data[offset + 6] << 8) + data[offset + 7];\n const value = (BigInt(hi) << BigInt(32)) + BigInt(lo);\n if (options.strict === true && value < uintBoundaries[3]) {\n throw new Error(`${ decodeErrPrefix } integer encoded in more bytes than necessary (strict decode)`);\n }\n if (value <= Number.MAX_SAFE_INTEGER) {\n return Number(value);\n }\n if (options.allowBigInt === true) {\n return value;\n }\n throw new Error(`${ decodeErrPrefix } integers outside of the safe integer range are not supported`);\n}\nexport function decodeUint8(data, pos, _minor, options) {\n return new Token(Type.uint, readUint8(data, pos + 1, options), 2);\n}\nexport function decodeUint16(data, pos, _minor, options) {\n return new Token(Type.uint, readUint16(data, pos + 1, options), 3);\n}\nexport function decodeUint32(data, pos, _minor, options) {\n return new Token(Type.uint, readUint32(data, pos + 1, options), 5);\n}\nexport function decodeUint64(data, pos, _minor, options) {\n return new Token(Type.uint, readUint64(data, pos + 1, options), 9);\n}\nexport function encodeUint(buf, token) {\n return encodeUintValue(buf, 0, token.value);\n}\nexport function encodeUintValue(buf, major, uint) {\n if (uint < uintBoundaries[0]) {\n const nuint = Number(uint);\n buf.push([major | nuint]);\n } else if (uint < uintBoundaries[1]) {\n const nuint = Number(uint);\n buf.push([\n major | 24,\n nuint\n ]);\n } else if (uint < uintBoundaries[2]) {\n const nuint = Number(uint);\n buf.push([\n major | 25,\n nuint >>> 8,\n nuint & 255\n ]);\n } else if (uint < uintBoundaries[3]) {\n const nuint = Number(uint);\n buf.push([\n major | 26,\n nuint >>> 24 & 255,\n nuint >>> 16 & 255,\n nuint >>> 8 & 255,\n nuint & 255\n ]);\n } else {\n const buint = BigInt(uint);\n if (buint < uintBoundaries[4]) {\n const set = [\n major | 27,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0\n ];\n let lo = Number(buint & BigInt(4294967295));\n let hi = Number(buint >> BigInt(32) & BigInt(4294967295));\n set[8] = lo & 255;\n lo = lo >> 8;\n set[7] = lo & 255;\n lo = lo >> 8;\n set[6] = lo & 255;\n lo = lo >> 8;\n set[5] = lo & 255;\n set[4] = hi & 255;\n hi = hi >> 8;\n set[3] = hi & 255;\n hi = hi >> 8;\n set[2] = hi & 255;\n hi = hi >> 8;\n set[1] = hi & 255;\n buf.push(set);\n } else {\n throw new Error(`${ decodeErrPrefix } encountered BigInt larger than allowable range`);\n }\n }\n}\nencodeUint.encodedSize = function encodedSize(token) {\n return encodeUintValue.encodedSize(token.value);\n};\nencodeUintValue.encodedSize = function encodedSize(uint) {\n if (uint < uintBoundaries[0]) {\n return 1;\n }\n if (uint < uintBoundaries[1]) {\n return 2;\n }\n if (uint < uintBoundaries[2]) {\n return 3;\n }\n if (uint < uintBoundaries[3]) {\n return 5;\n }\n return 9;\n};\nencodeUint.compareTokens = function compareTokens(tok1, tok2) {\n return tok1.value < tok2.value ? -1 : tok1.value > tok2.value ? 1 : 0;\n};", "import {\n Token,\n Type\n} from './token.js';\nimport * as uint from './0uint.js';\nimport { decodeErrPrefix } from './common.js';\nexport function decodeNegint8(data, pos, _minor, options) {\n return new Token(Type.negint, -1 - uint.readUint8(data, pos + 1, options), 2);\n}\nexport function decodeNegint16(data, pos, _minor, options) {\n return new Token(Type.negint, -1 - uint.readUint16(data, pos + 1, options), 3);\n}\nexport function decodeNegint32(data, pos, _minor, options) {\n return new Token(Type.negint, -1 - uint.readUint32(data, pos + 1, options), 5);\n}\nconst neg1b = BigInt(-1);\nconst pos1b = BigInt(1);\nexport function decodeNegint64(data, pos, _minor, options) {\n const int = uint.readUint64(data, pos + 1, options);\n if (typeof int !== 'bigint') {\n const value = -1 - int;\n if (value >= Number.MIN_SAFE_INTEGER) {\n return new Token(Type.negint, value, 9);\n }\n }\n if (options.allowBigInt !== true) {\n throw new Error(`${ decodeErrPrefix } integers outside of the safe integer range are not supported`);\n }\n return new Token(Type.negint, neg1b - BigInt(int), 9);\n}\nexport function encodeNegint(buf, token) {\n const negint = token.value;\n const unsigned = typeof negint === 'bigint' ? negint * neg1b - pos1b : negint * -1 - 1;\n uint.encodeUintValue(buf, token.type.majorEncoded, unsigned);\n}\nencodeNegint.encodedSize = function encodedSize(token) {\n const negint = token.value;\n const unsigned = typeof negint === 'bigint' ? negint * neg1b - pos1b : negint * -1 - 1;\n if (unsigned < uint.uintBoundaries[0]) {\n return 1;\n }\n if (unsigned < uint.uintBoundaries[1]) {\n return 2;\n }\n if (unsigned < uint.uintBoundaries[2]) {\n return 3;\n }\n if (unsigned < uint.uintBoundaries[3]) {\n return 5;\n }\n return 9;\n};\nencodeNegint.compareTokens = function compareTokens(tok1, tok2) {\n return tok1.value < tok2.value ? 1 : tok1.value > tok2.value ? -1 : 0;\n};", "import {\n Token,\n Type\n} from './token.js';\nimport {\n assertEnoughData,\n decodeErrPrefix\n} from './common.js';\nimport * as uint from './0uint.js';\nimport {\n compare,\n fromString,\n slice\n} from './byte-utils.js';\nfunction toToken(data, pos, prefix, length) {\n assertEnoughData(data, pos, prefix + length);\n const buf = slice(data, pos + prefix, pos + prefix + length);\n return new Token(Type.bytes, buf, prefix + length);\n}\nexport function decodeBytesCompact(data, pos, minor, _options) {\n return toToken(data, pos, 1, minor);\n}\nexport function decodeBytes8(data, pos, _minor, options) {\n return toToken(data, pos, 2, uint.readUint8(data, pos + 1, options));\n}\nexport function decodeBytes16(data, pos, _minor, options) {\n return toToken(data, pos, 3, uint.readUint16(data, pos + 1, options));\n}\nexport function decodeBytes32(data, pos, _minor, options) {\n return toToken(data, pos, 5, uint.readUint32(data, pos + 1, options));\n}\nexport function decodeBytes64(data, pos, _minor, options) {\n const l = uint.readUint64(data, pos + 1, options);\n if (typeof l === 'bigint') {\n throw new Error(`${ decodeErrPrefix } 64-bit integer bytes lengths not supported`);\n }\n return toToken(data, pos, 9, l);\n}\nfunction tokenBytes(token) {\n if (token.encodedBytes === undefined) {\n token.encodedBytes = token.type === Type.string ? fromString(token.value) : token.value;\n }\n return token.encodedBytes;\n}\nexport function encodeBytes(buf, token) {\n const bytes = tokenBytes(token);\n uint.encodeUintValue(buf, token.type.majorEncoded, bytes.length);\n buf.push(bytes);\n}\nencodeBytes.encodedSize = function encodedSize(token) {\n const bytes = tokenBytes(token);\n return uint.encodeUintValue.encodedSize(bytes.length) + bytes.length;\n};\nencodeBytes.compareTokens = function compareTokens(tok1, tok2) {\n return compareBytes(tokenBytes(tok1), tokenBytes(tok2));\n};\nexport function compareBytes(b1, b2) {\n return b1.length < b2.length ? -1 : b1.length > b2.length ? 1 : compare(b1, b2);\n}", "import {\n Token,\n Type\n} from './token.js';\nimport {\n assertEnoughData,\n decodeErrPrefix\n} from './common.js';\nimport * as uint from './0uint.js';\nimport { encodeBytes } from './2bytes.js';\nimport {\n toString,\n slice\n} from './byte-utils.js';\nfunction toToken(data, pos, prefix, length, options) {\n const totLength = prefix + length;\n assertEnoughData(data, pos, totLength);\n const tok = new Token(Type.string, toString(data, pos + prefix, pos + totLength), totLength);\n if (options.retainStringBytes === true) {\n tok.byteValue = slice(data, pos + prefix, pos + totLength);\n }\n return tok;\n}\nexport function decodeStringCompact(data, pos, minor, options) {\n return toToken(data, pos, 1, minor, options);\n}\nexport function decodeString8(data, pos, _minor, options) {\n return toToken(data, pos, 2, uint.readUint8(data, pos + 1, options), options);\n}\nexport function decodeString16(data, pos, _minor, options) {\n return toToken(data, pos, 3, uint.readUint16(data, pos + 1, options), options);\n}\nexport function decodeString32(data, pos, _minor, options) {\n return toToken(data, pos, 5, uint.readUint32(data, pos + 1, options), options);\n}\nexport function decodeString64(data, pos, _minor, options) {\n const l = uint.readUint64(data, pos + 1, options);\n if (typeof l === 'bigint') {\n throw new Error(`${ decodeErrPrefix } 64-bit integer string lengths not supported`);\n }\n return toToken(data, pos, 9, l, options);\n}\nexport const encodeString = encodeBytes;", "import {\n Token,\n Type\n} from './token.js';\nimport * as uint from './0uint.js';\nimport { decodeErrPrefix } from './common.js';\nfunction toToken(_data, _pos, prefix, length) {\n return new Token(Type.array, length, prefix);\n}\nexport function decodeArrayCompact(data, pos, minor, _options) {\n return toToken(data, pos, 1, minor);\n}\nexport function decodeArray8(data, pos, _minor, options) {\n return toToken(data, pos, 2, uint.readUint8(data, pos + 1, options));\n}\nexport function decodeArray16(data, pos, _minor, options) {\n return toToken(data, pos, 3, uint.readUint16(data, pos + 1, options));\n}\nexport function decodeArray32(data, pos, _minor, options) {\n return toToken(data, pos, 5, uint.readUint32(data, pos + 1, options));\n}\nexport function decodeArray64(data, pos, _minor, options) {\n const l = uint.readUint64(data, pos + 1, options);\n if (typeof l === 'bigint') {\n throw new Error(`${ decodeErrPrefix } 64-bit integer array lengths not supported`);\n }\n return toToken(data, pos, 9, l);\n}\nexport function decodeArrayIndefinite(data, pos, _minor, options) {\n if (options.allowIndefinite === false) {\n throw new Error(`${ decodeErrPrefix } indefinite length items not allowed`);\n }\n return toToken(data, pos, 1, Infinity);\n}\nexport function encodeArray(buf, token) {\n uint.encodeUintValue(buf, Type.array.majorEncoded, token.value);\n}\nencodeArray.compareTokens = uint.encodeUint.compareTokens;\nencodeArray.encodedSize = function encodedSize(token) {\n return uint.encodeUintValue.encodedSize(token.value);\n};", "import {\n Token,\n Type\n} from './token.js';\nimport * as uint from './0uint.js';\nimport { decodeErrPrefix } from './common.js';\nfunction toToken(_data, _pos, prefix, length) {\n return new Token(Type.map, length, prefix);\n}\nexport function decodeMapCompact(data, pos, minor, _options) {\n return toToken(data, pos, 1, minor);\n}\nexport function decodeMap8(data, pos, _minor, options) {\n return toToken(data, pos, 2, uint.readUint8(data, pos + 1, options));\n}\nexport function decodeMap16(data, pos, _minor, options) {\n return toToken(data, pos, 3, uint.readUint16(data, pos + 1, options));\n}\nexport function decodeMap32(data, pos, _minor, options) {\n return toToken(data, pos, 5, uint.readUint32(data, pos + 1, options));\n}\nexport function decodeMap64(data, pos, _minor, options) {\n const l = uint.readUint64(data, pos + 1, options);\n if (typeof l === 'bigint') {\n throw new Error(`${ decodeErrPrefix } 64-bit integer map lengths not supported`);\n }\n return toToken(data, pos, 9, l);\n}\nexport function decodeMapIndefinite(data, pos, _minor, options) {\n if (options.allowIndefinite === false) {\n throw new Error(`${ decodeErrPrefix } indefinite length items not allowed`);\n }\n return toToken(data, pos, 1, Infinity);\n}\nexport function encodeMap(buf, token) {\n uint.encodeUintValue(buf, Type.map.majorEncoded, token.value);\n}\nencodeMap.compareTokens = uint.encodeUint.compareTokens;\nencodeMap.encodedSize = function encodedSize(token) {\n return uint.encodeUintValue.encodedSize(token.value);\n};", "import {\n Token,\n Type\n} from './token.js';\nimport * as uint from './0uint.js';\nexport function decodeTagCompact(_data, _pos, minor, _options) {\n return new Token(Type.tag, minor, 1);\n}\nexport function decodeTag8(data, pos, _minor, options) {\n return new Token(Type.tag, uint.readUint8(data, pos + 1, options), 2);\n}\nexport function decodeTag16(data, pos, _minor, options) {\n return new Token(Type.tag, uint.readUint16(data, pos + 1, options), 3);\n}\nexport function decodeTag32(data, pos, _minor, options) {\n return new Token(Type.tag, uint.readUint32(data, pos + 1, options), 5);\n}\nexport function decodeTag64(data, pos, _minor, options) {\n return new Token(Type.tag, uint.readUint64(data, pos + 1, options), 9);\n}\nexport function encodeTag(buf, token) {\n uint.encodeUintValue(buf, Type.tag.majorEncoded, token.value);\n}\nencodeTag.compareTokens = uint.encodeUint.compareTokens;\nencodeTag.encodedSize = function encodedSize(token) {\n return uint.encodeUintValue.encodedSize(token.value);\n};", "import {\n Token,\n Type\n} from './token.js';\nimport { decodeErrPrefix } from './common.js';\nimport { encodeUint } from './0uint.js';\nconst MINOR_FALSE = 20;\nconst MINOR_TRUE = 21;\nconst MINOR_NULL = 22;\nconst MINOR_UNDEFINED = 23;\nexport function decodeUndefined(_data, _pos, _minor, options) {\n if (options.allowUndefined === false) {\n throw new Error(`${ decodeErrPrefix } undefined values are not supported`);\n } else if (options.coerceUndefinedToNull === true) {\n return new Token(Type.null, null, 1);\n }\n return new Token(Type.undefined, undefined, 1);\n}\nexport function decodeBreak(_data, _pos, _minor, options) {\n if (options.allowIndefinite === false) {\n throw new Error(`${ decodeErrPrefix } indefinite length items not allowed`);\n }\n return new Token(Type.break, undefined, 1);\n}\nfunction createToken(value, bytes, options) {\n if (options) {\n if (options.allowNaN === false && Number.isNaN(value)) {\n throw new Error(`${ decodeErrPrefix } NaN values are not supported`);\n }\n if (options.allowInfinity === false && (value === Infinity || value === -Infinity)) {\n throw new Error(`${ decodeErrPrefix } Infinity values are not supported`);\n }\n }\n return new Token(Type.float, value, bytes);\n}\nexport function decodeFloat16(data, pos, _minor, options) {\n return createToken(readFloat16(data, pos + 1), 3, options);\n}\nexport function decodeFloat32(data, pos, _minor, options) {\n return createToken(readFloat32(data, pos + 1), 5, options);\n}\nexport function decodeFloat64(data, pos, _minor, options) {\n return createToken(readFloat64(data, pos + 1), 9, options);\n}\nexport function encodeFloat(buf, token, options) {\n const float = token.value;\n if (float === false) {\n buf.push([Type.float.majorEncoded | MINOR_FALSE]);\n } else if (float === true) {\n buf.push([Type.float.majorEncoded | MINOR_TRUE]);\n } else if (float === null) {\n buf.push([Type.float.majorEncoded | MINOR_NULL]);\n } else if (float === undefined) {\n buf.push([Type.float.majorEncoded | MINOR_UNDEFINED]);\n } else {\n let decoded;\n let success = false;\n if (!options || options.float64 !== true) {\n encodeFloat16(float);\n decoded = readFloat16(ui8a, 1);\n if (float === decoded || Number.isNaN(float)) {\n ui8a[0] = 249;\n buf.push(ui8a.slice(0, 3));\n success = true;\n } else {\n encodeFloat32(float);\n decoded = readFloat32(ui8a, 1);\n if (float === decoded) {\n ui8a[0] = 250;\n buf.push(ui8a.slice(0, 5));\n success = true;\n }\n }\n }\n if (!success) {\n encodeFloat64(float);\n decoded = readFloat64(ui8a, 1);\n ui8a[0] = 251;\n buf.push(ui8a.slice(0, 9));\n }\n }\n}\nencodeFloat.encodedSize = function encodedSize(token, options) {\n const float = token.value;\n if (float === false || float === true || float === null || float === undefined) {\n return 1;\n }\n if (!options || options.float64 !== true) {\n encodeFloat16(float);\n let decoded = readFloat16(ui8a, 1);\n if (float === decoded || Number.isNaN(float)) {\n return 3;\n }\n encodeFloat32(float);\n decoded = readFloat32(ui8a, 1);\n if (float === decoded) {\n return 5;\n }\n }\n return 9;\n};\nconst buffer = new ArrayBuffer(9);\nconst dataView = new DataView(buffer, 1);\nconst ui8a = new Uint8Array(buffer, 0);\nfunction encodeFloat16(inp) {\n if (inp === Infinity) {\n dataView.setUint16(0, 31744, false);\n } else if (inp === -Infinity) {\n dataView.setUint16(0, 64512, false);\n } else if (Number.isNaN(inp)) {\n dataView.setUint16(0, 32256, false);\n } else {\n dataView.setFloat32(0, inp);\n const valu32 = dataView.getUint32(0);\n const exponent = (valu32 & 2139095040) >> 23;\n const mantissa = valu32 & 8388607;\n if (exponent === 255) {\n dataView.setUint16(0, 31744, false);\n } else if (exponent === 0) {\n dataView.setUint16(0, (inp & 2147483648) >> 16 | mantissa >> 13, false);\n } else {\n const logicalExponent = exponent - 127;\n if (logicalExponent < -24) {\n dataView.setUint16(0, 0);\n } else if (logicalExponent < -14) {\n dataView.setUint16(0, (valu32 & 2147483648) >> 16 | 1 << 24 + logicalExponent, false);\n } else {\n dataView.setUint16(0, (valu32 & 2147483648) >> 16 | logicalExponent + 15 << 10 | mantissa >> 13, false);\n }\n }\n }\n}\nfunction readFloat16(ui8a, pos) {\n if (ui8a.length - pos < 2) {\n throw new Error(`${ decodeErrPrefix } not enough data for float16`);\n }\n const half = (ui8a[pos] << 8) + ui8a[pos + 1];\n if (half === 31744) {\n return Infinity;\n }\n if (half === 64512) {\n return -Infinity;\n }\n if (half === 32256) {\n return NaN;\n }\n const exp = half >> 10 & 31;\n const mant = half & 1023;\n let val;\n if (exp === 0) {\n val = mant * 2 ** -24;\n } else if (exp !== 31) {\n val = (mant + 1024) * 2 ** (exp - 25);\n } else {\n val = mant === 0 ? Infinity : NaN;\n }\n return half & 32768 ? -val : val;\n}\nfunction encodeFloat32(inp) {\n dataView.setFloat32(0, inp, false);\n}\nfunction readFloat32(ui8a, pos) {\n if (ui8a.length - pos < 4) {\n throw new Error(`${ decodeErrPrefix } not enough data for float32`);\n }\n const offset = (ui8a.byteOffset || 0) + pos;\n return new DataView(ui8a.buffer, offset, 4).getFloat32(0, false);\n}\nfunction encodeFloat64(inp) {\n dataView.setFloat64(0, inp, false);\n}\nfunction readFloat64(ui8a, pos) {\n if (ui8a.length - pos < 8) {\n throw new Error(`${ decodeErrPrefix } not enough data for float64`);\n }\n const offset = (ui8a.byteOffset || 0) + pos;\n return new DataView(ui8a.buffer, offset, 8).getFloat64(0, false);\n}\nencodeFloat.compareTokens = encodeUint.compareTokens;", "import { decodeErrPrefix } from './common.js';\nimport { Type } from './token.js';\nimport {\n jump,\n quick\n} from './jump.js';\nconst defaultDecodeOptions = {\n strict: false,\n allowIndefinite: true,\n allowUndefined: true,\n allowBigInt: true\n};\nclass Tokeniser {\n constructor(data, options = {}) {\n this.pos = 0;\n this.data = data;\n this.options = options;\n }\n done() {\n return this.pos >= this.data.length;\n }\n next() {\n const byt = this.data[this.pos];\n let token = quick[byt];\n if (token === undefined) {\n const decoder = jump[byt];\n if (!decoder) {\n throw new Error(`${ decodeErrPrefix } no decoder for major type ${ byt >>> 5 } (byte 0x${ byt.toString(16).padStart(2, '0') })`);\n }\n const minor = byt & 31;\n token = decoder(this.data, this.pos, minor, this.options);\n }\n this.pos += token.encodedLength;\n return token;\n }\n}\nconst DONE = Symbol.for('DONE');\nconst BREAK = Symbol.for('BREAK');\nfunction tokenToArray(token, tokeniser, options) {\n const arr = [];\n for (let i = 0; i < token.value; i++) {\n const value = tokensToObject(tokeniser, options);\n if (value === BREAK) {\n if (token.value === Infinity) {\n break;\n }\n throw new Error(`${ decodeErrPrefix } got unexpected break to lengthed array`);\n }\n if (value === DONE) {\n throw new Error(`${ decodeErrPrefix } found array but not enough entries (got ${ i }, expected ${ token.value })`);\n }\n arr[i] = value;\n }\n return arr;\n}\nfunction tokenToMap(token, tokeniser, options) {\n const useMaps = options.useMaps === true;\n const obj = useMaps ? undefined : {};\n const m = useMaps ? new Map() : undefined;\n for (let i = 0; i < token.value; i++) {\n const key = tokensToObject(tokeniser, options);\n if (key === BREAK) {\n if (token.value === Infinity) {\n break;\n }\n throw new Error(`${ decodeErrPrefix } got unexpected break to lengthed map`);\n }\n if (key === DONE) {\n throw new Error(`${ decodeErrPrefix } found map but not enough entries (got ${ i } [no key], expected ${ token.value })`);\n }\n if (useMaps !== true && typeof key !== 'string') {\n throw new Error(`${ decodeErrPrefix } non-string keys not supported (got ${ typeof key })`);\n }\n if (options.rejectDuplicateMapKeys === true) {\n if (useMaps && m.has(key) || !useMaps && key in obj) {\n throw new Error(`${ decodeErrPrefix } found repeat map key \"${ key }\"`);\n }\n }\n const value = tokensToObject(tokeniser, options);\n if (value === DONE) {\n throw new Error(`${ decodeErrPrefix } found map but not enough entries (got ${ i } [no value], expected ${ token.value })`);\n }\n if (useMaps) {\n m.set(key, value);\n } else {\n obj[key] = value;\n }\n }\n return useMaps ? m : obj;\n}\nfunction tokensToObject(tokeniser, options) {\n if (tokeniser.done()) {\n return DONE;\n }\n const token = tokeniser.next();\n if (token.type === Type.break) {\n return BREAK;\n }\n if (token.type.terminal) {\n return token.value;\n }\n if (token.type === Type.array) {\n return tokenToArray(token, tokeniser, options);\n }\n if (token.type === Type.map) {\n return tokenToMap(token, tokeniser, options);\n }\n if (token.type === Type.tag) {\n if (options.tags && typeof options.tags[token.value] === 'function') {\n const tagged = tokensToObject(tokeniser, options);\n return options.tags[token.value](tagged);\n }\n throw new Error(`${ decodeErrPrefix } tag not supported (${ token.value })`);\n }\n throw new Error('unsupported');\n}\nfunction decode(data, options) {\n if (!(data instanceof Uint8Array)) {\n throw new Error(`${ decodeErrPrefix } data to decode must be a Uint8Array`);\n }\n options = Object.assign({}, defaultDecodeOptions, options);\n const tokeniser = options.tokenizer || new Tokeniser(data, options);\n const decoded = tokensToObject(tokeniser, options);\n if (decoded === DONE) {\n throw new Error(`${ decodeErrPrefix } did not find any content to decode`);\n }\n if (decoded === BREAK) {\n throw new Error(`${ decodeErrPrefix } got unexpected break`);\n }\n if (!tokeniser.done()) {\n throw new Error(`${ decodeErrPrefix } too many terminals, data makes no sense`);\n }\n return decoded;\n}\nexport {\n Tokeniser,\n tokensToObject,\n decode\n};", "import {\n makeCborEncoders,\n objectToTokens\n} from './encode.js';\nimport { quickEncodeToken } from './jump.js';\nconst cborEncoders = makeCborEncoders();\nconst defaultEncodeOptions = {\n float64: false,\n quickEncodeToken\n};\nexport function encodedLength(data, options) {\n options = Object.assign({}, defaultEncodeOptions, options);\n options.mapSorter = undefined;\n const tokens = objectToTokens(data, options);\n return tokensToLength(tokens, cborEncoders, options);\n}\nexport function tokensToLength(tokens, encoders = cborEncoders, options = defaultEncodeOptions) {\n if (Array.isArray(tokens)) {\n let len = 0;\n for (const token of tokens) {\n len += tokensToLength(token, encoders, options);\n }\n return len;\n } else {\n const encoder = encoders[tokens.type.major];\n if (encoder.encodedSize === undefined || typeof encoder.encodedSize !== 'function') {\n throw new Error(`Encoder for ${ tokens.type.name } does not have an encodedSize()`);\n }\n return encoder.encodedSize(tokens, options);\n }\n}", "import * as cborg from 'cborg'\nimport { CID } from 'multiformats/cid'\n\n// https://github.com/ipfs/go-ipfs/issues/3570#issuecomment-273931692\nconst CID_CBOR_TAG = 42\n\n/**\n * @template T\n * @typedef {import('multiformats/codecs/interface').ByteView<T>} ByteView\n */\n\n/**\n * cidEncoder will receive all Objects during encode, it needs to filter out\n * anything that's not a CID and return `null` for that so it's encoded as\n * normal.\n *\n * @param {any} obj\n * @returns {cborg.Token[]|null}\n */\nfunction cidEncoder (obj) {\n if (obj.asCID !== obj && obj['/'] !== obj.bytes) {\n return null // any other kind of object\n }\n const cid = CID.asCID(obj)\n /* c8 ignore next 4 */\n // very unlikely case, and it'll probably throw a recursion error in cborg\n if (!cid) {\n return null\n }\n const bytes = new Uint8Array(cid.bytes.byteLength + 1)\n bytes.set(cid.bytes, 1) // prefix is 0x00, for historical reasons\n return [\n new cborg.Token(cborg.Type.tag, CID_CBOR_TAG),\n new cborg.Token(cborg.Type.bytes, bytes)\n ]\n}\n\n// eslint-disable-next-line jsdoc/require-returns-check\n/**\n * Intercept all `undefined` values from an object walk and reject the entire\n * object if we find one.\n *\n * @returns {null}\n */\nfunction undefinedEncoder () {\n throw new Error('`undefined` is not supported by the IPLD Data Model and cannot be encoded')\n}\n\n/**\n * Intercept all `number` values from an object walk and reject the entire\n * object if we find something that doesn't fit the IPLD data model (NaN &\n * Infinity).\n *\n * @param {number} num\n * @returns {null}\n */\nfunction numberEncoder (num) {\n if (Number.isNaN(num)) {\n throw new Error('`NaN` is not supported by the IPLD Data Model and cannot be encoded')\n }\n if (num === Infinity || num === -Infinity) {\n throw new Error('`Infinity` and `-Infinity` is not supported by the IPLD Data Model and cannot be encoded')\n }\n return null\n}\n\nconst encodeOptions = {\n float64: true,\n typeEncoders: {\n Object: cidEncoder,\n undefined: undefinedEncoder,\n number: numberEncoder\n }\n}\n\n/**\n * @param {Uint8Array} bytes\n * @returns {CID}\n */\nfunction cidDecoder (bytes) {\n if (bytes[0] !== 0) {\n throw new Error('Invalid CID for CBOR tag 42; expected leading 0x00')\n }\n return CID.decode(bytes.subarray(1)) // ignore leading 0x00\n}\n\nconst decodeOptions = {\n allowIndefinite: false,\n coerceUndefinedToNull: true,\n allowNaN: false,\n allowInfinity: false,\n allowBigInt: true, // this will lead to BigInt for ints outside of\n // safe-integer range, which may surprise users\n strict: true,\n useMaps: false,\n rejectDuplicateMapKeys: true,\n /** @type {import('cborg').TagDecoder[]} */\n tags: []\n}\ndecodeOptions.tags[CID_CBOR_TAG] = cidDecoder\n\nexport const name = 'dag-cbor'\nexport const code = 0x71\n\n/**\n * @template T\n * @param {T} node\n * @returns {ByteView<T>}\n */\nexport const encode = (node) => cborg.encode(node, encodeOptions)\n\n/**\n * @template T\n * @param {ByteView<T>} data\n * @returns {T}\n */\nexport const decode = (data) => cborg.decode(data, decodeOptions)\n", "import { encode } from './lib/encode.js';\nimport { decode } from './lib/decode.js';\nimport {\n Token,\n Type\n} from './lib/token.js';\nexport {\n decode,\n encode,\n Token,\n Type\n};", "import { is } from './is.js';\nimport {\n Token,\n Type\n} from './token.js';\nimport { Bl } from './bl.js';\nimport { encodeErrPrefix } from './common.js';\nimport { quickEncodeToken } from './jump.js';\nimport { asU8A } from './byte-utils.js';\nimport { encodeUint } from './0uint.js';\nimport { encodeNegint } from './1negint.js';\nimport { encodeBytes } from './2bytes.js';\nimport { encodeString } from './3string.js';\nimport { encodeArray } from './4array.js';\nimport { encodeMap } from './5map.js';\nimport { encodeTag } from './6tag.js';\nimport { encodeFloat } from './7float.js';\nconst defaultEncodeOptions = {\n float64: false,\n mapSorter,\n quickEncodeToken\n};\nexport function makeCborEncoders() {\n const encoders = [];\n encoders[Type.uint.major] = encodeUint;\n encoders[Type.negint.major] = encodeNegint;\n encoders[Type.bytes.major] = encodeBytes;\n encoders[Type.string.major] = encodeString;\n encoders[Type.array.major] = encodeArray;\n encoders[Type.map.major] = encodeMap;\n encoders[Type.tag.major] = encodeTag;\n encoders[Type.float.major] = encodeFloat;\n return encoders;\n}\nconst cborEncoders = makeCborEncoders();\nconst buf = new Bl();\nclass Ref {\n constructor(obj, parent) {\n this.obj = obj;\n this.parent = parent;\n }\n includes(obj) {\n let p = this;\n do {\n if (p.obj === obj) {\n return true;\n }\n } while (p = p.parent);\n return false;\n }\n static createCheck(stack, obj) {\n if (stack && stack.includes(obj)) {\n throw new Error(`${ encodeErrPrefix } object contains circular references`);\n }\n return new Ref(obj, stack);\n }\n}\nconst simpleTokens = {\n null: new Token(Type.null, null),\n undefined: new Token(Type.undefined, undefined),\n true: new Token(Type.true, true),\n false: new Token(Type.false, false),\n emptyArray: new Token(Type.array, 0),\n emptyMap: new Token(Type.map, 0)\n};\nconst typeEncoders = {\n number(obj, _typ, _options, _refStack) {\n if (!Number.isInteger(obj) || !Number.isSafeInteger(obj)) {\n return new Token(Type.float, obj);\n } else if (obj >= 0) {\n return new Token(Type.uint, obj);\n } else {\n return new Token(Type.negint, obj);\n }\n },\n bigint(obj, _typ, _options, _refStack) {\n if (obj >= BigInt(0)) {\n return new Token(Type.uint, obj);\n } else {\n return new Token(Type.negint, obj);\n }\n },\n Uint8Array(obj, _typ, _options, _refStack) {\n return new Token(Type.bytes, obj);\n },\n string(obj, _typ, _options, _refStack) {\n return new Token(Type.string, obj);\n },\n boolean(obj, _typ, _options, _refStack) {\n return obj ? simpleTokens.true : simpleTokens.false;\n },\n null(_obj, _typ, _options, _refStack) {\n return simpleTokens.null;\n },\n undefined(_obj, _typ, _options, _refStack) {\n return simpleTokens.undefined;\n },\n ArrayBuffer(obj, _typ, _options, _refStack) {\n return new Token(Type.bytes, new Uint8Array(obj));\n },\n DataView(obj, _typ, _options, _refStack) {\n return new Token(Type.bytes, new Uint8Array(obj.buffer, obj.byteOffset, obj.byteLength));\n },\n Array(obj, _typ, options, refStack) {\n if (!obj.length) {\n if (options.addBreakTokens === true) {\n return [\n simpleTokens.emptyArray,\n new Token(Type.break)\n ];\n }\n return simpleTokens.emptyArray;\n }\n refStack = Ref.createCheck(refStack, obj);\n const entries = [];\n let i = 0;\n for (const e of obj) {\n entries[i++] = objectToTokens(e, options, refStack);\n }\n if (options.addBreakTokens) {\n return [\n new Token(Type.array, obj.length),\n entries,\n new Token(Type.break)\n ];\n }\n return [\n new Token(Type.array, obj.length),\n entries\n ];\n },\n Object(obj, typ, options, refStack) {\n const isMap = typ !== 'Object';\n const keys = isMap ? obj.keys() : Object.keys(obj);\n const length = isMap ? obj.size : keys.length;\n if (!length) {\n if (options.addBreakTokens === true) {\n return [\n simpleTokens.emptyMap,\n new Token(Type.break)\n ];\n }\n return simpleTokens.emptyMap;\n }\n refStack = Ref.createCheck(refStack, obj);\n const entries = [];\n let i = 0;\n for (const key of keys) {\n entries[i++] = [\n objectToTokens(key, options, refStack),\n objectToTokens(isMap ? obj.get(key) : obj[key], options, refStack)\n ];\n }\n sortMapEntries(entries, options);\n if (options.addBreakTokens) {\n return [\n new Token(Type.map, length),\n entries,\n new Token(Type.break)\n ];\n }\n return [\n new Token(Type.map, length),\n entries\n ];\n }\n};\ntypeEncoders.Map = typeEncoders.Object;\ntypeEncoders.Buffer = typeEncoders.Uint8Array;\nfor (const typ of 'Uint8Clamped Uint16 Uint32 Int8 Int16 Int32 BigUint64 BigInt64 Float32 Float64'.split(' ')) {\n typeEncoders[`${ typ }Array`] = typeEncoders.DataView;\n}\nfunction objectToTokens(obj, options = {}, refStack) {\n const typ = is(obj);\n const customTypeEncoder = options && options.typeEncoders && options.typeEncoders[typ] || typeEncoders[typ];\n if (typeof customTypeEncoder === 'function') {\n const tokens = customTypeEncoder(obj, typ, options, refStack);\n if (tokens != null) {\n return tokens;\n }\n }\n const typeEncoder = typeEncoders[typ];\n if (!typeEncoder) {\n throw new Error(`${ encodeErrPrefix } unsupported type: ${ typ }`);\n }\n return typeEncoder(obj, typ, options, refStack);\n}\nfunction sortMapEntries(entries, options) {\n if (options.mapSorter) {\n entries.sort(options.mapSorter);\n }\n}\nfunction mapSorter(e1, e2) {\n const keyToken1 = Array.isArray(e1[0]) ? e1[0][0] : e1[0];\n const keyToken2 = Array.isArray(e2[0]) ? e2[0][0] : e2[0];\n if (keyToken1.type !== keyToken2.type) {\n return keyToken1.type.compare(keyToken2.type);\n }\n const major = keyToken1.type.major;\n const tcmp = cborEncoders[major].compareTokens(keyToken1, keyToken2);\n if (tcmp === 0) {\n console.warn('WARNING: complex key types used, CBOR key sorting guarantees are gone');\n }\n return tcmp;\n}\nfunction tokensToEncoded(buf, tokens, encoders, options) {\n if (Array.isArray(tokens)) {\n for (const token of tokens) {\n tokensToEncoded(buf, token, encoders, options);\n }\n } else {\n encoders[tokens.type.major](buf, tokens, options);\n }\n}\nfunction encodeCustom(data, encoders, options) {\n const tokens = objectToTokens(data, options);\n if (!Array.isArray(tokens) && options.quickEncodeToken) {\n const quickBytes = options.quickEncodeToken(tokens);\n if (quickBytes) {\n return quickBytes;\n }\n const encoder = encoders[tokens.type.major];\n if (encoder.encodedSize) {\n const size = encoder.encodedSize(tokens, options);\n const buf = new Bl(size);\n encoder(buf, tokens, options);\n if (buf.chunks.length !== 1) {\n throw new Error(`Unexpected error: pre-calculated length for ${ tokens } was wrong`);\n }\n return asU8A(buf.chunks[0]);\n }\n }\n buf.reset();\n tokensToEncoded(buf, tokens, encoders, options);\n return buf.toBytes(true);\n}\nfunction encode(data, options) {\n options = Object.assign({}, defaultEncodeOptions, options);\n return encodeCustom(data, cborEncoders, options);\n}\nexport {\n objectToTokens,\n encode,\n encodeCustom,\n Ref\n};", "const typeofs = [\n 'string',\n 'number',\n 'bigint',\n 'symbol'\n];\nconst objectTypeNames = [\n 'Function',\n 'Generator',\n 'AsyncGenerator',\n 'GeneratorFunction',\n 'AsyncGeneratorFunction',\n 'AsyncFunction',\n 'Observable',\n 'Array',\n 'Buffer',\n 'Object',\n 'RegExp',\n 'Date',\n 'Error',\n 'Map',\n 'Set',\n 'WeakMap',\n 'WeakSet',\n 'ArrayBuffer',\n 'SharedArrayBuffer',\n 'DataView',\n 'Promise',\n 'URL',\n 'HTMLElement',\n 'Int8Array',\n 'Uint8Array',\n 'Uint8ClampedArray',\n 'Int16Array',\n 'Uint16Array',\n 'Int32Array',\n 'Uint32Array',\n 'Float32Array',\n 'Float64Array',\n 'BigInt64Array',\n 'BigUint64Array'\n];\nexport function is(value) {\n if (value === null) {\n return 'null';\n }\n if (value === undefined) {\n return 'undefined';\n }\n if (value === true || value === false) {\n return 'boolean';\n }\n const typeOf = typeof value;\n if (typeofs.includes(typeOf)) {\n return typeOf;\n }\n if (typeOf === 'function') {\n return 'Function';\n }\n if (Array.isArray(value)) {\n return 'Array';\n }\n if (isBuffer(value)) {\n return 'Buffer';\n }\n const objectType = getObjectType(value);\n if (objectType) {\n return objectType;\n }\n return 'Object';\n}\nfunction isBuffer(value) {\n return value && value.constructor && value.constructor.isBuffer && value.constructor.isBuffer.call(null, value);\n}\nfunction getObjectType(value) {\n const objectTypeName = Object.prototype.toString.call(value).slice(8, -1);\n if (objectTypeNames.includes(objectTypeName)) {\n return objectTypeName;\n }\n return undefined;\n}", "class Type {\n constructor(major, name, terminal) {\n this.major = major;\n this.majorEncoded = major << 5;\n this.name = name;\n this.terminal = terminal;\n }\n toString() {\n return `Type[${ this.major }].${ this.name }`;\n }\n compare(typ) {\n return this.major < typ.major ? -1 : this.major > typ.major ? 1 : 0;\n }\n}\nType.uint = new Type(0, 'uint', true);\nType.negint = new Type(1, 'negint', true);\nType.bytes = new Type(2, 'bytes', true);\nType.string = new Type(3, 'string', true);\nType.array = new Type(4, 'array', false);\nType.map = new Type(5, 'map', false);\nType.tag = new Type(6, 'tag', false);\nType.float = new Type(7, 'float', true);\nType.false = new Type(7, 'false', true);\nType.true = new Type(7, 'true', true);\nType.null = new Type(7, 'null', true);\nType.undefined = new Type(7, 'undefined', true);\nType.break = new Type(7, 'break', true);\nclass Token {\n constructor(type, value, encodedLength) {\n this.type = type;\n this.value = value;\n this.encodedLength = encodedLength;\n this.encodedBytes = undefined;\n this.byteValue = undefined;\n }\n toString() {\n return `Token[${ this.type }].${ this.value }`;\n }\n}\nexport {\n Type,\n Token\n};", "import {\n alloc,\n concat,\n slice\n} from './byte-utils.js';\nconst defaultChunkSize = 256;\nexport class Bl {\n constructor(chunkSize = defaultChunkSize) {\n this.chunkSize = chunkSize;\n this.cursor = 0;\n this.maxCursor = -1;\n this.chunks = [];\n this._initReuseChunk = null;\n }\n reset() {\n this.cursor = 0;\n this.maxCursor = -1;\n if (this.chunks.length) {\n this.chunks = [];\n }\n if (this._initReuseChunk !== null) {\n this.chunks.push(this._initReuseChunk);\n this.maxCursor = this._initReuseChunk.length - 1;\n }\n }\n push(bytes) {\n let topChunk = this.chunks[this.chunks.length - 1];\n const newMax = this.cursor + bytes.length;\n if (newMax <= this.maxCursor + 1) {\n const chunkPos = topChunk.length - (this.maxCursor - this.cursor) - 1;\n topChunk.set(bytes, chunkPos);\n } else {\n if (topChunk) {\n const chunkPos = topChunk.length - (this.maxCursor - this.cursor) - 1;\n if (chunkPos < topChunk.length) {\n this.chunks[this.chunks.length - 1] = topChunk.subarray(0, chunkPos);\n this.maxCursor = this.cursor - 1;\n }\n }\n if (bytes.length < 64 && bytes.length < this.chunkSize) {\n topChunk = alloc(this.chunkSize);\n this.chunks.push(topChunk);\n this.maxCursor += topChunk.length;\n if (this._initReuseChunk === null) {\n this._initReuseChunk = topChunk;\n }\n topChunk.set(bytes, 0);\n } else {\n this.chunks.push(bytes);\n this.maxCursor += bytes.length;\n }\n }\n this.cursor += bytes.length;\n }\n toBytes(reset = false) {\n let byts;\n if (this.chunks.length === 1) {\n const chunk = this.chunks[0];\n if (reset && this.cursor > chunk.length / 2) {\n byts = this.cursor === chunk.length ? chunk : chunk.subarray(0, this.cursor);\n this._initReuseChunk = null;\n this.chunks = [];\n } else {\n byts = slice(chunk, 0, this.cursor);\n }\n } else {\n byts = concat(this.chunks, this.cursor);\n }\n if (reset) {\n this.reset();\n }\n return byts;\n }\n}", "export const useBuffer = globalThis.process && !globalThis.process.browser && globalThis.Buffer && typeof globalThis.Buffer.isBuffer === 'function';\nconst textDecoder = new TextDecoder();\nconst textEncoder = new TextEncoder();\nfunction isBuffer(buf) {\n return useBuffer && globalThis.Buffer.isBuffer(buf);\n}\nexport function asU8A(buf) {\n if (!(buf instanceof Uint8Array)) {\n return Uint8Array.from(buf);\n }\n return isBuffer(buf) ? new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength) : buf;\n}\nexport const toString = useBuffer ? (bytes, start, end) => {\n return end - start > 64 ? globalThis.Buffer.from(bytes.subarray(start, end)).toString('utf8') : utf8Slice(bytes, start, end);\n} : (bytes, start, end) => {\n return end - start > 64 ? textDecoder.decode(bytes.subarray(start, end)) : utf8Slice(bytes, start, end);\n};\nexport const fromString = useBuffer ? string => {\n return string.length > 64 ? globalThis.Buffer.from(string) : utf8ToBytes(string);\n} : string => {\n return string.length > 64 ? textEncoder.encode(string) : utf8ToBytes(string);\n};\nexport const fromArray = arr => {\n return Uint8Array.from(arr);\n};\nexport const slice = useBuffer ? (bytes, start, end) => {\n if (isBuffer(bytes)) {\n return new Uint8Array(bytes.subarray(start, end));\n }\n return bytes.slice(start, end);\n} : (bytes, start, end) => {\n return bytes.slice(start, end);\n};\nexport const concat = useBuffer ? (chunks, length) => {\n chunks = chunks.map(c => c instanceof Uint8Array ? c : globalThis.Buffer.from(c));\n return asU8A(globalThis.Buffer.concat(chunks, length));\n} : (chunks, length) => {\n const out = new Uint8Array(length);\n let off = 0;\n for (let b of chunks) {\n if (off + b.length > out.length) {\n b = b.subarray(0, out.length - off);\n }\n out.set(b, off);\n off += b.length;\n }\n return out;\n};\nexport const alloc = useBuffer ? size => {\n return globalThis.Buffer.allocUnsafe(size);\n} : size => {\n return new Uint8Array(size);\n};\nexport const toHex = useBuffer ? d => {\n if (typeof d === 'string') {\n return d;\n }\n return globalThis.Buffer.from(toBytes(d)).toString('hex');\n} : d => {\n if (typeof d === 'string') {\n return d;\n }\n return Array.prototype.reduce.call(toBytes(d), (p, c) => `${ p }${ c.toString(16).padStart(2, '0') }`, '');\n};\nexport const fromHex = useBuffer ? hex => {\n if (hex instanceof Uint8Array) {\n return hex;\n }\n return globalThis.Buffer.from(hex, 'hex');\n} : hex => {\n if (hex instanceof Uint8Array) {\n return hex;\n }\n if (!hex.length) {\n return new Uint8Array(0);\n }\n return new Uint8Array(hex.split('').map((c, i, d) => i % 2 === 0 ? `0x${ c }${ d[i + 1] }` : '').filter(Boolean).map(e => parseInt(e, 16)));\n};\nfunction toBytes(obj) {\n if (obj instanceof Uint8Array && obj.constructor.name === 'Uint8Array') {\n return obj;\n }\n if (obj instanceof ArrayBuffer) {\n return new Uint8Array(obj);\n }\n if (ArrayBuffer.isView(obj)) {\n return new Uint8Array(obj.buffer, obj.byteOffset, obj.byteLength);\n }\n throw new Error('Unknown type, must be binary type');\n}\nexport function compare(b1, b2) {\n if (isBuffer(b1) && isBuffer(b2)) {\n return b1.compare(b2);\n }\n for (let i = 0; i < b1.length; i++) {\n if (b1[i] === b2[i]) {\n continue;\n }\n return b1[i] < b2[i] ? -1 : 1;\n }\n return 0;\n}\nfunction utf8ToBytes(string, units = Infinity) {\n let codePoint;\n const length = string.length;\n let leadSurrogate = null;\n const bytes = [];\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i);\n if (codePoint > 55295 && codePoint < 57344) {\n if (!leadSurrogate) {\n if (codePoint > 56319) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n continue;\n } else if (i + 1 === length) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n continue;\n }\n leadSurrogate = codePoint;\n continue;\n }\n if (codePoint < 56320) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n leadSurrogate = codePoint;\n continue;\n }\n codePoint = (leadSurrogate - 55296 << 10 | codePoint - 56320) + 65536;\n } else if (leadSurrogate) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n }\n leadSurrogate = null;\n if (codePoint < 128) {\n if ((units -= 1) < 0)\n break;\n bytes.push(codePoint);\n } else if (codePoint < 2048) {\n if ((units -= 2) < 0)\n break;\n bytes.push(codePoint >> 6 | 192, codePoint & 63 | 128);\n } else if (codePoint < 65536) {\n if ((units -= 3) < 0)\n break;\n bytes.push(codePoint >> 12 | 224, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n } else if (codePoint < 1114112) {\n if ((units -= 4) < 0)\n break;\n bytes.push(codePoint >> 18 | 240, codePoint >> 12 & 63 | 128, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n } else {\n throw new Error('Invalid code point');\n }\n }\n return bytes;\n}\nfunction utf8Slice(buf, offset, end) {\n const res = [];\n while (offset < end) {\n const firstByte = buf[offset];\n let codePoint = null;\n let bytesPerSequence = firstByte > 239 ? 4 : firstByte > 223 ? 3 : firstByte > 191 ? 2 : 1;\n if (offset + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint;\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 128) {\n codePoint = firstByte;\n }\n break;\n case 2:\n secondByte = buf[offset + 1];\n if ((secondByte & 192) === 128) {\n tempCodePoint = (firstByte & 31) << 6 | secondByte & 63;\n if (tempCodePoint > 127) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 3:\n secondByte = buf[offset + 1];\n thirdByte = buf[offset + 2];\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 12 | (secondByte & 63) << 6 | thirdByte & 63;\n if (tempCodePoint > 2047 && (tempCodePoint < 55296 || tempCodePoint > 57343)) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 4:\n secondByte = buf[offset + 1];\n thirdByte = buf[offset + 2];\n fourthByte = buf[offset + 3];\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128 && (fourthByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 18 | (secondByte & 63) << 12 | (thirdByte & 63) << 6 | fourthByte & 63;\n if (tempCodePoint > 65535 && tempCodePoint < 1114112) {\n codePoint = tempCodePoint;\n }\n }\n }\n }\n if (codePoint === null) {\n codePoint = 65533;\n bytesPerSequence = 1;\n } else if (codePoint > 65535) {\n codePoint -= 65536;\n res.push(codePoint >>> 10 & 1023 | 55296);\n codePoint = 56320 | codePoint & 1023;\n }\n res.push(codePoint);\n offset += bytesPerSequence;\n }\n return decodeCodePointsArray(res);\n}\nconst MAX_ARGUMENTS_LENGTH = 4096;\nexport function decodeCodePointsArray(codePoints) {\n const len = codePoints.length;\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints);\n }\n let res = '';\n let i = 0;\n while (i < len) {\n res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH));\n }\n return res;\n}", "const decodeErrPrefix = 'CBOR decode error:';\nconst encodeErrPrefix = 'CBOR encode error:';\nconst uintMinorPrefixBytes = [];\nuintMinorPrefixBytes[23] = 1;\nuintMinorPrefixBytes[24] = 2;\nuintMinorPrefixBytes[25] = 3;\nuintMinorPrefixBytes[26] = 5;\nuintMinorPrefixBytes[27] = 9;\nfunction assertEnoughData(data, pos, need) {\n if (data.length - pos < need) {\n throw new Error(`${ decodeErrPrefix } not enough data for type`);\n }\n}\nexport {\n decodeErrPrefix,\n encodeErrPrefix,\n uintMinorPrefixBytes,\n assertEnoughData\n};", "import {\n Token,\n Type\n} from './token.js';\nimport * as uint from './0uint.js';\nimport * as negint from './1negint.js';\nimport * as bytes from './2bytes.js';\nimport * as string from './3string.js';\nimport * as array from './4array.js';\nimport * as map from './5map.js';\nimport * as tag from './6tag.js';\nimport * as float from './7float.js';\nimport { decodeErrPrefix } from './common.js';\nimport { fromArray } from './byte-utils.js';\nfunction invalidMinor(data, pos, minor) {\n throw new Error(`${ decodeErrPrefix } encountered invalid minor (${ minor }) for major ${ data[pos] >>> 5 }`);\n}\nfunction errorer(msg) {\n return () => {\n throw new Error(`${ decodeErrPrefix } ${ msg }`);\n };\n}\nexport const jump = [];\nfor (let i = 0; i <= 23; i++) {\n jump[i] = invalidMinor;\n}\njump[24] = uint.decodeUint8;\njump[25] = uint.decodeUint16;\njump[26] = uint.decodeUint32;\njump[27] = uint.decodeUint64;\njump[28] = invalidMinor;\njump[29] = invalidMinor;\njump[30] = invalidMinor;\njump[31] = invalidMinor;\nfor (let i = 32; i <= 55; i++) {\n jump[i] = invalidMinor;\n}\njump[56] = negint.decodeNegint8;\njump[57] = negint.decodeNegint16;\njump[58] = negint.decodeNegint32;\njump[59] = negint.decodeNegint64;\njump[60] = invalidMinor;\njump[61] = invalidMinor;\njump[62] = invalidMinor;\njump[63] = invalidMinor;\nfor (let i = 64; i <= 87; i++) {\n jump[i] = bytes.decodeBytesCompact;\n}\njump[88] = bytes.decodeBytes8;\njump[89] = bytes.decodeBytes16;\njump[90] = bytes.decodeBytes32;\njump[91] = bytes.decodeBytes64;\njump[92] = invalidMinor;\njump[93] = invalidMinor;\njump[94] = invalidMinor;\njump[95] = errorer('indefinite length bytes/strings are not supported');\nfor (let i = 96; i <= 119; i++) {\n jump[i] = string.decodeStringCompact;\n}\njump[120] = string.decodeString8;\njump[121] = string.decodeString16;\njump[122] = string.decodeString32;\njump[123] = string.decodeString64;\njump[124] = invalidMinor;\njump[125] = invalidMinor;\njump[126] = invalidMinor;\njump[127] = errorer('indefinite length bytes/strings are not supported');\nfor (let i = 128; i <= 151; i++) {\n jump[i] = array.decodeArrayCompact;\n}\njump[152] = array.decodeArray8;\njump[153] = array.decodeArray16;\njump[154] = array.decodeArray32;\njump[155] = array.decodeArray64;\njump[156] = invalidMinor;\njump[157] = invalidMinor;\njump[158] = invalidMinor;\njump[159] = array.decodeArrayIndefinite;\nfor (let i = 160; i <= 183; i++) {\n jump[i] = map.decodeMapCompact;\n}\njump[184] = map.decodeMap8;\njump[185] = map.decodeMap16;\njump[186] = map.decodeMap32;\njump[187] = map.decodeMap64;\njump[188] = invalidMinor;\njump[189] = invalidMinor;\njump[190] = invalidMinor;\njump[191] = map.decodeMapIndefinite;\nfor (let i = 192; i <= 215; i++) {\n jump[i] = tag.decodeTagCompact;\n}\njump[216] = tag.decodeTag8;\njump[217] = tag.decodeTag16;\njump[218] = tag.decodeTag32;\njump[219] = tag.decodeTag64;\njump[220] = invalidMinor;\njump[221] = invalidMinor;\njump[222] = invalidMinor;\njump[223] = invalidMinor;\nfor (let i = 224; i <= 243; i++) {\n jump[i] = errorer('simple values are not supported');\n}\njump[244] = invalidMinor;\njump[245] = invalidMinor;\njump[246] = invalidMinor;\njump[247] = float.decodeUndefined;\njump[248] = errorer('simple values are not supported');\njump[249] = float.decodeFloat16;\njump[250] = float.decodeFloat32;\njump[251] = float.decodeFloat64;\njump[252] = invalidMinor;\njump[253] = invalidMinor;\njump[254] = invalidMinor;\njump[255] = float.decodeBreak;\nexport const quick = [];\nfor (let i = 0; i < 24; i++) {\n quick[i] = new Token(Type.uint, i, 1);\n}\nfor (let i = -1; i >= -24; i--) {\n quick[31 - i] = new Token(Type.negint, i, 1);\n}\nquick[64] = new Token(Type.bytes, new Uint8Array(0), 1);\nquick[96] = new Token(Type.string, '', 1);\nquick[128] = new Token(Type.array, 0, 1);\nquick[160] = new Token(Type.map, 0, 1);\nquick[244] = new Token(Type.false, false, 1);\nquick[245] = new Token(Type.true, true, 1);\nquick[246] = new Token(Type.null, null, 1);\nexport function quickEncodeToken(token) {\n switch (token.type) {\n case Type.false:\n return fromArray([244]);\n case Type.true:\n return fromArray([245]);\n case Type.null:\n return fromArray([246]);\n case Type.bytes:\n if (!token.value.length) {\n return fromArray([64]);\n }\n return;\n case Type.string:\n if (token.value === '') {\n return fromArray([96]);\n }\n return;\n case Type.array:\n if (token.value === 0) {\n return fromArray([128]);\n }\n return;\n case Type.map:\n if (token.value === 0) {\n return fromArray([160]);\n }\n return;\n case Type.uint:\n if (token.value < 24) {\n return fromArray([Number(token.value)]);\n }\n return;\n case Type.negint:\n if (token.value >= -24) {\n return fromArray([31 - Number(token.value)]);\n }\n }\n}", "import {\n Token,\n Type\n} from './token.js';\nimport {\n decodeErrPrefix,\n assertEnoughData\n} from './common.js';\nexport const uintBoundaries = [\n 24,\n 256,\n 65536,\n 4294967296,\n BigInt('18446744073709551616')\n];\nexport function readUint8(data, offset, options) {\n assertEnoughData(data, offset, 1);\n const value = data[offset];\n if (options.strict === true && value < uintBoundaries[0]) {\n throw new Error(`${ decodeErrPrefix } integer encoded in more bytes than necessary (strict decode)`);\n }\n return value;\n}\nexport function readUint16(data, offset, options) {\n assertEnoughData(data, offset, 2);\n const value = data[offset] << 8 | data[offset + 1];\n if (options.strict === true && value < uintBoundaries[1]) {\n throw new Error(`${ decodeErrPrefix } integer encoded in more bytes than necessary (strict decode)`);\n }\n return value;\n}\nexport function readUint32(data, offset, options) {\n assertEnoughData(data, offset, 4);\n const value = data[offset] * 16777216 + (data[offset + 1] << 16) + (data[offset + 2] << 8) + data[offset + 3];\n if (options.strict === true && value < uintBoundaries[2]) {\n throw new Error(`${ decodeErrPrefix } integer encoded in more bytes than necessary (strict decode)`);\n }\n return value;\n}\nexport function readUint64(data, offset, options) {\n assertEnoughData(data, offset, 8);\n const hi = data[offset] * 16777216 + (data[offset + 1] << 16) + (data[offset + 2] << 8) + data[offset + 3];\n const lo = data[offset + 4] * 16777216 + (data[offset + 5] << 16) + (data[offset + 6] << 8) + data[offset + 7];\n const value = (BigInt(hi) << BigInt(32)) + BigInt(lo);\n if (options.strict === true && value < uintBoundaries[3]) {\n throw new Error(`${ decodeErrPrefix } integer encoded in more bytes than necessary (strict decode)`);\n }\n if (value <= Number.MAX_SAFE_INTEGER) {\n return Number(value);\n }\n if (options.allowBigInt === true) {\n return value;\n }\n throw new Error(`${ decodeErrPrefix } integers outside of the safe integer range are not supported`);\n}\nexport function decodeUint8(data, pos, _minor, options) {\n return new Token(Type.uint, readUint8(data, pos + 1, options), 2);\n}\nexport function decodeUint16(data, pos, _minor, options) {\n return new Token(Type.uint, readUint16(data, pos + 1, options), 3);\n}\nexport function decodeUint32(data, pos, _minor, options) {\n return new Token(Type.uint, readUint32(data, pos + 1, options), 5);\n}\nexport function decodeUint64(data, pos, _minor, options) {\n return new Token(Type.uint, readUint64(data, pos + 1, options), 9);\n}\nexport function encodeUint(buf, token) {\n return encodeUintValue(buf, 0, token.value);\n}\nexport function encodeUintValue(buf, major, uint) {\n if (uint < uintBoundaries[0]) {\n const nuint = Number(uint);\n buf.push([major | nuint]);\n } else if (uint < uintBoundaries[1]) {\n const nuint = Number(uint);\n buf.push([\n major | 24,\n nuint\n ]);\n } else if (uint < uintBoundaries[2]) {\n const nuint = Number(uint);\n buf.push([\n major | 25,\n nuint >>> 8,\n nuint & 255\n ]);\n } else if (uint < uintBoundaries[3]) {\n const nuint = Number(uint);\n buf.push([\n major | 26,\n nuint >>> 24 & 255,\n nuint >>> 16 & 255,\n nuint >>> 8 & 255,\n nuint & 255\n ]);\n } else {\n const buint = BigInt(uint);\n if (buint < uintBoundaries[4]) {\n const set = [\n major | 27,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0\n ];\n let lo = Number(buint & BigInt(4294967295));\n let hi = Number(buint >> BigInt(32) & BigInt(4294967295));\n set[8] = lo & 255;\n lo = lo >> 8;\n set[7] = lo & 255;\n lo = lo >> 8;\n set[6] = lo & 255;\n lo = lo >> 8;\n set[5] = lo & 255;\n set[4] = hi & 255;\n hi = hi >> 8;\n set[3] = hi & 255;\n hi = hi >> 8;\n set[2] = hi & 255;\n hi = hi >> 8;\n set[1] = hi & 255;\n buf.push(set);\n } else {\n throw new Error(`${ decodeErrPrefix } encountered BigInt larger than allowable range`);\n }\n }\n}\nencodeUint.encodedSize = function encodedSize(token) {\n return encodeUintValue.encodedSize(token.value);\n};\nencodeUintValue.encodedSize = function encodedSize(uint) {\n if (uint < uintBoundaries[0]) {\n return 1;\n }\n if (uint < uintBoundaries[1]) {\n return 2;\n }\n if (uint < uintBoundaries[2]) {\n return 3;\n }\n if (uint < uintBoundaries[3]) {\n return 5;\n }\n return 9;\n};\nencodeUint.compareTokens = function compareTokens(tok1, tok2) {\n return tok1.value < tok2.value ? -1 : tok1.value > tok2.value ? 1 : 0;\n};", "import {\n Token,\n Type\n} from './token.js';\nimport * as uint from './0uint.js';\nimport { decodeErrPrefix } from './common.js';\nexport function decodeNegint8(data, pos, _minor, options) {\n return new Token(Type.negint, -1 - uint.readUint8(data, pos + 1, options), 2);\n}\nexport function decodeNegint16(data, pos, _minor, options) {\n return new Token(Type.negint, -1 - uint.readUint16(data, pos + 1, options), 3);\n}\nexport function decodeNegint32(data, pos, _minor, options) {\n return new Token(Type.negint, -1 - uint.readUint32(data, pos + 1, options), 5);\n}\nconst neg1b = BigInt(-1);\nconst pos1b = BigInt(1);\nexport function decodeNegint64(data, pos, _minor, options) {\n const int = uint.readUint64(data, pos + 1, options);\n if (typeof int !== 'bigint') {\n const value = -1 - int;\n if (value >= Number.MIN_SAFE_INTEGER) {\n return new Token(Type.negint, value, 9);\n }\n }\n if (options.allowBigInt !== true) {\n throw new Error(`${ decodeErrPrefix } integers outside of the safe integer range are not supported`);\n }\n return new Token(Type.negint, neg1b - BigInt(int), 9);\n}\nexport function encodeNegint(buf, token) {\n const negint = token.value;\n const unsigned = typeof negint === 'bigint' ? negint * neg1b - pos1b : negint * -1 - 1;\n uint.encodeUintValue(buf, token.type.majorEncoded, unsigned);\n}\nencodeNegint.encodedSize = function encodedSize(token) {\n const negint = token.value;\n const unsigned = typeof negint === 'bigint' ? negint * neg1b - pos1b : negint * -1 - 1;\n if (unsigned < uint.uintBoundaries[0]) {\n return 1;\n }\n if (unsigned < uint.uintBoundaries[1]) {\n return 2;\n }\n if (unsigned < uint.uintBoundaries[2]) {\n return 3;\n }\n if (unsigned < uint.uintBoundaries[3]) {\n return 5;\n }\n return 9;\n};\nencodeNegint.compareTokens = function compareTokens(tok1, tok2) {\n return tok1.value < tok2.value ? 1 : tok1.value > tok2.value ? -1 : 0;\n};", "import {\n Token,\n Type\n} from './token.js';\nimport {\n assertEnoughData,\n decodeErrPrefix\n} from './common.js';\nimport * as uint from './0uint.js';\nimport {\n compare,\n fromString,\n slice\n} from './byte-utils.js';\nfunction toToken(data, pos, prefix, length) {\n assertEnoughData(data, pos, prefix + length);\n const buf = slice(data, pos + prefix, pos + prefix + length);\n return new Token(Type.bytes, buf, prefix + length);\n}\nexport function decodeBytesCompact(data, pos, minor, _options) {\n return toToken(data, pos, 1, minor);\n}\nexport function decodeBytes8(data, pos, _minor, options) {\n return toToken(data, pos, 2, uint.readUint8(data, pos + 1, options));\n}\nexport function decodeBytes16(data, pos, _minor, options) {\n return toToken(data, pos, 3, uint.readUint16(data, pos + 1, options));\n}\nexport function decodeBytes32(data, pos, _minor, options) {\n return toToken(data, pos, 5, uint.readUint32(data, pos + 1, options));\n}\nexport function decodeBytes64(data, pos, _minor, options) {\n const l = uint.readUint64(data, pos + 1, options);\n if (typeof l === 'bigint') {\n throw new Error(`${ decodeErrPrefix } 64-bit integer bytes lengths not supported`);\n }\n return toToken(data, pos, 9, l);\n}\nfunction tokenBytes(token) {\n if (token.encodedBytes === undefined) {\n token.encodedBytes = token.type === Type.string ? fromString(token.value) : token.value;\n }\n return token.encodedBytes;\n}\nexport function encodeBytes(buf, token) {\n const bytes = tokenBytes(token);\n uint.encodeUintValue(buf, token.type.majorEncoded, bytes.length);\n buf.push(bytes);\n}\nencodeBytes.encodedSize = function encodedSize(token) {\n const bytes = tokenBytes(token);\n return uint.encodeUintValue.encodedSize(bytes.length) + bytes.length;\n};\nencodeBytes.compareTokens = function compareTokens(tok1, tok2) {\n return compareBytes(tokenBytes(tok1), tokenBytes(tok2));\n};\nexport function compareBytes(b1, b2) {\n return b1.length < b2.length ? -1 : b1.length > b2.length ? 1 : compare(b1, b2);\n}", "import {\n Token,\n Type\n} from './token.js';\nimport {\n assertEnoughData,\n decodeErrPrefix\n} from './common.js';\nimport * as uint from './0uint.js';\nimport { encodeBytes } from './2bytes.js';\nimport {\n toString,\n slice\n} from './byte-utils.js';\nfunction toToken(data, pos, prefix, length, options) {\n const totLength = prefix + length;\n assertEnoughData(data, pos, totLength);\n const tok = new Token(Type.string, toString(data, pos + prefix, pos + totLength), totLength);\n if (options.retainStringBytes === true) {\n tok.byteValue = slice(data, pos + prefix, pos + totLength);\n }\n return tok;\n}\nexport function decodeStringCompact(data, pos, minor, options) {\n return toToken(data, pos, 1, minor, options);\n}\nexport function decodeString8(data, pos, _minor, options) {\n return toToken(data, pos, 2, uint.readUint8(data, pos + 1, options), options);\n}\nexport function decodeString16(data, pos, _minor, options) {\n return toToken(data, pos, 3, uint.readUint16(data, pos + 1, options), options);\n}\nexport function decodeString32(data, pos, _minor, options) {\n return toToken(data, pos, 5, uint.readUint32(data, pos + 1, options), options);\n}\nexport function decodeString64(data, pos, _minor, options) {\n const l = uint.readUint64(data, pos + 1, options);\n if (typeof l === 'bigint') {\n throw new Error(`${ decodeErrPrefix } 64-bit integer string lengths not supported`);\n }\n return toToken(data, pos, 9, l, options);\n}\nexport const encodeString = encodeBytes;", "import {\n Token,\n Type\n} from './token.js';\nimport * as uint from './0uint.js';\nimport { decodeErrPrefix } from './common.js';\nfunction toToken(_data, _pos, prefix, length) {\n return new Token(Type.array, length, prefix);\n}\nexport function decodeArrayCompact(data, pos, minor, _options) {\n return toToken(data, pos, 1, minor);\n}\nexport function decodeArray8(data, pos, _minor, options) {\n return toToken(data, pos, 2, uint.readUint8(data, pos + 1, options));\n}\nexport function decodeArray16(data, pos, _minor, options) {\n return toToken(data, pos, 3, uint.readUint16(data, pos + 1, options));\n}\nexport function decodeArray32(data, pos, _minor, options) {\n return toToken(data, pos, 5, uint.readUint32(data, pos + 1, options));\n}\nexport function decodeArray64(data, pos, _minor, options) {\n const l = uint.readUint64(data, pos + 1, options);\n if (typeof l === 'bigint') {\n throw new Error(`${ decodeErrPrefix } 64-bit integer array lengths not supported`);\n }\n return toToken(data, pos, 9, l);\n}\nexport function decodeArrayIndefinite(data, pos, _minor, options) {\n if (options.allowIndefinite === false) {\n throw new Error(`${ decodeErrPrefix } indefinite length items not allowed`);\n }\n return toToken(data, pos, 1, Infinity);\n}\nexport function encodeArray(buf, token) {\n uint.encodeUintValue(buf, Type.array.majorEncoded, token.value);\n}\nencodeArray.compareTokens = uint.encodeUint.compareTokens;\nencodeArray.encodedSize = function encodedSize(token) {\n return uint.encodeUintValue.encodedSize(token.value);\n};", "import {\n Token,\n Type\n} from './token.js';\nimport * as uint from './0uint.js';\nimport { decodeErrPrefix } from './common.js';\nfunction toToken(_data, _pos, prefix, length) {\n return new Token(Type.map, length, prefix);\n}\nexport function decodeMapCompact(data, pos, minor, _options) {\n return toToken(data, pos, 1, minor);\n}\nexport function decodeMap8(data, pos, _minor, options) {\n return toToken(data, pos, 2, uint.readUint8(data, pos + 1, options));\n}\nexport function decodeMap16(data, pos, _minor, options) {\n return toToken(data, pos, 3, uint.readUint16(data, pos + 1, options));\n}\nexport function decodeMap32(data, pos, _minor, options) {\n return toToken(data, pos, 5, uint.readUint32(data, pos + 1, options));\n}\nexport function decodeMap64(data, pos, _minor, options) {\n const l = uint.readUint64(data, pos + 1, options);\n if (typeof l === 'bigint') {\n throw new Error(`${ decodeErrPrefix } 64-bit integer map lengths not supported`);\n }\n return toToken(data, pos, 9, l);\n}\nexport function decodeMapIndefinite(data, pos, _minor, options) {\n if (options.allowIndefinite === false) {\n throw new Error(`${ decodeErrPrefix } indefinite length items not allowed`);\n }\n return toToken(data, pos, 1, Infinity);\n}\nexport function encodeMap(buf, token) {\n uint.encodeUintValue(buf, Type.map.majorEncoded, token.value);\n}\nencodeMap.compareTokens = uint.encodeUint.compareTokens;\nencodeMap.encodedSize = function encodedSize(token) {\n return uint.encodeUintValue.encodedSize(token.value);\n};", "import {\n Token,\n Type\n} from './token.js';\nimport * as uint from './0uint.js';\nexport function decodeTagCompact(_data, _pos, minor, _options) {\n return new Token(Type.tag, minor, 1);\n}\nexport function decodeTag8(data, pos, _minor, options) {\n return new Token(Type.tag, uint.readUint8(data, pos + 1, options), 2);\n}\nexport function decodeTag16(data, pos, _minor, options) {\n return new Token(Type.tag, uint.readUint16(data, pos + 1, options), 3);\n}\nexport function decodeTag32(data, pos, _minor, options) {\n return new Token(Type.tag, uint.readUint32(data, pos + 1, options), 5);\n}\nexport function decodeTag64(data, pos, _minor, options) {\n return new Token(Type.tag, uint.readUint64(data, pos + 1, options), 9);\n}\nexport function encodeTag(buf, token) {\n uint.encodeUintValue(buf, Type.tag.majorEncoded, token.value);\n}\nencodeTag.compareTokens = uint.encodeUint.compareTokens;\nencodeTag.encodedSize = function encodedSize(token) {\n return uint.encodeUintValue.encodedSize(token.value);\n};", "import {\n Token,\n Type\n} from './token.js';\nimport { decodeErrPrefix } from './common.js';\nimport { encodeUint } from './0uint.js';\nconst MINOR_FALSE = 20;\nconst MINOR_TRUE = 21;\nconst MINOR_NULL = 22;\nconst MINOR_UNDEFINED = 23;\nexport function decodeUndefined(_data, _pos, _minor, options) {\n if (options.allowUndefined === false) {\n throw new Error(`${ decodeErrPrefix } undefined values are not supported`);\n } else if (options.coerceUndefinedToNull === true) {\n return new Token(Type.null, null, 1);\n }\n return new Token(Type.undefined, undefined, 1);\n}\nexport function decodeBreak(_data, _pos, _minor, options) {\n if (options.allowIndefinite === false) {\n throw new Error(`${ decodeErrPrefix } indefinite length items not allowed`);\n }\n return new Token(Type.break, undefined, 1);\n}\nfunction createToken(value, bytes, options) {\n if (options) {\n if (options.allowNaN === false && Number.isNaN(value)) {\n throw new Error(`${ decodeErrPrefix } NaN values are not supported`);\n }\n if (options.allowInfinity === false && (value === Infinity || value === -Infinity)) {\n throw new Error(`${ decodeErrPrefix } Infinity values are not supported`);\n }\n }\n return new Token(Type.float, value, bytes);\n}\nexport function decodeFloat16(data, pos, _minor, options) {\n return createToken(readFloat16(data, pos + 1), 3, options);\n}\nexport function decodeFloat32(data, pos, _minor, options) {\n return createToken(readFloat32(data, pos + 1), 5, options);\n}\nexport function decodeFloat64(data, pos, _minor, options) {\n return createToken(readFloat64(data, pos + 1), 9, options);\n}\nexport function encodeFloat(buf, token, options) {\n const float = token.value;\n if (float === false) {\n buf.push([Type.float.majorEncoded | MINOR_FALSE]);\n } else if (float === true) {\n buf.push([Type.float.majorEncoded | MINOR_TRUE]);\n } else if (float === null) {\n buf.push([Type.float.majorEncoded | MINOR_NULL]);\n } else if (float === undefined) {\n buf.push([Type.float.majorEncoded | MINOR_UNDEFINED]);\n } else {\n let decoded;\n let success = false;\n if (!options || options.float64 !== true) {\n encodeFloat16(float);\n decoded = readFloat16(ui8a, 1);\n if (float === decoded || Number.isNaN(float)) {\n ui8a[0] = 249;\n buf.push(ui8a.slice(0, 3));\n success = true;\n } else {\n encodeFloat32(float);\n decoded = readFloat32(ui8a, 1);\n if (float === decoded) {\n ui8a[0] = 250;\n buf.push(ui8a.slice(0, 5));\n success = true;\n }\n }\n }\n if (!success) {\n encodeFloat64(float);\n decoded = readFloat64(ui8a, 1);\n ui8a[0] = 251;\n buf.push(ui8a.slice(0, 9));\n }\n }\n}\nencodeFloat.encodedSize = function encodedSize(token, options) {\n const float = token.value;\n if (float === false || float === true || float === null || float === undefined) {\n return 1;\n }\n if (!options || options.float64 !== true) {\n encodeFloat16(float);\n let decoded = readFloat16(ui8a, 1);\n if (float === decoded || Number.isNaN(float)) {\n return 3;\n }\n encodeFloat32(float);\n decoded = readFloat32(ui8a, 1);\n if (float === decoded) {\n return 5;\n }\n }\n return 9;\n};\nconst buffer = new ArrayBuffer(9);\nconst dataView = new DataView(buffer, 1);\nconst ui8a = new Uint8Array(buffer, 0);\nfunction encodeFloat16(inp) {\n if (inp === Infinity) {\n dataView.setUint16(0, 31744, false);\n } else if (inp === -Infinity) {\n dataView.setUint16(0, 64512, false);\n } else if (Number.isNaN(inp)) {\n dataView.setUint16(0, 32256, false);\n } else {\n dataView.setFloat32(0, inp);\n const valu32 = dataView.getUint32(0);\n const exponent = (valu32 & 2139095040) >> 23;\n const mantissa = valu32 & 8388607;\n if (exponent === 255) {\n dataView.setUint16(0, 31744, false);\n } else if (exponent === 0) {\n dataView.setUint16(0, (inp & 2147483648) >> 16 | mantissa >> 13, false);\n } else {\n const logicalExponent = exponent - 127;\n if (logicalExponent < -24) {\n dataView.setUint16(0, 0);\n } else if (logicalExponent < -14) {\n dataView.setUint16(0, (valu32 & 2147483648) >> 16 | 1 << 24 + logicalExponent, false);\n } else {\n dataView.setUint16(0, (valu32 & 2147483648) >> 16 | logicalExponent + 15 << 10 | mantissa >> 13, false);\n }\n }\n }\n}\nfunction readFloat16(ui8a, pos) {\n if (ui8a.length - pos < 2) {\n throw new Error(`${ decodeErrPrefix } not enough data for float16`);\n }\n const half = (ui8a[pos] << 8) + ui8a[pos + 1];\n if (half === 31744) {\n return Infinity;\n }\n if (half === 64512) {\n return -Infinity;\n }\n if (half === 32256) {\n return NaN;\n }\n const exp = half >> 10 & 31;\n const mant = half & 1023;\n let val;\n if (exp === 0) {\n val = mant * 2 ** -24;\n } else if (exp !== 31) {\n val = (mant + 1024) * 2 ** (exp - 25);\n } else {\n val = mant === 0 ? Infinity : NaN;\n }\n return half & 32768 ? -val : val;\n}\nfunction encodeFloat32(inp) {\n dataView.setFloat32(0, inp, false);\n}\nfunction readFloat32(ui8a, pos) {\n if (ui8a.length - pos < 4) {\n throw new Error(`${ decodeErrPrefix } not enough data for float32`);\n }\n const offset = (ui8a.byteOffset || 0) + pos;\n return new DataView(ui8a.buffer, offset, 4).getFloat32(0, false);\n}\nfunction encodeFloat64(inp) {\n dataView.setFloat64(0, inp, false);\n}\nfunction readFloat64(ui8a, pos) {\n if (ui8a.length - pos < 8) {\n throw new Error(`${ decodeErrPrefix } not enough data for float64`);\n }\n const offset = (ui8a.byteOffset || 0) + pos;\n return new DataView(ui8a.buffer, offset, 8).getFloat64(0, false);\n}\nencodeFloat.compareTokens = encodeUint.compareTokens;", "import { decodeErrPrefix } from './common.js';\nimport { Type } from './token.js';\nimport {\n jump,\n quick\n} from './jump.js';\nconst defaultDecodeOptions = {\n strict: false,\n allowIndefinite: true,\n allowUndefined: true,\n allowBigInt: true\n};\nclass Tokeniser {\n constructor(data, options = {}) {\n this.pos = 0;\n this.data = data;\n this.options = options;\n }\n done() {\n return this.pos >= this.data.length;\n }\n next() {\n const byt = this.data[this.pos];\n let token = quick[byt];\n if (token === undefined) {\n const decoder = jump[byt];\n if (!decoder) {\n throw new Error(`${ decodeErrPrefix } no decoder for major type ${ byt >>> 5 } (byte 0x${ byt.toString(16).padStart(2, '0') })`);\n }\n const minor = byt & 31;\n token = decoder(this.data, this.pos, minor, this.options);\n }\n this.pos += token.encodedLength;\n return token;\n }\n}\nconst DONE = Symbol.for('DONE');\nconst BREAK = Symbol.for('BREAK');\nfunction tokenToArray(token, tokeniser, options) {\n const arr = [];\n for (let i = 0; i < token.value; i++) {\n const value = tokensToObject(tokeniser, options);\n if (value === BREAK) {\n if (token.value === Infinity) {\n break;\n }\n throw new Error(`${ decodeErrPrefix } got unexpected break to lengthed array`);\n }\n if (value === DONE) {\n throw new Error(`${ decodeErrPrefix } found array but not enough entries (got ${ i }, expected ${ token.value })`);\n }\n arr[i] = value;\n }\n return arr;\n}\nfunction tokenToMap(token, tokeniser, options) {\n const useMaps = options.useMaps === true;\n const obj = useMaps ? undefined : {};\n const m = useMaps ? new Map() : undefined;\n for (let i = 0; i < token.value; i++) {\n const key = tokensToObject(tokeniser, options);\n if (key === BREAK) {\n if (token.value === Infinity) {\n break;\n }\n throw new Error(`${ decodeErrPrefix } got unexpected break to lengthed map`);\n }\n if (key === DONE) {\n throw new Error(`${ decodeErrPrefix } found map but not enough entries (got ${ i } [no key], expected ${ token.value })`);\n }\n if (useMaps !== true && typeof key !== 'string') {\n throw new Error(`${ decodeErrPrefix } non-string keys not supported (got ${ typeof key })`);\n }\n if (options.rejectDuplicateMapKeys === true) {\n if (useMaps && m.has(key) || !useMaps && key in obj) {\n throw new Error(`${ decodeErrPrefix } found repeat map key \"${ key }\"`);\n }\n }\n const value = tokensToObject(tokeniser, options);\n if (value === DONE) {\n throw new Error(`${ decodeErrPrefix } found map but not enough entries (got ${ i } [no value], expected ${ token.value })`);\n }\n if (useMaps) {\n m.set(key, value);\n } else {\n obj[key] = value;\n }\n }\n return useMaps ? m : obj;\n}\nfunction tokensToObject(tokeniser, options) {\n if (tokeniser.done()) {\n return DONE;\n }\n const token = tokeniser.next();\n if (token.type === Type.break) {\n return BREAK;\n }\n if (token.type.terminal) {\n return token.value;\n }\n if (token.type === Type.array) {\n return tokenToArray(token, tokeniser, options);\n }\n if (token.type === Type.map) {\n return tokenToMap(token, tokeniser, options);\n }\n if (token.type === Type.tag) {\n if (options.tags && typeof options.tags[token.value] === 'function') {\n const tagged = tokensToObject(tokeniser, options);\n return options.tags[token.value](tagged);\n }\n throw new Error(`${ decodeErrPrefix } tag not supported (${ token.value })`);\n }\n throw new Error('unsupported');\n}\nfunction decode(data, options) {\n if (!(data instanceof Uint8Array)) {\n throw new Error(`${ decodeErrPrefix } data to decode must be a Uint8Array`);\n }\n options = Object.assign({}, defaultDecodeOptions, options);\n const tokeniser = options.tokenizer || new Tokeniser(data, options);\n const decoded = tokensToObject(tokeniser, options);\n if (decoded === DONE) {\n throw new Error(`${ decodeErrPrefix } did not find any content to decode`);\n }\n if (decoded === BREAK) {\n throw new Error(`${ decodeErrPrefix } got unexpected break`);\n }\n if (!tokeniser.done()) {\n throw new Error(`${ decodeErrPrefix } too many terminals, data makes no sense`);\n }\n return decoded;\n}\nexport {\n Tokeniser,\n tokensToObject,\n decode\n};"],
5
- "mappings": "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",
6
- "names": ["name", "init_buffer", "init_process", "init_process", "code", "len", "i", "len2", "buffer", "Buffer", "length", "buf", "from", "fromString", "alloc", "isBuffer", "compare", "concat", "utf8ToBytes", "utf8Slice", "toString", "equals", "read", "decodeCodePointsArray", "MAX_ARGUMENTS_LENGTH", "slice", "byteLength", "name", "src", "init_buffer", "init_process", "init_buffer", "exports", "init_buffer", "init_process", "encode", "MSB", "REST", "MSBALL", "INT", "exports", "init_buffer", "init_process", "read", "MSB", "REST", "buf", "exports", "init_buffer", "init_process", "N1", "N2", "N3", "N4", "N5", "N6", "N7", "N8", "N9", "exports", "init_buffer", "init_process", "init_buffer", "init_process", "init_buffer", "init_process", "init_buffer", "init_process", "init_buffer", "init_process", "init_buffer", "init_process", "init_buffer", "init_process", "buf", "decode", "code", "init_buffer", "init_process", "init_buffer", "init_process", "code", "decode", "equals", "init_buffer", "init_process", "init_buffer", "init_process", "init_buffer", "init_process", "name", "encode", "length", "i", "j", "decode", "buffer", "init_buffer", "init_process", "name", "encode", "decode", "buffer", "init_buffer", "init_process", "init_buffer", "init_process", "base", "version", "baseCache", "version", "code", "equals", "base", "decode", "length", "cache", "cid", "init_buffer", "init_process", "from", "name", "code", "encode", "init_buffer", "init_process", "base", "encode", "decode", "init_buffer", "init_process", "name", "from", "decode", "encode", "init_buffer", "init_process", "encode", "decode", "init_buffer", "init_process", "import_varint", "init_buffer", "init_process", "init_buffer", "init_process", "init_buffer", "init_process", "init_buffer", "init_process", "name", "init_buffer", "init_process", "init_buffer", "init_process", "isBuffer", "buf", "length", "off", "isBuffer", "length", "buf", "init_buffer", "init_process", "init_buffer", "init_process", "init_buffer", "init_process", "buf", "encodedSize", "init_buffer", "init_process", "buf", "encodedSize", "compareTokens", "init_buffer", "init_process", "length", "buf", "encodedSize", "compareTokens", "init_buffer", "init_process", "toToken", "length", "init_buffer", "init_process", "toToken", "length", "buf", "encodedSize", "init_buffer", "init_process", "toToken", "length", "buf", "encodedSize", "init_buffer", "init_process", "buf", "encodedSize", "init_buffer", "init_process", "buf", "encodedSize", "ui8a", "length", "init_buffer", "init_process", "init_buffer", "init_process", "cborEncoders", "cborEncoders", "code", "decode", "encode", "name", "init_buffer", "init_process", "init_buffer", "init_process", "init_buffer", "init_process", "init_buffer", "init_process", "typeofs", "objectTypeNames", "is", "isBuffer", "getObjectType", "init_buffer", "init_process", "Type", "name", "Token", "init_buffer", "init_process", "init_buffer", "init_process", "useBuffer", "textDecoder", "textEncoder", "isBuffer", "buf", "asU8A", "toString", "utf8Slice", "fromString", "utf8ToBytes", "fromArray", "slice", "concat", "length", "off", "alloc", "compare", "isBuffer", "utf8ToBytes", "length", "utf8Slice", "buf", "decodeCodePointsArray", "MAX_ARGUMENTS_LENGTH", "defaultChunkSize", "Bl", "alloc", "slice", "concat", "init_buffer", "init_process", "decodeErrPrefix", "encodeErrPrefix", "uintMinorPrefixBytes", "assertEnoughData", "init_buffer", "init_process", "init_buffer", "init_process", "uintBoundaries", "readUint8", "assertEnoughData", "decodeErrPrefix", "readUint16", "readUint32", "readUint64", "decodeUint8", "Token", "Type", "decodeUint16", "decodeUint32", "decodeUint64", "encodeUint", "buf", "encodeUintValue", "encodedSize", "compareTokens", "init_buffer", "init_process", "decodeNegint8", "Token", "Type", "readUint8", "decodeNegint16", "readUint16", "decodeNegint32", "readUint32", "neg1b", "pos1b", "decodeNegint64", "readUint64", "decodeErrPrefix", "encodeNegint", "buf", "encodeUintValue", "encodedSize", "uintBoundaries", "compareTokens", "init_buffer", "init_process", "toToken", "length", "assertEnoughData", "buf", "slice", "Token", "Type", "decodeBytesCompact", "decodeBytes8", "readUint8", "decodeBytes16", "readUint16", "decodeBytes32", "readUint32", "decodeBytes64", "readUint64", "decodeErrPrefix", "tokenBytes", "fromString", "encodeBytes", "encodeUintValue", "encodedSize", "compareTokens", "compareBytes", "compare", "init_buffer", "init_process", "toToken", "length", "assertEnoughData", "Token", "Type", "toString", "slice", "decodeStringCompact", "decodeString8", "readUint8", "decodeString16", "readUint16", "decodeString32", "readUint32", "decodeString64", "readUint64", "decodeErrPrefix", "encodeString", "encodeBytes", "init_buffer", "init_process", "toToken", "length", "Token", "Type", "decodeArrayCompact", "decodeArray8", "readUint8", "decodeArray16", "readUint16", "decodeArray32", "readUint32", "decodeArray64", "readUint64", "decodeErrPrefix", "decodeArrayIndefinite", "encodeArray", "buf", "encodeUintValue", "encodeUint", "encodedSize", "init_buffer", "init_process", "toToken", "length", "Token", "Type", "decodeMapCompact", "decodeMap8", "readUint8", "decodeMap16", "readUint16", "decodeMap32", "readUint32", "decodeMap64", "readUint64", "decodeErrPrefix", "decodeMapIndefinite", "encodeMap", "buf", "encodeUintValue", "encodeUint", "encodedSize", "init_buffer", "init_process", "decodeTagCompact", "Token", "Type", "decodeTag8", "readUint8", "decodeTag16", "readUint16", "decodeTag32", "readUint32", "decodeTag64", "readUint64", "encodeTag", "buf", "encodeUintValue", "encodeUint", "encodedSize", "init_buffer", "init_process", "MINOR_FALSE", "MINOR_TRUE", "MINOR_NULL", "MINOR_UNDEFINED", "decodeUndefined", "decodeErrPrefix", "Token", "Type", "decodeBreak", "createToken", "decodeFloat16", "readFloat16", "decodeFloat32", "readFloat32", "decodeFloat64", "readFloat64", "encodeFloat", "buf", "encodeFloat16", "ui8a", "encodeFloat32", "encodeFloat64", "encodedSize", "buffer", "dataView", "encodeUint", "invalidMinor", "decodeErrPrefix", "errorer", "jump", "decodeUint8", "decodeUint16", "decodeUint32", "decodeUint64", "decodeNegint8", "decodeNegint16", "decodeNegint32", "decodeNegint64", "decodeBytesCompact", "decodeBytes8", "decodeBytes16", "decodeBytes32", "decodeBytes64", "decodeStringCompact", "decodeString8", "decodeString16", "decodeString32", "decodeString64", "decodeArrayCompact", "decodeArray8", "decodeArray16", "decodeArray32", "decodeArray64", "decodeArrayIndefinite", "decodeMapCompact", "decodeMap8", "decodeMap16", "decodeMap32", "decodeMap64", "decodeMapIndefinite", "decodeTagCompact", "decodeTag8", "decodeTag16", "decodeTag32", "decodeTag64", "decodeUndefined", "decodeFloat16", "decodeFloat32", "decodeFloat64", "decodeBreak", "quick", "Token", "Type", "quickEncodeToken", "fromArray", "defaultEncodeOptions", "quickEncodeToken", "makeCborEncoders", "Type", "encodeUint", "encodeNegint", "encodeBytes", "encodeString", "encodeArray", "encodeMap", "encodeTag", "encodeFloat", "cborEncoders", "buf", "Bl", "Ref", "encodeErrPrefix", "simpleTokens", "Token", "typeEncoders", "objectToTokens", "length", "sortMapEntries", "is", "asU8A", "encode", "init_buffer", "init_process", "quick", "jump", "decodeErrPrefix", "DONE", "BREAK", "Type", "decode", "Token", "Type", "name", "code", "encode", "decode", "varint", "encode", "length", "buffer", "encode", "buffer", "decode"]
7
- }