@wovin/core 0.0.1-RC20 → 0.0.1-RC21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/applog.js +5 -4
- package/dist/chunk-3VDDRHGD.js +9854 -0
- package/dist/chunk-3VDDRHGD.js.map +1 -0
- package/dist/{chunk-RBXGBMA7.js → chunk-5FO6VRGW.js} +16 -5
- package/dist/chunk-5FO6VRGW.js.map +1 -0
- package/dist/chunk-AWVTEBES.js +7 -0
- package/dist/chunk-AWVTEBES.js.map +1 -0
- package/dist/chunk-JHX2WWYS.js +78766 -0
- package/dist/chunk-JHX2WWYS.js.map +1 -0
- package/dist/{chunk-XJPITJRE.js → chunk-JI36NHJX.js} +18 -6
- package/dist/chunk-JI36NHJX.js.map +1 -0
- package/dist/chunk-MTQJBBHB.js +4586 -0
- package/dist/chunk-MTQJBBHB.js.map +1 -0
- package/dist/chunk-TIIA4ZAI.js +56 -0
- package/dist/chunk-TIIA4ZAI.js.map +1 -0
- package/dist/chunk-TYUDGJVU.js +7 -0
- package/dist/chunk-TYUDGJVU.js.map +1 -0
- package/dist/chunk-YJXKRB2D.js +7651 -0
- package/dist/chunk-YJXKRB2D.js.map +1 -0
- package/dist/chunk-YNB6ALUV.js +56 -0
- package/dist/chunk-YNB6ALUV.js.map +1 -0
- package/dist/index.js +13 -9
- package/dist/index.js.map +1 -1
- package/dist/ipfs.js +4 -3
- package/dist/pubsub.js +5 -4
- package/dist/query.js +5 -4
- package/dist/stream.js +4 -3
- package/dist/types.js +5 -4
- package/dist/utils.js +6 -0
- package/dist/utils.js.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-6ZDPEEFN.js +0 -67
- package/dist/chunk-6ZDPEEFN.js.map +0 -1
- package/dist/chunk-DBACGNVR.js +0 -1
- package/dist/chunk-DBACGNVR.js.map +0 -1
- package/dist/chunk-I5PELB4T.js +0 -770
- package/dist/chunk-I5PELB4T.js.map +0 -1
- package/dist/chunk-K2JRTCRC.js +0 -44
- package/dist/chunk-K2JRTCRC.js.map +0 -1
- package/dist/chunk-RBXGBMA7.js.map +0 -1
- package/dist/chunk-TR5AJKIN.js +0 -1
- package/dist/chunk-TR5AJKIN.js.map +0 -1
- package/dist/chunk-VKQDEGWA.js +0 -561
- package/dist/chunk-VKQDEGWA.js.map +0 -1
- package/dist/chunk-X23XAGRU.js +0 -60
- package/dist/chunk-X23XAGRU.js.map +0 -1
- package/dist/chunk-XJPITJRE.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../node_modules/.pnpm/varint@6.0.0/node_modules/varint/encode.js","../../../../node_modules/.pnpm/varint@6.0.0/node_modules/varint/decode.js","../../../../node_modules/.pnpm/varint@6.0.0/node_modules/varint/length.js","../../../../node_modules/.pnpm/varint@6.0.0/node_modules/varint/index.js","../src/ipfs/car.ts","../../../../node_modules/.pnpm/@ipld+car@5.2.4/node_modules/@ipld/car/src/index.js","../../../../node_modules/.pnpm/@ipld+car@5.2.4/node_modules/@ipld/car/src/buffer-reader.js","../../../../node_modules/.pnpm/@jspm+core@2.0.1/node_modules/@jspm/core/nodelibs/browser/fs.js","../../../../node_modules/.pnpm/@jspm+core@2.0.1/node_modules/@jspm/core/nodelibs/browser/assert.js","../../../../node_modules/.pnpm/@jspm+core@2.0.1/node_modules/@jspm/core/nodelibs/browser/util.js","../../../../node_modules/.pnpm/@jspm+core@2.0.1/node_modules/@jspm/core/nodelibs/browser/path.js","../../../../node_modules/.pnpm/@jspm+core@2.0.1/node_modules/@jspm/core/nodelibs/browser/chunk-23dbec7b.js","../../../../node_modules/.pnpm/@jspm+core@2.0.1/node_modules/@jspm/core/nodelibs/browser/events.js","../../../../node_modules/.pnpm/@jspm+core@2.0.1/node_modules/@jspm/core/nodelibs/browser/stream.js","../../../../node_modules/.pnpm/@jspm+core@2.0.1/node_modules/@jspm/core/nodelibs/browser/chunk-6c718bbe.js","../../../../node_modules/.pnpm/@jspm+core@2.0.1/node_modules/@jspm/core/nodelibs/browser/url.js","../../../../node_modules/.pnpm/@jspm+core@2.0.1/node_modules/@jspm/core/nodelibs/browser/chunk-924bb2e1.js","../../../../node_modules/.pnpm/@jspm+core@2.0.1/node_modules/@jspm/core/nodelibs/browser/chunk-b04e620d.js","../../../../node_modules/.pnpm/@jspm+core@2.0.1/node_modules/@jspm/core/nodelibs/browser/buffer.js","../../../../node_modules/.pnpm/@ipld+car@5.2.4/node_modules/@ipld/car/src/buffer-reader-browser.js","../../../../node_modules/.pnpm/@ipld+car@5.2.4/node_modules/@ipld/car/src/buffer-decoder.js","../../../../node_modules/.pnpm/@ipld+dag-cbor@9.0.6/node_modules/@ipld/dag-cbor/src/index.js","../../../../node_modules/.pnpm/@ipld+car@5.2.4/node_modules/@ipld/car/src/decoder-common.js","../../../../node_modules/.pnpm/@ipld+car@5.2.4/node_modules/@ipld/car/src/header-validator.js","../../../../node_modules/.pnpm/@ipld+car@5.2.4/node_modules/@ipld/car/src/buffer-writer.js","../../../../node_modules/.pnpm/cborg@4.0.3/node_modules/cborg/lib/length.js","../../../../node_modules/.pnpm/@ipld+car@5.2.4/node_modules/@ipld/car/src/indexed-reader.js","../../../../node_modules/.pnpm/@ipld+car@5.2.4/node_modules/@ipld/car/src/indexer.js","../../../../node_modules/.pnpm/@ipld+car@5.2.4/node_modules/@ipld/car/src/decoder.js","../../../../node_modules/.pnpm/@ipld+car@5.2.4/node_modules/@ipld/car/src/reader.js","../../../../node_modules/.pnpm/@ipld+car@5.2.4/node_modules/@ipld/car/src/reader-browser.js","../../../../node_modules/.pnpm/@ipld+car@5.2.4/node_modules/@ipld/car/src/iterator.js","../../../../node_modules/.pnpm/@ipld+car@5.2.4/node_modules/@ipld/car/src/writer.js","../../../../node_modules/.pnpm/@ipld+car@5.2.4/node_modules/@ipld/car/src/encoder.js","../../../../node_modules/.pnpm/@ipld+car@5.2.4/node_modules/@ipld/car/src/writer-browser.js","../../../../node_modules/.pnpm/@ipld+car@5.2.4/node_modules/@ipld/car/src/iterator-channel.js"],"sourcesContent":["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 { CarReader, CarWriter } from '@ipld/car'\nimport * as dagJson from '@ipld/dag-json'\nimport { Logger } from 'besonders-logger'\nimport { CID } from 'multiformats'\nimport { sortApplogsByTs } from '../applog/applog-utils'\nimport { Applog, CidString } from '../applog/datom-types'\n\nconst { WARN, LOG, DEBUG, VERBOSE, ERROR } = Logger.setup(Logger.INFO) // eslint-disable-line no-unused-vars\n\nexport type CIDForCar = Exclude<Parameters<(typeof CarWriter)['create']>[0], void>\nexport type BlockForCar = Parameters<CarWriter['put']>[0]\n\n/** Warning: unsorted & maybe encrypted */\nexport async function decodeCarToApplogs(car: CarReader) {\n\tconst { roots, blocks } = await decodeCar(car)\n\tif (!roots || !blocks) {\n\t\tthrow ERROR('decodeCar is funky', { roots, blocks })\n\t}\n\n\tif (roots.length !== 1) {\n\t\tWARN('Unexpected roots count:', roots)\n\t}\n\tconst root = blocks.get(roots[0])\n\tDEBUG(`root:`, root, { blocks })\n\tconst applogs: Array<Applog | Uint8Array> = root.applogs.map((cidOrLink: CID | { '/': string }) => {\n\t\tconst cid = (cidOrLink as any).toV1 ? (cidOrLink as CID).toV1().toString() : cidOrLink['/'] as string\n\t\tconst applog = blocks.get(cid)\n\t\tif (!applog) throw ERROR(`Could not find applog CID in Car file:`, cid, { root, blocks })\n\t\treturn {\n\t\t\t...applog,\n\t\t\tcid: cid,\n\t\t}\n\t})\n\tDEBUG('Decoded car logs:', root, { roots, blocks, applogs })\n\treturn { applogs }\n}\n\nexport async function decodeCar(car: CarReader) {\n\tconst roots = (await car.getRoots()).map(c => c.toV1().toString() as CidString)\n\tconst blocks = new Map<CidString, any>()\n\tfor await (const { cid, bytes } of car.blocks()) {\n\t\tblocks.set(cid.toV1().toString(), dagJson.decode(bytes)) // HACK: tried using CID as map key, but because it's based on referential equality it's not working\n\t}\n\treturn { roots, blocks }\n}\n\n// make out in the car... been a while but also sounds nice\nexport async function makeCarOut(roots: CIDForCar, blocks: BlockForCar[]) {\n\tconst { writer, out } = CarWriter.create(Array.isArray(roots) ? roots : [roots])\n\n\t// add the blocks to the CAR and close it\n\tVERBOSE(`Writing ${blocks.length} blocks to CAR`, { roots, blocks })\n\tblocks.forEach(b => writer.put(b))\n\twriter.close()\n\t// VERBOSE(`Wrote ${blocks.length} blocks to CAR`, writer)\n\treturn out\n} /** create a new CarWriter, with the encoded block as the root */\n\n// export async function makeCarReader(roots: CIDForCar, blocks: BlockForCar[]) {\n// \tconst out = await makeCarOut(roots, blocks)\n\n// \t// create a new CarReader we can hand to web3.storage.putCar\n// \tconst reader = await CarReader.fromIterable(out)\n// \tVERBOSE(`CAR reader`, reader)\n// \treturn reader\n// } /** create a new CarWriter, with the encoded block as the root */\n\nexport async function makeCarBlob(roots: CIDForCar, blocks: BlockForCar[]) {\n\tconst carOut = await makeCarOut(roots, blocks)\n\tconst chunks = []\n\tfor await (const chunk of carOut) {\n\t\tchunks.push(chunk)\n\t}\n\tconst blob = new Blob(chunks)\n\treturn blob\n}\n","import { CarBufferReader } from './buffer-reader.js'\nimport * as CarBufferWriter from './buffer-writer.js'\nimport { CarIndexedReader } from './indexed-reader.js'\nimport { CarIndexer } from './indexer.js'\nimport { CarBlockIterator, CarCIDIterator } from './iterator.js'\nimport { CarReader } from './reader.js'\nimport { CarWriter } from './writer.js'\n\n// @see https://www.iana.org/assignments/media-types/application/vnd.ipld.car\nexport const contentType = 'application/vnd.ipld.car'\n\nexport {\n CarReader,\n CarBufferReader,\n CarIndexer,\n CarBlockIterator,\n CarCIDIterator,\n CarWriter,\n CarIndexedReader,\n CarBufferWriter\n}\n","import fs from 'fs'\nimport { CarBufferReader as BrowserCarBufferReader } from './buffer-reader-browser.js'\n\n/**\n * @typedef {import('./api').Block} Block\n * @typedef {import('./api').BlockIndex} BlockIndex\n * @typedef {import('./api').CarBufferReader} ICarBufferReader\n */\n\nconst fsread = fs.readSync\n\n/**\n * @class\n * @implements {ICarBufferReader}\n */\nexport class CarBufferReader extends BrowserCarBufferReader {\n /**\n * Reads a block directly from a file descriptor for an open CAR file. This\n * function is **only available in Node.js** and not a browser environment.\n *\n * This function can be used in connection with {@link CarIndexer} which emits\n * the `BlockIndex` objects that are required by this function.\n *\n * The user is responsible for opening and closing the file used in this call.\n *\n * @static\n * @memberof CarBufferReader\n * @param {number} fd - A file descriptor from the\n * Node.js `fs` module. An integer, from `fs.open()`.\n * @param {BlockIndex} blockIndex - An index pointing to the location of the\n * Block required. This `BlockIndex` should take the form:\n * `{cid:CID, blockLength:number, blockOffset:number}`.\n * @returns {Block} A `{ cid:CID, bytes:Uint8Array }` pair.\n */\n static readRaw (fd, blockIndex) {\n const { cid, blockLength, blockOffset } = blockIndex\n const bytes = new Uint8Array(blockLength)\n let read\n if (typeof fd === 'number') {\n read = fsread(fd, bytes, 0, blockLength, blockOffset)\n } else {\n throw new TypeError('Bad fd')\n }\n if (read !== blockLength) {\n throw new Error(`Failed to read entire block (${read} instead of ${blockLength})`)\n }\n return { cid, bytes }\n }\n}\n\nexport const __browser = false\n","import { b as buffer } from './chunk-44e51b61.js';\nimport et from './assert.js';\nimport './util.js';\nimport { X } from './chunk-b4205b57.js';\nimport './path.js';\nimport { p as process } from './chunk-2eac56ff.js';\nimport './events.js';\nimport { y } from './chunk-4bd36a8f.js';\nimport './stream.js';\nimport h, { fileURLToPath } from './url.js';\nimport { e as exports$i } from './chunk-23dbec7b.js';\nimport { e as exports$j } from './chunk-6c718bbe.js';\nimport { Buffer } from './buffer.js';\nimport './chunk-ce0fbc82.js';\nimport './chunk-5decc758.js';\nimport './chunk-4ccc3a29.js';\nimport './chunk-924bb2e1.js';\nimport './chunk-b04e620d.js';\n\nvar exports$h = {},\n _dewExec$f = false;\nfunction dew$f() {\n if (_dewExec$f) return exports$h;\n _dewExec$f = true;\n Object.defineProperty(exports$h, \"__esModule\", {\n value: true\n });\n exports$h.constants = void 0;\n exports$h.constants = {\n O_RDONLY: 0,\n O_WRONLY: 1,\n O_RDWR: 2,\n S_IFMT: 61440,\n S_IFREG: 32768,\n S_IFDIR: 16384,\n S_IFCHR: 8192,\n S_IFBLK: 24576,\n S_IFIFO: 4096,\n S_IFLNK: 40960,\n S_IFSOCK: 49152,\n O_CREAT: 64,\n O_EXCL: 128,\n O_NOCTTY: 256,\n O_TRUNC: 512,\n O_APPEND: 1024,\n O_DIRECTORY: 65536,\n O_NOATIME: 262144,\n O_NOFOLLOW: 131072,\n O_SYNC: 1052672,\n O_DIRECT: 16384,\n O_NONBLOCK: 2048,\n S_IRWXU: 448,\n S_IRUSR: 256,\n S_IWUSR: 128,\n S_IXUSR: 64,\n S_IRWXG: 56,\n S_IRGRP: 32,\n S_IWGRP: 16,\n S_IXGRP: 8,\n S_IRWXO: 7,\n S_IROTH: 4,\n S_IWOTH: 2,\n S_IXOTH: 1,\n F_OK: 0,\n R_OK: 4,\n W_OK: 2,\n X_OK: 1,\n UV_FS_SYMLINK_DIR: 1,\n UV_FS_SYMLINK_JUNCTION: 2,\n UV_FS_COPYFILE_EXCL: 1,\n UV_FS_COPYFILE_FICLONE: 2,\n UV_FS_COPYFILE_FICLONE_FORCE: 4,\n COPYFILE_EXCL: 1,\n COPYFILE_FICLONE: 2,\n COPYFILE_FICLONE_FORCE: 4\n };\n return exports$h;\n}\n\nvar exports$g = {},\n _dewExec$e = false;\nfunction dew$e() {\n if (_dewExec$e) return exports$g;\n _dewExec$e = true;\n if (typeof BigInt === \"function\") exports$g.default = BigInt;else exports$g.default = function BigIntNotSupported() {\n throw new Error(\"BigInt is not supported in this environment.\");\n };\n return exports$g;\n}\n\nvar exports$f = {},\n _dewExec$d = false;\nfunction dew$d() {\n if (_dewExec$d) return exports$f;\n _dewExec$d = true;\n Object.defineProperty(exports$f, \"__esModule\", {\n value: true\n });\n exports$f.Stats = void 0;\n\n var constants_1 = dew$f();\n\n var getBigInt_1 = dew$e();\n\n var S_IFMT = constants_1.constants.S_IFMT,\n S_IFDIR = constants_1.constants.S_IFDIR,\n S_IFREG = constants_1.constants.S_IFREG,\n S_IFBLK = constants_1.constants.S_IFBLK,\n S_IFCHR = constants_1.constants.S_IFCHR,\n S_IFLNK = constants_1.constants.S_IFLNK,\n S_IFIFO = constants_1.constants.S_IFIFO,\n S_IFSOCK = constants_1.constants.S_IFSOCK;\n /**\n * Statistics about a file/directory, like `fs.Stats`.\n */\n\n var Stats = function () {\n function Stats() {}\n\n Stats.build = function (node, bigint) {\n if (bigint === void 0) {\n bigint = false;\n }\n\n var stats = new Stats();\n var uid = node.uid,\n gid = node.gid,\n atime = node.atime,\n mtime = node.mtime,\n ctime = node.ctime;\n var getStatNumber = !bigint ? function (number) {\n return number;\n } : getBigInt_1.default; // Copy all values on Stats from Node, so that if Node values\n // change, values on Stats would still be the old ones,\n // just like in Node fs.\n\n stats.uid = getStatNumber(uid);\n stats.gid = getStatNumber(gid);\n stats.rdev = getStatNumber(0);\n stats.blksize = getStatNumber(4096);\n stats.ino = getStatNumber(node.ino);\n stats.size = getStatNumber(node.getSize());\n stats.blocks = getStatNumber(1);\n stats.atime = atime;\n stats.mtime = mtime;\n stats.ctime = ctime;\n stats.birthtime = ctime;\n stats.atimeMs = getStatNumber(atime.getTime());\n stats.mtimeMs = getStatNumber(mtime.getTime());\n var ctimeMs = getStatNumber(ctime.getTime());\n stats.ctimeMs = ctimeMs;\n stats.birthtimeMs = ctimeMs;\n stats.dev = getStatNumber(0);\n stats.mode = getStatNumber(node.mode);\n stats.nlink = getStatNumber(node.nlink);\n return stats;\n };\n\n Stats.prototype._checkModeProperty = function (property) {\n return (Number(this.mode) & S_IFMT) === property;\n };\n\n Stats.prototype.isDirectory = function () {\n return this._checkModeProperty(S_IFDIR);\n };\n\n Stats.prototype.isFile = function () {\n return this._checkModeProperty(S_IFREG);\n };\n\n Stats.prototype.isBlockDevice = function () {\n return this._checkModeProperty(S_IFBLK);\n };\n\n Stats.prototype.isCharacterDevice = function () {\n return this._checkModeProperty(S_IFCHR);\n };\n\n Stats.prototype.isSymbolicLink = function () {\n return this._checkModeProperty(S_IFLNK);\n };\n\n Stats.prototype.isFIFO = function () {\n return this._checkModeProperty(S_IFIFO);\n };\n\n Stats.prototype.isSocket = function () {\n return this._checkModeProperty(S_IFSOCK);\n };\n\n return Stats;\n }();\n\n exports$f.Stats = Stats;\n exports$f.default = Stats;\n return exports$f;\n}\n\nvar exports$e = {},\n _dewExec$c = false;\nfunction dew$c() {\n if (_dewExec$c) return exports$e;\n _dewExec$c = true;\n\n var __spreadArray = exports$e && exports$e.__spreadArray || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n };\n\n Object.defineProperty(exports$e, \"__esModule\", {\n value: true\n });\n exports$e.bufferFrom = exports$e.bufferAllocUnsafe = exports$e.Buffer = void 0;\n var buffer_1 = buffer;\n Object.defineProperty(exports$e, \"Buffer\", {\n enumerable: true,\n get: function () {\n return buffer_1.Buffer;\n }\n });\n\n function bufferV0P12Ponyfill(arg0) {\n var args = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n\n return new (buffer_1.Buffer.bind.apply(buffer_1.Buffer, __spreadArray([void 0, arg0], args, false)))();\n }\n\n var bufferAllocUnsafe = buffer_1.Buffer.allocUnsafe || bufferV0P12Ponyfill;\n exports$e.bufferAllocUnsafe = bufferAllocUnsafe;\n var bufferFrom = buffer_1.Buffer.from || bufferV0P12Ponyfill;\n exports$e.bufferFrom = bufferFrom;\n return exports$e;\n}\n\nvar exports$d = {},\n _dewExec$b = false;\n\nvar _global$3 = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : global;\n\nfunction dew$b() {\n if (_dewExec$b) return exports$d;\n _dewExec$b = true;\n\n // The whole point behind this internal module is to allow Node.js to no\n // longer be forced to treat every error message change as a semver-major\n // change. The NodeError classes here all expose a `code` property whose\n // value statically and permanently identifies the error. While the error\n // message may change, the code should not.\n var __extends = exports$d && exports$d.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n };\n\n return extendStatics(d, b);\n };\n\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n }();\n\n Object.defineProperty(exports$d, \"__esModule\", {\n value: true\n });\n exports$d.E = exports$d.AssertionError = exports$d.message = exports$d.RangeError = exports$d.TypeError = exports$d.Error = void 0;\n var assert = et;\n var util = X;\n var kCode = typeof Symbol === \"undefined\" ? \"_kCode\" : Symbol(\"code\");\n var messages = {}; // new Map();\n\n function makeNodeError(Base) {\n return function (_super) {\n __extends(NodeError, _super);\n\n function NodeError(key) {\n var args = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n\n var _this = _super.call(this, message(key, args)) || this;\n\n _this.code = key;\n _this[kCode] = key;\n _this.name = _super.prototype.name + \" [\" + _this[kCode] + \"]\";\n return _this;\n }\n\n return NodeError;\n }(Base);\n }\n\n var g = typeof globalThis !== \"undefined\" ? globalThis : _global$3;\n\n var AssertionError = function (_super) {\n __extends(AssertionError, _super);\n\n function AssertionError(options) {\n var _this = this;\n\n if (typeof options !== \"object\" || options === null) {\n throw new exports$d.TypeError(\"ERR_INVALID_ARG_TYPE\", \"options\", \"object\");\n }\n\n if (options.message) {\n _this = _super.call(this, options.message) || this;\n } else {\n _this = _super.call(this, util.inspect(options.actual).slice(0, 128) + \" \" + (options.operator + \" \" + util.inspect(options.expected).slice(0, 128))) || this;\n }\n\n _this.generatedMessage = !options.message;\n _this.name = \"AssertionError [ERR_ASSERTION]\";\n _this.code = \"ERR_ASSERTION\";\n _this.actual = options.actual;\n _this.expected = options.expected;\n _this.operator = options.operator;\n exports$d.Error.captureStackTrace(_this, options.stackStartFunction);\n return _this;\n }\n\n return AssertionError;\n }(g.Error);\n\n exports$d.AssertionError = AssertionError;\n\n function message(key, args) {\n assert.strictEqual(typeof key, \"string\"); // const msg = messages.get(key);\n\n var msg = messages[key];\n assert(msg, \"An invalid error message key was used: \" + key + \".\");\n var fmt;\n\n if (typeof msg === \"function\") {\n fmt = msg;\n } else {\n fmt = util.format;\n if (args === undefined || args.length === 0) return msg;\n args.unshift(msg);\n }\n\n return String(fmt.apply(null, args));\n }\n\n exports$d.message = message; // Utility function for registering the error codes. Only used here. Exported\n // *only* to allow for testing.\n\n function E(sym, val) {\n messages[sym] = typeof val === \"function\" ? val : String(val);\n }\n\n exports$d.E = E;\n exports$d.Error = makeNodeError(g.Error);\n exports$d.TypeError = makeNodeError(g.TypeError);\n exports$d.RangeError = makeNodeError(g.RangeError); // To declare an error message, use the E(sym, val) function above. The sym\n // must be an upper case string. The val can be either a function or a string.\n // The return value of the function must be a string.\n // Examples:\n // E('EXAMPLE_KEY1', 'This is the error value');\n // E('EXAMPLE_KEY2', (a, b) => return `${a} ${b}`);\n //\n // Once an error code has been assigned, the code itself MUST NOT change and\n // any given error code must never be reused to identify a different error.\n //\n // Any error code added here should also be added to the documentation\n //\n // Note: Please try to keep these in alphabetical order\n\n E(\"ERR_ARG_NOT_ITERABLE\", \"%s must be iterable\");\n E(\"ERR_ASSERTION\", \"%s\");\n E(\"ERR_BUFFER_OUT_OF_BOUNDS\", bufferOutOfBounds);\n E(\"ERR_CHILD_CLOSED_BEFORE_REPLY\", \"Child closed before reply received\");\n E(\"ERR_CONSOLE_WRITABLE_STREAM\", \"Console expects a writable stream instance for %s\");\n E(\"ERR_CPU_USAGE\", \"Unable to obtain cpu usage %s\");\n E(\"ERR_DNS_SET_SERVERS_FAILED\", function (err, servers) {\n return \"c-ares failed to set servers: \\\"\" + err + \"\\\" [\" + servers + \"]\";\n });\n E(\"ERR_FALSY_VALUE_REJECTION\", \"Promise was rejected with falsy value\");\n E(\"ERR_ENCODING_NOT_SUPPORTED\", function (enc) {\n return \"The \\\"\" + enc + \"\\\" encoding is not supported\";\n });\n E(\"ERR_ENCODING_INVALID_ENCODED_DATA\", function (enc) {\n return \"The encoded data was not valid for encoding \" + enc;\n });\n E(\"ERR_HTTP_HEADERS_SENT\", \"Cannot render headers after they are sent to the client\");\n E(\"ERR_HTTP_INVALID_STATUS_CODE\", \"Invalid status code: %s\");\n E(\"ERR_HTTP_TRAILER_INVALID\", \"Trailers are invalid with this transfer encoding\");\n E(\"ERR_INDEX_OUT_OF_RANGE\", \"Index out of range\");\n E(\"ERR_INVALID_ARG_TYPE\", invalidArgType);\n E(\"ERR_INVALID_ARRAY_LENGTH\", function (name, len, actual) {\n assert.strictEqual(typeof actual, \"number\");\n return \"The array \\\"\" + name + \"\\\" (length \" + actual + \") must be of length \" + len + \".\";\n });\n E(\"ERR_INVALID_BUFFER_SIZE\", \"Buffer size must be a multiple of %s\");\n E(\"ERR_INVALID_CALLBACK\", \"Callback must be a function\");\n E(\"ERR_INVALID_CHAR\", \"Invalid character in %s\");\n E(\"ERR_INVALID_CURSOR_POS\", \"Cannot set cursor row without setting its column\");\n E(\"ERR_INVALID_FD\", \"\\\"fd\\\" must be a positive integer: %s\");\n E(\"ERR_INVALID_FILE_URL_HOST\", \"File URL host must be \\\"localhost\\\" or empty on %s\");\n E(\"ERR_INVALID_FILE_URL_PATH\", \"File URL path %s\");\n E(\"ERR_INVALID_HANDLE_TYPE\", \"This handle type cannot be sent\");\n E(\"ERR_INVALID_IP_ADDRESS\", \"Invalid IP address: %s\");\n E(\"ERR_INVALID_OPT_VALUE\", function (name, value) {\n return \"The value \\\"\" + String(value) + \"\\\" is invalid for option \\\"\" + name + \"\\\"\";\n });\n E(\"ERR_INVALID_OPT_VALUE_ENCODING\", function (value) {\n return \"The value \\\"\" + String(value) + \"\\\" is invalid for option \\\"encoding\\\"\";\n });\n E(\"ERR_INVALID_REPL_EVAL_CONFIG\", \"Cannot specify both \\\"breakEvalOnSigint\\\" and \\\"eval\\\" for REPL\");\n E(\"ERR_INVALID_SYNC_FORK_INPUT\", \"Asynchronous forks do not support Buffer, Uint8Array or string input: %s\");\n E(\"ERR_INVALID_THIS\", \"Value of \\\"this\\\" must be of type %s\");\n E(\"ERR_INVALID_TUPLE\", \"%s must be an iterable %s tuple\");\n E(\"ERR_INVALID_URL\", \"Invalid URL: %s\");\n E(\"ERR_INVALID_URL_SCHEME\", function (expected) {\n return \"The URL must be \" + oneOf(expected, \"scheme\");\n });\n E(\"ERR_IPC_CHANNEL_CLOSED\", \"Channel closed\");\n E(\"ERR_IPC_DISCONNECTED\", \"IPC channel is already disconnected\");\n E(\"ERR_IPC_ONE_PIPE\", \"Child process can have only one IPC pipe\");\n E(\"ERR_IPC_SYNC_FORK\", \"IPC cannot be used with synchronous forks\");\n E(\"ERR_MISSING_ARGS\", missingArgs);\n E(\"ERR_MULTIPLE_CALLBACK\", \"Callback called multiple times\");\n E(\"ERR_NAPI_CONS_FUNCTION\", \"Constructor must be a function\");\n E(\"ERR_NAPI_CONS_PROTOTYPE_OBJECT\", \"Constructor.prototype must be an object\");\n E(\"ERR_NO_CRYPTO\", \"Node.js is not compiled with OpenSSL crypto support\");\n E(\"ERR_NO_LONGER_SUPPORTED\", \"%s is no longer supported\");\n E(\"ERR_PARSE_HISTORY_DATA\", \"Could not parse history data in %s\");\n E(\"ERR_SOCKET_ALREADY_BOUND\", \"Socket is already bound\");\n E(\"ERR_SOCKET_BAD_PORT\", \"Port should be > 0 and < 65536\");\n E(\"ERR_SOCKET_BAD_TYPE\", \"Bad socket type specified. Valid types are: udp4, udp6\");\n E(\"ERR_SOCKET_CANNOT_SEND\", \"Unable to send data\");\n E(\"ERR_SOCKET_CLOSED\", \"Socket is closed\");\n E(\"ERR_SOCKET_DGRAM_NOT_RUNNING\", \"Not running\");\n E(\"ERR_STDERR_CLOSE\", \"process.stderr cannot be closed\");\n E(\"ERR_STDOUT_CLOSE\", \"process.stdout cannot be closed\");\n E(\"ERR_STREAM_WRAP\", \"Stream has StringDecoder set or is in objectMode\");\n E(\"ERR_TLS_CERT_ALTNAME_INVALID\", \"Hostname/IP does not match certificate's altnames: %s\");\n E(\"ERR_TLS_DH_PARAM_SIZE\", function (size) {\n return \"DH parameter size \" + size + \" is less than 2048\";\n });\n E(\"ERR_TLS_HANDSHAKE_TIMEOUT\", \"TLS handshake timeout\");\n E(\"ERR_TLS_RENEGOTIATION_FAILED\", \"Failed to renegotiate\");\n E(\"ERR_TLS_REQUIRED_SERVER_NAME\", \"\\\"servername\\\" is required parameter for Server.addContext\");\n E(\"ERR_TLS_SESSION_ATTACK\", \"TSL session renegotiation attack detected\");\n E(\"ERR_TRANSFORM_ALREADY_TRANSFORMING\", \"Calling transform done when still transforming\");\n E(\"ERR_TRANSFORM_WITH_LENGTH_0\", \"Calling transform done when writableState.length != 0\");\n E(\"ERR_UNKNOWN_ENCODING\", \"Unknown encoding: %s\");\n E(\"ERR_UNKNOWN_SIGNAL\", \"Unknown signal: %s\");\n E(\"ERR_UNKNOWN_STDIN_TYPE\", \"Unknown stdin file type\");\n E(\"ERR_UNKNOWN_STREAM_TYPE\", \"Unknown stream file type\");\n E(\"ERR_V8BREAKITERATOR\", \"Full ICU data not installed. \" + \"See https://github.com/nodejs/node/wiki/Intl\");\n\n function invalidArgType(name, expected, actual) {\n assert(name, \"name is required\"); // determiner: 'must be' or 'must not be'\n\n var determiner;\n\n if (expected.includes(\"not \")) {\n determiner = \"must not be\";\n expected = expected.split(\"not \")[1];\n } else {\n determiner = \"must be\";\n }\n\n var msg;\n\n if (Array.isArray(name)) {\n var names = name.map(function (val) {\n return \"\\\"\" + val + \"\\\"\";\n }).join(\", \");\n msg = \"The \" + names + \" arguments \" + determiner + \" \" + oneOf(expected, \"type\");\n } else if (name.includes(\" argument\")) {\n // for the case like 'first argument'\n msg = \"The \" + name + \" \" + determiner + \" \" + oneOf(expected, \"type\");\n } else {\n var type = name.includes(\".\") ? \"property\" : \"argument\";\n msg = \"The \\\"\" + name + \"\\\" \" + type + \" \" + determiner + \" \" + oneOf(expected, \"type\");\n } // if actual value received, output it\n\n\n if (arguments.length >= 3) {\n msg += \". Received type \" + (actual !== null ? typeof actual : \"null\");\n }\n\n return msg;\n }\n\n function missingArgs() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n assert(args.length > 0, \"At least one arg needs to be specified\");\n var msg = \"The \";\n var len = args.length;\n args = args.map(function (a) {\n return \"\\\"\" + a + \"\\\"\";\n });\n\n switch (len) {\n case 1:\n msg += args[0] + \" argument\";\n break;\n\n case 2:\n msg += args[0] + \" and \" + args[1] + \" arguments\";\n break;\n\n default:\n msg += args.slice(0, len - 1).join(\", \");\n msg += \", and \" + args[len - 1] + \" arguments\";\n break;\n }\n\n return msg + \" must be specified\";\n }\n\n function oneOf(expected, thing) {\n assert(expected, \"expected is required\");\n assert(typeof thing === \"string\", \"thing is required\");\n\n if (Array.isArray(expected)) {\n var len = expected.length;\n assert(len > 0, \"At least one expected value needs to be specified\"); // tslint:disable-next-line\n\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \" + thing + \" \" + expected.slice(0, len - 1).join(\", \") + \", or \" + expected[len - 1];\n } else if (len === 2) {\n return \"one of \" + thing + \" \" + expected[0] + \" or \" + expected[1];\n } else {\n return \"of \" + thing + \" \" + expected[0];\n }\n } else {\n return \"of \" + thing + \" \" + String(expected);\n }\n }\n\n function bufferOutOfBounds(name, isWriting) {\n if (isWriting) {\n return \"Attempt to write outside buffer bounds\";\n } else {\n return \"\\\"\" + name + \"\\\" is outside of buffer bounds\";\n }\n }\n\n return exports$d;\n}\n\nvar exports$c = {},\n _dewExec$a = false;\nfunction dew$a() {\n if (_dewExec$a) return exports$c;\n _dewExec$a = true;\n Object.defineProperty(exports$c, \"__esModule\", {\n value: true\n });\n exports$c.strToEncoding = exports$c.assertEncoding = exports$c.ENCODING_UTF8 = void 0;\n\n var buffer_1 = dew$c();\n\n var errors = dew$b();\n\n exports$c.ENCODING_UTF8 = \"utf8\";\n\n function assertEncoding(encoding) {\n if (encoding && !buffer_1.Buffer.isEncoding(encoding)) throw new errors.TypeError(\"ERR_INVALID_OPT_VALUE_ENCODING\", encoding);\n }\n\n exports$c.assertEncoding = assertEncoding;\n\n function strToEncoding(str, encoding) {\n if (!encoding || encoding === exports$c.ENCODING_UTF8) return str; // UTF-8\n\n if (encoding === \"buffer\") return new buffer_1.Buffer(str); // `buffer` encoding\n\n return new buffer_1.Buffer(str).toString(encoding); // Custom encoding\n }\n\n exports$c.strToEncoding = strToEncoding;\n return exports$c;\n}\n\nvar exports$b = {},\n _dewExec$9 = false;\nfunction dew$9() {\n if (_dewExec$9) return exports$b;\n _dewExec$9 = true;\n Object.defineProperty(exports$b, \"__esModule\", {\n value: true\n });\n exports$b.Dirent = void 0;\n\n var constants_1 = dew$f();\n\n var encoding_1 = dew$a();\n\n var S_IFMT = constants_1.constants.S_IFMT,\n S_IFDIR = constants_1.constants.S_IFDIR,\n S_IFREG = constants_1.constants.S_IFREG,\n S_IFBLK = constants_1.constants.S_IFBLK,\n S_IFCHR = constants_1.constants.S_IFCHR,\n S_IFLNK = constants_1.constants.S_IFLNK,\n S_IFIFO = constants_1.constants.S_IFIFO,\n S_IFSOCK = constants_1.constants.S_IFSOCK;\n /**\n * A directory entry, like `fs.Dirent`.\n */\n\n var Dirent = function () {\n function Dirent() {\n this.name = \"\";\n this.mode = 0;\n }\n\n Dirent.build = function (link, encoding) {\n var dirent = new Dirent();\n var mode = link.getNode().mode;\n dirent.name = (0, encoding_1.strToEncoding)(link.getName(), encoding);\n dirent.mode = mode;\n return dirent;\n };\n\n Dirent.prototype._checkModeProperty = function (property) {\n return (this.mode & S_IFMT) === property;\n };\n\n Dirent.prototype.isDirectory = function () {\n return this._checkModeProperty(S_IFDIR);\n };\n\n Dirent.prototype.isFile = function () {\n return this._checkModeProperty(S_IFREG);\n };\n\n Dirent.prototype.isBlockDevice = function () {\n return this._checkModeProperty(S_IFBLK);\n };\n\n Dirent.prototype.isCharacterDevice = function () {\n return this._checkModeProperty(S_IFCHR);\n };\n\n Dirent.prototype.isSymbolicLink = function () {\n return this._checkModeProperty(S_IFLNK);\n };\n\n Dirent.prototype.isFIFO = function () {\n return this._checkModeProperty(S_IFIFO);\n };\n\n Dirent.prototype.isSocket = function () {\n return this._checkModeProperty(S_IFSOCK);\n };\n\n return Dirent;\n }();\n\n exports$b.Dirent = Dirent;\n exports$b.default = Dirent;\n return exports$b;\n}\n\nvar exports$a = {},\n _dewExec$8 = false;\n\nvar _global$2 = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : global;\n\nfunction dew$8() {\n if (_dewExec$8) return exports$a;\n _dewExec$8 = true;\n var process$1 = process;\n Object.defineProperty(exports$a, \"__esModule\", {\n value: true\n });\n\n var _setImmediate;\n\n if (typeof process$1.nextTick === \"function\") _setImmediate = process$1.nextTick.bind(typeof globalThis !== \"undefined\" ? globalThis : _global$2);else _setImmediate = setTimeout.bind(typeof globalThis !== \"undefined\" ? globalThis : _global$2);\n exports$a.default = _setImmediate;\n return exports$a;\n}\n\nvar exports$9 = {},\n _dewExec$7 = false;\nfunction dew$7() {\n if (_dewExec$7) return exports$9;\n _dewExec$7 = true;\n var process$1 = process;\n // Here we mock the global `process` variable in case we are not in Node's environment.\n Object.defineProperty(exports$9, \"__esModule\", {\n value: true\n });\n exports$9.createProcess = void 0;\n /**\n * Looks to return a `process` object, if one is available.\n *\n * The global `process` is returned if defined;\n * otherwise `require('process')` is attempted.\n *\n * If that fails, `undefined` is returned.\n *\n * @return {IProcess | undefined}\n */\n\n var maybeReturnProcess = function () {\n if (typeof process$1 !== \"undefined\") {\n return process$1;\n }\n\n try {\n return process;\n } catch (_a) {\n return undefined;\n }\n };\n\n function createProcess() {\n var p = maybeReturnProcess() || {};\n if (!p.getuid) p.getuid = function () {\n return 0;\n };\n if (!p.getgid) p.getgid = function () {\n return 0;\n };\n if (!p.cwd) p.cwd = function () {\n return \"/\";\n };\n if (!p.nextTick) p.nextTick = dew$8().default;\n if (!p.emitWarning) p.emitWarning = function (message, type) {\n // tslint:disable-next-line:no-console\n console.warn(\"\" + type + (type ? \": \" : \"\") + message);\n };\n if (!p.env) p.env = {};\n return p;\n }\n\n exports$9.createProcess = createProcess;\n exports$9.default = createProcess();\n return exports$9;\n}\n\nvar exports$8 = {},\n _dewExec$6 = false;\nfunction dew$6() {\n if (_dewExec$6) return exports$8;\n _dewExec$6 = true;\n\n var __extends = exports$8 && exports$8.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n };\n\n return extendStatics(d, b);\n };\n\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n }();\n\n Object.defineProperty(exports$8, \"__esModule\", {\n value: true\n });\n exports$8.File = exports$8.Link = exports$8.Node = exports$8.SEP = void 0;\n\n var process_1 = dew$7();\n\n var buffer_1 = dew$c();\n\n var constants_1 = dew$f();\n\n var events_1 = y;\n\n var Stats_1 = dew$d();\n\n var S_IFMT = constants_1.constants.S_IFMT,\n S_IFDIR = constants_1.constants.S_IFDIR,\n S_IFREG = constants_1.constants.S_IFREG,\n S_IFLNK = constants_1.constants.S_IFLNK,\n O_APPEND = constants_1.constants.O_APPEND;\n exports$8.SEP = \"/\";\n /**\n * Node in a file system (like i-node, v-node).\n */\n\n var Node = function (_super) {\n __extends(Node, _super);\n\n function Node(ino, perm) {\n if (perm === void 0) {\n perm = 438;\n }\n\n var _this = _super.call(this) || this; // User ID and group ID.\n\n\n _this.uid = process_1.default.getuid();\n _this.gid = process_1.default.getgid();\n _this.atime = new Date();\n _this.mtime = new Date();\n _this.ctime = new Date();\n _this.perm = 438; // Permissions `chmod`, `fchmod`\n\n _this.mode = S_IFREG; // S_IFDIR, S_IFREG, etc.. (file by default?)\n // Number of hard links pointing at this Node.\n\n _this.nlink = 1;\n _this.perm = perm;\n _this.mode |= perm;\n _this.ino = ino;\n return _this;\n }\n\n Node.prototype.getString = function (encoding) {\n if (encoding === void 0) {\n encoding = \"utf8\";\n }\n\n return this.getBuffer().toString(encoding);\n };\n\n Node.prototype.setString = function (str) {\n // this.setBuffer(bufferFrom(str, 'utf8'));\n this.buf = (0, buffer_1.bufferFrom)(str, \"utf8\");\n this.touch();\n };\n\n Node.prototype.getBuffer = function () {\n if (!this.buf) this.setBuffer((0, buffer_1.bufferAllocUnsafe)(0));\n return (0, buffer_1.bufferFrom)(this.buf); // Return a copy.\n };\n\n Node.prototype.setBuffer = function (buf) {\n this.buf = (0, buffer_1.bufferFrom)(buf); // Creates a copy of data.\n\n this.touch();\n };\n\n Node.prototype.getSize = function () {\n return this.buf ? this.buf.length : 0;\n };\n\n Node.prototype.setModeProperty = function (property) {\n this.mode = this.mode & ~S_IFMT | property;\n };\n\n Node.prototype.setIsFile = function () {\n this.setModeProperty(S_IFREG);\n };\n\n Node.prototype.setIsDirectory = function () {\n this.setModeProperty(S_IFDIR);\n };\n\n Node.prototype.setIsSymlink = function () {\n this.setModeProperty(S_IFLNK);\n };\n\n Node.prototype.isFile = function () {\n return (this.mode & S_IFMT) === S_IFREG;\n };\n\n Node.prototype.isDirectory = function () {\n return (this.mode & S_IFMT) === S_IFDIR;\n };\n\n Node.prototype.isSymlink = function () {\n // return !!this.symlink;\n return (this.mode & S_IFMT) === S_IFLNK;\n };\n\n Node.prototype.makeSymlink = function (steps) {\n this.symlink = steps;\n this.setIsSymlink();\n };\n\n Node.prototype.write = function (buf, off, len, pos) {\n if (off === void 0) {\n off = 0;\n }\n\n if (len === void 0) {\n len = buf.length;\n }\n\n if (pos === void 0) {\n pos = 0;\n }\n\n if (!this.buf) this.buf = (0, buffer_1.bufferAllocUnsafe)(0);\n\n if (pos + len > this.buf.length) {\n var newBuf = (0, buffer_1.bufferAllocUnsafe)(pos + len);\n this.buf.copy(newBuf, 0, 0, this.buf.length);\n this.buf = newBuf;\n }\n\n buf.copy(this.buf, pos, off, off + len);\n this.touch();\n return len;\n }; // Returns the number of bytes read.\n\n\n Node.prototype.read = function (buf, off, len, pos) {\n if (off === void 0) {\n off = 0;\n }\n\n if (len === void 0) {\n len = buf.byteLength;\n }\n\n if (pos === void 0) {\n pos = 0;\n }\n\n if (!this.buf) this.buf = (0, buffer_1.bufferAllocUnsafe)(0);\n var actualLen = len;\n\n if (actualLen > buf.byteLength) {\n actualLen = buf.byteLength;\n }\n\n if (actualLen + pos > this.buf.length) {\n actualLen = this.buf.length - pos;\n }\n\n this.buf.copy(buf, off, pos, pos + actualLen);\n return actualLen;\n };\n\n Node.prototype.truncate = function (len) {\n if (len === void 0) {\n len = 0;\n }\n\n if (!len) this.buf = (0, buffer_1.bufferAllocUnsafe)(0);else {\n if (!this.buf) this.buf = (0, buffer_1.bufferAllocUnsafe)(0);\n\n if (len <= this.buf.length) {\n this.buf = this.buf.slice(0, len);\n } else {\n var buf = (0, buffer_1.bufferAllocUnsafe)(0);\n this.buf.copy(buf);\n buf.fill(0, len);\n }\n }\n this.touch();\n };\n\n Node.prototype.chmod = function (perm) {\n this.perm = perm;\n this.mode = this.mode & ~511 | perm;\n this.touch();\n };\n\n Node.prototype.chown = function (uid, gid) {\n this.uid = uid;\n this.gid = gid;\n this.touch();\n };\n\n Node.prototype.touch = function () {\n this.mtime = new Date();\n this.emit(\"change\", this);\n };\n\n Node.prototype.canRead = function (uid, gid) {\n if (uid === void 0) {\n uid = process_1.default.getuid();\n }\n\n if (gid === void 0) {\n gid = process_1.default.getgid();\n }\n\n if (this.perm & 4\n /* IROTH */\n ) {\n return true;\n }\n\n if (gid === this.gid) {\n if (this.perm & 32\n /* IRGRP */\n ) {\n return true;\n }\n }\n\n if (uid === this.uid) {\n if (this.perm & 256\n /* IRUSR */\n ) {\n return true;\n }\n }\n\n return false;\n };\n\n Node.prototype.canWrite = function (uid, gid) {\n if (uid === void 0) {\n uid = process_1.default.getuid();\n }\n\n if (gid === void 0) {\n gid = process_1.default.getgid();\n }\n\n if (this.perm & 2\n /* IWOTH */\n ) {\n return true;\n }\n\n if (gid === this.gid) {\n if (this.perm & 16\n /* IWGRP */\n ) {\n return true;\n }\n }\n\n if (uid === this.uid) {\n if (this.perm & 128\n /* IWUSR */\n ) {\n return true;\n }\n }\n\n return false;\n };\n\n Node.prototype.del = function () {\n this.emit(\"delete\", this);\n };\n\n Node.prototype.toJSON = function () {\n return {\n ino: this.ino,\n uid: this.uid,\n gid: this.gid,\n atime: this.atime.getTime(),\n mtime: this.mtime.getTime(),\n ctime: this.ctime.getTime(),\n perm: this.perm,\n mode: this.mode,\n nlink: this.nlink,\n symlink: this.symlink,\n data: this.getString()\n };\n };\n\n return Node;\n }(events_1.EventEmitter);\n\n exports$8.Node = Node;\n /**\n * Represents a hard link that points to an i-node `node`.\n */\n\n var Link = function (_super) {\n __extends(Link, _super);\n\n function Link(vol, parent, name) {\n var _this = _super.call(this) || this;\n\n _this.children = {}; // Path to this node as Array: ['usr', 'bin', 'node'].\n\n _this.steps = []; // \"i-node\" number of the node.\n\n _this.ino = 0; // Number of children.\n\n _this.length = 0;\n _this.vol = vol;\n _this.parent = parent;\n _this.steps = parent ? parent.steps.concat([name]) : [name];\n return _this;\n }\n\n Link.prototype.setNode = function (node) {\n this.node = node;\n this.ino = node.ino;\n };\n\n Link.prototype.getNode = function () {\n return this.node;\n };\n\n Link.prototype.createChild = function (name, node) {\n if (node === void 0) {\n node = this.vol.createNode();\n }\n\n var link = new Link(this.vol, this, name);\n link.setNode(node);\n\n if (node.isDirectory()) ;\n\n this.setChild(name, link);\n return link;\n };\n\n Link.prototype.setChild = function (name, link) {\n if (link === void 0) {\n link = new Link(this.vol, this, name);\n }\n\n this.children[name] = link;\n link.parent = this;\n this.length++;\n this.emit(\"child:add\", link, this);\n return link;\n };\n\n Link.prototype.deleteChild = function (link) {\n delete this.children[link.getName()];\n this.length--;\n this.emit(\"child:delete\", link, this);\n };\n\n Link.prototype.getChild = function (name) {\n if (Object.hasOwnProperty.call(this.children, name)) {\n return this.children[name];\n }\n };\n\n Link.prototype.getPath = function () {\n return this.steps.join(exports$8.SEP);\n };\n\n Link.prototype.getName = function () {\n return this.steps[this.steps.length - 1];\n }; // del() {\n // const parent = this.parent;\n // if(parent) {\n // parent.deleteChild(link);\n // }\n // this.parent = null;\n // this.vol = null;\n // }\n\n /**\n * Walk the tree path and return the `Link` at that location, if any.\n * @param steps {string[]} Desired location.\n * @param stop {number} Max steps to go into.\n * @param i {number} Current step in the `steps` array.\n *\n * @return {Link|null}\n */\n\n\n Link.prototype.walk = function (steps, stop, i) {\n if (stop === void 0) {\n stop = steps.length;\n }\n\n if (i === void 0) {\n i = 0;\n }\n\n if (i >= steps.length) return this;\n if (i >= stop) return this;\n var step = steps[i];\n var link = this.getChild(step);\n if (!link) return null;\n return link.walk(steps, stop, i + 1);\n };\n\n Link.prototype.toJSON = function () {\n return {\n steps: this.steps,\n ino: this.ino,\n children: Object.keys(this.children)\n };\n };\n\n return Link;\n }(events_1.EventEmitter);\n\n exports$8.Link = Link;\n /**\n * Represents an open file (file descriptor) that points to a `Link` (Hard-link) and a `Node`.\n */\n\n var File = function () {\n /**\n * Open a Link-Node pair. `node` is provided separately as that might be a different node\n * rather the one `link` points to, because it might be a symlink.\n * @param link\n * @param node\n * @param flags\n * @param fd\n */\n function File(link, node, flags, fd) {\n /**\n * A cursor/offset position in a file, where data will be written on write.\n * User can \"seek\" this position.\n */\n this.position = 0;\n this.link = link;\n this.node = node;\n this.flags = flags;\n this.fd = fd;\n }\n\n File.prototype.getString = function (encoding) {\n\n return this.node.getString();\n };\n\n File.prototype.setString = function (str) {\n this.node.setString(str);\n };\n\n File.prototype.getBuffer = function () {\n return this.node.getBuffer();\n };\n\n File.prototype.setBuffer = function (buf) {\n this.node.setBuffer(buf);\n };\n\n File.prototype.getSize = function () {\n return this.node.getSize();\n };\n\n File.prototype.truncate = function (len) {\n this.node.truncate(len);\n };\n\n File.prototype.seekTo = function (position) {\n this.position = position;\n };\n\n File.prototype.stats = function () {\n return Stats_1.default.build(this.node);\n };\n\n File.prototype.write = function (buf, offset, length, position) {\n if (offset === void 0) {\n offset = 0;\n }\n\n if (length === void 0) {\n length = buf.length;\n }\n\n if (typeof position !== \"number\") position = this.position;\n if (this.flags & O_APPEND) position = this.getSize();\n var bytes = this.node.write(buf, offset, length, position);\n this.position = position + bytes;\n return bytes;\n };\n\n File.prototype.read = function (buf, offset, length, position) {\n if (offset === void 0) {\n offset = 0;\n }\n\n if (length === void 0) {\n length = buf.byteLength;\n }\n\n if (typeof position !== \"number\") position = this.position;\n var bytes = this.node.read(buf, offset, length, position);\n this.position = position + bytes;\n return bytes;\n };\n\n File.prototype.chmod = function (perm) {\n this.node.chmod(perm);\n };\n\n File.prototype.chown = function (uid, gid) {\n this.node.chown(uid, gid);\n };\n\n return File;\n }();\n\n exports$8.File = File;\n return exports$8;\n}\n\nvar exports$7 = {},\n _dewExec$5 = false;\n\nvar _global$1 = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : global;\n\nfunction dew$5() {\n if (_dewExec$5) return exports$7;\n _dewExec$5 = true;\n Object.defineProperty(exports$7, \"__esModule\", {\n value: true\n });\n /**\n * `setTimeoutUnref` is just like `setTimeout`,\n * only in Node's environment it will \"unref\" its macro task.\n */\n\n function setTimeoutUnref(callback, time, args) {\n var ref = setTimeout.apply(typeof globalThis !== \"undefined\" ? globalThis : _global$1, arguments);\n if (ref && typeof ref === \"object\" && typeof ref.unref === \"function\") ref.unref();\n return ref;\n }\n\n exports$7.default = setTimeoutUnref;\n return exports$7;\n}\n\nvar exports$6 = {},\n _dewExec$4 = false;\nfunction dew$4() {\n if (_dewExec$4) return exports$6;\n _dewExec$4 = true;\n\n var __spreadArray = exports$6 && exports$6.__spreadArray || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n };\n\n Object.defineProperty(exports$6, \"__esModule\", {\n value: true\n });\n exports$6.FileHandle = void 0;\n\n function promisify(vol, fn, getResult) {\n if (getResult === void 0) {\n getResult = function (input) {\n return input;\n };\n }\n\n return function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n return new Promise(function (resolve, reject) {\n vol[fn].bind(vol).apply(void 0, __spreadArray(__spreadArray([], args, false), [function (error, result) {\n if (error) return reject(error);\n return resolve(getResult(result));\n }], false));\n });\n };\n }\n\n var FileHandle = function () {\n function FileHandle(vol, fd) {\n this.vol = vol;\n this.fd = fd;\n }\n\n FileHandle.prototype.appendFile = function (data, options) {\n return promisify(this.vol, \"appendFile\")(this.fd, data, options);\n };\n\n FileHandle.prototype.chmod = function (mode) {\n return promisify(this.vol, \"fchmod\")(this.fd, mode);\n };\n\n FileHandle.prototype.chown = function (uid, gid) {\n return promisify(this.vol, \"fchown\")(this.fd, uid, gid);\n };\n\n FileHandle.prototype.close = function () {\n return promisify(this.vol, \"close\")(this.fd);\n };\n\n FileHandle.prototype.datasync = function () {\n return promisify(this.vol, \"fdatasync\")(this.fd);\n };\n\n FileHandle.prototype.read = function (buffer, offset, length, position) {\n return promisify(this.vol, \"read\", function (bytesRead) {\n return {\n bytesRead: bytesRead,\n buffer: buffer\n };\n })(this.fd, buffer, offset, length, position);\n };\n\n FileHandle.prototype.readFile = function (options) {\n return promisify(this.vol, \"readFile\")(this.fd, options);\n };\n\n FileHandle.prototype.stat = function (options) {\n return promisify(this.vol, \"fstat\")(this.fd, options);\n };\n\n FileHandle.prototype.sync = function () {\n return promisify(this.vol, \"fsync\")(this.fd);\n };\n\n FileHandle.prototype.truncate = function (len) {\n return promisify(this.vol, \"ftruncate\")(this.fd, len);\n };\n\n FileHandle.prototype.utimes = function (atime, mtime) {\n return promisify(this.vol, \"futimes\")(this.fd, atime, mtime);\n };\n\n FileHandle.prototype.write = function (buffer, offset, length, position) {\n return promisify(this.vol, \"write\", function (bytesWritten) {\n return {\n bytesWritten: bytesWritten,\n buffer: buffer\n };\n })(this.fd, buffer, offset, length, position);\n };\n\n FileHandle.prototype.writeFile = function (data, options) {\n return promisify(this.vol, \"writeFile\")(this.fd, data, options);\n };\n\n return FileHandle;\n }();\n\n exports$6.FileHandle = FileHandle;\n\n function createPromisesApi(vol) {\n if (typeof Promise === \"undefined\") return null;\n return {\n FileHandle: FileHandle,\n access: function (path, mode) {\n return promisify(vol, \"access\")(path, mode);\n },\n appendFile: function (path, data, options) {\n return promisify(vol, \"appendFile\")(path instanceof FileHandle ? path.fd : path, data, options);\n },\n chmod: function (path, mode) {\n return promisify(vol, \"chmod\")(path, mode);\n },\n chown: function (path, uid, gid) {\n return promisify(vol, \"chown\")(path, uid, gid);\n },\n copyFile: function (src, dest, flags) {\n return promisify(vol, \"copyFile\")(src, dest, flags);\n },\n lchmod: function (path, mode) {\n return promisify(vol, \"lchmod\")(path, mode);\n },\n lchown: function (path, uid, gid) {\n return promisify(vol, \"lchown\")(path, uid, gid);\n },\n link: function (existingPath, newPath) {\n return promisify(vol, \"link\")(existingPath, newPath);\n },\n lstat: function (path, options) {\n return promisify(vol, \"lstat\")(path, options);\n },\n mkdir: function (path, options) {\n return promisify(vol, \"mkdir\")(path, options);\n },\n mkdtemp: function (prefix, options) {\n return promisify(vol, \"mkdtemp\")(prefix, options);\n },\n open: function (path, flags, mode) {\n return promisify(vol, \"open\", function (fd) {\n return new FileHandle(vol, fd);\n })(path, flags, mode);\n },\n readdir: function (path, options) {\n return promisify(vol, \"readdir\")(path, options);\n },\n readFile: function (id, options) {\n return promisify(vol, \"readFile\")(id instanceof FileHandle ? id.fd : id, options);\n },\n readlink: function (path, options) {\n return promisify(vol, \"readlink\")(path, options);\n },\n realpath: function (path, options) {\n return promisify(vol, \"realpath\")(path, options);\n },\n rename: function (oldPath, newPath) {\n return promisify(vol, \"rename\")(oldPath, newPath);\n },\n rmdir: function (path) {\n return promisify(vol, \"rmdir\")(path);\n },\n stat: function (path, options) {\n return promisify(vol, \"stat\")(path, options);\n },\n symlink: function (target, path, type) {\n return promisify(vol, \"symlink\")(target, path, type);\n },\n truncate: function (path, len) {\n return promisify(vol, \"truncate\")(path, len);\n },\n unlink: function (path) {\n return promisify(vol, \"unlink\")(path);\n },\n utimes: function (path, atime, mtime) {\n return promisify(vol, \"utimes\")(path, atime, mtime);\n },\n writeFile: function (id, data, options) {\n return promisify(vol, \"writeFile\")(id instanceof FileHandle ? id.fd : id, data, options);\n }\n };\n }\n\n exports$6.default = createPromisesApi;\n return exports$6;\n}\n\nvar exports$5 = {},\n _dewExec$3 = false;\nfunction dew$3() {\n if (_dewExec$3) return exports$5;\n _dewExec$3 = true;\n var process$1 = process;\n Object.defineProperty(exports$5, \"__esModule\", {\n value: true\n });\n exports$5.unixify = unixify;\n exports$5.correctPath = correctPath;\n var isWin = process$1.platform === \"win32\";\n\n function removeTrailingSeparator(str) {\n var i = str.length - 1;\n\n if (i < 2) {\n return str;\n }\n\n while (isSeparator(str, i)) {\n i--;\n }\n\n return str.substr(0, i + 1);\n }\n\n function isSeparator(str, i) {\n var _char = str[i];\n return i > 0 && (_char === \"/\" || isWin && _char === \"\\\\\");\n }\n\n function normalizePath(str, stripTrailing) {\n if (typeof str !== \"string\") {\n throw new TypeError(\"expected a string\");\n }\n\n str = str.replace(/[\\\\\\/]+/g, \"/\");\n\n if (stripTrailing !== false) {\n str = removeTrailingSeparator(str);\n }\n\n return str;\n }\n\n function unixify(filepath) {\n var stripTrailing = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (isWin) {\n filepath = normalizePath(filepath, stripTrailing);\n return filepath.replace(/^([a-zA-Z]+:|\\.\\/)/, \"\");\n }\n\n return filepath;\n }\n\n function correctPath(filepath) {\n return unixify(filepath.replace(/^\\\\\\\\\\?\\\\.:\\\\/, \"\\\\\"));\n }\n\n return exports$5;\n}\n\nvar exports$4 = {},\n _dewExec$2 = false;\n\nvar _global = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : global;\n\nfunction dew$2() {\n if (_dewExec$2) return exports$4;\n _dewExec$2 = true;\n\n var __extends = exports$4 && exports$4.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n };\n\n return extendStatics(d, b);\n };\n\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n }();\n\n var __spreadArray = exports$4 && exports$4.__spreadArray || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n };\n\n Object.defineProperty(exports$4, \"__esModule\", {\n value: true\n });\n exports$4.FSWatcher = exports$4.StatWatcher = exports$4.Volume = exports$4.toUnixTimestamp = exports$4.bufferToEncoding = exports$4.dataToBuffer = exports$4.dataToStr = exports$4.pathToSteps = exports$4.filenameToSteps = exports$4.pathToFilename = exports$4.flagsToNumber = exports$4.FLAGS = void 0;\n var pathModule = exports$i;\n\n var node_1 = dew$6();\n\n var Stats_1 = dew$d();\n\n var Dirent_1 = dew$9();\n\n var buffer_1 = dew$c();\n\n var setImmediate_1 = dew$8();\n\n var process_1 = dew$7();\n\n var setTimeoutUnref_1 = dew$5();\n\n var stream_1 = exports$j;\n\n var constants_1 = dew$f();\n\n var events_1 = y;\n\n var encoding_1 = dew$a();\n\n var errors = dew$b();\n\n var util = X;\n\n var promises_1 = dew$4();\n\n var resolveCrossPlatform = pathModule.resolve;\n var O_RDONLY = constants_1.constants.O_RDONLY,\n O_WRONLY = constants_1.constants.O_WRONLY,\n O_RDWR = constants_1.constants.O_RDWR,\n O_CREAT = constants_1.constants.O_CREAT,\n O_EXCL = constants_1.constants.O_EXCL,\n O_TRUNC = constants_1.constants.O_TRUNC,\n O_APPEND = constants_1.constants.O_APPEND,\n O_SYNC = constants_1.constants.O_SYNC,\n O_DIRECTORY = constants_1.constants.O_DIRECTORY,\n F_OK = constants_1.constants.F_OK,\n COPYFILE_EXCL = constants_1.constants.COPYFILE_EXCL,\n COPYFILE_FICLONE_FORCE = constants_1.constants.COPYFILE_FICLONE_FORCE;\n\n var _a = pathModule.posix ? pathModule.posix : pathModule,\n sep = _a.sep,\n relative = _a.relative,\n join = _a.join,\n dirname = _a.dirname;\n\n var isWin = process_1.default.platform === \"win32\";\n var kMinPoolSpace = 128; // const kMaxLength = require('buffer').kMaxLength;\n // ---------------------------------------- Error messages\n // TODO: Use `internal/errors.js` in the future.\n\n var ERRSTR = {\n PATH_STR: \"path must be a string or Buffer\",\n // FD: 'file descriptor must be a unsigned 32-bit integer',\n FD: \"fd must be a file descriptor\",\n MODE_INT: \"mode must be an int\",\n CB: \"callback must be a function\",\n UID: \"uid must be an unsigned int\",\n GID: \"gid must be an unsigned int\",\n LEN: \"len must be an integer\",\n ATIME: \"atime must be an integer\",\n MTIME: \"mtime must be an integer\",\n PREFIX: \"filename prefix is required\",\n BUFFER: \"buffer must be an instance of Buffer or StaticBuffer\",\n OFFSET: \"offset must be an integer\",\n LENGTH: \"length must be an integer\",\n POSITION: \"position must be an integer\"\n };\n\n var ERRSTR_OPTS = function (tipeof) {\n return \"Expected options to be either an object or a string, but got \" + tipeof + \" instead\";\n }; // const ERRSTR_FLAG = flag => `Unknown file open flag: ${flag}`;\n\n\n var ENOENT = \"ENOENT\";\n var EBADF = \"EBADF\";\n var EINVAL = \"EINVAL\";\n var EPERM = \"EPERM\";\n var EPROTO = \"EPROTO\";\n var EEXIST = \"EEXIST\";\n var ENOTDIR = \"ENOTDIR\";\n var EMFILE = \"EMFILE\";\n var EACCES = \"EACCES\";\n var EISDIR = \"EISDIR\";\n var ENOTEMPTY = \"ENOTEMPTY\";\n var ENOSYS = \"ENOSYS\";\n\n function formatError(errorCode, func, path, path2) {\n if (func === void 0) {\n func = \"\";\n }\n\n if (path === void 0) {\n path = \"\";\n }\n\n if (path2 === void 0) {\n path2 = \"\";\n }\n\n var pathFormatted = \"\";\n if (path) pathFormatted = \" '\" + path + \"'\";\n if (path2) pathFormatted += \" -> '\" + path2 + \"'\";\n\n switch (errorCode) {\n case ENOENT:\n return \"ENOENT: no such file or directory, \" + func + pathFormatted;\n\n case EBADF:\n return \"EBADF: bad file descriptor, \" + func + pathFormatted;\n\n case EINVAL:\n return \"EINVAL: invalid argument, \" + func + pathFormatted;\n\n case EPERM:\n return \"EPERM: operation not permitted, \" + func + pathFormatted;\n\n case EPROTO:\n return \"EPROTO: protocol error, \" + func + pathFormatted;\n\n case EEXIST:\n return \"EEXIST: file already exists, \" + func + pathFormatted;\n\n case ENOTDIR:\n return \"ENOTDIR: not a directory, \" + func + pathFormatted;\n\n case EISDIR:\n return \"EISDIR: illegal operation on a directory, \" + func + pathFormatted;\n\n case EACCES:\n return \"EACCES: permission denied, \" + func + pathFormatted;\n\n case ENOTEMPTY:\n return \"ENOTEMPTY: directory not empty, \" + func + pathFormatted;\n\n case EMFILE:\n return \"EMFILE: too many open files, \" + func + pathFormatted;\n\n case ENOSYS:\n return \"ENOSYS: function not implemented, \" + func + pathFormatted;\n\n default:\n return errorCode + \": error occurred, \" + func + pathFormatted;\n }\n }\n\n function createError(errorCode, func, path, path2, Constructor) {\n if (func === void 0) {\n func = \"\";\n }\n\n if (path === void 0) {\n path = \"\";\n }\n\n if (path2 === void 0) {\n path2 = \"\";\n }\n\n if (Constructor === void 0) {\n Constructor = Error;\n }\n\n var error = new Constructor(formatError(errorCode, func, path, path2));\n error.code = errorCode;\n return error;\n } // ---------------------------------------- Flags\n // List of file `flags` as defined by Node.\n\n\n var FLAGS;\n\n (function (FLAGS) {\n // Open file for reading. An exception occurs if the file does not exist.\n FLAGS[FLAGS[\"r\"] = O_RDONLY] = \"r\"; // Open file for reading and writing. An exception occurs if the file does not exist.\n\n FLAGS[FLAGS[\"r+\"] = O_RDWR] = \"r+\"; // Open file for reading in synchronous mode. Instructs the operating system to bypass the local file system cache.\n\n FLAGS[FLAGS[\"rs\"] = O_RDONLY | O_SYNC] = \"rs\";\n FLAGS[FLAGS[\"sr\"] = FLAGS.rs] = \"sr\"; // Open file for reading and writing, telling the OS to open it synchronously. See notes for 'rs' about using this with caution.\n\n FLAGS[FLAGS[\"rs+\"] = O_RDWR | O_SYNC] = \"rs+\";\n FLAGS[FLAGS[\"sr+\"] = FLAGS[\"rs+\"]] = \"sr+\"; // Open file for writing. The file is created (if it does not exist) or truncated (if it exists).\n\n FLAGS[FLAGS[\"w\"] = O_WRONLY | O_CREAT | O_TRUNC] = \"w\"; // Like 'w' but fails if path exists.\n\n FLAGS[FLAGS[\"wx\"] = O_WRONLY | O_CREAT | O_TRUNC | O_EXCL] = \"wx\";\n FLAGS[FLAGS[\"xw\"] = FLAGS.wx] = \"xw\"; // Open file for reading and writing. The file is created (if it does not exist) or truncated (if it exists).\n\n FLAGS[FLAGS[\"w+\"] = O_RDWR | O_CREAT | O_TRUNC] = \"w+\"; // Like 'w+' but fails if path exists.\n\n FLAGS[FLAGS[\"wx+\"] = O_RDWR | O_CREAT | O_TRUNC | O_EXCL] = \"wx+\";\n FLAGS[FLAGS[\"xw+\"] = FLAGS[\"wx+\"]] = \"xw+\"; // Open file for appending. The file is created if it does not exist.\n\n FLAGS[FLAGS[\"a\"] = O_WRONLY | O_APPEND | O_CREAT] = \"a\"; // Like 'a' but fails if path exists.\n\n FLAGS[FLAGS[\"ax\"] = O_WRONLY | O_APPEND | O_CREAT | O_EXCL] = \"ax\";\n FLAGS[FLAGS[\"xa\"] = FLAGS.ax] = \"xa\"; // Open file for reading and appending. The file is created if it does not exist.\n\n FLAGS[FLAGS[\"a+\"] = O_RDWR | O_APPEND | O_CREAT] = \"a+\"; // Like 'a+' but fails if path exists.\n\n FLAGS[FLAGS[\"ax+\"] = O_RDWR | O_APPEND | O_CREAT | O_EXCL] = \"ax+\";\n FLAGS[FLAGS[\"xa+\"] = FLAGS[\"ax+\"]] = \"xa+\";\n })(FLAGS = exports$4.FLAGS || (exports$4.FLAGS = {}));\n\n function flagsToNumber(flags) {\n if (typeof flags === \"number\") return flags;\n\n if (typeof flags === \"string\") {\n var flagsNum = FLAGS[flags];\n if (typeof flagsNum !== \"undefined\") return flagsNum;\n } // throw new TypeError(formatError(ERRSTR_FLAG(flags)));\n\n\n throw new errors.TypeError(\"ERR_INVALID_OPT_VALUE\", \"flags\", flags);\n }\n\n exports$4.flagsToNumber = flagsToNumber; // ---------------------------------------- Options\n\n function getOptions(defaults, options) {\n var opts;\n if (!options) return defaults;else {\n var tipeof = typeof options;\n\n switch (tipeof) {\n case \"string\":\n opts = Object.assign({}, defaults, {\n encoding: options\n });\n break;\n\n case \"object\":\n opts = Object.assign({}, defaults, options);\n break;\n\n default:\n throw TypeError(ERRSTR_OPTS(tipeof));\n }\n }\n if (opts.encoding !== \"buffer\") (0, encoding_1.assertEncoding)(opts.encoding);\n return opts;\n }\n\n function optsGenerator(defaults) {\n return function (options) {\n return getOptions(defaults, options);\n };\n }\n\n function validateCallback(callback) {\n if (typeof callback !== \"function\") throw TypeError(ERRSTR.CB);\n return callback;\n }\n\n function optsAndCbGenerator(getOpts) {\n return function (options, callback) {\n return typeof options === \"function\" ? [getOpts(), options] : [getOpts(options), validateCallback(callback)];\n };\n }\n\n var optsDefaults = {\n encoding: \"utf8\"\n };\n var getDefaultOpts = optsGenerator(optsDefaults);\n var getDefaultOptsAndCb = optsAndCbGenerator(getDefaultOpts);\n var readFileOptsDefaults = {\n flag: \"r\"\n };\n var getReadFileOptions = optsGenerator(readFileOptsDefaults);\n var writeFileDefaults = {\n encoding: \"utf8\",\n mode: 438\n /* DEFAULT */\n ,\n flag: FLAGS[FLAGS.w]\n };\n var getWriteFileOptions = optsGenerator(writeFileDefaults);\n var appendFileDefaults = {\n encoding: \"utf8\",\n mode: 438\n /* DEFAULT */\n ,\n flag: FLAGS[FLAGS.a]\n };\n var getAppendFileOpts = optsGenerator(appendFileDefaults);\n var getAppendFileOptsAndCb = optsAndCbGenerator(getAppendFileOpts);\n var realpathDefaults = optsDefaults;\n var getRealpathOptions = optsGenerator(realpathDefaults);\n var getRealpathOptsAndCb = optsAndCbGenerator(getRealpathOptions);\n var mkdirDefaults = {\n mode: 511\n /* DIR */\n ,\n recursive: false\n };\n\n var getMkdirOptions = function (options) {\n if (typeof options === \"number\") return Object.assign({}, mkdirDefaults, {\n mode: options\n });\n return Object.assign({}, mkdirDefaults, options);\n };\n\n var rmdirDefaults = {\n recursive: false\n };\n\n var getRmdirOptions = function (options) {\n return Object.assign({}, rmdirDefaults, options);\n };\n\n var readdirDefaults = {\n encoding: \"utf8\",\n withFileTypes: false\n };\n var getReaddirOptions = optsGenerator(readdirDefaults);\n var getReaddirOptsAndCb = optsAndCbGenerator(getReaddirOptions);\n var statDefaults = {\n bigint: false\n };\n\n var getStatOptions = function (options) {\n if (options === void 0) {\n options = {};\n }\n\n return Object.assign({}, statDefaults, options);\n };\n\n var getStatOptsAndCb = function (options, callback) {\n return typeof options === \"function\" ? [getStatOptions(), options] : [getStatOptions(options), validateCallback(callback)];\n }; // ---------------------------------------- Utility functions\n\n\n function getPathFromURLPosix(url) {\n if (url.hostname !== \"\") {\n throw new errors.TypeError(\"ERR_INVALID_FILE_URL_HOST\", process_1.default.platform);\n }\n\n var pathname = url.pathname;\n\n for (var n = 0; n < pathname.length; n++) {\n if (pathname[n] === \"%\") {\n var third = pathname.codePointAt(n + 2) | 32;\n\n if (pathname[n + 1] === \"2\" && third === 102) {\n throw new errors.TypeError(\"ERR_INVALID_FILE_URL_PATH\", \"must not include encoded / characters\");\n }\n }\n }\n\n return decodeURIComponent(pathname);\n }\n\n function pathToFilename(path) {\n if (typeof path !== \"string\" && !buffer_1.Buffer.isBuffer(path)) {\n try {\n if (!(path instanceof h.URL)) throw new TypeError(ERRSTR.PATH_STR);\n } catch (err) {\n throw new TypeError(ERRSTR.PATH_STR);\n }\n\n path = getPathFromURLPosix(path);\n }\n\n var pathString = String(path);\n nullCheck(pathString); // return slash(pathString);\n\n return pathString;\n }\n\n exports$4.pathToFilename = pathToFilename;\n\n var resolve = function (filename, base) {\n if (base === void 0) {\n base = process_1.default.cwd();\n }\n\n return resolveCrossPlatform(base, filename);\n };\n\n if (isWin) {\n var _resolve_1 = resolve;\n\n var unixify_1 = dew$3().unixify;\n\n resolve = function (filename, base) {\n return unixify_1(_resolve_1(filename, base));\n };\n }\n\n function filenameToSteps(filename, base) {\n var fullPath = resolve(filename, base);\n var fullPathSansSlash = fullPath.substr(1);\n if (!fullPathSansSlash) return [];\n return fullPathSansSlash.split(sep);\n }\n\n exports$4.filenameToSteps = filenameToSteps;\n\n function pathToSteps(path) {\n return filenameToSteps(pathToFilename(path));\n }\n\n exports$4.pathToSteps = pathToSteps;\n\n function dataToStr(data, encoding) {\n if (encoding === void 0) {\n encoding = encoding_1.ENCODING_UTF8;\n }\n\n if (buffer_1.Buffer.isBuffer(data)) return data.toString(encoding);else if (data instanceof Uint8Array) return (0, buffer_1.bufferFrom)(data).toString(encoding);else return String(data);\n }\n\n exports$4.dataToStr = dataToStr;\n\n function dataToBuffer(data, encoding) {\n if (encoding === void 0) {\n encoding = encoding_1.ENCODING_UTF8;\n }\n\n if (buffer_1.Buffer.isBuffer(data)) return data;else if (data instanceof Uint8Array) return (0, buffer_1.bufferFrom)(data);else return (0, buffer_1.bufferFrom)(String(data), encoding);\n }\n\n exports$4.dataToBuffer = dataToBuffer;\n\n function bufferToEncoding(buffer, encoding) {\n if (!encoding || encoding === \"buffer\") return buffer;else return buffer.toString(encoding);\n }\n\n exports$4.bufferToEncoding = bufferToEncoding;\n\n function nullCheck(path, callback) {\n if ((\"\" + path).indexOf(\"\\0\") !== -1) {\n var er = new Error(\"Path must be a string without null bytes\");\n er.code = ENOENT;\n if (typeof callback !== \"function\") throw er;\n process_1.default.nextTick(callback, er);\n return false;\n }\n\n return true;\n }\n\n function _modeToNumber(mode, def) {\n if (typeof mode === \"number\") return mode;\n if (typeof mode === \"string\") return parseInt(mode, 8);\n if (def) return modeToNumber(def);\n return undefined;\n }\n\n function modeToNumber(mode, def) {\n var result = _modeToNumber(mode, def);\n\n if (typeof result !== \"number\" || isNaN(result)) throw new TypeError(ERRSTR.MODE_INT);\n return result;\n }\n\n function isFd(path) {\n return path >>> 0 === path;\n }\n\n function validateFd(fd) {\n if (!isFd(fd)) throw TypeError(ERRSTR.FD);\n } // converts Date or number to a fractional UNIX timestamp\n\n\n function toUnixTimestamp(time) {\n // tslint:disable-next-line triple-equals\n if (typeof time === \"string\" && +time == time) {\n return +time;\n }\n\n if (time instanceof Date) {\n return time.getTime() / 1000;\n }\n\n if (isFinite(time)) {\n if (time < 0) {\n return Date.now() / 1000;\n }\n\n return time;\n }\n\n throw new Error(\"Cannot parse time: \" + time);\n }\n\n exports$4.toUnixTimestamp = toUnixTimestamp;\n\n function validateUid(uid) {\n if (typeof uid !== \"number\") throw TypeError(ERRSTR.UID);\n }\n\n function validateGid(gid) {\n if (typeof gid !== \"number\") throw TypeError(ERRSTR.GID);\n }\n\n function flattenJSON(nestedJSON) {\n var flatJSON = {};\n\n function flatten(pathPrefix, node) {\n for (var path in node) {\n var contentOrNode = node[path];\n var joinedPath = join(pathPrefix, path);\n\n if (typeof contentOrNode === \"string\") {\n flatJSON[joinedPath] = contentOrNode;\n } else if (typeof contentOrNode === \"object\" && contentOrNode !== null && Object.keys(contentOrNode).length > 0) {\n // empty directories need an explicit entry and therefore get handled in `else`, non-empty ones are implicitly considered\n flatten(joinedPath, contentOrNode);\n } else {\n // without this branch null, empty-object or non-object entries would not be handled in the same way\n // by both fromJSON() and fromNestedJSON()\n flatJSON[joinedPath] = null;\n }\n }\n }\n\n flatten(\"\", nestedJSON);\n return flatJSON;\n }\n /**\n * `Volume` represents a file system.\n */\n\n\n var Volume = function () {\n function Volume(props) {\n if (props === void 0) {\n props = {};\n } // I-node number counter.\n\n\n this.ino = 0; // A mapping for i-node numbers to i-nodes (`Node`);\n\n this.inodes = {}; // List of released i-node numbers, for reuse.\n\n this.releasedInos = []; // A mapping for file descriptors to `File`s.\n\n this.fds = {}; // A list of reusable (opened and closed) file descriptors, that should be\n // used first before creating a new file descriptor.\n\n this.releasedFds = []; // Max number of open files.\n\n this.maxFiles = 10000; // Current number of open files.\n\n this.openFiles = 0;\n this.promisesApi = (0, promises_1.default)(this);\n this.statWatchers = {};\n this.props = Object.assign({\n Node: node_1.Node,\n Link: node_1.Link,\n File: node_1.File\n }, props);\n var root = this.createLink();\n root.setNode(this.createNode(true));\n var self = this; // tslint:disable-line no-this-assignment\n\n this.StatWatcher = function (_super) {\n __extends(StatWatcher, _super);\n\n function StatWatcher() {\n return _super.call(this, self) || this;\n }\n\n return StatWatcher;\n }(StatWatcher);\n\n var _ReadStream = FsReadStream;\n\n this.ReadStream = function (_super) {\n __extends(class_1, _super);\n\n function class_1() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n return _super.apply(this, __spreadArray([self], args, false)) || this;\n }\n\n return class_1;\n }(_ReadStream);\n\n var _WriteStream = FsWriteStream;\n\n this.WriteStream = function (_super) {\n __extends(class_2, _super);\n\n function class_2() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n return _super.apply(this, __spreadArray([self], args, false)) || this;\n }\n\n return class_2;\n }(_WriteStream);\n\n this.FSWatcher = function (_super) {\n __extends(FSWatcher, _super);\n\n function FSWatcher() {\n return _super.call(this, self) || this;\n }\n\n return FSWatcher;\n }(FSWatcher); // root.setChild('.', root);\n // root.getNode().nlink++;\n // root.setChild('..', root);\n // root.getNode().nlink++;\n\n\n this.root = root;\n }\n\n Volume.fromJSON = function (json, cwd) {\n var vol = new Volume();\n vol.fromJSON(json, cwd);\n return vol;\n };\n\n Volume.fromNestedJSON = function (json, cwd) {\n var vol = new Volume();\n vol.fromNestedJSON(json, cwd);\n return vol;\n };\n\n Object.defineProperty(Volume.prototype, \"promises\", {\n get: function () {\n if (this.promisesApi === null) throw new Error(\"Promise is not supported in this environment.\");\n return this.promisesApi;\n },\n enumerable: false,\n configurable: true\n });\n\n Volume.prototype.createLink = function (parent, name, isDirectory, perm) {\n if (isDirectory === void 0) {\n isDirectory = false;\n }\n\n if (!parent) {\n return new this.props.Link(this, null, \"\");\n }\n\n if (!name) {\n throw new Error(\"createLink: name cannot be empty\");\n }\n\n return parent.createChild(name, this.createNode(isDirectory, perm));\n };\n\n Volume.prototype.deleteLink = function (link) {\n var parent = link.parent;\n\n if (parent) {\n parent.deleteChild(link);\n return true;\n }\n\n return false;\n };\n\n Volume.prototype.newInoNumber = function () {\n var releasedFd = this.releasedInos.pop();\n if (releasedFd) return releasedFd;else {\n this.ino = (this.ino + 1) % 4294967295;\n return this.ino;\n }\n };\n\n Volume.prototype.newFdNumber = function () {\n var releasedFd = this.releasedFds.pop();\n return typeof releasedFd === \"number\" ? releasedFd : Volume.fd--;\n };\n\n Volume.prototype.createNode = function (isDirectory, perm) {\n if (isDirectory === void 0) {\n isDirectory = false;\n }\n\n var node = new this.props.Node(this.newInoNumber(), perm);\n if (isDirectory) node.setIsDirectory();\n this.inodes[node.ino] = node;\n return node;\n };\n\n Volume.prototype.getNode = function (ino) {\n return this.inodes[ino];\n };\n\n Volume.prototype.deleteNode = function (node) {\n node.del();\n delete this.inodes[node.ino];\n this.releasedInos.push(node.ino);\n }; // Generates 6 character long random string, used by `mkdtemp`.\n\n\n Volume.prototype.genRndStr = function () {\n var str = (Math.random() + 1).toString(36).substr(2, 6);\n if (str.length === 6) return str;else return this.genRndStr();\n }; // Returns a `Link` (hard link) referenced by path \"split\" into steps.\n\n\n Volume.prototype.getLink = function (steps) {\n return this.root.walk(steps);\n }; // Just link `getLink`, but throws a correct user error, if link to found.\n\n\n Volume.prototype.getLinkOrThrow = function (filename, funcName) {\n var steps = filenameToSteps(filename);\n var link = this.getLink(steps);\n if (!link) throw createError(ENOENT, funcName, filename);\n return link;\n }; // Just like `getLink`, but also dereference/resolves symbolic links.\n\n\n Volume.prototype.getResolvedLink = function (filenameOrSteps) {\n var steps = typeof filenameOrSteps === \"string\" ? filenameToSteps(filenameOrSteps) : filenameOrSteps;\n var link = this.root;\n var i = 0;\n\n while (i < steps.length) {\n var step = steps[i];\n link = link.getChild(step);\n if (!link) return null;\n var node = link.getNode();\n\n if (node.isSymlink()) {\n steps = node.symlink.concat(steps.slice(i + 1));\n link = this.root;\n i = 0;\n continue;\n }\n\n i++;\n }\n\n return link;\n }; // Just like `getLinkOrThrow`, but also dereference/resolves symbolic links.\n\n\n Volume.prototype.getResolvedLinkOrThrow = function (filename, funcName) {\n var link = this.getResolvedLink(filename);\n if (!link) throw createError(ENOENT, funcName, filename);\n return link;\n };\n\n Volume.prototype.resolveSymlinks = function (link) {\n // let node: Node = link.getNode();\n // while(link && node.isSymlink()) {\n // link = this.getLink(node.symlink);\n // if(!link) return null;\n // node = link.getNode();\n // }\n // return link;\n return this.getResolvedLink(link.steps.slice(1));\n }; // Just like `getLinkOrThrow`, but also verifies that the link is a directory.\n\n\n Volume.prototype.getLinkAsDirOrThrow = function (filename, funcName) {\n var link = this.getLinkOrThrow(filename, funcName);\n if (!link.getNode().isDirectory()) throw createError(ENOTDIR, funcName, filename);\n return link;\n }; // Get the immediate parent directory of the link.\n\n\n Volume.prototype.getLinkParent = function (steps) {\n return this.root.walk(steps, steps.length - 1);\n };\n\n Volume.prototype.getLinkParentAsDirOrThrow = function (filenameOrSteps, funcName) {\n var steps = filenameOrSteps instanceof Array ? filenameOrSteps : filenameToSteps(filenameOrSteps);\n var link = this.getLinkParent(steps);\n if (!link) throw createError(ENOENT, funcName, sep + steps.join(sep));\n if (!link.getNode().isDirectory()) throw createError(ENOTDIR, funcName, sep + steps.join(sep));\n return link;\n };\n\n Volume.prototype.getFileByFd = function (fd) {\n return this.fds[String(fd)];\n };\n\n Volume.prototype.getFileByFdOrThrow = function (fd, funcName) {\n if (!isFd(fd)) throw TypeError(ERRSTR.FD);\n var file = this.getFileByFd(fd);\n if (!file) throw createError(EBADF, funcName);\n return file;\n };\n\n Volume.prototype.getNodeByIdOrCreate = function (id, flags, perm) {\n if (typeof id === \"number\") {\n var file = this.getFileByFd(id);\n if (!file) throw Error(\"File nto found\");\n return file.node;\n } else {\n var steps = pathToSteps(id);\n var link = this.getLink(steps);\n if (link) return link.getNode(); // Try creating a node if not found.\n\n if (flags & O_CREAT) {\n var dirLink = this.getLinkParent(steps);\n\n if (dirLink) {\n var name_1 = steps[steps.length - 1];\n link = this.createLink(dirLink, name_1, false, perm);\n return link.getNode();\n }\n }\n\n throw createError(ENOENT, \"getNodeByIdOrCreate\", pathToFilename(id));\n }\n };\n\n Volume.prototype.wrapAsync = function (method, args, callback) {\n var _this = this;\n\n validateCallback(callback);\n (0, setImmediate_1.default)(function () {\n var result;\n\n try {\n result = method.apply(_this, args);\n } catch (err) {\n callback(err);\n return;\n }\n\n callback(null, result);\n });\n };\n\n Volume.prototype._toJSON = function (link, json, path) {\n var _a;\n\n if (link === void 0) {\n link = this.root;\n }\n\n if (json === void 0) {\n json = {};\n }\n\n var isEmpty = true;\n var children = link.children;\n\n if (link.getNode().isFile()) {\n children = (_a = {}, _a[link.getName()] = link.parent.getChild(link.getName()), _a);\n link = link.parent;\n }\n\n for (var name_2 in children) {\n isEmpty = false;\n var child = link.getChild(name_2);\n\n if (!child) {\n throw new Error(\"_toJSON: unexpected undefined\");\n }\n\n var node = child.getNode();\n\n if (node.isFile()) {\n var filename = child.getPath();\n if (path) filename = relative(path, filename);\n json[filename] = node.getString();\n } else if (node.isDirectory()) {\n this._toJSON(child, json, path);\n }\n }\n\n var dirPath = link.getPath();\n if (path) dirPath = relative(path, dirPath);\n\n if (dirPath && isEmpty) {\n json[dirPath] = null;\n }\n\n return json;\n };\n\n Volume.prototype.toJSON = function (paths, json, isRelative) {\n if (json === void 0) {\n json = {};\n }\n\n if (isRelative === void 0) {\n isRelative = false;\n }\n\n var links = [];\n\n if (paths) {\n if (!(paths instanceof Array)) paths = [paths];\n\n for (var _i = 0, paths_1 = paths; _i < paths_1.length; _i++) {\n var path = paths_1[_i];\n var filename = pathToFilename(path);\n var link = this.getResolvedLink(filename);\n if (!link) continue;\n links.push(link);\n }\n } else {\n links.push(this.root);\n }\n\n if (!links.length) return json;\n\n for (var _a = 0, links_1 = links; _a < links_1.length; _a++) {\n var link = links_1[_a];\n\n this._toJSON(link, json, isRelative ? link.getPath() : \"\");\n }\n\n return json;\n };\n\n Volume.prototype.fromJSON = function (json, cwd) {\n if (cwd === void 0) {\n cwd = process_1.default.cwd();\n }\n\n for (var filename in json) {\n var data = json[filename];\n filename = resolve(filename, cwd);\n\n if (typeof data === \"string\") {\n var dir = dirname(filename);\n this.mkdirpBase(dir, 511\n /* DIR */\n );\n this.writeFileSync(filename, data);\n } else {\n this.mkdirpBase(filename, 511\n /* DIR */\n );\n }\n }\n };\n\n Volume.prototype.fromNestedJSON = function (json, cwd) {\n this.fromJSON(flattenJSON(json), cwd);\n };\n\n Volume.prototype.reset = function () {\n this.ino = 0;\n this.inodes = {};\n this.releasedInos = [];\n this.fds = {};\n this.releasedFds = [];\n this.openFiles = 0;\n this.root = this.createLink();\n this.root.setNode(this.createNode(true));\n }; // Legacy interface\n\n\n Volume.prototype.mountSync = function (mountpoint, json) {\n this.fromJSON(json, mountpoint);\n };\n\n Volume.prototype.openLink = function (link, flagsNum, resolveSymlinks) {\n if (resolveSymlinks === void 0) {\n resolveSymlinks = true;\n }\n\n if (this.openFiles >= this.maxFiles) {\n // Too many open files.\n throw createError(EMFILE, \"open\", link.getPath());\n } // Resolve symlinks.\n\n\n var realLink = link;\n if (resolveSymlinks) realLink = this.resolveSymlinks(link);\n if (!realLink) throw createError(ENOENT, \"open\", link.getPath());\n var node = realLink.getNode(); // Check whether node is a directory\n\n if (node.isDirectory()) {\n if ((flagsNum & (O_RDONLY | O_RDWR | O_WRONLY)) !== O_RDONLY) throw createError(EISDIR, \"open\", link.getPath());\n } else {\n if (flagsNum & O_DIRECTORY) throw createError(ENOTDIR, \"open\", link.getPath());\n } // Check node permissions\n\n\n if (!(flagsNum & O_WRONLY)) {\n if (!node.canRead()) {\n throw createError(EACCES, \"open\", link.getPath());\n }\n }\n\n var file = new this.props.File(link, node, flagsNum, this.newFdNumber());\n this.fds[file.fd] = file;\n this.openFiles++;\n if (flagsNum & O_TRUNC) file.truncate();\n return file;\n };\n\n Volume.prototype.openFile = function (filename, flagsNum, modeNum, resolveSymlinks) {\n if (resolveSymlinks === void 0) {\n resolveSymlinks = true;\n }\n\n var steps = filenameToSteps(filename);\n var link = resolveSymlinks ? this.getResolvedLink(steps) : this.getLink(steps); // Try creating a new file, if it does not exist.\n\n if (!link && flagsNum & O_CREAT) {\n // const dirLink: Link = this.getLinkParent(steps);\n var dirLink = this.getResolvedLink(steps.slice(0, steps.length - 1)); // if(!dirLink) throw createError(ENOENT, 'open', filename);\n\n if (!dirLink) throw createError(ENOENT, \"open\", sep + steps.join(sep));\n\n if (flagsNum & O_CREAT && typeof modeNum === \"number\") {\n link = this.createLink(dirLink, steps[steps.length - 1], false, modeNum);\n }\n }\n\n if (link) return this.openLink(link, flagsNum, resolveSymlinks);\n throw createError(ENOENT, \"open\", filename);\n };\n\n Volume.prototype.openBase = function (filename, flagsNum, modeNum, resolveSymlinks) {\n if (resolveSymlinks === void 0) {\n resolveSymlinks = true;\n }\n\n var file = this.openFile(filename, flagsNum, modeNum, resolveSymlinks);\n if (!file) throw createError(ENOENT, \"open\", filename);\n return file.fd;\n };\n\n Volume.prototype.openSync = function (path, flags, mode) {\n if (mode === void 0) {\n mode = 438\n /* DEFAULT */\n ;\n } // Validate (1) mode; (2) path; (3) flags - in that order.\n\n\n var modeNum = modeToNumber(mode);\n var fileName = pathToFilename(path);\n var flagsNum = flagsToNumber(flags);\n return this.openBase(fileName, flagsNum, modeNum);\n };\n\n Volume.prototype.open = function (path, flags, a, b) {\n var mode = a;\n var callback = b;\n\n if (typeof a === \"function\") {\n mode = 438\n /* DEFAULT */\n ;\n callback = a;\n }\n\n mode = mode || 438\n /* DEFAULT */\n ;\n var modeNum = modeToNumber(mode);\n var fileName = pathToFilename(path);\n var flagsNum = flagsToNumber(flags);\n this.wrapAsync(this.openBase, [fileName, flagsNum, modeNum], callback);\n };\n\n Volume.prototype.closeFile = function (file) {\n if (!this.fds[file.fd]) return;\n this.openFiles--;\n delete this.fds[file.fd];\n this.releasedFds.push(file.fd);\n };\n\n Volume.prototype.closeSync = function (fd) {\n validateFd(fd);\n var file = this.getFileByFdOrThrow(fd, \"close\");\n this.closeFile(file);\n };\n\n Volume.prototype.close = function (fd, callback) {\n validateFd(fd);\n this.wrapAsync(this.closeSync, [fd], callback);\n };\n\n Volume.prototype.openFileOrGetById = function (id, flagsNum, modeNum) {\n if (typeof id === \"number\") {\n var file = this.fds[id];\n if (!file) throw createError(ENOENT);\n return file;\n } else {\n return this.openFile(pathToFilename(id), flagsNum, modeNum);\n }\n };\n\n Volume.prototype.readBase = function (fd, buffer, offset, length, position) {\n var file = this.getFileByFdOrThrow(fd);\n return file.read(buffer, Number(offset), Number(length), position);\n };\n\n Volume.prototype.readSync = function (fd, buffer, offset, length, position) {\n validateFd(fd);\n return this.readBase(fd, buffer, offset, length, position);\n };\n\n Volume.prototype.read = function (fd, buffer, offset, length, position, callback) {\n var _this = this;\n\n validateCallback(callback); // This `if` branch is from Node.js\n\n if (length === 0) {\n return process_1.default.nextTick(function () {\n if (callback) callback(null, 0, buffer);\n });\n }\n\n (0, setImmediate_1.default)(function () {\n try {\n var bytes = _this.readBase(fd, buffer, offset, length, position);\n\n callback(null, bytes, buffer);\n } catch (err) {\n callback(err);\n }\n });\n };\n\n Volume.prototype.readFileBase = function (id, flagsNum, encoding) {\n var result;\n var isUserFd = typeof id === \"number\";\n var userOwnsFd = isUserFd && isFd(id);\n var fd;\n if (userOwnsFd) fd = id;else {\n var filename = pathToFilename(id);\n var steps = filenameToSteps(filename);\n var link = this.getResolvedLink(steps);\n\n if (link) {\n var node = link.getNode();\n if (node.isDirectory()) throw createError(EISDIR, \"open\", link.getPath());\n }\n\n fd = this.openSync(id, flagsNum);\n }\n\n try {\n result = bufferToEncoding(this.getFileByFdOrThrow(fd).getBuffer(), encoding);\n } finally {\n if (!userOwnsFd) {\n this.closeSync(fd);\n }\n }\n\n return result;\n };\n\n Volume.prototype.readFileSync = function (file, options) {\n var opts = getReadFileOptions(options);\n var flagsNum = flagsToNumber(opts.flag);\n return this.readFileBase(file, flagsNum, opts.encoding);\n };\n\n Volume.prototype.readFile = function (id, a, b) {\n var _a = optsAndCbGenerator(getReadFileOptions)(a, b),\n opts = _a[0],\n callback = _a[1];\n\n var flagsNum = flagsToNumber(opts.flag);\n this.wrapAsync(this.readFileBase, [id, flagsNum, opts.encoding], callback);\n };\n\n Volume.prototype.writeBase = function (fd, buf, offset, length, position) {\n var file = this.getFileByFdOrThrow(fd, \"write\");\n return file.write(buf, offset, length, position);\n };\n\n Volume.prototype.writeSync = function (fd, a, b, c, d) {\n validateFd(fd);\n var encoding;\n var offset;\n var length;\n var position;\n var isBuffer = typeof a !== \"string\";\n\n if (isBuffer) {\n offset = (b || 0) | 0;\n length = c;\n position = d;\n } else {\n position = b;\n encoding = c;\n }\n\n var buf = dataToBuffer(a, encoding);\n\n if (isBuffer) {\n if (typeof length === \"undefined\") {\n length = buf.length;\n }\n } else {\n offset = 0;\n length = buf.length;\n }\n\n return this.writeBase(fd, buf, offset, length, position);\n };\n\n Volume.prototype.write = function (fd, a, b, c, d, e) {\n var _this = this;\n\n validateFd(fd);\n var offset;\n var length;\n var position;\n var encoding;\n var callback;\n var tipa = typeof a;\n var tipb = typeof b;\n var tipc = typeof c;\n var tipd = typeof d;\n\n if (tipa !== \"string\") {\n if (tipb === \"function\") {\n callback = b;\n } else if (tipc === \"function\") {\n offset = b | 0;\n callback = c;\n } else if (tipd === \"function\") {\n offset = b | 0;\n length = c;\n callback = d;\n } else {\n offset = b | 0;\n length = c;\n position = d;\n callback = e;\n }\n } else {\n if (tipb === \"function\") {\n callback = b;\n } else if (tipc === \"function\") {\n position = b;\n callback = c;\n } else if (tipd === \"function\") {\n position = b;\n encoding = c;\n callback = d;\n }\n }\n\n var buf = dataToBuffer(a, encoding);\n\n if (tipa !== \"string\") {\n if (typeof length === \"undefined\") length = buf.length;\n } else {\n offset = 0;\n length = buf.length;\n }\n\n var cb = validateCallback(callback);\n (0, setImmediate_1.default)(function () {\n try {\n var bytes = _this.writeBase(fd, buf, offset, length, position);\n\n if (tipa !== \"string\") {\n cb(null, bytes, buf);\n } else {\n cb(null, bytes, a);\n }\n } catch (err) {\n cb(err);\n }\n });\n };\n\n Volume.prototype.writeFileBase = function (id, buf, flagsNum, modeNum) {\n // console.log('writeFileBase', id, buf, flagsNum, modeNum);\n // const node = this.getNodeByIdOrCreate(id, flagsNum, modeNum);\n // node.setBuffer(buf);\n var isUserFd = typeof id === \"number\";\n var fd;\n if (isUserFd) fd = id;else {\n fd = this.openBase(pathToFilename(id), flagsNum, modeNum); // fd = this.openSync(id as PathLike, flagsNum, modeNum);\n }\n var offset = 0;\n var length = buf.length;\n var position = flagsNum & O_APPEND ? undefined : 0;\n\n try {\n while (length > 0) {\n var written = this.writeSync(fd, buf, offset, length, position);\n offset += written;\n length -= written;\n if (position !== undefined) position += written;\n }\n } finally {\n if (!isUserFd) this.closeSync(fd);\n }\n };\n\n Volume.prototype.writeFileSync = function (id, data, options) {\n var opts = getWriteFileOptions(options);\n var flagsNum = flagsToNumber(opts.flag);\n var modeNum = modeToNumber(opts.mode);\n var buf = dataToBuffer(data, opts.encoding);\n this.writeFileBase(id, buf, flagsNum, modeNum);\n };\n\n Volume.prototype.writeFile = function (id, data, a, b) {\n var options = a;\n var callback = b;\n\n if (typeof a === \"function\") {\n options = writeFileDefaults;\n callback = a;\n }\n\n var cb = validateCallback(callback);\n var opts = getWriteFileOptions(options);\n var flagsNum = flagsToNumber(opts.flag);\n var modeNum = modeToNumber(opts.mode);\n var buf = dataToBuffer(data, opts.encoding);\n this.wrapAsync(this.writeFileBase, [id, buf, flagsNum, modeNum], cb);\n };\n\n Volume.prototype.linkBase = function (filename1, filename2) {\n var steps1 = filenameToSteps(filename1);\n var link1 = this.getLink(steps1);\n if (!link1) throw createError(ENOENT, \"link\", filename1, filename2);\n var steps2 = filenameToSteps(filename2); // Check new link directory exists.\n\n var dir2 = this.getLinkParent(steps2);\n if (!dir2) throw createError(ENOENT, \"link\", filename1, filename2);\n var name = steps2[steps2.length - 1]; // Check if new file already exists.\n\n if (dir2.getChild(name)) throw createError(EEXIST, \"link\", filename1, filename2);\n var node = link1.getNode();\n node.nlink++;\n dir2.createChild(name, node);\n };\n\n Volume.prototype.copyFileBase = function (src, dest, flags) {\n var buf = this.readFileSync(src);\n\n if (flags & COPYFILE_EXCL) {\n if (this.existsSync(dest)) {\n throw createError(EEXIST, \"copyFile\", src, dest);\n }\n }\n\n if (flags & COPYFILE_FICLONE_FORCE) {\n throw createError(ENOSYS, \"copyFile\", src, dest);\n }\n\n this.writeFileBase(dest, buf, FLAGS.w, 438\n /* DEFAULT */\n );\n };\n\n Volume.prototype.copyFileSync = function (src, dest, flags) {\n var srcFilename = pathToFilename(src);\n var destFilename = pathToFilename(dest);\n return this.copyFileBase(srcFilename, destFilename, (flags || 0) | 0);\n };\n\n Volume.prototype.copyFile = function (src, dest, a, b) {\n var srcFilename = pathToFilename(src);\n var destFilename = pathToFilename(dest);\n var flags;\n var callback;\n\n if (typeof a === \"function\") {\n flags = 0;\n callback = a;\n } else {\n flags = a;\n callback = b;\n }\n\n validateCallback(callback);\n this.wrapAsync(this.copyFileBase, [srcFilename, destFilename, flags], callback);\n };\n\n Volume.prototype.linkSync = function (existingPath, newPath) {\n var existingPathFilename = pathToFilename(existingPath);\n var newPathFilename = pathToFilename(newPath);\n this.linkBase(existingPathFilename, newPathFilename);\n };\n\n Volume.prototype.link = function (existingPath, newPath, callback) {\n var existingPathFilename = pathToFilename(existingPath);\n var newPathFilename = pathToFilename(newPath);\n this.wrapAsync(this.linkBase, [existingPathFilename, newPathFilename], callback);\n };\n\n Volume.prototype.unlinkBase = function (filename) {\n var steps = filenameToSteps(filename);\n var link = this.getLink(steps);\n if (!link) throw createError(ENOENT, \"unlink\", filename); // TODO: Check if it is file, dir, other...\n\n if (link.length) throw Error(\"Dir not empty...\");\n this.deleteLink(link);\n var node = link.getNode();\n node.nlink--; // When all hard links to i-node are deleted, remove the i-node, too.\n\n if (node.nlink <= 0) {\n this.deleteNode(node);\n }\n };\n\n Volume.prototype.unlinkSync = function (path) {\n var filename = pathToFilename(path);\n this.unlinkBase(filename);\n };\n\n Volume.prototype.unlink = function (path, callback) {\n var filename = pathToFilename(path);\n this.wrapAsync(this.unlinkBase, [filename], callback);\n };\n\n Volume.prototype.symlinkBase = function (targetFilename, pathFilename) {\n var pathSteps = filenameToSteps(pathFilename); // Check if directory exists, where we about to create a symlink.\n\n var dirLink = this.getLinkParent(pathSteps);\n if (!dirLink) throw createError(ENOENT, \"symlink\", targetFilename, pathFilename);\n var name = pathSteps[pathSteps.length - 1]; // Check if new file already exists.\n\n if (dirLink.getChild(name)) throw createError(EEXIST, \"symlink\", targetFilename, pathFilename); // Create symlink.\n\n var symlink = dirLink.createChild(name);\n symlink.getNode().makeSymlink(filenameToSteps(targetFilename));\n return symlink;\n }; // `type` argument works only on Windows.\n\n\n Volume.prototype.symlinkSync = function (target, path, type) {\n var targetFilename = pathToFilename(target);\n var pathFilename = pathToFilename(path);\n this.symlinkBase(targetFilename, pathFilename);\n };\n\n Volume.prototype.symlink = function (target, path, a, b) {\n var callback = validateCallback(typeof a === \"function\" ? a : b);\n var targetFilename = pathToFilename(target);\n var pathFilename = pathToFilename(path);\n this.wrapAsync(this.symlinkBase, [targetFilename, pathFilename], callback);\n };\n\n Volume.prototype.realpathBase = function (filename, encoding) {\n var steps = filenameToSteps(filename);\n var realLink = this.getResolvedLink(steps);\n if (!realLink) throw createError(ENOENT, \"realpath\", filename);\n return (0, encoding_1.strToEncoding)(realLink.getPath(), encoding);\n };\n\n Volume.prototype.realpathSync = function (path, options) {\n return this.realpathBase(pathToFilename(path), getRealpathOptions(options).encoding);\n };\n\n Volume.prototype.realpath = function (path, a, b) {\n var _a = getRealpathOptsAndCb(a, b),\n opts = _a[0],\n callback = _a[1];\n\n var pathFilename = pathToFilename(path);\n this.wrapAsync(this.realpathBase, [pathFilename, opts.encoding], callback);\n };\n\n Volume.prototype.lstatBase = function (filename, bigint) {\n if (bigint === void 0) {\n bigint = false;\n }\n\n var link = this.getLink(filenameToSteps(filename));\n if (!link) throw createError(ENOENT, \"lstat\", filename);\n return Stats_1.default.build(link.getNode(), bigint);\n };\n\n Volume.prototype.lstatSync = function (path, options) {\n return this.lstatBase(pathToFilename(path), getStatOptions(options).bigint);\n };\n\n Volume.prototype.lstat = function (path, a, b) {\n var _a = getStatOptsAndCb(a, b),\n opts = _a[0],\n callback = _a[1];\n\n this.wrapAsync(this.lstatBase, [pathToFilename(path), opts.bigint], callback);\n };\n\n Volume.prototype.statBase = function (filename, bigint) {\n if (bigint === void 0) {\n bigint = false;\n }\n\n var link = this.getResolvedLink(filenameToSteps(filename));\n if (!link) throw createError(ENOENT, \"stat\", filename);\n return Stats_1.default.build(link.getNode(), bigint);\n };\n\n Volume.prototype.statSync = function (path, options) {\n return this.statBase(pathToFilename(path), getStatOptions(options).bigint);\n };\n\n Volume.prototype.stat = function (path, a, b) {\n var _a = getStatOptsAndCb(a, b),\n opts = _a[0],\n callback = _a[1];\n\n this.wrapAsync(this.statBase, [pathToFilename(path), opts.bigint], callback);\n };\n\n Volume.prototype.fstatBase = function (fd, bigint) {\n if (bigint === void 0) {\n bigint = false;\n }\n\n var file = this.getFileByFd(fd);\n if (!file) throw createError(EBADF, \"fstat\");\n return Stats_1.default.build(file.node, bigint);\n };\n\n Volume.prototype.fstatSync = function (fd, options) {\n return this.fstatBase(fd, getStatOptions(options).bigint);\n };\n\n Volume.prototype.fstat = function (fd, a, b) {\n var _a = getStatOptsAndCb(a, b),\n opts = _a[0],\n callback = _a[1];\n\n this.wrapAsync(this.fstatBase, [fd, opts.bigint], callback);\n };\n\n Volume.prototype.renameBase = function (oldPathFilename, newPathFilename) {\n var link = this.getLink(filenameToSteps(oldPathFilename));\n if (!link) throw createError(ENOENT, \"rename\", oldPathFilename, newPathFilename); // TODO: Check if it is directory, if non-empty, we cannot move it, right?\n\n var newPathSteps = filenameToSteps(newPathFilename); // Check directory exists for the new location.\n\n var newPathDirLink = this.getLinkParent(newPathSteps);\n if (!newPathDirLink) throw createError(ENOENT, \"rename\", oldPathFilename, newPathFilename); // TODO: Also treat cases with directories and symbolic links.\n // TODO: See: http://man7.org/linux/man-pages/man2/rename.2.html\n // Remove hard link from old folder.\n\n var oldLinkParent = link.parent;\n\n if (oldLinkParent) {\n oldLinkParent.deleteChild(link);\n } // Rename should overwrite the new path, if that exists.\n\n\n var name = newPathSteps[newPathSteps.length - 1];\n link.steps = __spreadArray(__spreadArray([], newPathDirLink.steps, true), [name], false);\n newPathDirLink.setChild(link.getName(), link);\n };\n\n Volume.prototype.renameSync = function (oldPath, newPath) {\n var oldPathFilename = pathToFilename(oldPath);\n var newPathFilename = pathToFilename(newPath);\n this.renameBase(oldPathFilename, newPathFilename);\n };\n\n Volume.prototype.rename = function (oldPath, newPath, callback) {\n var oldPathFilename = pathToFilename(oldPath);\n var newPathFilename = pathToFilename(newPath);\n this.wrapAsync(this.renameBase, [oldPathFilename, newPathFilename], callback);\n };\n\n Volume.prototype.existsBase = function (filename) {\n return !!this.statBase(filename);\n };\n\n Volume.prototype.existsSync = function (path) {\n try {\n return this.existsBase(pathToFilename(path));\n } catch (err) {\n return false;\n }\n };\n\n Volume.prototype.exists = function (path, callback) {\n var _this = this;\n\n var filename = pathToFilename(path);\n if (typeof callback !== \"function\") throw Error(ERRSTR.CB);\n (0, setImmediate_1.default)(function () {\n try {\n callback(_this.existsBase(filename));\n } catch (err) {\n callback(false);\n }\n });\n };\n\n Volume.prototype.accessBase = function (filename, mode) {\n this.getLinkOrThrow(filename, \"access\"); // TODO: Verify permissions\n };\n\n Volume.prototype.accessSync = function (path, mode) {\n if (mode === void 0) {\n mode = F_OK;\n }\n\n var filename = pathToFilename(path);\n mode = mode | 0;\n this.accessBase(filename, mode);\n };\n\n Volume.prototype.access = function (path, a, b) {\n var mode = F_OK;\n var callback;\n\n if (typeof a !== \"function\") {\n mode = a | 0; // cast to number\n\n callback = validateCallback(b);\n } else {\n callback = a;\n }\n\n var filename = pathToFilename(path);\n this.wrapAsync(this.accessBase, [filename, mode], callback);\n };\n\n Volume.prototype.appendFileSync = function (id, data, options) {\n if (options === void 0) {\n options = appendFileDefaults;\n }\n\n var opts = getAppendFileOpts(options); // force append behavior when using a supplied file descriptor\n\n if (!opts.flag || isFd(id)) opts.flag = \"a\";\n this.writeFileSync(id, data, opts);\n };\n\n Volume.prototype.appendFile = function (id, data, a, b) {\n var _a = getAppendFileOptsAndCb(a, b),\n opts = _a[0],\n callback = _a[1]; // force append behavior when using a supplied file descriptor\n\n\n if (!opts.flag || isFd(id)) opts.flag = \"a\";\n this.writeFile(id, data, opts, callback);\n };\n\n Volume.prototype.readdirBase = function (filename, options) {\n var steps = filenameToSteps(filename);\n var link = this.getResolvedLink(steps);\n if (!link) throw createError(ENOENT, \"readdir\", filename);\n var node = link.getNode();\n if (!node.isDirectory()) throw createError(ENOTDIR, \"scandir\", filename);\n\n if (options.withFileTypes) {\n var list_1 = [];\n\n for (var name_3 in link.children) {\n var child = link.getChild(name_3);\n\n if (!child) {\n continue;\n }\n\n list_1.push(Dirent_1.default.build(child, options.encoding));\n }\n\n if (!isWin && options.encoding !== \"buffer\") list_1.sort(function (a, b) {\n if (a.name < b.name) return -1;\n if (a.name > b.name) return 1;\n return 0;\n });\n return list_1;\n }\n\n var list = [];\n\n for (var name_4 in link.children) {\n list.push((0, encoding_1.strToEncoding)(name_4, options.encoding));\n }\n\n if (!isWin && options.encoding !== \"buffer\") list.sort();\n return list;\n };\n\n Volume.prototype.readdirSync = function (path, options) {\n var opts = getReaddirOptions(options);\n var filename = pathToFilename(path);\n return this.readdirBase(filename, opts);\n };\n\n Volume.prototype.readdir = function (path, a, b) {\n var _a = getReaddirOptsAndCb(a, b),\n options = _a[0],\n callback = _a[1];\n\n var filename = pathToFilename(path);\n this.wrapAsync(this.readdirBase, [filename, options], callback);\n };\n\n Volume.prototype.readlinkBase = function (filename, encoding) {\n var link = this.getLinkOrThrow(filename, \"readlink\");\n var node = link.getNode();\n if (!node.isSymlink()) throw createError(EINVAL, \"readlink\", filename);\n var str = sep + node.symlink.join(sep);\n return (0, encoding_1.strToEncoding)(str, encoding);\n };\n\n Volume.prototype.readlinkSync = function (path, options) {\n var opts = getDefaultOpts(options);\n var filename = pathToFilename(path);\n return this.readlinkBase(filename, opts.encoding);\n };\n\n Volume.prototype.readlink = function (path, a, b) {\n var _a = getDefaultOptsAndCb(a, b),\n opts = _a[0],\n callback = _a[1];\n\n var filename = pathToFilename(path);\n this.wrapAsync(this.readlinkBase, [filename, opts.encoding], callback);\n };\n\n Volume.prototype.fsyncBase = function (fd) {\n this.getFileByFdOrThrow(fd, \"fsync\");\n };\n\n Volume.prototype.fsyncSync = function (fd) {\n this.fsyncBase(fd);\n };\n\n Volume.prototype.fsync = function (fd, callback) {\n this.wrapAsync(this.fsyncBase, [fd], callback);\n };\n\n Volume.prototype.fdatasyncBase = function (fd) {\n this.getFileByFdOrThrow(fd, \"fdatasync\");\n };\n\n Volume.prototype.fdatasyncSync = function (fd) {\n this.fdatasyncBase(fd);\n };\n\n Volume.prototype.fdatasync = function (fd, callback) {\n this.wrapAsync(this.fdatasyncBase, [fd], callback);\n };\n\n Volume.prototype.ftruncateBase = function (fd, len) {\n var file = this.getFileByFdOrThrow(fd, \"ftruncate\");\n file.truncate(len);\n };\n\n Volume.prototype.ftruncateSync = function (fd, len) {\n this.ftruncateBase(fd, len);\n };\n\n Volume.prototype.ftruncate = function (fd, a, b) {\n var len = typeof a === \"number\" ? a : 0;\n var callback = validateCallback(typeof a === \"number\" ? b : a);\n this.wrapAsync(this.ftruncateBase, [fd, len], callback);\n };\n\n Volume.prototype.truncateBase = function (path, len) {\n var fd = this.openSync(path, \"r+\");\n\n try {\n this.ftruncateSync(fd, len);\n } finally {\n this.closeSync(fd);\n }\n };\n\n Volume.prototype.truncateSync = function (id, len) {\n if (isFd(id)) return this.ftruncateSync(id, len);\n this.truncateBase(id, len);\n };\n\n Volume.prototype.truncate = function (id, a, b) {\n var len = typeof a === \"number\" ? a : 0;\n var callback = validateCallback(typeof a === \"number\" ? b : a);\n if (isFd(id)) return this.ftruncate(id, len, callback);\n this.wrapAsync(this.truncateBase, [id, len], callback);\n };\n\n Volume.prototype.futimesBase = function (fd, atime, mtime) {\n var file = this.getFileByFdOrThrow(fd, \"futimes\");\n var node = file.node;\n node.atime = new Date(atime * 1000);\n node.mtime = new Date(mtime * 1000);\n };\n\n Volume.prototype.futimesSync = function (fd, atime, mtime) {\n this.futimesBase(fd, toUnixTimestamp(atime), toUnixTimestamp(mtime));\n };\n\n Volume.prototype.futimes = function (fd, atime, mtime, callback) {\n this.wrapAsync(this.futimesBase, [fd, toUnixTimestamp(atime), toUnixTimestamp(mtime)], callback);\n };\n\n Volume.prototype.utimesBase = function (filename, atime, mtime) {\n var fd = this.openSync(filename, \"r+\");\n\n try {\n this.futimesBase(fd, atime, mtime);\n } finally {\n this.closeSync(fd);\n }\n };\n\n Volume.prototype.utimesSync = function (path, atime, mtime) {\n this.utimesBase(pathToFilename(path), toUnixTimestamp(atime), toUnixTimestamp(mtime));\n };\n\n Volume.prototype.utimes = function (path, atime, mtime, callback) {\n this.wrapAsync(this.utimesBase, [pathToFilename(path), toUnixTimestamp(atime), toUnixTimestamp(mtime)], callback);\n };\n\n Volume.prototype.mkdirBase = function (filename, modeNum) {\n var steps = filenameToSteps(filename); // This will throw if user tries to create root dir `fs.mkdirSync('/')`.\n\n if (!steps.length) {\n throw createError(EEXIST, \"mkdir\", filename);\n }\n\n var dir = this.getLinkParentAsDirOrThrow(filename, \"mkdir\"); // Check path already exists.\n\n var name = steps[steps.length - 1];\n if (dir.getChild(name)) throw createError(EEXIST, \"mkdir\", filename);\n dir.createChild(name, this.createNode(true, modeNum));\n };\n /**\n * Creates directory tree recursively.\n * @param filename\n * @param modeNum\n */\n\n\n Volume.prototype.mkdirpBase = function (filename, modeNum) {\n var steps = filenameToSteps(filename);\n var link = this.root;\n\n for (var i = 0; i < steps.length; i++) {\n var step = steps[i];\n if (!link.getNode().isDirectory()) throw createError(ENOTDIR, \"mkdir\", link.getPath());\n var child = link.getChild(step);\n\n if (child) {\n if (child.getNode().isDirectory()) link = child;else throw createError(ENOTDIR, \"mkdir\", child.getPath());\n } else {\n link = link.createChild(step, this.createNode(true, modeNum));\n }\n }\n };\n\n Volume.prototype.mkdirSync = function (path, options) {\n var opts = getMkdirOptions(options);\n var modeNum = modeToNumber(opts.mode, 511);\n var filename = pathToFilename(path);\n if (opts.recursive) this.mkdirpBase(filename, modeNum);else this.mkdirBase(filename, modeNum);\n };\n\n Volume.prototype.mkdir = function (path, a, b) {\n var opts = getMkdirOptions(a);\n var callback = validateCallback(typeof a === \"function\" ? a : b);\n var modeNum = modeToNumber(opts.mode, 511);\n var filename = pathToFilename(path);\n if (opts.recursive) this.wrapAsync(this.mkdirpBase, [filename, modeNum], callback);else this.wrapAsync(this.mkdirBase, [filename, modeNum], callback);\n }; // legacy interface\n\n\n Volume.prototype.mkdirpSync = function (path, mode) {\n this.mkdirSync(path, {\n mode: mode,\n recursive: true\n });\n };\n\n Volume.prototype.mkdirp = function (path, a, b) {\n var mode = typeof a === \"function\" ? undefined : a;\n var callback = validateCallback(typeof a === \"function\" ? a : b);\n this.mkdir(path, {\n mode: mode,\n recursive: true\n }, callback);\n };\n\n Volume.prototype.mkdtempBase = function (prefix, encoding, retry) {\n if (retry === void 0) {\n retry = 5;\n }\n\n var filename = prefix + this.genRndStr();\n\n try {\n this.mkdirBase(filename, 511\n /* DIR */\n );\n return (0, encoding_1.strToEncoding)(filename, encoding);\n } catch (err) {\n if (err.code === EEXIST) {\n if (retry > 1) return this.mkdtempBase(prefix, encoding, retry - 1);else throw Error(\"Could not create temp dir.\");\n } else throw err;\n }\n };\n\n Volume.prototype.mkdtempSync = function (prefix, options) {\n var encoding = getDefaultOpts(options).encoding;\n if (!prefix || typeof prefix !== \"string\") throw new TypeError(\"filename prefix is required\");\n nullCheck(prefix);\n return this.mkdtempBase(prefix, encoding);\n };\n\n Volume.prototype.mkdtemp = function (prefix, a, b) {\n var _a = getDefaultOptsAndCb(a, b),\n encoding = _a[0].encoding,\n callback = _a[1];\n\n if (!prefix || typeof prefix !== \"string\") throw new TypeError(\"filename prefix is required\");\n if (!nullCheck(prefix)) return;\n this.wrapAsync(this.mkdtempBase, [prefix, encoding], callback);\n };\n\n Volume.prototype.rmdirBase = function (filename, options) {\n var opts = getRmdirOptions(options);\n var link = this.getLinkAsDirOrThrow(filename, \"rmdir\"); // Check directory is empty.\n\n if (link.length && !opts.recursive) throw createError(ENOTEMPTY, \"rmdir\", filename);\n this.deleteLink(link);\n };\n\n Volume.prototype.rmdirSync = function (path, options) {\n this.rmdirBase(pathToFilename(path), options);\n };\n\n Volume.prototype.rmdir = function (path, a, b) {\n var opts = getRmdirOptions(a);\n var callback = validateCallback(typeof a === \"function\" ? a : b);\n this.wrapAsync(this.rmdirBase, [pathToFilename(path), opts], callback);\n };\n\n Volume.prototype.fchmodBase = function (fd, modeNum) {\n var file = this.getFileByFdOrThrow(fd, \"fchmod\");\n file.chmod(modeNum);\n };\n\n Volume.prototype.fchmodSync = function (fd, mode) {\n this.fchmodBase(fd, modeToNumber(mode));\n };\n\n Volume.prototype.fchmod = function (fd, mode, callback) {\n this.wrapAsync(this.fchmodBase, [fd, modeToNumber(mode)], callback);\n };\n\n Volume.prototype.chmodBase = function (filename, modeNum) {\n var fd = this.openSync(filename, \"r+\");\n\n try {\n this.fchmodBase(fd, modeNum);\n } finally {\n this.closeSync(fd);\n }\n };\n\n Volume.prototype.chmodSync = function (path, mode) {\n var modeNum = modeToNumber(mode);\n var filename = pathToFilename(path);\n this.chmodBase(filename, modeNum);\n };\n\n Volume.prototype.chmod = function (path, mode, callback) {\n var modeNum = modeToNumber(mode);\n var filename = pathToFilename(path);\n this.wrapAsync(this.chmodBase, [filename, modeNum], callback);\n };\n\n Volume.prototype.lchmodBase = function (filename, modeNum) {\n var fd = this.openBase(filename, O_RDWR, 0, false);\n\n try {\n this.fchmodBase(fd, modeNum);\n } finally {\n this.closeSync(fd);\n }\n };\n\n Volume.prototype.lchmodSync = function (path, mode) {\n var modeNum = modeToNumber(mode);\n var filename = pathToFilename(path);\n this.lchmodBase(filename, modeNum);\n };\n\n Volume.prototype.lchmod = function (path, mode, callback) {\n var modeNum = modeToNumber(mode);\n var filename = pathToFilename(path);\n this.wrapAsync(this.lchmodBase, [filename, modeNum], callback);\n };\n\n Volume.prototype.fchownBase = function (fd, uid, gid) {\n this.getFileByFdOrThrow(fd, \"fchown\").chown(uid, gid);\n };\n\n Volume.prototype.fchownSync = function (fd, uid, gid) {\n validateUid(uid);\n validateGid(gid);\n this.fchownBase(fd, uid, gid);\n };\n\n Volume.prototype.fchown = function (fd, uid, gid, callback) {\n validateUid(uid);\n validateGid(gid);\n this.wrapAsync(this.fchownBase, [fd, uid, gid], callback);\n };\n\n Volume.prototype.chownBase = function (filename, uid, gid) {\n var link = this.getResolvedLinkOrThrow(filename, \"chown\");\n var node = link.getNode();\n node.chown(uid, gid); // if(node.isFile() || node.isSymlink()) {\n //\n // } else if(node.isDirectory()) {\n //\n // } else {\n // TODO: What do we do here?\n // }\n };\n\n Volume.prototype.chownSync = function (path, uid, gid) {\n validateUid(uid);\n validateGid(gid);\n this.chownBase(pathToFilename(path), uid, gid);\n };\n\n Volume.prototype.chown = function (path, uid, gid, callback) {\n validateUid(uid);\n validateGid(gid);\n this.wrapAsync(this.chownBase, [pathToFilename(path), uid, gid], callback);\n };\n\n Volume.prototype.lchownBase = function (filename, uid, gid) {\n this.getLinkOrThrow(filename, \"lchown\").getNode().chown(uid, gid);\n };\n\n Volume.prototype.lchownSync = function (path, uid, gid) {\n validateUid(uid);\n validateGid(gid);\n this.lchownBase(pathToFilename(path), uid, gid);\n };\n\n Volume.prototype.lchown = function (path, uid, gid, callback) {\n validateUid(uid);\n validateGid(gid);\n this.wrapAsync(this.lchownBase, [pathToFilename(path), uid, gid], callback);\n };\n\n Volume.prototype.watchFile = function (path, a, b) {\n var filename = pathToFilename(path);\n var options = a;\n var listener = b;\n\n if (typeof options === \"function\") {\n listener = a;\n options = null;\n }\n\n if (typeof listener !== \"function\") {\n throw Error(\"\\\"watchFile()\\\" requires a listener function\");\n }\n\n var interval = 5007;\n var persistent = true;\n\n if (options && typeof options === \"object\") {\n if (typeof options.interval === \"number\") interval = options.interval;\n if (typeof options.persistent === \"boolean\") persistent = options.persistent;\n }\n\n var watcher = this.statWatchers[filename];\n\n if (!watcher) {\n watcher = new this.StatWatcher();\n watcher.start(filename, persistent, interval);\n this.statWatchers[filename] = watcher;\n }\n\n watcher.addListener(\"change\", listener);\n return watcher;\n };\n\n Volume.prototype.unwatchFile = function (path, listener) {\n var filename = pathToFilename(path);\n var watcher = this.statWatchers[filename];\n if (!watcher) return;\n\n if (typeof listener === \"function\") {\n watcher.removeListener(\"change\", listener);\n } else {\n watcher.removeAllListeners(\"change\");\n }\n\n if (watcher.listenerCount(\"change\") === 0) {\n watcher.stop();\n delete this.statWatchers[filename];\n }\n };\n\n Volume.prototype.createReadStream = function (path, options) {\n return new this.ReadStream(path, options);\n };\n\n Volume.prototype.createWriteStream = function (path, options) {\n return new this.WriteStream(path, options);\n }; // watch(path: PathLike): FSWatcher;\n // watch(path: PathLike, options?: IWatchOptions | string): FSWatcher;\n\n\n Volume.prototype.watch = function (path, options, listener) {\n var filename = pathToFilename(path);\n var givenOptions = options;\n\n if (typeof options === \"function\") {\n listener = options;\n givenOptions = null;\n } // tslint:disable-next-line prefer-const\n\n\n var _a = getDefaultOpts(givenOptions),\n persistent = _a.persistent,\n recursive = _a.recursive,\n encoding = _a.encoding;\n\n if (persistent === undefined) persistent = true;\n if (recursive === undefined) recursive = false;\n var watcher = new this.FSWatcher();\n watcher.start(filename, persistent, recursive, encoding);\n\n if (listener) {\n watcher.addListener(\"change\", listener);\n }\n\n return watcher;\n };\n /**\n * Global file descriptor counter. UNIX file descriptors start from 0 and go sequentially\n * up, so here, in order not to conflict with them, we choose some big number and descrease\n * the file descriptor of every new opened file.\n * @type {number}\n * @todo This should not be static, right?\n */\n\n\n Volume.fd = 2147483647;\n return Volume;\n }();\n\n exports$4.Volume = Volume;\n\n function emitStop(self) {\n self.emit(\"stop\");\n }\n\n var StatWatcher = function (_super) {\n __extends(StatWatcher, _super);\n\n function StatWatcher(vol) {\n var _this = _super.call(this) || this;\n\n _this.onInterval = function () {\n try {\n var stats = _this.vol.statSync(_this.filename);\n\n if (_this.hasChanged(stats)) {\n _this.emit(\"change\", stats, _this.prev);\n\n _this.prev = stats;\n }\n } finally {\n _this.loop();\n }\n };\n\n _this.vol = vol;\n return _this;\n }\n\n StatWatcher.prototype.loop = function () {\n this.timeoutRef = this.setTimeout(this.onInterval, this.interval);\n };\n\n StatWatcher.prototype.hasChanged = function (stats) {\n // if(!this.prev) return false;\n if (stats.mtimeMs > this.prev.mtimeMs) return true;\n if (stats.nlink !== this.prev.nlink) return true;\n return false;\n };\n\n StatWatcher.prototype.start = function (path, persistent, interval) {\n if (persistent === void 0) {\n persistent = true;\n }\n\n if (interval === void 0) {\n interval = 5007;\n }\n\n this.filename = pathToFilename(path);\n this.setTimeout = persistent ? setTimeout.bind(typeof globalThis !== \"undefined\" ? globalThis : _global) : setTimeoutUnref_1.default;\n this.interval = interval;\n this.prev = this.vol.statSync(this.filename);\n this.loop();\n };\n\n StatWatcher.prototype.stop = function () {\n clearTimeout(this.timeoutRef);\n process_1.default.nextTick(emitStop, this);\n };\n\n return StatWatcher;\n }(events_1.EventEmitter);\n\n exports$4.StatWatcher = StatWatcher;\n var pool;\n\n function allocNewPool(poolSize) {\n pool = (0, buffer_1.bufferAllocUnsafe)(poolSize);\n pool.used = 0;\n }\n\n util.inherits(FsReadStream, stream_1.Readable);\n exports$4.ReadStream = FsReadStream;\n\n function FsReadStream(vol, path, options) {\n if (!(this instanceof FsReadStream)) return new FsReadStream(vol, path, options);\n this._vol = vol; // a little bit bigger buffer and water marks by default\n\n options = Object.assign({}, getOptions(options, {}));\n if (options.highWaterMark === undefined) options.highWaterMark = 64 * 1024;\n stream_1.Readable.call(this, options);\n this.path = pathToFilename(path);\n this.fd = options.fd === undefined ? null : options.fd;\n this.flags = options.flags === undefined ? \"r\" : options.flags;\n this.mode = options.mode === undefined ? 438 : options.mode;\n this.start = options.start;\n this.end = options.end;\n this.autoClose = options.autoClose === undefined ? true : options.autoClose;\n this.pos = undefined;\n this.bytesRead = 0;\n\n if (this.start !== undefined) {\n if (typeof this.start !== \"number\") {\n throw new TypeError(\"\\\"start\\\" option must be a Number\");\n }\n\n if (this.end === undefined) {\n this.end = Infinity;\n } else if (typeof this.end !== \"number\") {\n throw new TypeError(\"\\\"end\\\" option must be a Number\");\n }\n\n if (this.start > this.end) {\n throw new Error(\"\\\"start\\\" option must be <= \\\"end\\\" option\");\n }\n\n this.pos = this.start;\n }\n\n if (typeof this.fd !== \"number\") this.open();\n this.on(\"end\", function () {\n if (this.autoClose) {\n if (this.destroy) this.destroy();\n }\n });\n }\n\n FsReadStream.prototype.open = function () {\n var self = this; // tslint:disable-line no-this-assignment\n\n this._vol.open(this.path, this.flags, this.mode, function (er, fd) {\n if (er) {\n if (self.autoClose) {\n if (self.destroy) self.destroy();\n }\n\n self.emit(\"error\", er);\n return;\n }\n\n self.fd = fd;\n self.emit(\"open\", fd); // start the flow of data.\n\n self.read();\n });\n };\n\n FsReadStream.prototype._read = function (n) {\n if (typeof this.fd !== \"number\") {\n return this.once(\"open\", function () {\n this._read(n);\n });\n }\n\n if (this.destroyed) return;\n\n if (!pool || pool.length - pool.used < kMinPoolSpace) {\n // discard the old pool.\n allocNewPool(this._readableState.highWaterMark);\n } // Grab another reference to the pool in the case that while we're\n // in the thread pool another read() finishes up the pool, and\n // allocates a new one.\n\n\n var thisPool = pool;\n var toRead = Math.min(pool.length - pool.used, n);\n var start = pool.used;\n if (this.pos !== undefined) toRead = Math.min(this.end - this.pos + 1, toRead); // already read everything we were supposed to read!\n // treat as EOF.\n\n if (toRead <= 0) return this.push(null); // the actual read.\n\n var self = this; // tslint:disable-line no-this-assignment\n\n this._vol.read(this.fd, pool, pool.used, toRead, this.pos, onread); // move the pool positions, and internal position for reading.\n\n\n if (this.pos !== undefined) this.pos += toRead;\n pool.used += toRead;\n\n function onread(er, bytesRead) {\n if (er) {\n if (self.autoClose && self.destroy) {\n self.destroy();\n }\n\n self.emit(\"error\", er);\n } else {\n var b = null;\n\n if (bytesRead > 0) {\n self.bytesRead += bytesRead;\n b = thisPool.slice(start, start + bytesRead);\n }\n\n self.push(b);\n }\n }\n };\n\n FsReadStream.prototype._destroy = function (err, cb) {\n this.close(function (err2) {\n cb(err || err2);\n });\n };\n\n FsReadStream.prototype.close = function (cb) {\n var _this = this;\n\n if (cb) this.once(\"close\", cb);\n\n if (this.closed || typeof this.fd !== \"number\") {\n if (typeof this.fd !== \"number\") {\n this.once(\"open\", closeOnOpen);\n return;\n }\n\n return process_1.default.nextTick(function () {\n return _this.emit(\"close\");\n });\n }\n\n this.closed = true;\n\n this._vol.close(this.fd, function (er) {\n if (er) _this.emit(\"error\", er);else _this.emit(\"close\");\n });\n\n this.fd = null;\n }; // needed because as it will be called with arguments\n // that does not match this.close() signature\n\n\n function closeOnOpen(fd) {\n this.close();\n }\n\n util.inherits(FsWriteStream, stream_1.Writable);\n exports$4.WriteStream = FsWriteStream;\n\n function FsWriteStream(vol, path, options) {\n if (!(this instanceof FsWriteStream)) return new FsWriteStream(vol, path, options);\n this._vol = vol;\n options = Object.assign({}, getOptions(options, {}));\n stream_1.Writable.call(this, options);\n this.path = pathToFilename(path);\n this.fd = options.fd === undefined ? null : options.fd;\n this.flags = options.flags === undefined ? \"w\" : options.flags;\n this.mode = options.mode === undefined ? 438 : options.mode;\n this.start = options.start;\n this.autoClose = options.autoClose === undefined ? true : !!options.autoClose;\n this.pos = undefined;\n this.bytesWritten = 0;\n\n if (this.start !== undefined) {\n if (typeof this.start !== \"number\") {\n throw new TypeError(\"\\\"start\\\" option must be a Number\");\n }\n\n if (this.start < 0) {\n throw new Error(\"\\\"start\\\" must be >= zero\");\n }\n\n this.pos = this.start;\n }\n\n if (options.encoding) this.setDefaultEncoding(options.encoding);\n if (typeof this.fd !== \"number\") this.open(); // dispose on finish.\n\n this.once(\"finish\", function () {\n if (this.autoClose) {\n this.close();\n }\n });\n }\n\n FsWriteStream.prototype.open = function () {\n this._vol.open(this.path, this.flags, this.mode, function (er, fd) {\n if (er) {\n if (this.autoClose && this.destroy) {\n this.destroy();\n }\n\n this.emit(\"error\", er);\n return;\n }\n\n this.fd = fd;\n this.emit(\"open\", fd);\n }.bind(this));\n };\n\n FsWriteStream.prototype._write = function (data, encoding, cb) {\n if (!(data instanceof buffer_1.Buffer)) return this.emit(\"error\", new Error(\"Invalid data\"));\n\n if (typeof this.fd !== \"number\") {\n return this.once(\"open\", function () {\n this._write(data, encoding, cb);\n });\n }\n\n var self = this; // tslint:disable-line no-this-assignment\n\n this._vol.write(this.fd, data, 0, data.length, this.pos, function (er, bytes) {\n if (er) {\n if (self.autoClose && self.destroy) {\n self.destroy();\n }\n\n return cb(er);\n }\n\n self.bytesWritten += bytes;\n cb();\n });\n\n if (this.pos !== undefined) this.pos += data.length;\n };\n\n FsWriteStream.prototype._writev = function (data, cb) {\n if (typeof this.fd !== \"number\") {\n return this.once(\"open\", function () {\n this._writev(data, cb);\n });\n }\n\n var self = this; // tslint:disable-line no-this-assignment\n\n var len = data.length;\n var chunks = new Array(len);\n var size = 0;\n\n for (var i = 0; i < len; i++) {\n var chunk = data[i].chunk;\n chunks[i] = chunk;\n size += chunk.length;\n }\n\n var buf = buffer_1.Buffer.concat(chunks);\n\n this._vol.write(this.fd, buf, 0, buf.length, this.pos, function (er, bytes) {\n if (er) {\n if (self.destroy) self.destroy();\n return cb(er);\n }\n\n self.bytesWritten += bytes;\n cb();\n });\n\n if (this.pos !== undefined) this.pos += size;\n };\n\n FsWriteStream.prototype._destroy = FsReadStream.prototype._destroy;\n FsWriteStream.prototype.close = FsReadStream.prototype.close; // There is no shutdown() for files.\n\n FsWriteStream.prototype.destroySoon = FsWriteStream.prototype.end; // ---------------------------------------- FSWatcher\n\n var FSWatcher = function (_super) {\n __extends(FSWatcher, _super);\n\n function FSWatcher(vol) {\n var _this = _super.call(this) || this;\n\n _this._filename = \"\";\n _this._filenameEncoded = \"\"; // _persistent: boolean = true;\n\n _this._recursive = false;\n _this._encoding = encoding_1.ENCODING_UTF8;\n\n _this._onNodeChange = function () {\n _this._emit(\"change\");\n };\n\n _this._onParentChild = function (link) {\n if (link.getName() === _this._getName()) {\n _this._emit(\"rename\");\n }\n };\n\n _this._emit = function (type) {\n _this.emit(\"change\", type, _this._filenameEncoded);\n };\n\n _this._persist = function () {\n _this._timer = setTimeout(_this._persist, 1000000);\n };\n\n _this._vol = vol;\n return _this; // TODO: Emit \"error\" messages when watching.\n // this._handle.onchange = function(status, eventType, filename) {\n // if (status < 0) {\n // self._handle.close();\n // const error = !filename ?\n // errnoException(status, 'Error watching file for changes:') :\n // errnoException(status, `Error watching file ${filename} for changes:`);\n // error.filename = filename;\n // self.emit('error', error);\n // } else {\n // self.emit('change', eventType, filename);\n // }\n // };\n }\n\n FSWatcher.prototype._getName = function () {\n return this._steps[this._steps.length - 1];\n };\n\n FSWatcher.prototype.start = function (path, persistent, recursive, encoding) {\n if (persistent === void 0) {\n persistent = true;\n }\n\n if (recursive === void 0) {\n recursive = false;\n }\n\n if (encoding === void 0) {\n encoding = encoding_1.ENCODING_UTF8;\n }\n\n this._filename = pathToFilename(path);\n this._steps = filenameToSteps(this._filename);\n this._filenameEncoded = (0, encoding_1.strToEncoding)(this._filename); // this._persistent = persistent;\n\n this._recursive = recursive;\n this._encoding = encoding;\n\n try {\n this._link = this._vol.getLinkOrThrow(this._filename, \"FSWatcher\");\n } catch (err) {\n var error = new Error(\"watch \" + this._filename + \" \" + err.code);\n error.code = err.code;\n error.errno = err.code;\n throw error;\n }\n\n this._link.getNode().on(\"change\", this._onNodeChange);\n\n this._link.on(\"child:add\", this._onNodeChange);\n\n this._link.on(\"child:delete\", this._onNodeChange);\n\n var parent = this._link.parent;\n\n if (parent) {\n // parent.on('child:add', this._onParentChild);\n parent.setMaxListeners(parent.getMaxListeners() + 1);\n parent.on(\"child:delete\", this._onParentChild);\n }\n\n if (persistent) this._persist();\n };\n\n FSWatcher.prototype.close = function () {\n clearTimeout(this._timer);\n\n this._link.getNode().removeListener(\"change\", this._onNodeChange);\n\n var parent = this._link.parent;\n\n if (parent) {\n // parent.removeListener('child:add', this._onParentChild);\n parent.removeListener(\"child:delete\", this._onParentChild);\n }\n };\n\n return FSWatcher;\n }(events_1.EventEmitter);\n\n exports$4.FSWatcher = FSWatcher;\n return exports$4;\n}\n\nvar exports$3 = {},\n _dewExec$1 = false;\nfunction dew$1() {\n if (_dewExec$1) return exports$3;\n _dewExec$1 = true;\n Object.defineProperty(exports$3, \"__esModule\", {\n value: true\n });\n exports$3.fsAsyncMethods = exports$3.fsSyncMethods = exports$3.fsProps = void 0;\n var fsProps = [\"constants\", \"F_OK\", \"R_OK\", \"W_OK\", \"X_OK\", \"Stats\"];\n exports$3.fsProps = fsProps;\n var fsSyncMethods = [\"renameSync\", \"ftruncateSync\", \"truncateSync\", \"chownSync\", \"fchownSync\", \"lchownSync\", \"chmodSync\", \"fchmodSync\", \"lchmodSync\", \"statSync\", \"lstatSync\", \"fstatSync\", \"linkSync\", \"symlinkSync\", \"readlinkSync\", \"realpathSync\", \"unlinkSync\", \"rmdirSync\", \"mkdirSync\", \"mkdirpSync\", \"readdirSync\", \"closeSync\", \"openSync\", \"utimesSync\", \"futimesSync\", \"fsyncSync\", \"writeSync\", \"readSync\", \"readFileSync\", \"writeFileSync\", \"appendFileSync\", \"existsSync\", \"accessSync\", \"fdatasyncSync\", \"mkdtempSync\", \"copyFileSync\", \"createReadStream\", \"createWriteStream\"];\n exports$3.fsSyncMethods = fsSyncMethods;\n var fsAsyncMethods = [\"rename\", \"ftruncate\", \"truncate\", \"chown\", \"fchown\", \"lchown\", \"chmod\", \"fchmod\", \"lchmod\", \"stat\", \"lstat\", \"fstat\", \"link\", \"symlink\", \"readlink\", \"realpath\", \"unlink\", \"rmdir\", \"mkdir\", \"mkdirp\", \"readdir\", \"close\", \"open\", \"utimes\", \"futimes\", \"fsync\", \"write\", \"read\", \"readFile\", \"writeFile\", \"appendFile\", \"exists\", \"access\", \"fdatasync\", \"mkdtemp\", \"copyFile\", \"watchFile\", \"unwatchFile\", \"watch\"];\n exports$3.fsAsyncMethods = fsAsyncMethods;\n return exports$3;\n}\n\nvar exports$2 = {},\n _dewExec = false;\nfunction dew() {\n if (_dewExec) return exports$2;\n _dewExec = true;\n\n var __assign = exports$2 && exports$2.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n };\n\n Object.defineProperty(exports$2, \"__esModule\", {\n value: true\n });\n exports$2.fs = exports$2.createFsFromVolume = exports$2.vol = exports$2.Volume = void 0;\n\n var Stats_1 = dew$d();\n\n var Dirent_1 = dew$9();\n\n var volume_1 = dew$2();\n\n var _a = dew$1(),\n fsSyncMethods = _a.fsSyncMethods,\n fsAsyncMethods = _a.fsAsyncMethods;\n\n var constants_1 = dew$f();\n\n var F_OK = constants_1.constants.F_OK,\n R_OK = constants_1.constants.R_OK,\n W_OK = constants_1.constants.W_OK,\n X_OK = constants_1.constants.X_OK;\n exports$2.Volume = volume_1.Volume; // Default volume.\n\n exports$2.vol = new volume_1.Volume();\n\n function createFsFromVolume(vol) {\n var fs = {\n F_OK: F_OK,\n R_OK: R_OK,\n W_OK: W_OK,\n X_OK: X_OK,\n constants: constants_1.constants,\n Stats: Stats_1.default,\n Dirent: Dirent_1.default\n }; // Bind FS methods.\n\n for (var _i = 0, fsSyncMethods_1 = fsSyncMethods; _i < fsSyncMethods_1.length; _i++) {\n var method = fsSyncMethods_1[_i];\n if (typeof vol[method] === \"function\") fs[method] = vol[method].bind(vol);\n }\n\n for (var _a = 0, fsAsyncMethods_1 = fsAsyncMethods; _a < fsAsyncMethods_1.length; _a++) {\n var method = fsAsyncMethods_1[_a];\n if (typeof vol[method] === \"function\") fs[method] = vol[method].bind(vol);\n }\n\n fs.StatWatcher = vol.StatWatcher;\n fs.FSWatcher = vol.FSWatcher;\n fs.WriteStream = vol.WriteStream;\n fs.ReadStream = vol.ReadStream;\n fs.promises = vol.promises;\n fs._toUnixTimestamp = volume_1.toUnixTimestamp;\n return fs;\n }\n\n exports$2.createFsFromVolume = createFsFromVolume;\n exports$2.fs = createFsFromVolume(exports$2.vol);\n exports$2 = __assign(__assign({}, exports$2), exports$2.fs);\n exports$2.semantic = true;\n return exports$2;\n}\n\nconst exports$1 = dew();\nexports$1['__esModule']; exports$1['fs']; exports$1['createFsFromVolume']; exports$1['vol']; exports$1['Volume']; exports$1['semantic'];\n\nconst exports = dew$2();\nexports['__esModule']; exports['FSWatcher']; exports['StatWatcher']; exports['Volume']; exports['toUnixTimestamp']; exports['bufferToEncoding']; exports['dataToBuffer']; exports['dataToStr']; exports['pathToSteps']; exports['filenameToSteps']; exports['pathToFilename']; exports['flagsToNumber']; exports['FLAGS']; exports['ReadStream']; exports['WriteStream'];\n\nconst { vol, createFsFromVolume } = exports$1;\r\n\r\nfunction unimplemented(name) {\r\n throw new Error(`Node.js fs ${name} is not supported by JSPM core in the browser`);\r\n}\r\n\r\nvol.fromNestedJSON({\r\n '/dev': { stdin: '', stdout: '', stderr: '' },\r\n '/usr/bin': {},\r\n '/home': {},\r\n '/tmp': {},\r\n});\r\n\r\nvol.releasedFds = [2, 1, 0];\r\nvol.openSync('/dev/stdin', 'w');\r\nvol.openSync('/dev/stdout', 'r');\r\nvol.openSync('/dev/stderr', 'r');\r\nwatchStdo('/dev/stdout', 1, console.log);\r\nwatchStdo('/dev/stderr', 2, console.error);\r\nfunction watchStdo(path, fd, listener) {\r\n let oldSize = 0;\r\n const decoder = new TextDecoder();\r\n vol.watch(path, 'utf8', () => {\r\n const { size } = vol.fstatSync(fd);\r\n const buf = Buffer.alloc(size - oldSize);\r\n vol.readSync(fd, buf, 0, buf.length, oldSize);\r\n oldSize = size;\r\n listener(decoder.decode(buf, { stream: true }));\r\n });\r\n}\r\n\r\nconst fs = createFsFromVolume(vol);\r\n\r\nfs.opendir = () => unimplemented('opendir');\r\nfs.opendirSync = () => unimplemented('opendirSync');\r\nfs.promises.opendir = () => unimplemented('promises.opendir');\r\nfs.cp = () => unimplemented('cp');\r\nfs.cpSync = () => unimplemented('cpSync');\r\nfs.promises.cp = () => unimplemented('promises.cp');\r\nfs.readv = () => unimplemented('readv');\r\nfs.readvSync = () => unimplemented('readvSync');\r\nfs.rm = () => unimplemented('rm');\r\nfs.rmSync = () => unimplemented('rmSync');\r\nfs.promises.rm = () => unimplemented('promises.rm');\r\nfs.Dir = () => unimplemented('Dir');\r\nfs.promises.watch = () => unimplemented('promises.watch');\r\n\r\nfs.FileReadStream = fs.ReadStream;\r\nfs.FileWriteStream = fs.WriteStream;\r\n\r\nfunction handleFsUrl (url, isSync) {\r\n if (url.protocol === 'file:')\r\n return fileURLToPath(url);\r\n if (url.protocol === 'https:' || url.protocol === 'http:') {\r\n const path = '\\\\\\\\url\\\\' + url.href.replaceAll(/\\//g, '\\\\\\\\');\r\n if (existsSync(path))\r\n return path;\r\n if (isSync)\r\n throw new Error(`Cannot sync request URL ${url} via FS. JSPM FS support for network URLs requires using async FS methods or priming the MemFS cache first with an async request before a sync request.`);\r\n return (async () => {\r\n const res = await fetch(url);\r\n if (!res.ok)\r\n throw new Error(`Unable to fetch ${url.href}, ${res.status}`);\r\n const buf = await res.arrayBuffer();\r\n writeFileSync(path, Buffer.from(buf));\r\n return path;\r\n })();\r\n }\r\n throw new Error('URL ' + url + ' not supported in JSPM FS implementation.');\r\n}\r\n\r\nfunction wrapFsSync (fn) {\r\n return function (path, ...args) {\r\n if (path instanceof URL)\r\n return fn(handleFsUrl(path, true), ...args);\r\n return fn(path, ...args);\r\n };\r\n}\r\n\r\nfunction wrapFsPromise (fn) {\r\n return async function (path, ...args) {\r\n if (path instanceof URL)\r\n return fn(await handleFsUrl(path), ...args);\r\n return fn(path, ...args);\r\n };\r\n}\r\n\r\nfunction wrapFsCallback (fn) {\r\n return function (path, ...args) {\r\n const cb = args[args.length - 1];\r\n if (path instanceof URL && typeof cb === 'function') {\r\n handleFsUrl(path).then(path => {\r\n fn(path, ...args);\r\n }, cb);\r\n }\r\n else {\r\n fn(path, ...args);\r\n }\r\n }; \r\n}\r\n\r\nfs.promises.readFile = wrapFsPromise(fs.promises.readFile);\r\nfs.readFile = wrapFsCallback(fs.readFile);\r\nfs.readFileSync = wrapFsSync(fs.readFileSync);\r\n\r\nconst {\r\n appendFile,\r\n appendFileSync,\r\n access,\r\n accessSync,\r\n chown,\r\n chownSync,\r\n chmod,\r\n chmodSync,\r\n close,\r\n closeSync,\r\n copyFile,\r\n copyFileSync,\r\n cp,\r\n cpSync,\r\n createReadStream,\r\n createWriteStream,\r\n exists,\r\n existsSync,\r\n fchown,\r\n fchownSync,\r\n fchmod,\r\n fchmodSync,\r\n fdatasync,\r\n fdatasyncSync,\r\n fstat,\r\n fstatSync,\r\n fsync,\r\n fsyncSync,\r\n ftruncate,\r\n ftruncateSync,\r\n futimes,\r\n futimesSync,\r\n lchown,\r\n lchownSync,\r\n lchmod,\r\n lchmodSync,\r\n link,\r\n linkSync,\r\n lstat,\r\n lstatSync,\r\n mkdir,\r\n mkdirSync,\r\n mkdtemp,\r\n mkdtempSync,\r\n open,\r\n openSync,\r\n opendir,\r\n opendirSync,\r\n readdir,\r\n readdirSync,\r\n read,\r\n readSync,\r\n readv,\r\n readvSync,\r\n readFile,\r\n readFileSync,\r\n readlink,\r\n readlinkSync,\r\n realpath,\r\n realpathSync,\r\n rename,\r\n renameSync,\r\n rm,\r\n rmSync,\r\n rmdir,\r\n rmdirSync,\r\n stat,\r\n statSync,\r\n symlink,\r\n symlinkSync,\r\n truncate,\r\n truncateSync,\r\n unwatchFile,\r\n unlink,\r\n unlinkSync,\r\n utimes,\r\n utimesSync,\r\n watch,\r\n watchFile,\r\n writeFile,\r\n writeFileSync,\r\n write,\r\n writeSync,\r\n writev,\r\n writevSync,\r\n Dir,\r\n Dirent,\r\n Stats,\r\n ReadStream,\r\n WriteStream,\r\n FileReadStream,\r\n FileWriteStream,\r\n _toUnixTimestamp,\r\n constants: { F_OK, R_OK, W_OK, X_OK },\r\n constants,\r\n promises,\r\n} = fs;\n\nexport { Dir, Dirent, F_OK, FileReadStream, FileWriteStream, R_OK, ReadStream, Stats, W_OK, WriteStream, X_OK, _toUnixTimestamp, access, accessSync, appendFile, appendFileSync, chmod, chmodSync, chown, chownSync, close, closeSync, constants, copyFile, copyFileSync, cp, cpSync, createReadStream, createWriteStream, fs as default, exists, existsSync, fchmod, fchmodSync, fchown, fchownSync, fdatasync, fdatasyncSync, fstat, fstatSync, fsync, fsyncSync, ftruncate, ftruncateSync, futimes, futimesSync, lchmod, lchmodSync, lchown, lchownSync, link, linkSync, lstat, lstatSync, mkdir, mkdirSync, mkdtemp, mkdtempSync, open, openSync, opendir, opendirSync, promises, read, readFile, readFileSync, readSync, readdir, readdirSync, readlink, readlinkSync, readv, readvSync, realpath, realpathSync, rename, renameSync, rm, rmSync, rmdir, rmdirSync, stat, statSync, symlink, symlinkSync, truncate, truncateSync, unlink, unlinkSync, unwatchFile, utimes, utimesSync, watch, watchFile, write, writeFile, writeFileSync, writeSync, writev, writevSync };\n","import { X as X$1 } from './chunk-b4205b57.js';\nimport { T as T$1 } from './chunk-5decc758.js';\n\nfunction e(e,r){if(null==e)throw new TypeError(\"Cannot convert first argument to object\");for(var t=Object(e),n=1;n<arguments.length;n++){var o=arguments[n];if(null!=o)for(var a=Object.keys(Object(o)),l=0,i=a.length;l<i;l++){var c=a[l],b=Object.getOwnPropertyDescriptor(o,c);void 0!==b&&b.enumerable&&(t[c]=o[c]);}}return t}var r={assign:e,polyfill:function(){Object.assign||Object.defineProperty(Object,\"assign\",{enumerable:!1,configurable:!0,writable:!0,value:e});}};var t,e$1=Object.prototype.toString,r$1=function(t){var r=e$1.call(t),n=\"[object Arguments]\"===r;return n||(n=\"[object Array]\"!==r&&null!==t&&\"object\"==typeof t&&\"number\"==typeof t.length&&t.length>=0&&\"[object Function]\"===e$1.call(t.callee)),n};if(!Object.keys){var n=Object.prototype.hasOwnProperty,o=Object.prototype.toString,c=r$1,l=Object.prototype.propertyIsEnumerable,i=!l.call({toString:null},\"toString\"),a=l.call((function(){}),\"prototype\"),u=[\"toString\",\"toLocaleString\",\"valueOf\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"constructor\"],f=function(t){var e=t.constructor;return e&&e.prototype===t},p={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},s=function(){if(\"undefined\"==typeof window)return !1;for(var t in window)try{if(!p[\"$\"+t]&&n.call(window,t)&&null!==window[t]&&\"object\"==typeof window[t])try{f(window[t]);}catch(t){return !0}}catch(t){return !0}return !1}();t=function(t){var e=null!==t&&\"object\"==typeof t,r=\"[object Function]\"===o.call(t),l=c(t),p=e&&\"[object String]\"===o.call(t),y=[];if(!e&&!r&&!l)throw new TypeError(\"Object.keys called on a non-object\");var b=a&&r;if(p&&t.length>0&&!n.call(t,0))for(var g=0;g<t.length;++g)y.push(String(g));if(l&&t.length>0)for(var h=0;h<t.length;++h)y.push(String(h));else for(var $ in t)b&&\"prototype\"===$||!n.call(t,$)||y.push(String($));if(i)for(var j=function(t){if(\"undefined\"==typeof window||!s)return f(t);try{return f(t)}catch(t){return !1}}(t),w=0;w<u.length;++w)j&&\"constructor\"===u[w]||!n.call(t,u[w])||y.push(u[w]);return y};}var y=t,b=Array.prototype.slice,g=r$1,h=Object.keys,$=h?function(t){return h(t)}:y,j=Object.keys;$.shim=function(){Object.keys?function(){var t=Object.keys(arguments);return t&&t.length===arguments.length}(1,2)||(Object.keys=function(t){return g(t)?j(b.call(t)):j(t)}):Object.keys=$;return Object.keys||$};var w=$;var r$2=w,e$2=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol(\"foo\"),o$1=Object.prototype.toString,n$1=Array.prototype.concat,a$1=Object.defineProperty,c$1=a$1&&function(){var t={};try{for(var r in a$1(t,\"x\",{enumerable:!1,value:t}),t)return !1;return t.x===t}catch(t){return !1}}(),l$1=function(t,r,e,n){var l;(!(r in t)||\"function\"==typeof(l=n)&&\"[object Function]\"===o$1.call(l)&&n())&&(c$1?a$1(t,r,{configurable:!0,enumerable:!1,value:e,writable:!0}):t[r]=e);},u$1=function(t,o){var a=arguments.length>2?arguments[2]:{},c=r$2(o);e$2&&(c=n$1.call(c,Object.getOwnPropertySymbols(o)));for(var u=0;u<c.length;u+=1)l$1(t,c[u],o[c[u]],a[c[u]]);};u$1.supportsDescriptors=!!c$1;var f$1=u$1;var t$1=function(){if(\"function\"!=typeof Symbol||\"function\"!=typeof Object.getOwnPropertySymbols)return !1;if(\"symbol\"==typeof Symbol.iterator)return !0;var t={},e=Symbol(\"test\"),r=Object(e);if(\"string\"==typeof e)return !1;if(\"[object Symbol]\"!==Object.prototype.toString.call(e))return !1;if(\"[object Symbol]\"!==Object.prototype.toString.call(r))return !1;for(e in t[e]=42,t)return !1;if(\"function\"==typeof Object.keys&&0!==Object.keys(t).length)return !1;if(\"function\"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(t).length)return !1;var o=Object.getOwnPropertySymbols(t);if(1!==o.length||o[0]!==e)return !1;if(!Object.prototype.propertyIsEnumerable.call(t,e))return !1;if(\"function\"==typeof Object.getOwnPropertyDescriptor){var n=Object.getOwnPropertyDescriptor(t,e);if(42!==n.value||!0!==n.enumerable)return !1}return !0};var f$2=(\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof self?self:global).Symbol,e$3=t$1,l$2=function(){return \"function\"==typeof f$2&&(\"function\"==typeof Symbol&&(\"symbol\"==typeof f$2(\"foo\")&&(\"symbol\"==typeof Symbol(\"bar\")&&e$3())))};var t$2=\"Function.prototype.bind called on incompatible \",n$2=Array.prototype.slice,o$2=Object.prototype.toString,r$3=function(r){var e=this;if(\"function\"!=typeof e||\"[object Function]\"!==o$2.call(e))throw new TypeError(t$2+e);for(var p,i=n$2.call(arguments,1),c=function(){if(this instanceof p){var t=e.apply(this,i.concat(n$2.call(arguments)));return Object(t)===t?t:this}return e.apply(r,i.concat(n$2.call(arguments)))},a=Math.max(0,e.length-i.length),l=[],u=0;u<a;u++)l.push(\"$\"+u);if(p=Function(\"binder\",\"return function (\"+l.join(\",\")+\"){ return binder.apply(this,arguments); }\")(c),e.prototype){var y=function(){};y.prototype=e.prototype,p.prototype=new y,y.prototype=null;}return p},e$4=Function.prototype.bind||r$3;var o$3=TypeError,t$3=Object.getOwnPropertyDescriptor;if(t$3)try{t$3({},\"\");}catch(r){t$3=null;}var n$3=function(){throw new o$3},y$1=t$3?function(){try{return arguments.callee,n$3}catch(r){try{return t$3(arguments,\"callee\").get}catch(r){return n$3}}}():n$3,a$2=l$2(),i$1=Object.getPrototypeOf||function(r){return r.__proto__},d=\"undefined\"==typeof Uint8Array?void 0:i$1(Uint8Array),f$3={\"%Array%\":Array,\"%ArrayBuffer%\":\"undefined\"==typeof ArrayBuffer?void 0:ArrayBuffer,\"%ArrayBufferPrototype%\":\"undefined\"==typeof ArrayBuffer?void 0:ArrayBuffer.prototype,\"%ArrayIteratorPrototype%\":a$2?i$1([][Symbol.iterator]()):void 0,\"%ArrayPrototype%\":Array.prototype,\"%ArrayProto_entries%\":Array.prototype.entries,\"%ArrayProto_forEach%\":Array.prototype.forEach,\"%ArrayProto_keys%\":Array.prototype.keys,\"%ArrayProto_values%\":Array.prototype.values,\"%AsyncFromSyncIteratorPrototype%\":void 0,\"%AsyncFunction%\":void 0,\"%AsyncFunctionPrototype%\":void 0,\"%AsyncGenerator%\":void 0,\"%AsyncGeneratorFunction%\":void 0,\"%AsyncGeneratorPrototype%\":void 0,\"%AsyncIteratorPrototype%\":void 0,\"%Atomics%\":\"undefined\"==typeof Atomics?void 0:Atomics,\"%Boolean%\":Boolean,\"%BooleanPrototype%\":Boolean.prototype,\"%DataView%\":\"undefined\"==typeof DataView?void 0:DataView,\"%DataViewPrototype%\":\"undefined\"==typeof DataView?void 0:DataView.prototype,\"%Date%\":Date,\"%DatePrototype%\":Date.prototype,\"%decodeURI%\":decodeURI,\"%decodeURIComponent%\":decodeURIComponent,\"%encodeURI%\":encodeURI,\"%encodeURIComponent%\":encodeURIComponent,\"%Error%\":Error,\"%ErrorPrototype%\":Error.prototype,\"%eval%\":eval,\"%EvalError%\":EvalError,\"%EvalErrorPrototype%\":EvalError.prototype,\"%Float32Array%\":\"undefined\"==typeof Float32Array?void 0:Float32Array,\"%Float32ArrayPrototype%\":\"undefined\"==typeof Float32Array?void 0:Float32Array.prototype,\"%Float64Array%\":\"undefined\"==typeof Float64Array?void 0:Float64Array,\"%Float64ArrayPrototype%\":\"undefined\"==typeof Float64Array?void 0:Float64Array.prototype,\"%Function%\":Function,\"%FunctionPrototype%\":Function.prototype,\"%Generator%\":void 0,\"%GeneratorFunction%\":void 0,\"%GeneratorPrototype%\":void 0,\"%Int8Array%\":\"undefined\"==typeof Int8Array?void 0:Int8Array,\"%Int8ArrayPrototype%\":\"undefined\"==typeof Int8Array?void 0:Int8Array.prototype,\"%Int16Array%\":\"undefined\"==typeof Int16Array?void 0:Int16Array,\"%Int16ArrayPrototype%\":\"undefined\"==typeof Int16Array?void 0:Int8Array.prototype,\"%Int32Array%\":\"undefined\"==typeof Int32Array?void 0:Int32Array,\"%Int32ArrayPrototype%\":\"undefined\"==typeof Int32Array?void 0:Int32Array.prototype,\"%isFinite%\":isFinite,\"%isNaN%\":isNaN,\"%IteratorPrototype%\":a$2?i$1(i$1([][Symbol.iterator]())):void 0,\"%JSON%\":\"object\"==typeof JSON?JSON:void 0,\"%JSONParse%\":\"object\"==typeof JSON?JSON.parse:void 0,\"%Map%\":\"undefined\"==typeof Map?void 0:Map,\"%MapIteratorPrototype%\":\"undefined\"!=typeof Map&&a$2?i$1((new Map)[Symbol.iterator]()):void 0,\"%MapPrototype%\":\"undefined\"==typeof Map?void 0:Map.prototype,\"%Math%\":Math,\"%Number%\":Number,\"%NumberPrototype%\":Number.prototype,\"%Object%\":Object,\"%ObjectPrototype%\":Object.prototype,\"%ObjProto_toString%\":Object.prototype.toString,\"%ObjProto_valueOf%\":Object.prototype.valueOf,\"%parseFloat%\":parseFloat,\"%parseInt%\":parseInt,\"%Promise%\":\"undefined\"==typeof Promise?void 0:Promise,\"%PromisePrototype%\":\"undefined\"==typeof Promise?void 0:Promise.prototype,\"%PromiseProto_then%\":\"undefined\"==typeof Promise?void 0:Promise.prototype.then,\"%Promise_all%\":\"undefined\"==typeof Promise?void 0:Promise.all,\"%Promise_reject%\":\"undefined\"==typeof Promise?void 0:Promise.reject,\"%Promise_resolve%\":\"undefined\"==typeof Promise?void 0:Promise.resolve,\"%Proxy%\":\"undefined\"==typeof Proxy?void 0:Proxy,\"%RangeError%\":RangeError,\"%RangeErrorPrototype%\":RangeError.prototype,\"%ReferenceError%\":ReferenceError,\"%ReferenceErrorPrototype%\":ReferenceError.prototype,\"%Reflect%\":\"undefined\"==typeof Reflect?void 0:Reflect,\"%RegExp%\":RegExp,\"%RegExpPrototype%\":RegExp.prototype,\"%Set%\":\"undefined\"==typeof Set?void 0:Set,\"%SetIteratorPrototype%\":\"undefined\"!=typeof Set&&a$2?i$1((new Set)[Symbol.iterator]()):void 0,\"%SetPrototype%\":\"undefined\"==typeof Set?void 0:Set.prototype,\"%SharedArrayBuffer%\":\"undefined\"==typeof SharedArrayBuffer?void 0:SharedArrayBuffer,\"%SharedArrayBufferPrototype%\":\"undefined\"==typeof SharedArrayBuffer?void 0:SharedArrayBuffer.prototype,\"%String%\":String,\"%StringIteratorPrototype%\":a$2?i$1(\"\"[Symbol.iterator]()):void 0,\"%StringPrototype%\":String.prototype,\"%Symbol%\":a$2?Symbol:void 0,\"%SymbolPrototype%\":a$2?Symbol.prototype:void 0,\"%SyntaxError%\":SyntaxError,\"%SyntaxErrorPrototype%\":SyntaxError.prototype,\"%ThrowTypeError%\":y$1,\"%TypedArray%\":d,\"%TypedArrayPrototype%\":d?d.prototype:void 0,\"%TypeError%\":o$3,\"%TypeErrorPrototype%\":o$3.prototype,\"%Uint8Array%\":\"undefined\"==typeof Uint8Array?void 0:Uint8Array,\"%Uint8ArrayPrototype%\":\"undefined\"==typeof Uint8Array?void 0:Uint8Array.prototype,\"%Uint8ClampedArray%\":\"undefined\"==typeof Uint8ClampedArray?void 0:Uint8ClampedArray,\"%Uint8ClampedArrayPrototype%\":\"undefined\"==typeof Uint8ClampedArray?void 0:Uint8ClampedArray.prototype,\"%Uint16Array%\":\"undefined\"==typeof Uint16Array?void 0:Uint16Array,\"%Uint16ArrayPrototype%\":\"undefined\"==typeof Uint16Array?void 0:Uint16Array.prototype,\"%Uint32Array%\":\"undefined\"==typeof Uint32Array?void 0:Uint32Array,\"%Uint32ArrayPrototype%\":\"undefined\"==typeof Uint32Array?void 0:Uint32Array.prototype,\"%URIError%\":URIError,\"%URIErrorPrototype%\":URIError.prototype,\"%WeakMap%\":\"undefined\"==typeof WeakMap?void 0:WeakMap,\"%WeakMapPrototype%\":\"undefined\"==typeof WeakMap?void 0:WeakMap.prototype,\"%WeakSet%\":\"undefined\"==typeof WeakSet?void 0:WeakSet,\"%WeakSetPrototype%\":\"undefined\"==typeof WeakSet?void 0:WeakSet.prototype},u$2=e$4.call(Function.call,String.prototype.replace),A=/[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g,l$3=/\\\\(\\\\)?/g,v=function(r){var e=[];return u$2(r,A,(function(r,o,t,n){e[e.length]=t?u$2(n,l$3,\"$1\"):o||r;})),e},P=function(r,e){if(!(r in f$3))throw new SyntaxError(\"intrinsic \"+r+\" does not exist!\");if(void 0===f$3[r]&&!e)throw new o$3(\"intrinsic \"+r+\" exists, but is not available. Please file an issue!\");return f$3[r]},c$2=function(r,e){if(\"string\"!=typeof r||0===r.length)throw new TypeError(\"intrinsic name must be a non-empty string\");if(arguments.length>1&&\"boolean\"!=typeof e)throw new TypeError('\"allowMissing\" argument must be a boolean');for(var n=v(r),y=P(\"%\"+(n.length>0?n[0]:\"\")+\"%\",e),a=1;a<n.length;a+=1)if(null!=y)if(t$3&&a+1>=n.length){var i=t$3(y,n[a]);if(!e&&!(n[a]in y))throw new o$3(\"base intrinsic for \"+r+\" exists, but the property is not available.\");y=i?i.get||i.value:y[n[a]];}else y=y[n[a]];return y};var t$4,p$1=e$4,o$4=c$2(\"%Function%\"),i$2=o$4.apply,a$3=o$4.call;(t$4=function(){return p$1.apply(a$3,arguments)}).apply=function(){return p$1.apply(i$2,arguments)};var l$4=t$4;var r$4,n$4,i$3=function(t){return t!=t},o$5=(r$4=function(t,e){return 0===t&&0===e?1/t==1/e:t===e||!(!i$3(t)||!i$3(e))},r$4),c$3=(n$4=function(){return \"function\"==typeof Object.is?Object.is:o$5},n$4),f$4=f$1,u$3=f$1,s$1=r$4,a$4=n$4,l$5=function(){var t=c$3();return f$4(Object,{is:t},{is:function(){return Object.is!==t}}),t},p$2=l$4(a$4(),Object);u$3(p$2,{getPolyfill:a$4,implementation:s$1,shim:l$5});var m=p$2;N=function(r){return r!=r};var N,e$5,i$4=N,n$5=(e$5=function(){return Number.isNaN&&Number.isNaN(NaN)&&!Number.isNaN(\"a\")?Number.isNaN:i$4},f$1),t$5=e$5,u$4=f$1,a$5=N,m$1=e$5,o$6=function(){var r=t$5();return n$5(Number,{isNaN:r},{isNaN:function(){return Number.isNaN!==r}}),r},s$2=m$1();u$4(s$2,{getPolyfill:m$1,implementation:a$5,shim:o$6});var f$5=s$2;var c$4={},a$6=!1;function i$5(){if(a$6)return c$4;function e(t){return (e=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function n(t,n){return !n||\"object\"!==e(n)&&\"function\"!=typeof n?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):n}function r(t){return (r=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function o(t,e){return (o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}a$6=!0;var i,u,l={};function f(t,e,c){c||(c=Error);var a=function(c){function a(o,c,i){var u;return !function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,a),(u=n(this,r(a).call(this,function(t,n,r){return \"string\"==typeof e?e:e(t,n,r)}(o,c,i)))).code=t,u}return !function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e);}(a,c),a}(c);l[t]=a;}function s(t,e){if(Array.isArray(t)){var n=t.length;return t=t.map((function(t){return String(t)})),n>2?\"one of \".concat(e,\" \").concat(t.slice(0,n-1).join(\", \"),\", or \")+t[n-1]:2===n?\"one of \".concat(e,\" \").concat(t[0],\" or \").concat(t[1]):\"of \".concat(e,\" \").concat(t[0])}return \"of \".concat(e,\" \").concat(String(t))}return f(\"ERR_AMBIGUOUS_ARGUMENT\",'The \"%s\" argument is ambiguous. %s',TypeError),f(\"ERR_INVALID_ARG_TYPE\",(function(t,n,r){var o,c,u;if(void 0===i&&(i=tt()),i(\"string\"==typeof t,\"'name' must be a string\"),\"string\"==typeof n&&(c=\"not \",n.substr(0,c.length)===c)?(o=\"must not be\",n=n.replace(/^not /,\"\")):o=\"must be\",function(t,e,n){return (void 0===n||n>t.length)&&(n=t.length),t.substring(n-e.length,n)===e}(t,\" argument\"))u=\"The \".concat(t,\" \").concat(o,\" \").concat(s(n,\"type\"));else {var l=function(t,e,n){return \"number\"!=typeof n&&(n=0),!(n+e.length>t.length)&&-1!==t.indexOf(e,n)}(t,\".\")?\"property\":\"argument\";u='The \"'.concat(t,'\" ').concat(l,\" \").concat(o,\" \").concat(s(n,\"type\"));}return u+=\". Received type \".concat(e(r))}),TypeError),f(\"ERR_INVALID_ARG_VALUE\",(function(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:\"is invalid\";void 0===u&&(u=X$1);var o=u.inspect(n);return o.length>128&&(o=\"\".concat(o.slice(0,128),\"...\")),\"The argument '\".concat(e,\"' \").concat(r,\". Received \").concat(o)}),TypeError),f(\"ERR_INVALID_RETURN_VALUE\",(function(t,n,r){var o;return o=r&&r.constructor&&r.constructor.name?\"instance of \".concat(r.constructor.name):\"type \".concat(e(r)),\"Expected \".concat(t,' to be returned from the \"').concat(n,'\"')+\" function but got \".concat(o,\".\")}),TypeError),f(\"ERR_MISSING_ARGS\",(function(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];void 0===i&&(i=tt()),i(e.length>0,\"At least one arg needs to be specified\");var r=\"The \",o=e.length;switch(e=e.map((function(t){return '\"'.concat(t,'\"')})),o){case 1:r+=\"\".concat(e[0],\" argument\");break;case 2:r+=\"\".concat(e[0],\" and \").concat(e[1],\" arguments\");break;default:r+=e.slice(0,o-1).join(\", \"),r+=\", and \".concat(e[o-1],\" arguments\");}return \"\".concat(r,\" must be specified\")}),TypeError),c$4.codes=l,c$4}var u$5={},l$6=!1;function f$6(){if(l$6)return u$5;l$6=!0;var n=T$1;function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function o(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r);}}function c(t,e){return !e||\"object\"!==y(e)&&\"function\"!=typeof e?a(t):e}function a(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}function f(t){var e=\"function\"==typeof Map?new Map:void 0;return (f=function(t){if(null===t||(n=t,-1===Function.toString.call(n).indexOf(\"[native code]\")))return t;var n;if(\"function\"!=typeof t)throw new TypeError(\"Super expression must either be null or a function\");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,r);}function r(){return p(t,arguments,h(this).constructor)}return r.prototype=Object.create(t.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),g(r,t)})(t)}function s(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return !1;if(Reflect.construct.sham)return !1;if(\"function\"==typeof Proxy)return !0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return !1}}function p(t,e,n){return (p=s()?Reflect.construct:function(t,e,n){var r=[null];r.push.apply(r,e);var o=new(Function.bind.apply(t,r));return n&&g(o,n.prototype),o}).apply(null,arguments)}function g(t,e){return (g=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function h(t){return (h=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function y(t){return (y=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}var b=X$1.inspect,v=i$5().codes.ERR_INVALID_ARG_TYPE;function d(t,e,n){return (void 0===n||n>t.length)&&(n=t.length),t.substring(n-e.length,n)===e}var m=\"\",E=\"\",w=\"\",S=\"\",j={deepStrictEqual:\"Expected values to be strictly deep-equal:\",strictEqual:\"Expected values to be strictly equal:\",strictEqualObject:'Expected \"actual\" to be reference-equal to \"expected\":',deepEqual:\"Expected values to be loosely deep-equal:\",equal:\"Expected values to be loosely equal:\",notDeepStrictEqual:'Expected \"actual\" not to be strictly deep-equal to:',notStrictEqual:'Expected \"actual\" to be strictly unequal to:',notStrictEqualObject:'Expected \"actual\" not to be reference-equal to \"expected\":',notDeepEqual:'Expected \"actual\" not to be loosely deep-equal to:',notEqual:'Expected \"actual\" to be loosely unequal to:',notIdentical:\"Values identical but not reference-equal:\"};function O(t){var e=Object.keys(t),n=Object.create(Object.getPrototypeOf(t));return e.forEach((function(e){n[e]=t[e];})),Object.defineProperty(n,\"message\",{value:t.message}),n}function x(t){return b(t,{compact:!1,customInspect:!1,depth:1e3,maxArrayLength:1/0,showHidden:!1,breakLength:1/0,showProxy:!1,sorted:!0,getters:!0})}function q(t,e,r){var o=\"\",c=\"\",a=0,i=\"\",u=!1,l=x(t),f=l.split(\"\\n\"),s=x(e).split(\"\\n\"),p=0,g=\"\";if(\"strictEqual\"===r&&\"object\"===y(t)&&\"object\"===y(e)&&null!==t&&null!==e&&(r=\"strictEqualObject\"),1===f.length&&1===s.length&&f[0]!==s[0]){var h=f[0].length+s[0].length;if(h<=10){if(!(\"object\"===y(t)&&null!==t||\"object\"===y(e)&&null!==e||0===t&&0===e))return \"\".concat(j[r],\"\\n\\n\")+\"\".concat(f[0],\" !== \").concat(s[0],\"\\n\")}else if(\"strictEqualObject\"!==r){if(h<(n.stderr&&n.stderr.isTTY?n.stderr.columns:80)){for(;f[0][p]===s[0][p];)p++;p>2&&(g=\"\\n \".concat(function(t,e){if(e=Math.floor(e),0==t.length||0==e)return \"\";var n=t.length*e;for(e=Math.floor(Math.log(e)/Math.log(2));e;)t+=t,e--;return t+=t.substring(0,n-t.length)}(\" \",p),\"^\"),p=0);}}}for(var b=f[f.length-1],v=s[s.length-1];b===v&&(p++<2?i=\"\\n \".concat(b).concat(i):o=b,f.pop(),s.pop(),0!==f.length&&0!==s.length);)b=f[f.length-1],v=s[s.length-1];var O=Math.max(f.length,s.length);if(0===O){var q=l.split(\"\\n\");if(q.length>30)for(q[26]=\"\".concat(m,\"...\").concat(S);q.length>27;)q.pop();return \"\".concat(j.notIdentical,\"\\n\\n\").concat(q.join(\"\\n\"),\"\\n\")}p>3&&(i=\"\\n\".concat(m,\"...\").concat(S).concat(i),u=!0),\"\"!==o&&(i=\"\\n \".concat(o).concat(i),o=\"\");var R=0,A=j[r]+\"\\n\".concat(E,\"+ actual\").concat(S,\" \").concat(w,\"- expected\").concat(S),k=\" \".concat(m,\"...\").concat(S,\" Lines skipped\");for(p=0;p<O;p++){var _=p-a;if(f.length<p+1)_>1&&p>2&&(_>4?(c+=\"\\n\".concat(m,\"...\").concat(S),u=!0):_>3&&(c+=\"\\n \".concat(s[p-2]),R++),c+=\"\\n \".concat(s[p-1]),R++),a=p,o+=\"\\n\".concat(w,\"-\").concat(S,\" \").concat(s[p]),R++;else if(s.length<p+1)_>1&&p>2&&(_>4?(c+=\"\\n\".concat(m,\"...\").concat(S),u=!0):_>3&&(c+=\"\\n \".concat(f[p-2]),R++),c+=\"\\n \".concat(f[p-1]),R++),a=p,c+=\"\\n\".concat(E,\"+\").concat(S,\" \").concat(f[p]),R++;else {var T=s[p],P=f[p],I=P!==T&&(!d(P,\",\")||P.slice(0,-1)!==T);I&&d(T,\",\")&&T.slice(0,-1)===P&&(I=!1,P+=\",\"),I?(_>1&&p>2&&(_>4?(c+=\"\\n\".concat(m,\"...\").concat(S),u=!0):_>3&&(c+=\"\\n \".concat(f[p-2]),R++),c+=\"\\n \".concat(f[p-1]),R++),a=p,c+=\"\\n\".concat(E,\"+\").concat(S,\" \").concat(P),o+=\"\\n\".concat(w,\"-\").concat(S,\" \").concat(T),R+=2):(c+=o,o=\"\",1!==_&&0!==p||(c+=\"\\n \".concat(P),R++));}if(R>20&&p<O-2)return \"\".concat(A).concat(k,\"\\n\").concat(c,\"\\n\").concat(m,\"...\").concat(S).concat(o,\"\\n\")+\"\".concat(m,\"...\").concat(S)}return \"\".concat(A).concat(u?k:\"\",\"\\n\").concat(c).concat(o).concat(i).concat(g)}var R=function(t){function e(t){var r;if(!function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,e),\"object\"!==y(t)||null===t)throw new v(\"options\",\"Object\",t);var o=t.message,i=t.operator,u=t.stackStartFn,l=t.actual,f=t.expected,s=Error.stackTraceLimit;if(Error.stackTraceLimit=0,null!=o)r=c(this,h(e).call(this,String(o)));else if(n.stderr&&n.stderr.isTTY&&(n.stderr&&n.stderr.getColorDepth&&1!==n.stderr.getColorDepth()?(m=\"\u001b[34m\",E=\"\u001b[32m\",S=\"\u001b[39m\",w=\"\u001b[31m\"):(m=\"\",E=\"\",S=\"\",w=\"\")),\"object\"===y(l)&&null!==l&&\"object\"===y(f)&&null!==f&&\"stack\"in l&&l instanceof Error&&\"stack\"in f&&f instanceof Error&&(l=O(l),f=O(f)),\"deepStrictEqual\"===i||\"strictEqual\"===i)r=c(this,h(e).call(this,q(l,f,i)));else if(\"notDeepStrictEqual\"===i||\"notStrictEqual\"===i){var p=j[i],g=x(l).split(\"\\n\");if(\"notStrictEqual\"===i&&\"object\"===y(l)&&null!==l&&(p=j.notStrictEqualObject),g.length>30)for(g[26]=\"\".concat(m,\"...\").concat(S);g.length>27;)g.pop();r=1===g.length?c(this,h(e).call(this,\"\".concat(p,\" \").concat(g[0]))):c(this,h(e).call(this,\"\".concat(p,\"\\n\\n\").concat(g.join(\"\\n\"),\"\\n\")));}else {var b=x(l),d=\"\",R=j[i];\"notDeepEqual\"===i||\"notEqual\"===i?(b=\"\".concat(j[i],\"\\n\\n\").concat(b)).length>1024&&(b=\"\".concat(b.slice(0,1021),\"...\")):(d=\"\".concat(x(f)),b.length>512&&(b=\"\".concat(b.slice(0,509),\"...\")),d.length>512&&(d=\"\".concat(d.slice(0,509),\"...\")),\"deepEqual\"===i||\"equal\"===i?b=\"\".concat(R,\"\\n\\n\").concat(b,\"\\n\\nshould equal\\n\\n\"):d=\" \".concat(i,\" \").concat(d)),r=c(this,h(e).call(this,\"\".concat(b).concat(d)));}return Error.stackTraceLimit=s,r.generatedMessage=!o,Object.defineProperty(a(r),\"name\",{value:\"AssertionError [ERR_ASSERTION]\",enumerable:!1,writable:!0,configurable:!0}),r.code=\"ERR_ASSERTION\",r.actual=l,r.expected=f,r.operator=i,Error.captureStackTrace&&Error.captureStackTrace(a(r),u),r.stack,r.name=\"AssertionError\",c(r)}var i,u;return !function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&g(t,e);}(e,t),i=e,(u=[{key:\"toString\",value:function(){return \"\".concat(this.name,\" [\").concat(this.code,\"]: \").concat(this.message)}},{key:b.custom,value:function(t,e){return b(this,function(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{},o=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(n).filter((function(t){return Object.getOwnPropertyDescriptor(n,t).enumerable})))),o.forEach((function(e){r(t,e,n[e]);}));}return t}({},e,{customInspect:!1,depth:0}))}}])&&o(i.prototype,u),e}(f(Error));return u$5=R}function s$3(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=[],r=!0,o=!1,c=void 0;try{for(var a,i=t[Symbol.iterator]();!(r=(a=i.next()).done)&&(n.push(a.value),!e||n.length!==e);r=!0);}catch(t){o=!0,c=t;}finally{try{r||null==i.return||i.return();}finally{if(o)throw c}}return n}(t,e)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")}()}function p$3(t){return (p$3=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}var g$1=void 0!==/a/g.flags,h$1=function(t){var e=[];return t.forEach((function(t){return e.push(t)})),e},y$2=function(t){var e=[];return t.forEach((function(t,n){return e.push([n,t])})),e},b$1=Object.is?Object.is:m,v$1=Object.getOwnPropertySymbols?Object.getOwnPropertySymbols:function(){return []},d$1=Number.isNaN?Number.isNaN:f$5;function m$2(t){return t.call.bind(t)}var E=m$2(Object.prototype.hasOwnProperty),w$1=m$2(Object.prototype.propertyIsEnumerable),S=m$2(Object.prototype.toString),j$1=X$1.types,O=j$1.isAnyArrayBuffer,x=j$1.isArrayBufferView,q=j$1.isDate,R=j$1.isMap,A$1=j$1.isRegExp,k=j$1.isSet,_=j$1.isNativeError,T=j$1.isBoxedPrimitive,P$1=j$1.isNumberObject,I=j$1.isStringObject,D=j$1.isBooleanObject,F=j$1.isBigIntObject,N$1=j$1.isSymbolObject,L=j$1.isFloat32Array,M=j$1.isFloat64Array;function U(t){if(0===t.length||t.length>10)return !0;for(var e=0;e<t.length;e++){var n=t.charCodeAt(e);if(n<48||n>57)return !0}return 10===t.length&&t>=Math.pow(2,32)}function G(t){return Object.keys(t).filter(U).concat(v$1(t).filter(Object.prototype.propertyIsEnumerable.bind(t)))}\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>\n * @license MIT\n */function V(t,e){if(t===e)return 0;for(var n=t.length,r=e.length,o=0,c=Math.min(n,r);o<c;++o)if(t[o]!==e[o]){n=t[o],r=e[o];break}return n<r?-1:r<n?1:0}function B(t,e,n,r){if(t===e)return 0!==t||(!n||b$1(t,e));if(n){if(\"object\"!==p$3(t))return \"number\"==typeof t&&d$1(t)&&d$1(e);if(\"object\"!==p$3(e)||null===t||null===e)return !1;if(Object.getPrototypeOf(t)!==Object.getPrototypeOf(e))return !1}else {if(null===t||\"object\"!==p$3(t))return (null===e||\"object\"!==p$3(e))&&t==e;if(null===e||\"object\"!==p$3(e))return !1}var o,c,a,i,u=S(t);if(u!==S(e))return !1;if(Array.isArray(t)){if(t.length!==e.length)return !1;var l=G(t),f=G(e);return l.length===f.length&&C(t,e,n,r,1,l)}if(\"[object Object]\"===u&&(!R(t)&&R(e)||!k(t)&&k(e)))return !1;if(q(t)){if(!q(e)||Date.prototype.getTime.call(t)!==Date.prototype.getTime.call(e))return !1}else if(A$1(t)){if(!A$1(e)||(a=t,i=e,!(g$1?a.source===i.source&&a.flags===i.flags:RegExp.prototype.toString.call(a)===RegExp.prototype.toString.call(i))))return !1}else if(_(t)||t instanceof Error){if(t.message!==e.message||t.name!==e.name)return !1}else {if(x(t)){if(n||!L(t)&&!M(t)){if(!function(t,e){return t.byteLength===e.byteLength&&0===V(new Uint8Array(t.buffer,t.byteOffset,t.byteLength),new Uint8Array(e.buffer,e.byteOffset,e.byteLength))}(t,e))return !1}else if(!function(t,e){if(t.byteLength!==e.byteLength)return !1;for(var n=0;n<t.byteLength;n++)if(t[n]!==e[n])return !1;return !0}(t,e))return !1;var s=G(t),h=G(e);return s.length===h.length&&C(t,e,n,r,0,s)}if(k(t))return !(!k(e)||t.size!==e.size)&&C(t,e,n,r,2);if(R(t))return !(!R(e)||t.size!==e.size)&&C(t,e,n,r,3);if(O(t)){if(c=e,(o=t).byteLength!==c.byteLength||0!==V(new Uint8Array(o),new Uint8Array(c)))return !1}else if(T(t)&&!function(t,e){return P$1(t)?P$1(e)&&b$1(Number.prototype.valueOf.call(t),Number.prototype.valueOf.call(e)):I(t)?I(e)&&String.prototype.valueOf.call(t)===String.prototype.valueOf.call(e):D(t)?D(e)&&Boolean.prototype.valueOf.call(t)===Boolean.prototype.valueOf.call(e):F(t)?F(e)&&BigInt.prototype.valueOf.call(t)===BigInt.prototype.valueOf.call(e):N$1(e)&&Symbol.prototype.valueOf.call(t)===Symbol.prototype.valueOf.call(e)}(t,e))return !1}return C(t,e,n,r,0)}function z(t,e){return e.filter((function(e){return w$1(t,e)}))}function C(t,e,n,r,o,c){if(5===arguments.length){c=Object.keys(t);var a=Object.keys(e);if(c.length!==a.length)return !1}for(var i=0;i<c.length;i++)if(!E(e,c[i]))return !1;if(n&&5===arguments.length){var u=v$1(t);if(0!==u.length){var l=0;for(i=0;i<u.length;i++){var f=u[i];if(w$1(t,f)){if(!w$1(e,f))return !1;c.push(f),l++;}else if(w$1(e,f))return !1}var s=v$1(e);if(u.length!==s.length&&z(e,s).length!==l)return !1}else {var p=v$1(e);if(0!==p.length&&0!==z(e,p).length)return !1}}if(0===c.length&&(0===o||1===o&&0===t.length||0===t.size))return !0;if(void 0===r)r={val1:new Map,val2:new Map,position:0};else {var g=r.val1.get(t);if(void 0!==g){var h=r.val2.get(e);if(void 0!==h)return g===h}r.position++;}r.val1.set(t,r.position),r.val2.set(e,r.position);var y=Q(t,e,n,c,r,o);return r.val1.delete(t),r.val2.delete(e),y}function Y(t,e,n,r){for(var o=h$1(t),c=0;c<o.length;c++){var a=o[c];if(B(e,a,n,r))return t.delete(a),!0}return !1}function W(t){switch(p$3(t)){case\"undefined\":return null;case\"object\":return;case\"symbol\":return !1;case\"string\":t=+t;case\"number\":if(d$1(t))return !1}return !0}function H(t,e,n){var r=W(n);return null!=r?r:e.has(r)&&!t.has(r)}function J(t,e,n,r,o){var c=W(n);if(null!=c)return c;var a=e.get(c);return !(void 0===a&&!e.has(c)||!B(r,a,!1,o))&&(!t.has(c)&&B(r,a,!1,o))}function K(t,e,n,r,o,c){for(var a=h$1(t),i=0;i<a.length;i++){var u=a[i];if(B(n,u,o,c)&&B(r,e.get(u),o,c))return t.delete(u),!0}return !1}function Q(t,e,n,r,o,c){var a=0;if(2===c){if(!function(t,e,n,r){for(var o=null,c=h$1(t),a=0;a<c.length;a++){var i=c[a];if(\"object\"===p$3(i)&&null!==i)null===o&&(o=new Set),o.add(i);else if(!e.has(i)){if(n)return !1;if(!H(t,e,i))return !1;null===o&&(o=new Set),o.add(i);}}if(null!==o){for(var u=h$1(e),l=0;l<u.length;l++){var f=u[l];if(\"object\"===p$3(f)&&null!==f){if(!Y(o,f,n,r))return !1}else if(!n&&!t.has(f)&&!Y(o,f,n,r))return !1}return 0===o.size}return !0}(t,e,n,o))return !1}else if(3===c){if(!function(t,e,n,r){for(var o=null,c=y$2(t),a=0;a<c.length;a++){var i=s$3(c[a],2),u=i[0],l=i[1];if(\"object\"===p$3(u)&&null!==u)null===o&&(o=new Set),o.add(u);else {var f=e.get(u);if(void 0===f&&!e.has(u)||!B(l,f,n,r)){if(n)return !1;if(!J(t,e,u,l,r))return !1;null===o&&(o=new Set),o.add(u);}}}if(null!==o){for(var g=y$2(e),h=0;h<g.length;h++){var b=s$3(g[h],2),v=(u=b[0],b[1]);if(\"object\"===p$3(u)&&null!==u){if(!K(o,t,u,v,n,r))return !1}else if(!(n||t.has(u)&&B(t.get(u),v,!1,r)||K(o,t,u,v,!1,r)))return !1}return 0===o.size}return !0}(t,e,n,o))return !1}else if(1===c)for(;a<t.length;a++){if(!E(t,a)){if(E(e,a))return !1;for(var i=Object.keys(t);a<i.length;a++){var u=i[a];if(!E(e,u)||!B(t[u],e[u],n,o))return !1}return i.length===Object.keys(e).length}if(!E(e,a)||!B(t[a],e[a],n,o))return !1}for(a=0;a<r.length;a++){var l=r[a];if(!B(t[l],e[l],n,o))return !1}return !0}var X={isDeepEqual:function(t,e){return B(t,e,!1)},isDeepStrictEqual:function(t,e){return B(t,e,!0)}},Z={},$$1=!1;function tt(){if($$1)return Z;$$1=!0;var o=T$1;function c(t){return (c=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}var a,u,l=i$5().codes,s=l.ERR_AMBIGUOUS_ARGUMENT,p=l.ERR_INVALID_ARG_TYPE,g=l.ERR_INVALID_ARG_VALUE,h=l.ERR_INVALID_RETURN_VALUE,y=l.ERR_MISSING_ARGS,b=f$6(),v=X$1.inspect,d=X$1.types,m$1=d.isPromise,E=d.isRegExp,w=Object.assign?Object.assign:r.assign,S=Object.is?Object.is:m;function j(){a=X.isDeepEqual,u=X.isDeepStrictEqual;}var O=!1,x=Z=k,q={};function R(t){if(t.message instanceof Error)throw t.message;throw new b(t)}function A(t,e,n,r){if(!n){var o=!1;if(0===e)o=!0,r=\"No value argument passed to `assert.ok()`\";else if(r instanceof Error)throw r;var c=new b({actual:n,expected:!0,message:r,operator:\"==\",stackStartFn:t});throw c.generatedMessage=o,c}}function k(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];A.apply(void 0,[k,e.length].concat(e));}x.fail=function t(e,n,r,c,a){var i,u=arguments.length;if(0===u)i=\"Failed\";else if(1===u)r=e,e=void 0;else {if(!1===O){O=!0;var l=o.emitWarning?o.emitWarning:console.warn.bind(console);l(\"assert.fail() with more than one argument is deprecated. Please use assert.strictEqual() instead or only pass a message.\",\"DeprecationWarning\",\"DEP0094\");}2===u&&(c=\"!=\");}if(r instanceof Error)throw r;var f={actual:e,expected:n,operator:void 0===c?\"fail\":c,stackStartFn:a||t};void 0!==r&&(f.message=r);var s=new b(f);throw i&&(s.message=i,s.generatedMessage=!0),s},x.AssertionError=b,x.ok=k,x.equal=function t(e,n,r){if(arguments.length<2)throw new y(\"actual\",\"expected\");e!=n&&R({actual:e,expected:n,message:r,operator:\"==\",stackStartFn:t});},x.notEqual=function t(e,n,r){if(arguments.length<2)throw new y(\"actual\",\"expected\");e==n&&R({actual:e,expected:n,message:r,operator:\"!=\",stackStartFn:t});},x.deepEqual=function t(e,n,r){if(arguments.length<2)throw new y(\"actual\",\"expected\");void 0===a&&j(),a(e,n)||R({actual:e,expected:n,message:r,operator:\"deepEqual\",stackStartFn:t});},x.notDeepEqual=function t(e,n,r){if(arguments.length<2)throw new y(\"actual\",\"expected\");void 0===a&&j(),a(e,n)&&R({actual:e,expected:n,message:r,operator:\"notDeepEqual\",stackStartFn:t});},x.deepStrictEqual=function t(e,n,r){if(arguments.length<2)throw new y(\"actual\",\"expected\");void 0===a&&j(),u(e,n)||R({actual:e,expected:n,message:r,operator:\"deepStrictEqual\",stackStartFn:t});},x.notDeepStrictEqual=function t(e,n,r){if(arguments.length<2)throw new y(\"actual\",\"expected\");void 0===a&&j();u(e,n)&&R({actual:e,expected:n,message:r,operator:\"notDeepStrictEqual\",stackStartFn:t});},x.strictEqual=function t(e,n,r){if(arguments.length<2)throw new y(\"actual\",\"expected\");S(e,n)||R({actual:e,expected:n,message:r,operator:\"strictEqual\",stackStartFn:t});},x.notStrictEqual=function t(e,n,r){if(arguments.length<2)throw new y(\"actual\",\"expected\");S(e,n)&&R({actual:e,expected:n,message:r,operator:\"notStrictEqual\",stackStartFn:t});};var _=function t(e,n,r){var o=this;!function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),n.forEach((function(t){t in e&&(void 0!==r&&\"string\"==typeof r[t]&&E(e[t])&&e[t].test(r[t])?o[t]=r[t]:o[t]=e[t]);}));};function T(t,e,n,r,o,c){if(!(n in t)||!u(t[n],e[n])){if(!r){var a=new _(t,o),i=new _(e,o,t),l=new b({actual:a,expected:i,operator:\"deepStrictEqual\",stackStartFn:c});throw l.actual=t,l.expected=e,l.operator=c.name,l}R({actual:t,expected:e,message:r,operator:c.name,stackStartFn:c});}}function P(t,e,n,r){if(\"function\"!=typeof e){if(E(e))return e.test(t);if(2===arguments.length)throw new p(\"expected\",[\"Function\",\"RegExp\"],e);if(\"object\"!==c(t)||null===t){var o=new b({actual:t,expected:e,message:n,operator:\"deepStrictEqual\",stackStartFn:r});throw o.operator=r.name,o}var i=Object.keys(e);if(e instanceof Error)i.push(\"name\",\"message\");else if(0===i.length)throw new g(\"error\",e,\"may not be an empty object\");return void 0===a&&j(),i.forEach((function(o){\"string\"==typeof t[o]&&E(e[o])&&e[o].test(t[o])||T(t,e,o,n,i,r);})),!0}return void 0!==e.prototype&&t instanceof e||!Error.isPrototypeOf(e)&&!0===e.call({},t)}function I(t){if(\"function\"!=typeof t)throw new p(\"fn\",\"Function\",t);try{t();}catch(t){return t}return q}function D(t){return m$1(t)||null!==t&&\"object\"===c(t)&&\"function\"==typeof t.then&&\"function\"==typeof t.catch}function F(t){return Promise.resolve().then((function(){var e;if(\"function\"==typeof t){if(!D(e=t()))throw new h(\"instance of Promise\",\"promiseFn\",e)}else {if(!D(t))throw new p(\"promiseFn\",[\"Function\",\"Promise\"],t);e=t;}return Promise.resolve().then((function(){return e})).then((function(){return q})).catch((function(t){return t}))}))}function N(t,e,n,r){if(\"string\"==typeof n){if(4===arguments.length)throw new p(\"error\",[\"Object\",\"Error\",\"Function\",\"RegExp\"],n);if(\"object\"===c(e)&&null!==e){if(e.message===n)throw new s(\"error/message\",'The error message \"'.concat(e.message,'\" is identical to the message.'))}else if(e===n)throw new s(\"error/message\",'The error \"'.concat(e,'\" is identical to the message.'));r=n,n=void 0;}else if(null!=n&&\"object\"!==c(n)&&\"function\"!=typeof n)throw new p(\"error\",[\"Object\",\"Error\",\"Function\",\"RegExp\"],n);if(e===q){var o=\"\";n&&n.name&&(o+=\" (\".concat(n.name,\")\")),o+=r?\": \".concat(r):\".\";var a=\"rejects\"===t.name?\"rejection\":\"exception\";R({actual:void 0,expected:n,operator:t.name,message:\"Missing expected \".concat(a).concat(o),stackStartFn:t});}if(n&&!P(e,n,r,t))throw e}function L(t,e,n,r){if(e!==q){if(\"string\"==typeof n&&(r=n,n=void 0),!n||P(e,n)){var o=r?\": \".concat(r):\".\",c=\"doesNotReject\"===t.name?\"rejection\":\"exception\";R({actual:e,expected:n,operator:t.name,message:\"Got unwanted \".concat(c).concat(o,\"\\n\")+'Actual message: \"'.concat(e&&e.message,'\"'),stackStartFn:t});}throw e}}function M(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];A.apply(void 0,[M,e.length].concat(e));}return x.throws=function t(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];N.apply(void 0,[t,I(e)].concat(r));},x.rejects=function t(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];return F(e).then((function(e){return N.apply(void 0,[t,e].concat(r))}))},x.doesNotThrow=function t(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];L.apply(void 0,[t,I(e)].concat(r));},x.doesNotReject=function t(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];return F(e).then((function(e){return L.apply(void 0,[t,e].concat(r))}))},x.ifError=function t(e){if(null!=e){var n=\"ifError got unwanted exception: \";\"object\"===c(e)&&\"string\"==typeof e.message?0===e.message.length&&e.constructor?n+=e.constructor.name:n+=e.message:n+=v(e);var r=new b({actual:e,expected:null,operator:\"ifError\",message:n,stackStartFn:t}),o=e.stack;if(\"string\"==typeof o){var a=o.split(\"\\n\");a.shift();for(var i=r.stack.split(\"\\n\"),u=0;u<a.length;u++){var l=i.indexOf(a[u]);if(-1!==l){i=i.slice(0,l);break}}r.stack=\"\".concat(i.join(\"\\n\"),\"\\n\").concat(a.join(\"\\n\"));}throw r}},x.strict=w(M,x,{equal:x.strictEqual,deepEqual:x.deepStrictEqual,notEqual:x.notStrictEqual,notDeepEqual:x.notDeepStrictEqual}),x.strict.strict=x.strict,Z}var et=tt();et.AssertionError;et.deepEqual;et.deepStrictEqual;et.doesNotReject;et.doesNotThrow;et.equal;et.fail;et.ifError;et.notDeepEqual;et.notDeepStrictEqual;et.notEqual;et.notStrictEqual;et.ok;et.rejects;et.strict;et.strictEqual;et.throws;\n\net.AssertionError;\net.deepEqual;\net.deepStrictEqual;\net.doesNotReject;\net.doesNotThrow;\net.equal;\net.fail;\net.ifError;\net.notDeepEqual;\net.notDeepStrictEqual;\net.notEqual;\net.notStrictEqual;\net.ok;\net.rejects;\net.strict;\net.strictEqual;\net.throws;\n\nvar AssertionError = et.AssertionError;\r\nvar deepEqual = et.deepEqual;\r\nvar deepStrictEqual = et.deepStrictEqual;\r\nvar doesNotReject = et.doesNotReject;\r\nvar doesNotThrow = et.doesNotThrow;\r\nvar equal = et.equal;\r\nvar fail = et.fail;\r\nvar ifError = et.ifError;\r\nvar notDeepEqual = et.notDeepEqual;\r\nvar notDeepStrictEqual = et.notDeepStrictEqual;\r\nvar notEqual = et.notEqual;\r\nvar notStrictEqual = et.notStrictEqual;\r\nvar ok = et.ok;\r\nvar rejects = et.rejects;\r\nvar strict = et.strict;\r\nvar strictEqual = et.strictEqual;\r\nvar throws = et.throws;\n\nexport { AssertionError, deepEqual, deepStrictEqual, et as default, doesNotReject, doesNotThrow, equal, fail, ifError, notDeepEqual, notDeepStrictEqual, notEqual, notStrictEqual, ok, rejects, strict, strictEqual, throws };\n","import './chunk-ce0fbc82.js';\nimport { X } from './chunk-b4205b57.js';\nexport { X as default } from './chunk-b4205b57.js';\nimport './chunk-5decc758.js';\n\nvar _extend = X._extend;\r\nvar callbackify = X.callbackify;\r\nvar debuglog = X.debuglog;\r\nvar deprecate = X.deprecate;\r\nvar format = X.format;\r\nvar inherits = X.inherits;\r\nvar inspect = X.inspect;\r\nvar isArray = X.isArray;\r\nvar isBoolean = X.isBoolean;\r\nvar isBuffer = X.isBuffer;\r\nvar isDate = X.isDate;\r\nvar isError = X.isError;\r\nvar isFunction = X.isFunction;\r\nvar isNull = X.isNull;\r\nvar isNullOrUndefined = X.isNullOrUndefined;\r\nvar isNumber = X.isNumber;\r\nvar isObject = X.isObject;\r\nvar isPrimitive = X.isPrimitive;\r\nvar isRegExp = X.isRegExp;\r\nvar isString = X.isString;\r\nvar isSymbol = X.isSymbol;\r\nvar isUndefined = X.isUndefined;\r\nvar log = X.log;\r\nvar promisify = X.promisify;\r\nvar types = X.types;\r\n\r\nconst TextEncoder = X.TextEncoder = globalThis.TextEncoder;\r\nconst TextDecoder = X.TextDecoder = globalThis.TextDecoder;\n\nexport { TextDecoder, TextEncoder, _extend, callbackify, debuglog, deprecate, format, inherits, inspect, isArray, isBoolean, isBuffer, isDate, isError, isFunction, isNull, isNullOrUndefined, isNumber, isObject, isPrimitive, isRegExp, isString, isSymbol, isUndefined, log, promisify, types };\n","import { e as exports } from './chunk-23dbec7b.js';\nexport { e as default } from './chunk-23dbec7b.js';\nimport './chunk-2eac56ff.js';\n\nvar _makeLong = exports._makeLong;\r\nvar basename = exports.basename;\r\nvar delimiter = exports.delimiter;\r\nvar dirname = exports.dirname;\r\nvar extname = exports.extname;\r\nvar format = exports.format;\r\nvar isAbsolute = exports.isAbsolute;\r\nvar join = exports.join;\r\nvar normalize = exports.normalize;\r\nvar parse = exports.parse;\r\nvar posix = exports.posix;\r\nvar relative = exports.relative;\r\nvar resolve = exports.resolve;\r\nvar sep = exports.sep;\r\nvar win32 = exports.win32;\n\nexport { _makeLong, basename, delimiter, dirname, extname, format, isAbsolute, join, normalize, parse, posix, relative, resolve, sep, win32 };\n","import { p as process } from './chunk-2eac56ff.js';\n\nvar exports$1 = {},\n _dewExec = false;\nfunction dew() {\n if (_dewExec) return exports$1;\n _dewExec = true;\n var process$1 = process;\n\n function assertPath(path) {\n if (typeof path !== \"string\") {\n throw new TypeError(\"Path must be a string. Received \" + JSON.stringify(path));\n }\n } // Resolves . and .. elements in a path with directory names\n\n\n function normalizeStringPosix(path, allowAboveRoot) {\n var res = \"\";\n var lastSegmentLength = 0;\n var lastSlash = -1;\n var dots = 0;\n var code;\n\n for (var i = 0; i <= path.length; ++i) {\n if (i < path.length) code = path.charCodeAt(i);else if (code === 47\n /*/*/\n ) break;else code = 47\n /*/*/\n ;\n\n if (code === 47\n /*/*/\n ) {\n if (lastSlash === i - 1 || dots === 1) ; else if (lastSlash !== i - 1 && dots === 2) {\n if (res.length < 2 || lastSegmentLength !== 2 || res.charCodeAt(res.length - 1) !== 46\n /*.*/\n || res.charCodeAt(res.length - 2) !== 46\n /*.*/\n ) {\n if (res.length > 2) {\n var lastSlashIndex = res.lastIndexOf(\"/\");\n\n if (lastSlashIndex !== res.length - 1) {\n if (lastSlashIndex === -1) {\n res = \"\";\n lastSegmentLength = 0;\n } else {\n res = res.slice(0, lastSlashIndex);\n lastSegmentLength = res.length - 1 - res.lastIndexOf(\"/\");\n }\n\n lastSlash = i;\n dots = 0;\n continue;\n }\n } else if (res.length === 2 || res.length === 1) {\n res = \"\";\n lastSegmentLength = 0;\n lastSlash = i;\n dots = 0;\n continue;\n }\n }\n\n if (allowAboveRoot) {\n if (res.length > 0) res += \"/..\";else res = \"..\";\n lastSegmentLength = 2;\n }\n } else {\n if (res.length > 0) res += \"/\" + path.slice(lastSlash + 1, i);else res = path.slice(lastSlash + 1, i);\n lastSegmentLength = i - lastSlash - 1;\n }\n\n lastSlash = i;\n dots = 0;\n } else if (code === 46\n /*.*/\n && dots !== -1) {\n ++dots;\n } else {\n dots = -1;\n }\n }\n\n return res;\n }\n\n function _format(sep, pathObject) {\n var dir = pathObject.dir || pathObject.root;\n var base = pathObject.base || (pathObject.name || \"\") + (pathObject.ext || \"\");\n\n if (!dir) {\n return base;\n }\n\n if (dir === pathObject.root) {\n return dir + base;\n }\n\n return dir + sep + base;\n }\n\n var posix = {\n // path.resolve([from ...], to)\n resolve: function resolve() {\n var resolvedPath = \"\";\n var resolvedAbsolute = false;\n var cwd;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path;\n if (i >= 0) path = arguments[i];else {\n if (cwd === undefined) cwd = process$1.cwd();\n path = cwd;\n }\n assertPath(path); // Skip empty entries\n\n if (path.length === 0) {\n continue;\n }\n\n resolvedPath = path + \"/\" + resolvedPath;\n resolvedAbsolute = path.charCodeAt(0) === 47\n /*/*/\n ;\n } // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n // Normalize the path\n\n\n resolvedPath = normalizeStringPosix(resolvedPath, !resolvedAbsolute);\n\n if (resolvedAbsolute) {\n if (resolvedPath.length > 0) return \"/\" + resolvedPath;else return \"/\";\n } else if (resolvedPath.length > 0) {\n return resolvedPath;\n } else {\n return \".\";\n }\n },\n normalize: function normalize(path) {\n assertPath(path);\n if (path.length === 0) return \".\";\n var isAbsolute = path.charCodeAt(0) === 47\n /*/*/\n ;\n var trailingSeparator = path.charCodeAt(path.length - 1) === 47\n /*/*/\n ; // Normalize the path\n\n path = normalizeStringPosix(path, !isAbsolute);\n if (path.length === 0 && !isAbsolute) path = \".\";\n if (path.length > 0 && trailingSeparator) path += \"/\";\n if (isAbsolute) return \"/\" + path;\n return path;\n },\n isAbsolute: function isAbsolute(path) {\n assertPath(path);\n return path.length > 0 && path.charCodeAt(0) === 47\n /*/*/\n ;\n },\n join: function join() {\n if (arguments.length === 0) return \".\";\n var joined;\n\n for (var i = 0; i < arguments.length; ++i) {\n var arg = arguments[i];\n assertPath(arg);\n\n if (arg.length > 0) {\n if (joined === undefined) joined = arg;else joined += \"/\" + arg;\n }\n }\n\n if (joined === undefined) return \".\";\n return posix.normalize(joined);\n },\n relative: function relative(from, to) {\n assertPath(from);\n assertPath(to);\n if (from === to) return \"\";\n from = posix.resolve(from);\n to = posix.resolve(to);\n if (from === to) return \"\"; // Trim any leading backslashes\n\n var fromStart = 1;\n\n for (; fromStart < from.length; ++fromStart) {\n if (from.charCodeAt(fromStart) !== 47\n /*/*/\n ) break;\n }\n\n var fromEnd = from.length;\n var fromLen = fromEnd - fromStart; // Trim any leading backslashes\n\n var toStart = 1;\n\n for (; toStart < to.length; ++toStart) {\n if (to.charCodeAt(toStart) !== 47\n /*/*/\n ) break;\n }\n\n var toEnd = to.length;\n var toLen = toEnd - toStart; // Compare paths to find the longest common path from root\n\n var length = fromLen < toLen ? fromLen : toLen;\n var lastCommonSep = -1;\n var i = 0;\n\n for (; i <= length; ++i) {\n if (i === length) {\n if (toLen > length) {\n if (to.charCodeAt(toStart + i) === 47\n /*/*/\n ) {\n // We get here if `from` is the exact base path for `to`.\n // For example: from='/foo/bar'; to='/foo/bar/baz'\n return to.slice(toStart + i + 1);\n } else if (i === 0) {\n // We get here if `from` is the root\n // For example: from='/'; to='/foo'\n return to.slice(toStart + i);\n }\n } else if (fromLen > length) {\n if (from.charCodeAt(fromStart + i) === 47\n /*/*/\n ) {\n // We get here if `to` is the exact base path for `from`.\n // For example: from='/foo/bar/baz'; to='/foo/bar'\n lastCommonSep = i;\n } else if (i === 0) {\n // We get here if `to` is the root.\n // For example: from='/foo'; to='/'\n lastCommonSep = 0;\n }\n }\n\n break;\n }\n\n var fromCode = from.charCodeAt(fromStart + i);\n var toCode = to.charCodeAt(toStart + i);\n if (fromCode !== toCode) break;else if (fromCode === 47\n /*/*/\n ) lastCommonSep = i;\n }\n\n var out = \"\"; // Generate the relative path based on the path difference between `to`\n // and `from`\n\n for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) {\n if (i === fromEnd || from.charCodeAt(i) === 47\n /*/*/\n ) {\n if (out.length === 0) out += \"..\";else out += \"/..\";\n }\n } // Lastly, append the rest of the destination (`to`) path that comes after\n // the common path parts\n\n\n if (out.length > 0) return out + to.slice(toStart + lastCommonSep);else {\n toStart += lastCommonSep;\n if (to.charCodeAt(toStart) === 47\n /*/*/\n ) ++toStart;\n return to.slice(toStart);\n }\n },\n _makeLong: function _makeLong(path) {\n return path;\n },\n dirname: function dirname(path) {\n assertPath(path);\n if (path.length === 0) return \".\";\n var code = path.charCodeAt(0);\n var hasRoot = code === 47\n /*/*/\n ;\n var end = -1;\n var matchedSlash = true;\n\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? \"/\" : \".\";\n if (hasRoot && end === 1) return \"//\";\n return path.slice(0, end);\n },\n basename: function basename(path, ext) {\n if (ext !== undefined && typeof ext !== \"string\") throw new TypeError(\"\\\"ext\\\" argument must be a string\");\n assertPath(path);\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n if (ext !== undefined && ext.length > 0 && ext.length <= path.length) {\n if (ext.length === path.length && ext === path) return \"\";\n var extIdx = ext.length - 1;\n var firstNonSlashEnd = -1;\n\n for (i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else {\n if (firstNonSlashEnd === -1) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching\n matchedSlash = false;\n firstNonSlashEnd = i + 1;\n }\n\n if (extIdx >= 0) {\n // Try to match the explicit extension\n if (code === ext.charCodeAt(extIdx)) {\n if (--extIdx === -1) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = i;\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extIdx = -1;\n end = firstNonSlashEnd;\n }\n }\n }\n }\n\n if (start === end) end = firstNonSlashEnd;else if (end === -1) end = path.length;\n return path.slice(start, end);\n } else {\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47\n /*/*/\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return \"\";\n return path.slice(start, end);\n }\n },\n extname: function extname(path) {\n assertPath(path);\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true; // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n\n var preDotState = 0;\n\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n\n continue;\n }\n\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n\n if (code === 46\n /*.*/\n ) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) startDot = i;else if (preDotState !== 1) preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot\n preDotState === 0 || // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return \"\";\n }\n\n return path.slice(startDot, end);\n },\n format: function format(pathObject) {\n if (pathObject === null || typeof pathObject !== \"object\") {\n throw new TypeError(\"The \\\"pathObject\\\" argument must be of type Object. Received type \" + typeof pathObject);\n }\n\n return _format(\"/\", pathObject);\n },\n parse: function parse(path) {\n assertPath(path);\n var ret = {\n root: \"\",\n dir: \"\",\n base: \"\",\n ext: \"\",\n name: \"\"\n };\n if (path.length === 0) return ret;\n var code = path.charCodeAt(0);\n var isAbsolute = code === 47\n /*/*/\n ;\n var start;\n\n if (isAbsolute) {\n ret.root = \"/\";\n start = 1;\n } else {\n start = 0;\n }\n\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n var i = path.length - 1; // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n\n var preDotState = 0; // Get non-dir info\n\n for (; i >= start; --i) {\n code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n\n continue;\n }\n\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n\n if (code === 46\n /*.*/\n ) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) startDot = i;else if (preDotState !== 1) preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot\n preDotState === 0 || // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n if (end !== -1) {\n if (startPart === 0 && isAbsolute) ret.base = ret.name = path.slice(1, end);else ret.base = ret.name = path.slice(startPart, end);\n }\n } else {\n if (startPart === 0 && isAbsolute) {\n ret.name = path.slice(1, startDot);\n ret.base = path.slice(1, end);\n } else {\n ret.name = path.slice(startPart, startDot);\n ret.base = path.slice(startPart, end);\n }\n\n ret.ext = path.slice(startDot, end);\n }\n\n if (startPart > 0) ret.dir = path.slice(0, startPart - 1);else if (isAbsolute) ret.dir = \"/\";\n return ret;\n },\n sep: \"/\",\n delimiter: \":\",\n win32: null,\n posix: null\n };\n posix.posix = posix;\n exports$1 = posix;\n return exports$1;\n}\n\nconst exports = dew();\n\nexport { exports as e };\n","import { y } from './chunk-4bd36a8f.js';\nexport { y as default } from './chunk-4bd36a8f.js';\n\n// https://github.com/denoland/deno_std/blob/d005433c709054af87aca54f57a446b4f7966f11/node/events.ts#L501-L638\r\ny.once = function (emitter, event) {\r\n return new Promise((resolve, reject) => {\r\n function eventListener(...args) {\r\n if (errorListener !== undefined) {\r\n emitter.removeListener('error', errorListener);\r\n }\r\n resolve(args);\r\n }\r\n let errorListener;\r\n if (event !== 'error') {\r\n // deno-lint-ignore no-explicit-any\r\n errorListener = (err) => {\r\n emitter.removeListener(name, eventListener);\r\n reject(err);\r\n };\r\n\r\n emitter.once('error', errorListener);\r\n }\r\n\r\n emitter.once(event, eventListener);\r\n });\r\n};\r\ny.on = function (emitter, event) {\r\n const unconsumedEventValues = [];\r\n const unconsumedPromises = [];\r\n let error = null;\r\n let finished = false;\r\n\r\n const iterator = {\r\n async next() {\r\n const value = unconsumedEventValues.shift();\r\n if (value) {\r\n return createIterResult(value, false);\r\n }\r\n\r\n if (error) {\r\n const p = Promise.reject(error);\r\n error = null;\r\n return p;\r\n }\r\n\r\n if (finished) {\r\n return createIterResult(undefined, true);\r\n }\r\n\r\n return new Promise((resolve, reject) => unconsumedPromises.push({ resolve, reject }));\r\n },\r\n async return() {\r\n emitter.removeListener(event, eventHandler);\r\n emitter.removeListener('error', errorHandler);\r\n finished = true;\r\n\r\n for (const promise of unconsumedPromises) {\r\n promise.resolve(createIterResult(undefined, true));\r\n }\r\n\r\n return createIterResult(undefined, true);\r\n },\r\n throw(err) {\r\n error = err;\r\n emitter.removeListener(event, eventHandler);\r\n emitter.removeListener('error', errorHandler);\r\n },\r\n [Symbol.asyncIterator]() {\r\n return this;\r\n },\r\n };\r\n\r\n emitter.on(event, eventHandler);\r\n emitter.on('error', errorHandler);\r\n\r\n return iterator;\r\n\r\n function eventHandler(...args) {\r\n const promise = unconsumedPromises.shift();\r\n if (promise) {\r\n promise.resolve(createIterResult(args, false));\r\n } else {\r\n unconsumedEventValues.push(args);\r\n }\r\n }\r\n\r\n function errorHandler(err) {\r\n finished = true;\r\n const toError = unconsumedPromises.shift();\r\n if (toError) {\r\n toError.reject(err);\r\n } else {\r\n error = err;\r\n }\r\n iterator.return();\r\n }\r\n};\r\nconst {\r\n EventEmitter,\r\n defaultMaxListeners,\r\n init,\r\n listenerCount,\r\n on,\r\n once,\r\n} = y;\n\nexport { EventEmitter, defaultMaxListeners, init, listenerCount, on, once };\n","import { e as exports } from './chunk-6c718bbe.js';\nexport { e as default } from './chunk-6c718bbe.js';\nimport { promisify } from './util.js';\nimport './events.js';\nimport './chunk-4bd36a8f.js';\nimport './chunk-44e51b61.js';\nimport './chunk-ce0fbc82.js';\nimport './chunk-b4205b57.js';\nimport './chunk-5decc758.js';\nimport './chunk-2eac56ff.js';\nimport './chunk-4ccc3a29.js';\n\nvar Readable = exports.Readable;\r\nReadable.wrap = function(src, options) {\r\n options = Object.assign({ objectMode: src.readableObjectMode != null || src.objectMode != null || true }, options);\r\n options.destroy = function(err, callback) {\r\n src.destroy(err);\r\n callback(err);\r\n };\r\n return new Readable(options).wrap(src);\r\n};\r\n\r\nvar Writable = exports.Writable;\r\nvar Duplex = exports.Duplex;\r\nvar Transform = exports.Transform;\r\nvar PassThrough = exports.PassThrough;\r\nvar finished = exports.finished;\r\nvar pipeline = exports.pipeline;\r\nvar Stream = exports.Stream;\r\n\r\nconst promises = {\r\n finished: promisify(exports.finished),\r\n pipeline: promisify(exports.pipeline)\r\n};\n\nexport { Duplex, PassThrough, Readable, Stream, Transform, Writable, finished, pipeline, promises };\n","import './events.js';\nimport { a as dew$1, c as dew$2, e as dew$3, f as dew$4, g as dew$5, h as dew$6, i as dew$7, d as dew$8 } from './chunk-44e51b61.js';\nimport { y } from './chunk-4bd36a8f.js';\n\nvar exports$1 = {},\n _dewExec = false;\n\nvar _global = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : global;\n\nfunction dew() {\n if (_dewExec) return exports$1;\n _dewExec = true;\n // Copyright Joyent, Inc. and other Node contributors.\n //\n // Permission is hereby granted, free of charge, to any person obtaining a\n // copy of this software and associated documentation files (the\n // \"Software\"), to deal in the Software without restriction, including\n // without limitation the rights to use, copy, modify, merge, publish,\n // distribute, sublicense, and/or sell copies of the Software, and to permit\n // persons to whom the Software is furnished to do so, subject to the\n // following conditions:\n //\n // The above copyright notice and this permission notice shall be included\n // in all copies or substantial portions of the Software.\n //\n // THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n // USE OR OTHER DEALINGS IN THE SOFTWARE.\n exports$1 = Stream;\n var EE = y.EventEmitter;\n\n var inherits = dew$8();\n\n inherits(Stream, EE);\n Stream.Readable = dew$1();\n Stream.Writable = dew$2();\n Stream.Duplex = dew$3();\n Stream.Transform = dew$4();\n Stream.PassThrough = dew$5();\n Stream.finished = dew$6();\n Stream.pipeline = dew$7(); // Backwards-compat with node 0.4.x\n\n Stream.Stream = Stream; // old-style streams. Note that the pipe method (the only relevant\n // part of this class) is overridden in the Readable class.\n\n function Stream() {\n EE.call(this || _global);\n }\n\n Stream.prototype.pipe = function (dest, options) {\n var source = this || _global;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on(\"data\", ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on(\"drain\", ondrain); // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on(\"end\", onend);\n source.on(\"close\", onclose);\n }\n\n var didOnEnd = false;\n\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n dest.end();\n }\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n if (typeof dest.destroy === \"function\") dest.destroy();\n } // don't leave dangling pipes when there are errors.\n\n\n function onerror(er) {\n cleanup();\n\n if (EE.listenerCount(this || _global, \"error\") === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on(\"error\", onerror);\n dest.on(\"error\", onerror); // remove all the event listeners that were added.\n\n function cleanup() {\n source.removeListener(\"data\", ondata);\n dest.removeListener(\"drain\", ondrain);\n source.removeListener(\"end\", onend);\n source.removeListener(\"close\", onclose);\n source.removeListener(\"error\", onerror);\n dest.removeListener(\"error\", onerror);\n source.removeListener(\"end\", cleanup);\n source.removeListener(\"close\", cleanup);\n dest.removeListener(\"close\", cleanup);\n }\n\n source.on(\"end\", cleanup);\n source.on(\"close\", cleanup);\n dest.on(\"close\", cleanup);\n dest.emit(\"pipe\", source); // Allow for unix-like usage: A.pipe(B).pipe(C)\n\n return dest;\n };\n\n return exports$1;\n}\n\nconst exports = dew();\n\nexport { exports as e };\n","import { p as p$1 } from './chunk-924bb2e1.js';\nimport { o as o$1 } from './chunk-b04e620d.js';\nimport { T } from './chunk-5decc758.js';\nimport { e as exports$1 } from './chunk-23dbec7b.js';\nimport './chunk-2eac56ff.js';\n\nvar h={},e=p$1,a={isString:function(t){return \"string\"==typeof t},isObject:function(t){return \"object\"==typeof t&&null!==t},isNull:function(t){return null===t},isNullOrUndefined:function(t){return null==t}};function r(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null;}h.parse=O,h.resolve=function(t,s){return O(t,!1,!0).resolve(s)},h.resolveObject=function(t,s){return t?O(t,!1,!0).resolveObject(s):s},h.format=function(t){a.isString(t)&&(t=O(t));return t instanceof r?t.format():r.prototype.format.call(t)},h.Url=r;var o=/^([a-z0-9.+-]+:)/i,n=/:[0-9]*$/,i=/^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/,l=[\"{\",\"}\",\"|\",\"\\\\\",\"^\",\"`\"].concat([\"<\",\">\",'\"',\"`\",\" \",\"\\r\",\"\\n\",\"\\t\"]),p=[\"'\"].concat(l),c=[\"%\",\"/\",\"?\",\";\",\"#\"].concat(p),u=[\"/\",\"?\",\"#\"],f=/^[+a-z0-9A-Z_-]{0,63}$/,m=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,v={javascript:!0,\"javascript:\":!0},g={javascript:!0,\"javascript:\":!0},y={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,\"http:\":!0,\"https:\":!0,\"ftp:\":!0,\"gopher:\":!0,\"file:\":!0},b=o$1;function O(t,s,h){if(t&&a.isObject(t)&&t instanceof r)return t;var e=new r;return e.parse(t,s,h),e}r.prototype.parse=function(t,s,h){if(!a.isString(t))throw new TypeError(\"Parameter 'url' must be a string, not \"+typeof t);var r=t.indexOf(\"?\"),n=-1!==r&&r<t.indexOf(\"#\")?\"?\":\"#\",l=t.split(n);l[0]=l[0].replace(/\\\\/g,\"/\");var O=t=l.join(n);if(O=O.trim(),!h&&1===t.split(\"#\").length){var d=i.exec(O);if(d)return this.path=O,this.href=O,this.pathname=d[1],d[2]?(this.search=d[2],this.query=s?b.parse(this.search.substr(1)):this.search.substr(1)):s&&(this.search=\"\",this.query={}),this}var j=o.exec(O);if(j){var q=(j=j[0]).toLowerCase();this.protocol=q,O=O.substr(j.length);}if(h||j||O.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)){var x=\"//\"===O.substr(0,2);!x||j&&g[j]||(O=O.substr(2),this.slashes=!0);}if(!g[j]&&(x||j&&!y[j])){for(var A,C,I=-1,w=0;w<u.length;w++){-1!==(N=O.indexOf(u[w]))&&(-1===I||N<I)&&(I=N);}-1!==(C=-1===I?O.lastIndexOf(\"@\"):O.lastIndexOf(\"@\",I))&&(A=O.slice(0,C),O=O.slice(C+1),this.auth=decodeURIComponent(A)),I=-1;for(w=0;w<c.length;w++){var N;-1!==(N=O.indexOf(c[w]))&&(-1===I||N<I)&&(I=N);}-1===I&&(I=O.length),this.host=O.slice(0,I),O=O.slice(I),this.parseHost(),this.hostname=this.hostname||\"\";var U=\"[\"===this.hostname[0]&&\"]\"===this.hostname[this.hostname.length-1];if(!U)for(var k=this.hostname.split(/\\./),S=(w=0,k.length);w<S;w++){var R=k[w];if(R&&!R.match(f)){for(var $=\"\",z=0,H=R.length;z<H;z++)R.charCodeAt(z)>127?$+=\"x\":$+=R[z];if(!$.match(f)){var L=k.slice(0,w),Z=k.slice(w+1),_=R.match(m);_&&(L.push(_[1]),Z.unshift(_[2])),Z.length&&(O=\"/\"+Z.join(\".\")+O),this.hostname=L.join(\".\");break}}}this.hostname.length>255?this.hostname=\"\":this.hostname=this.hostname.toLowerCase(),U||(this.hostname=e.toASCII(this.hostname));var E=this.port?\":\"+this.port:\"\",P=this.hostname||\"\";this.host=P+E,this.href+=this.host,U&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),\"/\"!==O[0]&&(O=\"/\"+O));}if(!v[q])for(w=0,S=p.length;w<S;w++){var T=p[w];if(-1!==O.indexOf(T)){var B=encodeURIComponent(T);B===T&&(B=escape(T)),O=O.split(T).join(B);}}var D=O.indexOf(\"#\");-1!==D&&(this.hash=O.substr(D),O=O.slice(0,D));var F=O.indexOf(\"?\");if(-1!==F?(this.search=O.substr(F),this.query=O.substr(F+1),s&&(this.query=b.parse(this.query)),O=O.slice(0,F)):s&&(this.search=\"\",this.query={}),O&&(this.pathname=O),y[q]&&this.hostname&&!this.pathname&&(this.pathname=\"/\"),this.pathname||this.search){E=this.pathname||\"\";var G=this.search||\"\";this.path=E+G;}return this.href=this.format(),this},r.prototype.format=function(){var t=this.auth||\"\";t&&(t=(t=encodeURIComponent(t)).replace(/%3A/i,\":\"),t+=\"@\");var s=this.protocol||\"\",h=this.pathname||\"\",e=this.hash||\"\",r=!1,o=\"\";this.host?r=t+this.host:this.hostname&&(r=t+(-1===this.hostname.indexOf(\":\")?this.hostname:\"[\"+this.hostname+\"]\"),this.port&&(r+=\":\"+this.port)),this.query&&a.isObject(this.query)&&Object.keys(this.query).length&&(o=b.stringify(this.query));var n=this.search||o&&\"?\"+o||\"\";return s&&\":\"!==s.substr(-1)&&(s+=\":\"),this.slashes||(!s||y[s])&&!1!==r?(r=\"//\"+(r||\"\"),h&&\"/\"!==h.charAt(0)&&(h=\"/\"+h)):r||(r=\"\"),e&&\"#\"!==e.charAt(0)&&(e=\"#\"+e),n&&\"?\"!==n.charAt(0)&&(n=\"?\"+n),s+r+(h=h.replace(/[?#]/g,(function(t){return encodeURIComponent(t)})))+(n=n.replace(\"#\",\"%23\"))+e},r.prototype.resolve=function(t){return this.resolveObject(O(t,!1,!0)).format()},r.prototype.resolveObject=function(t){if(a.isString(t)){var s=new r;s.parse(t,!1,!0),t=s;}for(var h=new r,e=Object.keys(this),o=0;o<e.length;o++){var n=e[o];h[n]=this[n];}if(h.hash=t.hash,\"\"===t.href)return h.href=h.format(),h;if(t.slashes&&!t.protocol){for(var i=Object.keys(t),l=0;l<i.length;l++){var p=i[l];\"protocol\"!==p&&(h[p]=t[p]);}return y[h.protocol]&&h.hostname&&!h.pathname&&(h.path=h.pathname=\"/\"),h.href=h.format(),h}if(t.protocol&&t.protocol!==h.protocol){if(!y[t.protocol]){for(var c=Object.keys(t),u=0;u<c.length;u++){var f=c[u];h[f]=t[f];}return h.href=h.format(),h}if(h.protocol=t.protocol,t.host||g[t.protocol])h.pathname=t.pathname;else {for(var m=(t.pathname||\"\").split(\"/\");m.length&&!(t.host=m.shift()););t.host||(t.host=\"\"),t.hostname||(t.hostname=\"\"),\"\"!==m[0]&&m.unshift(\"\"),m.length<2&&m.unshift(\"\"),h.pathname=m.join(\"/\");}if(h.search=t.search,h.query=t.query,h.host=t.host||\"\",h.auth=t.auth,h.hostname=t.hostname||t.host,h.port=t.port,h.pathname||h.search){var v=h.pathname||\"\",b=h.search||\"\";h.path=v+b;}return h.slashes=h.slashes||t.slashes,h.href=h.format(),h}var O=h.pathname&&\"/\"===h.pathname.charAt(0),d=t.host||t.pathname&&\"/\"===t.pathname.charAt(0),j=d||O||h.host&&t.pathname,q=j,x=h.pathname&&h.pathname.split(\"/\")||[],A=(m=t.pathname&&t.pathname.split(\"/\")||[],h.protocol&&!y[h.protocol]);if(A&&(h.hostname=\"\",h.port=null,h.host&&(\"\"===x[0]?x[0]=h.host:x.unshift(h.host)),h.host=\"\",t.protocol&&(t.hostname=null,t.port=null,t.host&&(\"\"===m[0]?m[0]=t.host:m.unshift(t.host)),t.host=null),j=j&&(\"\"===m[0]||\"\"===x[0])),d)h.host=t.host||\"\"===t.host?t.host:h.host,h.hostname=t.hostname||\"\"===t.hostname?t.hostname:h.hostname,h.search=t.search,h.query=t.query,x=m;else if(m.length)x||(x=[]),x.pop(),x=x.concat(m),h.search=t.search,h.query=t.query;else if(!a.isNullOrUndefined(t.search)){if(A)h.hostname=h.host=x.shift(),(U=!!(h.host&&h.host.indexOf(\"@\")>0)&&h.host.split(\"@\"))&&(h.auth=U.shift(),h.host=h.hostname=U.shift());return h.search=t.search,h.query=t.query,a.isNull(h.pathname)&&a.isNull(h.search)||(h.path=(h.pathname?h.pathname:\"\")+(h.search?h.search:\"\")),h.href=h.format(),h}if(!x.length)return h.pathname=null,h.search?h.path=\"/\"+h.search:h.path=null,h.href=h.format(),h;for(var C=x.slice(-1)[0],I=(h.host||t.host||x.length>1)&&(\".\"===C||\"..\"===C)||\"\"===C,w=0,N=x.length;N>=0;N--)\".\"===(C=x[N])?x.splice(N,1):\"..\"===C?(x.splice(N,1),w++):w&&(x.splice(N,1),w--);if(!j&&!q)for(;w--;w)x.unshift(\"..\");!j||\"\"===x[0]||x[0]&&\"/\"===x[0].charAt(0)||x.unshift(\"\"),I&&\"/\"!==x.join(\"/\").substr(-1)&&x.push(\"\");var U,k=\"\"===x[0]||x[0]&&\"/\"===x[0].charAt(0);A&&(h.hostname=h.host=k?\"\":x.length?x.shift():\"\",(U=!!(h.host&&h.host.indexOf(\"@\")>0)&&h.host.split(\"@\"))&&(h.auth=U.shift(),h.host=h.hostname=U.shift()));return (j=j||h.host&&x.length)&&!k&&x.unshift(\"\"),x.length?h.pathname=x.join(\"/\"):(h.pathname=null,h.path=null),a.isNull(h.pathname)&&a.isNull(h.search)||(h.path=(h.pathname?h.pathname:\"\")+(h.search?h.search:\"\")),h.auth=t.auth||h.auth,h.slashes=h.slashes||t.slashes,h.href=h.format(),h},r.prototype.parseHost=function(){var t=this.host,s=n.exec(t);s&&(\":\"!==(s=s[0])&&(this.port=s.substr(1)),t=t.substr(0,t.length-s.length)),t&&(this.hostname=t);};\nh.Url;h.format;h.resolve;h.resolveObject;\n\nvar exports = {},\n _dewExec = false;\nfunction dew() {\n if (_dewExec) return exports;\n _dewExec = true;\n var process = T;\n\n function assertPath(path) {\n if (typeof path !== \"string\") {\n throw new TypeError(\"Path must be a string. Received \" + JSON.stringify(path));\n }\n } // Resolves . and .. elements in a path with directory names\n\n\n function normalizeStringPosix(path, allowAboveRoot) {\n var res = \"\";\n var lastSegmentLength = 0;\n var lastSlash = -1;\n var dots = 0;\n var code;\n\n for (var i = 0; i <= path.length; ++i) {\n if (i < path.length) code = path.charCodeAt(i);else if (code === 47\n /*/*/\n ) break;else code = 47\n /*/*/\n ;\n\n if (code === 47\n /*/*/\n ) {\n if (lastSlash === i - 1 || dots === 1) ; else if (lastSlash !== i - 1 && dots === 2) {\n if (res.length < 2 || lastSegmentLength !== 2 || res.charCodeAt(res.length - 1) !== 46\n /*.*/\n || res.charCodeAt(res.length - 2) !== 46\n /*.*/\n ) {\n if (res.length > 2) {\n var lastSlashIndex = res.lastIndexOf(\"/\");\n\n if (lastSlashIndex !== res.length - 1) {\n if (lastSlashIndex === -1) {\n res = \"\";\n lastSegmentLength = 0;\n } else {\n res = res.slice(0, lastSlashIndex);\n lastSegmentLength = res.length - 1 - res.lastIndexOf(\"/\");\n }\n\n lastSlash = i;\n dots = 0;\n continue;\n }\n } else if (res.length === 2 || res.length === 1) {\n res = \"\";\n lastSegmentLength = 0;\n lastSlash = i;\n dots = 0;\n continue;\n }\n }\n\n if (allowAboveRoot) {\n if (res.length > 0) res += \"/..\";else res = \"..\";\n lastSegmentLength = 2;\n }\n } else {\n if (res.length > 0) res += \"/\" + path.slice(lastSlash + 1, i);else res = path.slice(lastSlash + 1, i);\n lastSegmentLength = i - lastSlash - 1;\n }\n\n lastSlash = i;\n dots = 0;\n } else if (code === 46\n /*.*/\n && dots !== -1) {\n ++dots;\n } else {\n dots = -1;\n }\n }\n\n return res;\n }\n\n function _format(sep, pathObject) {\n var dir = pathObject.dir || pathObject.root;\n var base = pathObject.base || (pathObject.name || \"\") + (pathObject.ext || \"\");\n\n if (!dir) {\n return base;\n }\n\n if (dir === pathObject.root) {\n return dir + base;\n }\n\n return dir + sep + base;\n }\n\n var posix = {\n // path.resolve([from ...], to)\n resolve: function resolve() {\n var resolvedPath = \"\";\n var resolvedAbsolute = false;\n var cwd;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path;\n if (i >= 0) path = arguments[i];else {\n if (cwd === undefined) cwd = process.cwd();\n path = cwd;\n }\n assertPath(path); // Skip empty entries\n\n if (path.length === 0) {\n continue;\n }\n\n resolvedPath = path + \"/\" + resolvedPath;\n resolvedAbsolute = path.charCodeAt(0) === 47\n /*/*/\n ;\n } // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n // Normalize the path\n\n\n resolvedPath = normalizeStringPosix(resolvedPath, !resolvedAbsolute);\n\n if (resolvedAbsolute) {\n if (resolvedPath.length > 0) return \"/\" + resolvedPath;else return \"/\";\n } else if (resolvedPath.length > 0) {\n return resolvedPath;\n } else {\n return \".\";\n }\n },\n normalize: function normalize(path) {\n assertPath(path);\n if (path.length === 0) return \".\";\n var isAbsolute = path.charCodeAt(0) === 47\n /*/*/\n ;\n var trailingSeparator = path.charCodeAt(path.length - 1) === 47\n /*/*/\n ; // Normalize the path\n\n path = normalizeStringPosix(path, !isAbsolute);\n if (path.length === 0 && !isAbsolute) path = \".\";\n if (path.length > 0 && trailingSeparator) path += \"/\";\n if (isAbsolute) return \"/\" + path;\n return path;\n },\n isAbsolute: function isAbsolute(path) {\n assertPath(path);\n return path.length > 0 && path.charCodeAt(0) === 47\n /*/*/\n ;\n },\n join: function join() {\n if (arguments.length === 0) return \".\";\n var joined;\n\n for (var i = 0; i < arguments.length; ++i) {\n var arg = arguments[i];\n assertPath(arg);\n\n if (arg.length > 0) {\n if (joined === undefined) joined = arg;else joined += \"/\" + arg;\n }\n }\n\n if (joined === undefined) return \".\";\n return posix.normalize(joined);\n },\n relative: function relative(from, to) {\n assertPath(from);\n assertPath(to);\n if (from === to) return \"\";\n from = posix.resolve(from);\n to = posix.resolve(to);\n if (from === to) return \"\"; // Trim any leading backslashes\n\n var fromStart = 1;\n\n for (; fromStart < from.length; ++fromStart) {\n if (from.charCodeAt(fromStart) !== 47\n /*/*/\n ) break;\n }\n\n var fromEnd = from.length;\n var fromLen = fromEnd - fromStart; // Trim any leading backslashes\n\n var toStart = 1;\n\n for (; toStart < to.length; ++toStart) {\n if (to.charCodeAt(toStart) !== 47\n /*/*/\n ) break;\n }\n\n var toEnd = to.length;\n var toLen = toEnd - toStart; // Compare paths to find the longest common path from root\n\n var length = fromLen < toLen ? fromLen : toLen;\n var lastCommonSep = -1;\n var i = 0;\n\n for (; i <= length; ++i) {\n if (i === length) {\n if (toLen > length) {\n if (to.charCodeAt(toStart + i) === 47\n /*/*/\n ) {\n // We get here if `from` is the exact base path for `to`.\n // For example: from='/foo/bar'; to='/foo/bar/baz'\n return to.slice(toStart + i + 1);\n } else if (i === 0) {\n // We get here if `from` is the root\n // For example: from='/'; to='/foo'\n return to.slice(toStart + i);\n }\n } else if (fromLen > length) {\n if (from.charCodeAt(fromStart + i) === 47\n /*/*/\n ) {\n // We get here if `to` is the exact base path for `from`.\n // For example: from='/foo/bar/baz'; to='/foo/bar'\n lastCommonSep = i;\n } else if (i === 0) {\n // We get here if `to` is the root.\n // For example: from='/foo'; to='/'\n lastCommonSep = 0;\n }\n }\n\n break;\n }\n\n var fromCode = from.charCodeAt(fromStart + i);\n var toCode = to.charCodeAt(toStart + i);\n if (fromCode !== toCode) break;else if (fromCode === 47\n /*/*/\n ) lastCommonSep = i;\n }\n\n var out = \"\"; // Generate the relative path based on the path difference between `to`\n // and `from`\n\n for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) {\n if (i === fromEnd || from.charCodeAt(i) === 47\n /*/*/\n ) {\n if (out.length === 0) out += \"..\";else out += \"/..\";\n }\n } // Lastly, append the rest of the destination (`to`) path that comes after\n // the common path parts\n\n\n if (out.length > 0) return out + to.slice(toStart + lastCommonSep);else {\n toStart += lastCommonSep;\n if (to.charCodeAt(toStart) === 47\n /*/*/\n ) ++toStart;\n return to.slice(toStart);\n }\n },\n _makeLong: function _makeLong(path) {\n return path;\n },\n dirname: function dirname(path) {\n assertPath(path);\n if (path.length === 0) return \".\";\n var code = path.charCodeAt(0);\n var hasRoot = code === 47\n /*/*/\n ;\n var end = -1;\n var matchedSlash = true;\n\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? \"/\" : \".\";\n if (hasRoot && end === 1) return \"//\";\n return path.slice(0, end);\n },\n basename: function basename(path, ext) {\n if (ext !== undefined && typeof ext !== \"string\") throw new TypeError(\"\\\"ext\\\" argument must be a string\");\n assertPath(path);\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n if (ext !== undefined && ext.length > 0 && ext.length <= path.length) {\n if (ext.length === path.length && ext === path) return \"\";\n var extIdx = ext.length - 1;\n var firstNonSlashEnd = -1;\n\n for (i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else {\n if (firstNonSlashEnd === -1) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching\n matchedSlash = false;\n firstNonSlashEnd = i + 1;\n }\n\n if (extIdx >= 0) {\n // Try to match the explicit extension\n if (code === ext.charCodeAt(extIdx)) {\n if (--extIdx === -1) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = i;\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extIdx = -1;\n end = firstNonSlashEnd;\n }\n }\n }\n }\n\n if (start === end) end = firstNonSlashEnd;else if (end === -1) end = path.length;\n return path.slice(start, end);\n } else {\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47\n /*/*/\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return \"\";\n return path.slice(start, end);\n }\n },\n extname: function extname(path) {\n assertPath(path);\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true; // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n\n var preDotState = 0;\n\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n\n continue;\n }\n\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n\n if (code === 46\n /*.*/\n ) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) startDot = i;else if (preDotState !== 1) preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot\n preDotState === 0 || // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return \"\";\n }\n\n return path.slice(startDot, end);\n },\n format: function format(pathObject) {\n if (pathObject === null || typeof pathObject !== \"object\") {\n throw new TypeError(\"The \\\"pathObject\\\" argument must be of type Object. Received type \" + typeof pathObject);\n }\n\n return _format(\"/\", pathObject);\n },\n parse: function parse(path) {\n assertPath(path);\n var ret = {\n root: \"\",\n dir: \"\",\n base: \"\",\n ext: \"\",\n name: \"\"\n };\n if (path.length === 0) return ret;\n var code = path.charCodeAt(0);\n var isAbsolute = code === 47\n /*/*/\n ;\n var start;\n\n if (isAbsolute) {\n ret.root = \"/\";\n start = 1;\n } else {\n start = 0;\n }\n\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n var i = path.length - 1; // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n\n var preDotState = 0; // Get non-dir info\n\n for (; i >= start; --i) {\n code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n\n continue;\n }\n\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n\n if (code === 46\n /*.*/\n ) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) startDot = i;else if (preDotState !== 1) preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot\n preDotState === 0 || // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n if (end !== -1) {\n if (startPart === 0 && isAbsolute) ret.base = ret.name = path.slice(1, end);else ret.base = ret.name = path.slice(startPart, end);\n }\n } else {\n if (startPart === 0 && isAbsolute) {\n ret.name = path.slice(1, startDot);\n ret.base = path.slice(1, end);\n } else {\n ret.name = path.slice(startPart, startDot);\n ret.base = path.slice(startPart, end);\n }\n\n ret.ext = path.slice(startDot, end);\n }\n\n if (startPart > 0) ret.dir = path.slice(0, startPart - 1);else if (isAbsolute) ret.dir = \"/\";\n return ret;\n },\n sep: \"/\",\n delimiter: \":\",\n win32: null,\n posix: null\n };\n posix.posix = posix;\n exports = posix;\n return exports;\n}\n\nvar path = dew();\n\n// Copyright Joyent, Inc. and other Node contributors.\n\nconst processPlatform$1 = typeof Deno !== 'undefined' ? (Deno.build.os === \"windows\" ? \"win32\" : Deno.build.os) : undefined;\n\nh.URL = typeof URL !== 'undefined' ? URL : null;\nh.pathToFileURL = pathToFileURL$1;\nh.fileURLToPath = fileURLToPath$1;\n\nh.Url;\nh.format;\nh.resolve;\nh.resolveObject;\n\nh.URL;\n\nconst CHAR_BACKWARD_SLASH$1 = 92;\nconst CHAR_FORWARD_SLASH$1 = 47;\nconst CHAR_LOWERCASE_A$1 = 97;\nconst CHAR_LOWERCASE_Z$1 = 122;\n\nconst isWindows$1 = processPlatform$1 === 'win32';\n\nconst forwardSlashRegEx$1 = /\\//g;\nconst percentRegEx$1 = /%/g;\nconst backslashRegEx$1 = /\\\\/g;\nconst newlineRegEx$1 = /\\n/g;\nconst carriageReturnRegEx$1 = /\\r/g;\nconst tabRegEx$1 = /\\t/g;\n\n/**\n * Get fully resolved platform-specific file path from the given URL string/ object\n * @param path The file URL string or URL object to convert to a path\n */\nfunction fileURLToPath$1(path) {\n if (typeof path === \"string\") path = new URL(path);\n else if (!(path instanceof URL)) {\n throw new Deno.errors.InvalidData(\n \"invalid argument path , must be a string or URL\",\n );\n }\n if (path.protocol !== \"file:\") {\n throw new Deno.errors.InvalidData(\"invalid url scheme\");\n }\n return isWindows$1 ? getPathFromURLWin$1(path) : getPathFromURLPosix$1(path);\n}\n\nfunction getPathFromURLWin$1(url) {\n const hostname = url.hostname;\n let pathname = url.pathname;\n for (let n = 0; n < pathname.length; n++) {\n if (pathname[n] === \"%\") {\n const third = pathname.codePointAt(n + 2) || 0x20;\n if (\n (pathname[n + 1] === \"2\" && third === 102) || // 2f 2F /\n (pathname[n + 1] === \"5\" && third === 99)\n ) {\n // 5c 5C \\\n throw new Deno.errors.InvalidData(\n \"must not include encoded \\\\ or / characters\",\n );\n }\n }\n }\n\n pathname = pathname.replace(forwardSlashRegEx$1, \"\\\\\");\n pathname = decodeURIComponent(pathname);\n if (hostname !== \"\") {\n //TODO add support for punycode encodings\n return `\\\\\\\\${hostname}${pathname}`;\n } else {\n // Otherwise, it's a local path that requires a drive letter\n const letter = pathname.codePointAt(1) | 0x20;\n const sep = pathname[2];\n if (\n letter < CHAR_LOWERCASE_A$1 ||\n letter > CHAR_LOWERCASE_Z$1 || // a..z A..Z\n sep !== \":\"\n ) {\n throw new Deno.errors.InvalidData(\"file url path must be absolute\");\n }\n return pathname.slice(1);\n }\n}\nfunction getPathFromURLPosix$1(url) {\n if (url.hostname !== \"\") {\n throw new Deno.errors.InvalidData(\"invalid file url hostname\");\n }\n const pathname = url.pathname;\n for (let n = 0; n < pathname.length; n++) {\n if (pathname[n] === \"%\") {\n const third = pathname.codePointAt(n + 2) || 0x20;\n if (pathname[n + 1] === \"2\" && third === 102) {\n throw new Deno.errors.InvalidData(\n \"must not include encoded / characters\",\n );\n }\n }\n }\n return decodeURIComponent(pathname);\n}\n\n/** Get fully resolved platform-specific File URL from the given file path */\nfunction pathToFileURL$1(filepath) {\n let resolved = path.resolve(filepath);\n // path.resolve strips trailing slashes so we must add them back\n const filePathLast = filepath.charCodeAt(filepath.length - 1);\n if (\n (filePathLast === CHAR_FORWARD_SLASH$1 ||\n (isWindows$1 && filePathLast === CHAR_BACKWARD_SLASH$1)) &&\n resolved[resolved.length - 1] !== path.sep\n ) {\n resolved += \"/\";\n }\n const outURL = new URL(\"file://\");\n if (resolved.includes(\"%\")) resolved = resolved.replace(percentRegEx$1, \"%25\");\n // In posix, \"/\" is a valid character in paths\n if (!isWindows$1 && resolved.includes(\"\\\\\")) {\n resolved = resolved.replace(backslashRegEx$1, \"%5C\");\n }\n if (resolved.includes(\"\\n\")) resolved = resolved.replace(newlineRegEx$1, \"%0A\");\n if (resolved.includes(\"\\r\")) {\n resolved = resolved.replace(carriageReturnRegEx$1, \"%0D\");\n }\n if (resolved.includes(\"\\t\")) resolved = resolved.replace(tabRegEx$1, \"%09\");\n outURL.pathname = resolved;\n return outURL;\n}\n\n// Copyright Joyent, Inc. and other Node contributors.\r\n\r\nconst processPlatform = typeof Deno !== 'undefined' ? (Deno.build.os === \"windows\" ? \"win32\" : Deno.build.os) : undefined;\r\n\r\nh.URL = typeof URL !== 'undefined' ? URL : null;\r\nh.pathToFileURL = pathToFileURL;\r\nh.fileURLToPath = fileURLToPath;\r\n\r\nvar Url = h.Url;\r\nvar format = h.format;\r\nvar resolve = h.resolve;\r\nvar resolveObject = h.resolveObject;\r\nvar parse = h.parse;\r\n\r\nconst _URL = h.URL;\r\n\r\nconst CHAR_BACKWARD_SLASH = 92;\r\nconst CHAR_FORWARD_SLASH = 47;\r\nconst CHAR_LOWERCASE_A = 97;\r\nconst CHAR_LOWERCASE_Z = 122;\r\n\r\nconst isWindows = processPlatform === 'win32';\r\n\r\nconst forwardSlashRegEx = /\\//g;\r\nconst percentRegEx = /%/g;\r\nconst backslashRegEx = /\\\\/g;\r\nconst newlineRegEx = /\\n/g;\r\nconst carriageReturnRegEx = /\\r/g;\r\nconst tabRegEx = /\\t/g;\r\n\r\n/**\r\n * Get fully resolved platform-specific file path from the given URL string/ object\r\n * @param path The file URL string or URL object to convert to a path\r\n */\r\nfunction fileURLToPath(path) {\r\n if (typeof path === \"string\") path = new URL(path);\r\n else if (!(path instanceof URL)) {\r\n throw new Deno.errors.InvalidData(\r\n \"invalid argument path , must be a string or URL\",\r\n );\r\n }\r\n if (path.protocol !== \"file:\") {\r\n throw new Deno.errors.InvalidData(\"invalid url scheme\");\r\n }\r\n return isWindows ? getPathFromURLWin(path) : getPathFromURLPosix(path);\r\n}\r\n\r\nfunction getPathFromURLWin(url) {\r\n const hostname = url.hostname;\r\n let pathname = url.pathname;\r\n for (let n = 0; n < pathname.length; n++) {\r\n if (pathname[n] === \"%\") {\r\n const third = pathname.codePointAt(n + 2) || 0x20;\r\n if (\r\n (pathname[n + 1] === \"2\" && third === 102) || // 2f 2F /\r\n (pathname[n + 1] === \"5\" && third === 99)\r\n ) {\r\n // 5c 5C \\\r\n throw new Deno.errors.InvalidData(\r\n \"must not include encoded \\\\ or / characters\",\r\n );\r\n }\r\n }\r\n }\r\n\r\n pathname = pathname.replace(forwardSlashRegEx, \"\\\\\");\r\n pathname = decodeURIComponent(pathname);\r\n if (hostname !== \"\") {\r\n //TODO add support for punycode encodings\r\n return `\\\\\\\\${hostname}${pathname}`;\r\n } else {\r\n // Otherwise, it's a local path that requires a drive letter\r\n const letter = pathname.codePointAt(1) | 0x20;\r\n const sep = pathname[2];\r\n if (\r\n letter < CHAR_LOWERCASE_A ||\r\n letter > CHAR_LOWERCASE_Z || // a..z A..Z\r\n sep !== \":\"\r\n ) {\r\n throw new Deno.errors.InvalidData(\"file url path must be absolute\");\r\n }\r\n return pathname.slice(1);\r\n }\r\n}\r\nfunction getPathFromURLPosix(url) {\r\n if (url.hostname !== \"\") {\r\n throw new Deno.errors.InvalidData(\"invalid file url hostname\");\r\n }\r\n const pathname = url.pathname;\r\n for (let n = 0; n < pathname.length; n++) {\r\n if (pathname[n] === \"%\") {\r\n const third = pathname.codePointAt(n + 2) || 0x20;\r\n if (pathname[n + 1] === \"2\" && third === 102) {\r\n throw new Deno.errors.InvalidData(\r\n \"must not include encoded / characters\",\r\n );\r\n }\r\n }\r\n }\r\n return decodeURIComponent(pathname);\r\n}\r\n\r\n/** Get fully resolved platform-specific File URL from the given file path */\r\nfunction pathToFileURL(filepath) {\r\n let resolved = exports$1.resolve(filepath);\r\n // path.resolve strips trailing slashes so we must add them back\r\n const filePathLast = filepath.charCodeAt(filepath.length - 1);\r\n if (\r\n (filePathLast === CHAR_FORWARD_SLASH ||\r\n (isWindows && filePathLast === CHAR_BACKWARD_SLASH)) &&\r\n resolved[resolved.length - 1] !== exports$1.sep\r\n ) {\r\n resolved += \"/\";\r\n }\r\n const outURL = new URL(\"file://\");\r\n if (resolved.includes(\"%\")) resolved = resolved.replace(percentRegEx, \"%25\");\r\n // In posix, \"/\" is a valid character in paths\r\n if (!isWindows && resolved.includes(\"\\\\\")) {\r\n resolved = resolved.replace(backslashRegEx, \"%5C\");\r\n }\r\n if (resolved.includes(\"\\n\")) resolved = resolved.replace(newlineRegEx, \"%0A\");\r\n if (resolved.includes(\"\\r\")) {\r\n resolved = resolved.replace(carriageReturnRegEx, \"%0D\");\r\n }\r\n if (resolved.includes(\"\\t\")) resolved = resolved.replace(tabRegEx, \"%09\");\r\n outURL.pathname = resolved;\r\n return outURL;\r\n}\n\nexport { _URL as URL, Url, h as default, fileURLToPath, format, parse, pathToFileURL, resolve, resolveObject };\n","const t=2147483647,o=/^xn--/,n=/[^\\0-\\x7E]/,e=/[\\x2E\\u3002\\uFF0E\\uFF61]/g,r={overflow:\"Overflow: input needs wider integers to process\",\"not-basic\":\"Illegal input >= 0x80 (not a basic code point)\",\"invalid-input\":\"Invalid input\"},c=Math.floor,s=String.fromCharCode;function i(t){throw new RangeError(r[t])}function f(t,o){const n=t.split(\"@\");let r=\"\";n.length>1&&(r=n[0]+\"@\",t=n[1]);const c=function(t,o){const n=[];let e=t.length;for(;e--;)n[e]=o(t[e]);return n}((t=t.replace(e,\".\")).split(\".\"),o).join(\".\");return r+c}function l(t){const o=[];let n=0;const e=t.length;for(;n<e;){const r=t.charCodeAt(n++);if(r>=55296&&r<=56319&&n<e){const e=t.charCodeAt(n++);56320==(64512&e)?o.push(((1023&r)<<10)+(1023&e)+65536):(o.push(r),n--);}else o.push(r);}return o}const u=function(t,o){return t+22+75*(t<26)-((0!=o)<<5)},a=function(t,o,n){let e=0;for(t=n?c(t/700):t>>1,t+=c(t/o);t>455;e+=36)t=c(t/35);return c(e+36*t/(t+38))},d=function(o){const n=[],e=o.length;let r=0,s=128,f=72,l=o.lastIndexOf(\"-\");l<0&&(l=0);for(let t=0;t<l;++t)o.charCodeAt(t)>=128&&i(\"not-basic\"),n.push(o.charCodeAt(t));for(let d=l>0?l+1:0;d<e;){let l=r;for(let n=1,s=36;;s+=36){d>=e&&i(\"invalid-input\");const l=(u=o.charCodeAt(d++))-48<10?u-22:u-65<26?u-65:u-97<26?u-97:36;(l>=36||l>c((t-r)/n))&&i(\"overflow\"),r+=l*n;const a=s<=f?1:s>=f+26?26:s-f;if(l<a)break;const h=36-a;n>c(t/h)&&i(\"overflow\"),n*=h;}const h=n.length+1;f=a(r-l,h,0==l),c(r/h)>t-s&&i(\"overflow\"),s+=c(r/h),r%=h,n.splice(r++,0,s);}var u;return String.fromCodePoint(...n)},h=function(o){const n=[];let e=(o=l(o)).length,r=128,f=0,d=72;for(const t of o)t<128&&n.push(s(t));let h=n.length,p=h;for(h&&n.push(\"-\");p<e;){let e=t;for(const t of o)t>=r&&t<e&&(e=t);const l=p+1;e-r>c((t-f)/l)&&i(\"overflow\"),f+=(e-r)*l,r=e;for(const e of o)if(e<r&&++f>t&&i(\"overflow\"),e==r){let t=f;for(let o=36;;o+=36){const e=o<=d?1:o>=d+26?26:o-d;if(t<e)break;const r=t-e,i=36-e;n.push(s(u(e+r%i,0))),t=c(r/i);}n.push(s(u(t,0))),d=a(f,l,p==h),f=0,++p;}++f,++r;}return n.join(\"\")};var p={version:\"2.1.0\",ucs2:{decode:l,encode:t=>String.fromCodePoint(...t)},decode:d,encode:h,toASCII:function(t){return f(t,(function(t){return n.test(t)?\"xn--\"+h(t):t}))},toUnicode:function(t){return f(t,(function(t){return o.test(t)?d(t.slice(4).toLowerCase()):t}))}};p.decode;p.encode;p.toASCII;p.toUnicode;p.ucs2;p.version;\n\nexport { p };\n","function e(e,n){return Object.prototype.hasOwnProperty.call(e,n)}var n=function(n,r,t,o){r=r||\"&\",t=t||\"=\";var a={};if(\"string\"!=typeof n||0===n.length)return a;var u=/\\+/g;n=n.split(r);var c=1e3;o&&\"number\"==typeof o.maxKeys&&(c=o.maxKeys);var i=n.length;c>0&&i>c&&(i=c);for(var s=0;s<i;++s){var p,f,d,y,m=n[s].replace(u,\"%20\"),l=m.indexOf(t);l>=0?(p=m.substr(0,l),f=m.substr(l+1)):(p=m,f=\"\"),d=decodeURIComponent(p),y=decodeURIComponent(f),e(a,d)?Array.isArray(a[d])?a[d].push(y):a[d]=[a[d],y]:a[d]=y;}return a},r=function(e){switch(typeof e){case\"string\":return e;case\"boolean\":return e?\"true\":\"false\";case\"number\":return isFinite(e)?e:\"\";default:return \"\"}},t=function(e,n,t,o){return n=n||\"&\",t=t||\"=\",null===e&&(e=void 0),\"object\"==typeof e?Object.keys(e).map((function(o){var a=encodeURIComponent(r(o))+t;return Array.isArray(e[o])?e[o].map((function(e){return a+encodeURIComponent(r(e))})).join(n):a+encodeURIComponent(r(e[o]))})).join(n):o?encodeURIComponent(r(o))+t+encodeURIComponent(r(e)):\"\"},o={};o.decode=o.parse=n,o.encode=o.stringify=t;o.decode;o.encode;o.parse;o.stringify;\n\nexport { o };\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","import * as BufferDecoder from './buffer-decoder.js'\n\n/**\n * @typedef {import('multiformats').CID} CID\n * @typedef {import('./api').Block} Block\n * @typedef {import('./api').CarBufferReader} ICarBufferReader\n * @typedef {import('./coding').CarHeader} CarHeader\n * @typedef {import('./coding').CarV2Header} CarV2Header\n */\n\n/**\n * Provides blockstore-like access to a CAR.\n *\n * Implements the `RootsBufferReader` interface:\n * {@link ICarBufferReader.getRoots `getRoots()`}. And the `BlockBufferReader` interface:\n * {@link ICarBufferReader.get `get()`}, {@link ICarBufferReader.has `has()`},\n * {@link ICarBufferReader.blocks `blocks()`} and\n * {@link ICarBufferReader.cids `cids()`}.\n *\n * Load this class with either `import { CarBufferReader } from '@ipld/car/buffer-reader'`\n * (`const { CarBufferReader } = require('@ipld/car/buffer-reader')`). Or\n * `import { CarBufferReader } from '@ipld/car'` (`const { CarBufferReader } = require('@ipld/car')`).\n * The former will likely result in smaller bundle sizes where this is\n * important.\n *\n * @name CarBufferReader\n * @class\n * @implements {ICarBufferReader}\n * @property {number} version The version number of the CAR referenced by this\n * reader (should be `1` or `2`).\n */\nexport class CarBufferReader {\n /**\n * @constructs CarBufferReader\n * @param {CarHeader|CarV2Header} header\n * @param {Block[]} blocks\n */\n constructor (header, blocks) {\n this._header = header\n this._blocks = blocks\n this._cids = undefined\n }\n\n /**\n * @property version\n * @memberof CarBufferReader\n * @instance\n */\n get version () {\n return this._header.version\n }\n\n /**\n * Get the list of roots defined by the CAR referenced by this reader. May be\n * zero or more `CID`s.\n *\n * @function\n * @memberof CarBufferReader\n * @instance\n * @returns {CID[]}\n */\n getRoots () {\n return this._header.roots\n }\n\n /**\n * Check whether a given `CID` exists within the CAR referenced by this\n * reader.\n *\n * @function\n * @memberof CarBufferReader\n * @instance\n * @param {CID} key\n * @returns {boolean}\n */\n has (key) {\n return this._blocks.some(b => b.cid.equals(key))\n }\n\n /**\n * Fetch a `Block` (a `{ cid:CID, bytes:Uint8Array }` pair) from the CAR\n * referenced by this reader matching the provided `CID`. In the case where\n * the provided `CID` doesn't exist within the CAR, `undefined` will be\n * returned.\n *\n * @function\n * @memberof CarBufferReader\n * @instance\n * @param {CID} key\n * @returns {Block | undefined}\n */\n get (key) {\n return this._blocks.find(b => b.cid.equals(key))\n }\n\n /**\n * Returns a `Block[]` of the `Block`s (`{ cid:CID, bytes:Uint8Array }` pairs) contained within\n * the CAR referenced by this reader.\n *\n * @function\n * @memberof CarBufferReader\n * @instance\n * @returns {Block[]}\n */\n blocks () {\n return this._blocks\n }\n\n /**\n * Returns a `CID[]` of the `CID`s contained within the CAR referenced by this reader.\n *\n * @function\n * @memberof CarBufferReader\n * @instance\n * @returns {CID[]}\n */\n cids () {\n if (!this._cids) {\n this._cids = this._blocks.map(b => b.cid)\n }\n return this._cids\n }\n\n /**\n * Instantiate a {@link CarBufferReader} from a `Uint8Array` blob. This performs a\n * decode fully in memory and maintains the decoded state in memory for full\n * access to the data via the `CarReader` API.\n *\n * @static\n * @memberof CarBufferReader\n * @param {Uint8Array} bytes\n * @returns {CarBufferReader}\n */\n static fromBytes (bytes) {\n if (!(bytes instanceof Uint8Array)) {\n throw new TypeError('fromBytes() requires a Uint8Array')\n }\n\n const { header, blocks } = BufferDecoder.fromBytes(bytes)\n return new CarBufferReader(header, blocks)\n }\n}\n\nexport const __browser = true\n","import { decode as decodeDagCbor } from '@ipld/dag-cbor'\nimport { CID } from 'multiformats/cid'\nimport * as Digest from 'multiformats/hashes/digest'\nimport { CIDV0_BYTES, decodeV2Header, decodeVarint, getMultihashLength, V2_HEADER_LENGTH } from './decoder-common.js'\nimport { CarV1HeaderOrV2Pragma } from './header-validator.js'\n\n/**\n * @typedef {import('./api').Block} Block\n * @typedef {import('./api').BlockHeader} BlockHeader\n * @typedef {import('./api').BlockIndex} BlockIndex\n * @typedef {import('./coding').BytesBufferReader} BytesBufferReader\n * @typedef {import('./coding').CarHeader} CarHeader\n * @typedef {import('./coding').CarV2Header} CarV2Header\n * @typedef {import('./coding').CarV2FixedHeader} CarV2FixedHeader\n */\n\n/**\n * Reads header data from a `BytesReader`. The header may either be in the form\n * of a `CarHeader` or `CarV2Header` depending on the CAR being read.\n *\n * @name decoder.readHeader(reader)\n * @param {BytesBufferReader} reader\n * @param {number} [strictVersion]\n * @returns {CarHeader | CarV2Header}\n */\nexport function readHeader (reader, strictVersion) {\n const length = decodeVarint(reader.upTo(8), reader)\n if (length === 0) {\n throw new Error('Invalid CAR header (zero length)')\n }\n const header = reader.exactly(length, true)\n const block = decodeDagCbor(header)\n if (CarV1HeaderOrV2Pragma.toTyped(block) === undefined) {\n throw new Error('Invalid CAR header format')\n }\n if ((block.version !== 1 && block.version !== 2) || (strictVersion !== undefined && block.version !== strictVersion)) {\n throw new Error(`Invalid CAR version: ${block.version}${strictVersion !== undefined ? ` (expected ${strictVersion})` : ''}`)\n }\n if (block.version === 1) {\n // CarV1HeaderOrV2Pragma makes roots optional, let's make it mandatory\n if (!Array.isArray(block.roots)) {\n throw new Error('Invalid CAR header format')\n }\n return block\n }\n // version 2\n if (block.roots !== undefined) {\n throw new Error('Invalid CAR header format')\n }\n const v2Header = decodeV2Header(reader.exactly(V2_HEADER_LENGTH, true))\n reader.seek(v2Header.dataOffset - reader.pos)\n const v1Header = readHeader(reader, 1)\n return Object.assign(v1Header, v2Header)\n}\n\n/**\n * Reads CID sync\n *\n * @param {BytesBufferReader} reader\n * @returns {CID}\n */\nfunction readCid (reader) {\n const first = reader.exactly(2, false)\n if (first[0] === CIDV0_BYTES.SHA2_256 && first[1] === CIDV0_BYTES.LENGTH) {\n // cidv0 32-byte sha2-256\n const bytes = reader.exactly(34, true)\n const multihash = Digest.decode(bytes)\n return CID.create(0, CIDV0_BYTES.DAG_PB, multihash)\n }\n\n const version = decodeVarint(reader.upTo(8), reader)\n if (version !== 1) {\n throw new Error(`Unexpected CID version (${version})`)\n }\n const codec = decodeVarint(reader.upTo(8), reader)\n const bytes = reader.exactly(getMultihashLength(reader.upTo(8)), true)\n const multihash = Digest.decode(bytes)\n return CID.create(version, codec, multihash)\n}\n\n/**\n * Reads the leading data of an individual block from CAR data from a\n * `BytesBufferReader`. Returns a `BlockHeader` object which contains\n * `{ cid, length, blockLength }` which can be used to either index the block\n * or read the block binary data.\n *\n * @name async decoder.readBlockHead(reader)\n * @param {BytesBufferReader} reader\n * @returns {BlockHeader}\n */\nexport function readBlockHead (reader) {\n // length includes a CID + Binary, where CID has a variable length\n // we have to deal with\n const start = reader.pos\n let length = decodeVarint(reader.upTo(8), reader)\n if (length === 0) {\n throw new Error('Invalid CAR section (zero length)')\n }\n length += (reader.pos - start)\n const cid = readCid(reader)\n const blockLength = length - Number(reader.pos - start) // subtract CID length\n\n return { cid, length, blockLength }\n}\n\n/**\n * Returns Car header and blocks from a Uint8Array\n *\n * @param {Uint8Array} bytes\n * @returns {{ header : CarHeader | CarV2Header , blocks: Block[]}}\n */\nexport function fromBytes (bytes) {\n let reader = bytesReader(bytes)\n const header = readHeader(reader)\n if (header.version === 2) {\n const v1length = reader.pos - header.dataOffset\n reader = limitReader(reader, header.dataSize - v1length)\n }\n\n const blocks = []\n while (reader.upTo(8).length > 0) {\n const { cid, blockLength } = readBlockHead(reader)\n\n blocks.push({ cid, bytes: reader.exactly(blockLength, true) })\n }\n\n return {\n header, blocks\n }\n}\n\n/**\n * Creates a `BytesBufferReader` from a `Uint8Array`.\n *\n * @name decoder.bytesReader(bytes)\n * @param {Uint8Array} bytes\n * @returns {BytesBufferReader}\n */\nexport function bytesReader (bytes) {\n let pos = 0\n\n /** @type {BytesBufferReader} */\n return {\n upTo (length) {\n return bytes.subarray(pos, pos + Math.min(length, bytes.length - pos))\n },\n\n exactly (length, seek = false) {\n if (length > bytes.length - pos) {\n throw new Error('Unexpected end of data')\n }\n\n const out = bytes.subarray(pos, pos + length)\n if (seek) {\n pos += length\n }\n return out\n },\n\n seek (length) {\n pos += length\n },\n\n get pos () {\n return pos\n }\n }\n}\n\n/**\n * Wraps a `BytesBufferReader` in a limiting `BytesBufferReader` which limits maximum read\n * to `byteLimit` bytes. It _does not_ update `pos` of the original\n * `BytesBufferReader`.\n *\n * @name decoder.limitReader(reader, byteLimit)\n * @param {BytesBufferReader} reader\n * @param {number} byteLimit\n * @returns {BytesBufferReader}\n */\nexport function limitReader (reader, byteLimit) {\n let bytesRead = 0\n\n /** @type {BytesBufferReader} */\n return {\n upTo (length) {\n let bytes = reader.upTo(length)\n if (bytes.length + bytesRead > byteLimit) {\n bytes = bytes.subarray(0, byteLimit - bytesRead)\n }\n return bytes\n },\n\n exactly (length, seek = false) {\n const bytes = reader.exactly(length, seek)\n if (bytes.length + bytesRead > byteLimit) {\n throw new Error('Unexpected end of data')\n }\n if (seek) {\n bytesRead += length\n }\n return bytes\n },\n\n seek (length) {\n bytesRead += length\n reader.seek(length)\n },\n\n get pos () {\n return reader.pos\n }\n }\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 varint from 'varint'\n\nexport const CIDV0_BYTES = {\n SHA2_256: 0x12,\n LENGTH: 0x20,\n DAG_PB: 0x70\n}\n\nexport const V2_HEADER_LENGTH = /* characteristics */ 16 /* v1 offset */ + 8 /* v1 size */ + 8 /* index offset */ + 8\n\n/**\n * Decodes varint and seeks the buffer\n *\n * ```js\n * // needs bytes to be read first\n * const bytes = reader.upTo(8) // maybe async\n * ```\n *\n * @param {Uint8Array} bytes\n * @param {import('./coding').Seekable} seeker\n * @returns {number}\n */\nexport function decodeVarint (bytes, seeker) {\n if (!bytes.length) {\n throw new Error('Unexpected end of data')\n }\n const i = varint.decode(bytes)\n seeker.seek(/** @type {number} */(varint.decode.bytes))\n return i\n}\n\n/**\n * Decode v2 header\n *\n * ```js\n * // needs bytes to be read first\n * const bytes = reader.exactly(V2_HEADER_LENGTH, true) // maybe async\n * ```\n *\n * @param {Uint8Array} bytes\n * @returns {import('./coding').CarV2FixedHeader}\n */\nexport function decodeV2Header (bytes) {\n const dv = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength)\n let offset = 0\n const header = {\n version: 2,\n /** @type {[bigint, bigint]} */\n characteristics: [\n dv.getBigUint64(offset, true),\n dv.getBigUint64(offset += 8, true)\n ],\n dataOffset: Number(dv.getBigUint64(offset += 8, true)),\n dataSize: Number(dv.getBigUint64(offset += 8, true)),\n indexOffset: Number(dv.getBigUint64(offset += 8, true))\n }\n return header\n}\n\n/**\n * Checks the length of the multihash to be read afterwards\n *\n * ```js\n * // needs bytes to be read first\n * const bytes = reader.upTo(8) // maybe async\n * ```\n *\n * @param {Uint8Array} bytes\n */\nexport function getMultihashLength (bytes) {\n // | code | length | .... |\n // where both code and length are varints, so we have to decode\n // them first before we can know total length\n\n varint.decode(bytes) // code\n const codeLength = /** @type {number} */(varint.decode.bytes)\n const length = varint.decode(bytes.subarray(varint.decode.bytes))\n const lengthLength = /** @type {number} */(varint.decode.bytes)\n const mhLength = codeLength + lengthLength + length\n\n return mhLength\n}\n","/** Auto-generated with @ipld/schema@v4.2.0 at Thu Sep 14 2023 from IPLD Schema:\n *\n * # CarV1HeaderOrV2Pragma is a more relaxed form, and can parse {version:x} where\n * # roots are optional. This is typically useful for the {verison:2} CARv2\n * # pragma.\n *\n * type CarV1HeaderOrV2Pragma struct {\n * \troots optional [&Any]\n * \t# roots is _not_ optional for CarV1 but we defer that check within code to\n * \t# gracefully handle the V2 case where it's just {version:X}\n * \tversion Int\n * }\n *\n * # CarV1Header is the strict form of the header, and requires roots to be\n * # present. This is compatible with the CARv1 specification.\n *\n * # type CarV1Header struct {\n * # \troots [&Any]\n * # \tversion Int\n * # }\n *\n */\n\nconst Kinds = {\n Null: /** @returns {undefined|null} */ (/** @type {any} */ obj) => obj === null ? obj : undefined,\n Int: /** @returns {undefined|number} */ (/** @type {any} */ obj) => Number.isInteger(obj) ? obj : undefined,\n Float: /** @returns {undefined|number} */ (/** @type {any} */ obj) => typeof obj === 'number' && Number.isFinite(obj) ? obj : undefined,\n String: /** @returns {undefined|string} */ (/** @type {any} */ obj) => typeof obj === 'string' ? obj : undefined,\n Bool: /** @returns {undefined|boolean} */ (/** @type {any} */ obj) => typeof obj === 'boolean' ? obj : undefined,\n Bytes: /** @returns {undefined|Uint8Array} */ (/** @type {any} */ obj) => obj instanceof Uint8Array ? obj : undefined,\n Link: /** @returns {undefined|object} */ (/** @type {any} */ obj) => obj !== null && typeof obj === 'object' && obj.asCID === obj ? obj : undefined,\n List: /** @returns {undefined|Array<any>} */ (/** @type {any} */ obj) => Array.isArray(obj) ? obj : undefined,\n Map: /** @returns {undefined|object} */ (/** @type {any} */ obj) => obj !== null && typeof obj === 'object' && obj.asCID !== obj && !Array.isArray(obj) && !(obj instanceof Uint8Array) ? obj : undefined\n}\n/** @type {{ [k in string]: (obj:any)=>undefined|any}} */\nconst Types = {\n 'CarV1HeaderOrV2Pragma > roots (anon) > valueType (anon)': Kinds.Link,\n 'CarV1HeaderOrV2Pragma > roots (anon)': /** @returns {undefined|any} */ (/** @type {any} */ obj) => {\n if (Kinds.List(obj) === undefined) {\n return undefined\n }\n for (let i = 0; i < obj.length; i++) {\n let v = obj[i]\n v = Types['CarV1HeaderOrV2Pragma > roots (anon) > valueType (anon)'](v)\n if (v === undefined) {\n return undefined\n }\n if (v !== obj[i]) {\n const ret = obj.slice(0, i)\n for (let j = i; j < obj.length; j++) {\n let v = obj[j]\n v = Types['CarV1HeaderOrV2Pragma > roots (anon) > valueType (anon)'](v)\n if (v === undefined) {\n return undefined\n }\n ret.push(v)\n }\n return ret\n }\n }\n return obj\n },\n Int: Kinds.Int,\n CarV1HeaderOrV2Pragma: /** @returns {undefined|any} */ (/** @type {any} */ obj) => {\n if (Kinds.Map(obj) === undefined) {\n return undefined\n }\n const entries = Object.entries(obj)\n /** @type {{[k in string]: any}} */\n let ret = obj\n let requiredCount = 1\n for (let i = 0; i < entries.length; i++) {\n const [key, value] = entries[i]\n switch (key) {\n case 'roots':\n {\n const v = Types['CarV1HeaderOrV2Pragma > roots (anon)'](obj[key])\n if (v === undefined) {\n return undefined\n }\n if (v !== value || ret !== obj) {\n if (ret === obj) {\n /** @type {{[k in string]: any}} */\n ret = {}\n for (let j = 0; j < i; j++) {\n ret[entries[j][0]] = entries[j][1]\n }\n }\n ret.roots = v\n }\n }\n break\n case 'version':\n {\n requiredCount--\n const v = Types.Int(obj[key])\n if (v === undefined) {\n return undefined\n }\n if (v !== value || ret !== obj) {\n if (ret === obj) {\n /** @type {{[k in string]: any}} */\n ret = {}\n for (let j = 0; j < i; j++) {\n ret[entries[j][0]] = entries[j][1]\n }\n }\n ret.version = v\n }\n }\n break\n default:\n return undefined\n }\n }\n\n if (requiredCount > 0) {\n return undefined\n }\n return ret\n }\n}\n/** @type {{ [k in string]: (obj:any)=>undefined|any}} */\nconst Reprs = {\n 'CarV1HeaderOrV2Pragma > roots (anon) > valueType (anon)': Kinds.Link,\n 'CarV1HeaderOrV2Pragma > roots (anon)': /** @returns {undefined|any} */ (/** @type {any} */ obj) => {\n if (Kinds.List(obj) === undefined) {\n return undefined\n }\n for (let i = 0; i < obj.length; i++) {\n let v = obj[i]\n v = Reprs['CarV1HeaderOrV2Pragma > roots (anon) > valueType (anon)'](v)\n if (v === undefined) {\n return undefined\n }\n if (v !== obj[i]) {\n const ret = obj.slice(0, i)\n for (let j = i; j < obj.length; j++) {\n let v = obj[j]\n v = Reprs['CarV1HeaderOrV2Pragma > roots (anon) > valueType (anon)'](v)\n if (v === undefined) {\n return undefined\n }\n ret.push(v)\n }\n return ret\n }\n }\n return obj\n },\n Int: Kinds.Int,\n CarV1HeaderOrV2Pragma: /** @returns {undefined|any} */ (/** @type {any} */ obj) => {\n if (Kinds.Map(obj) === undefined) {\n return undefined\n }\n const entries = Object.entries(obj)\n /** @type {{[k in string]: any}} */\n let ret = obj\n let requiredCount = 1\n for (let i = 0; i < entries.length; i++) {\n const [key, value] = entries[i]\n switch (key) {\n case 'roots':\n {\n const v = Reprs['CarV1HeaderOrV2Pragma > roots (anon)'](value)\n if (v === undefined) {\n return undefined\n }\n if (v !== value || ret !== obj) {\n if (ret === obj) {\n /** @type {{[k in string]: any}} */\n ret = {}\n for (let j = 0; j < i; j++) {\n ret[entries[j][0]] = entries[j][1]\n }\n }\n ret.roots = v\n }\n }\n break\n case 'version':\n {\n requiredCount--\n const v = Reprs.Int(value)\n if (v === undefined) {\n return undefined\n }\n if (v !== value || ret !== obj) {\n if (ret === obj) {\n /** @type {{[k in string]: any}} */\n ret = {}\n for (let j = 0; j < i; j++) {\n ret[entries[j][0]] = entries[j][1]\n }\n }\n ret.version = v\n }\n }\n break\n default:\n return undefined\n }\n }\n if (requiredCount > 0) {\n return undefined\n }\n return ret\n }\n}\n\nexport const CarV1HeaderOrV2Pragma = {\n toTyped: Types.CarV1HeaderOrV2Pragma,\n toRepresentation: Reprs.CarV1HeaderOrV2Pragma\n}\n","import * as CBOR from '@ipld/dag-cbor'\nimport { Token, Type } from 'cborg'\nimport { tokensToLength } from 'cborg/length'\nimport varint from 'varint'\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 { makeCborEncoders, objectToTokens } from './encode.js'\nimport { quickEncodeToken } from './jump.js'\n\n/**\n * @typedef {import('../interface').EncodeOptions} EncodeOptions\n * @typedef {import('../interface').TokenTypeEncoder} TokenTypeEncoder\n * @typedef {import('../interface').TokenOrNestedTokens} TokenOrNestedTokens\n */\n\nconst cborEncoders = makeCborEncoders()\n\n/** @type {EncodeOptions} */\nconst defaultEncodeOptions = {\n float64: false,\n quickEncodeToken\n}\n\n/**\n * Calculate the byte length of the given data when encoded as CBOR with the\n * options provided.\n * This calculation will be accurate if the same options are used as when\n * performing a normal encode. Some encode options can change the encoding\n * output length.\n *\n * @param {any} data\n * @param {EncodeOptions} [options]\n * @returns {number}\n */\nexport function encodedLength (data, options) {\n options = Object.assign({}, defaultEncodeOptions, options)\n options.mapSorter = undefined // won't change the length\n const tokens = objectToTokens(data, options)\n return tokensToLength(tokens, cborEncoders, options)\n}\n\n/**\n * Calculate the byte length of the data as represented by the given tokens when\n * encoded as CBOR with the options provided.\n * This function is for advanced users and would not normally be called\n * directly. See `encodedLength()` for appropriate use.\n *\n * @param {TokenOrNestedTokens} tokens\n * @param {TokenTypeEncoder[]} [encoders]\n * @param {EncodeOptions} [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 /* c8 ignore next 3 */\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}\n","import fs from 'fs'\nimport { Readable } from 'stream'\nimport { CID } from 'multiformats/cid'\nimport { CarIndexer } from './indexer.js'\nimport { CarReader as NodeCarReader } from './reader.js'\n\n/**\n * @typedef {import('fs').promises.FileHandle} FileHandle\n * @typedef {import('./api').Block} Block\n * @typedef {import('./api').BlockIndex} BlockIndex\n * @typedef {import('./api').CarReader} CarReaderIface\n * @typedef {import('./reader-browser').CarReader} CarReader\n * @typedef {{ blockLength:number, blockOffset:number }} RawLocation\n */\n\n/**\n * A form of {@link CarReader} that pre-indexes a CAR archive from a file and\n * provides random access to blocks within the file using the index data. This\n * function is **only available in Node.js** and not a browser environment.\n *\n * For large CAR files, using this form of `CarReader` can be singificantly more\n * efficient in terms of memory. The index consists of a list of `CID`s and\n * their location within the archive (see {@link CarIndexer}). For large numbers\n * of blocks, this index can also occupy a significant amount of memory. In some\n * cases it may be necessary to expand the memory capacity of a Node.js instance\n * to allow this index to fit. (e.g. by running with\n * `NODE_OPTIONS=\"--max-old-space-size=16384\"`).\n *\n * As an `CarIndexedReader` instance maintains an open file descriptor for its\n * CAR file, an additional {@link CarReader#close} method is attached. This\n * _must_ be called to have full clean-up of resources after use.\n *\n * Load this class with either\n * `import { CarIndexedReader } from '@ipld/car/indexed-reader'`\n * (`const { CarIndexedReader } = require('@ipld/car/indexed-reader')`). Or\n * `import { CarIndexedReader } from '@ipld/car'`\n * (`const { CarIndexedReader } = require('@ipld/car')`). The former will likely\n * result in smaller bundle sizes where this is important.\n *\n * @name CarIndexedReader\n * @class\n * @implements {CarReaderIface}\n * @extends {CarReader}\n * @property {number} version The version number of the CAR referenced by this\n * reader (should be `1`).\n */\nexport class CarIndexedReader {\n /**\n * @param {number} version\n * @param {string} path\n * @param {CID[]} roots\n * @param {Map<string, RawLocation>} index\n * @param {string[]} order\n */\n constructor (version, path, roots, index, order) {\n this._version = version\n this._path = path\n this._roots = roots\n this._index = index\n this._order = order\n this._fd = null\n }\n\n get version () {\n return this._version\n }\n\n /**\n * See {@link CarReader#getRoots}\n *\n * @function\n * @memberof CarIndexedReader\n * @instance\n * @async\n * @returns {Promise<CID[]>}\n */\n async getRoots () {\n return this._roots\n }\n\n /**\n * See {@link CarReader#has}\n *\n * @function\n * @memberof CarIndexedReader\n * @instance\n * @async\n * @param {CID} key\n * @returns {Promise<boolean>}\n */\n async has (key) {\n return this._index.has(key.toString())\n }\n\n /**\n * See {@link CarReader#get}\n *\n * @function\n * @memberof CarIndexedReader\n * @instance\n * @async\n * @param {CID} key\n * @returns {Promise<Block | undefined>}\n */\n async get (key) {\n const blockIndex = this._index.get(key.toString())\n if (!blockIndex) {\n return undefined\n }\n if (!this._fd) {\n this._fd = await fs.promises.open(this._path, 'r')\n }\n const readIndex = {\n cid: key,\n length: 0,\n offset: 0,\n blockLength: blockIndex.blockLength,\n blockOffset: blockIndex.blockOffset\n }\n return NodeCarReader.readRaw(this._fd, readIndex)\n }\n\n /**\n * See {@link CarReader#blocks}\n *\n * @function\n * @memberof CarIndexedReader\n * @instance\n * @async\n * @generator\n * @returns {AsyncGenerator<Block>}\n */\n async * blocks () {\n for (const cidStr of this._order) {\n const block = await this.get(CID.parse(cidStr))\n /* c8 ignore next 3 */\n if (!block) {\n throw new Error('Unexpected internal error')\n }\n yield block\n }\n }\n\n /**\n * See {@link CarReader#cids}\n *\n * @function\n * @memberof CarIndexedReader\n * @instance\n * @async\n * @generator\n * @returns {AsyncGenerator<CID>}\n */\n async * cids () {\n for (const cidStr of this._order) {\n yield CID.parse(cidStr)\n }\n }\n\n /**\n * Close the underlying file descriptor maintained by this `CarIndexedReader`.\n * This must be called for proper resource clean-up to occur.\n *\n * @function\n * @memberof CarIndexedReader\n * @instance\n * @async\n * @returns {Promise<void>}\n */\n async close () {\n if (this._fd) {\n return this._fd.close()\n }\n }\n\n /**\n * Instantiate an {@link CarIndexedReader} from a file with the provided\n * `path`. The CAR file is first indexed with a full path that collects `CID`s\n * and block locations. This index is maintained in memory. Subsequent reads\n * operate on a read-only file descriptor, fetching the block from its in-file\n * location.\n *\n * For large archives, the initial indexing may take some time. The returned\n * `Promise` will resolve only after this is complete.\n *\n * @async\n * @static\n * @memberof CarIndexedReader\n * @param {string} path\n * @returns {Promise<CarIndexedReader>}\n */\n static async fromFile (path) {\n if (typeof path !== 'string') {\n throw new TypeError('fromFile() requires a file path string')\n }\n\n const iterable = await CarIndexer.fromIterable(Readable.from(fs.createReadStream(path)))\n /** @type {Map<string, RawLocation>} */\n const index = new Map()\n /** @type {string[]} */\n const order = []\n for await (const { cid, blockLength, blockOffset } of iterable) {\n const cidStr = cid.toString()\n index.set(cidStr, { blockLength, blockOffset })\n order.push(cidStr)\n }\n return new CarIndexedReader(iterable.version, path, await iterable.getRoots(), index, order)\n }\n}\n\nexport const __browser = false\n","import {\n asyncIterableReader,\n bytesReader,\n createDecoder\n} from './decoder.js'\n\n/**\n * @typedef {import('multiformats').CID} CID\n * @typedef {import('./api').Block} Block\n * @typedef {import('./api').RootsReader} RootsReader\n * @typedef {import('./api').BlockIndex} BlockIndex\n * @typedef {import('./coding').BytesReader} BytesReader\n */\n\n/**\n * Provides an iterator over all of the `Block`s in a CAR, returning their CIDs\n * and byte-location information. Implements an `AsyncIterable<BlockIndex>`.\n * Where a `BlockIndex` is a\n * `{ cid:CID, length:number, offset:number, blockLength:number, blockOffset:number }`.\n *\n * As an implementer of `AsyncIterable`, this class can be used directly in a\n * `for await (const blockIndex of iterator) {}` loop. Where the `iterator` is\n * constructed using {@link CarIndexer.fromBytes} or\n * {@link CarIndexer.fromIterable}.\n *\n * An iteration can only be performce _once_ per instantiation.\n *\n * `CarIndexer` also implements the `RootsReader` interface and provides\n * the {@link CarIndexer.getRoots `getRoots()`} method.\n *\n * Load this class with either\n * `import { CarIndexer } from '@ipld/car/indexer'`\n * (`const { CarIndexer } = require('@ipld/car/indexer')`). Or\n * `import { CarIndexer } from '@ipld/car'`\n * (`const { CarIndexer } = require('@ipld/car')`). The former will likely\n * result in smaller bundle sizes where this is important.\n *\n * @name CarIndexer\n * @class\n * @implements {RootsReader}\n * @implements {AsyncIterable<BlockIndex>}\n * @property {number} version The version number of the CAR referenced by this\n * reader (should be `1`).\n */\nexport class CarIndexer {\n /**\n * @param {number} version\n * @param {CID[]} roots\n * @param {AsyncGenerator<BlockIndex>} iterator\n */\n constructor (version, roots, iterator) {\n this._version = version\n this._roots = roots\n this._iterator = iterator\n }\n\n get version () {\n return this._version\n }\n\n /**\n * Get the list of roots defined by the CAR referenced by this indexer. May be\n * zero or more `CID`s.\n *\n * @function\n * @memberof CarIndexer\n * @instance\n * @async\n * @returns {Promise<CID[]>}\n */\n async getRoots () {\n return this._roots\n }\n\n /**\n * @returns {AsyncIterator<BlockIndex>}\n */\n [Symbol.asyncIterator] () {\n return this._iterator\n }\n\n /**\n * Instantiate a {@link CarIndexer} from a `Uint8Array` blob. Only the header\n * is decoded initially, the remainder is processed and emitted via the\n * iterator as it is consumed.\n *\n * @async\n * @static\n * @memberof CarIndexer\n * @param {Uint8Array} bytes\n * @returns {Promise<CarIndexer>}\n */\n static async fromBytes (bytes) {\n if (!(bytes instanceof Uint8Array)) {\n throw new TypeError('fromBytes() requires a Uint8Array')\n }\n return decodeIndexerComplete(bytesReader(bytes))\n }\n\n /**\n * Instantiate a {@link CarIndexer} from a `AsyncIterable<Uint8Array>`,\n * such as a [modern Node.js stream](https://nodejs.org/api/stream.html#stream_streams_compatibility_with_async_generators_and_async_iterators).\n * is decoded initially, the remainder is processed and emitted via the\n * iterator as it is consumed.\n *\n * @async\n * @static\n * @memberof CarIndexer\n * @param {AsyncIterable<Uint8Array>} asyncIterable\n * @returns {Promise<CarIndexer>}\n */\n static async fromIterable (asyncIterable) {\n if (!asyncIterable || !(typeof asyncIterable[Symbol.asyncIterator] === 'function')) {\n throw new TypeError('fromIterable() requires an async iterable')\n }\n return decodeIndexerComplete(asyncIterableReader(asyncIterable))\n }\n}\n\n/**\n * @private\n * @param {BytesReader} reader\n * @returns {Promise<CarIndexer>}\n */\nasync function decodeIndexerComplete (reader) {\n const decoder = createDecoder(reader)\n const { version, roots } = await decoder.header()\n\n return new CarIndexer(version, roots, decoder.blocksIndex())\n}\n","import { decode as decodeDagCbor } from '@ipld/dag-cbor'\nimport { CID } from 'multiformats/cid'\nimport * as Digest from 'multiformats/hashes/digest'\nimport { CIDV0_BYTES, decodeV2Header, decodeVarint, getMultihashLength, V2_HEADER_LENGTH } from './decoder-common.js'\nimport { CarV1HeaderOrV2Pragma } from './header-validator.js'\n\n/**\n * @typedef {import('./api').Block} Block\n * @typedef {import('./api').BlockHeader} BlockHeader\n * @typedef {import('./api').BlockIndex} BlockIndex\n * @typedef {import('./coding').BytesReader} BytesReader\n * @typedef {import('./coding').CarHeader} CarHeader\n * @typedef {import('./coding').CarV2Header} CarV2Header\n * @typedef {import('./coding').CarV2FixedHeader} CarV2FixedHeader\n * @typedef {import('./coding').CarDecoder} CarDecoder\n */\n\n/**\n * Reads header data from a `BytesReader`. The header may either be in the form\n * of a `CarHeader` or `CarV2Header` depending on the CAR being read.\n *\n * @name async decoder.readHeader(reader)\n * @param {BytesReader} reader\n * @param {number} [strictVersion]\n * @returns {Promise<CarHeader|CarV2Header>}\n */\nexport async function readHeader (reader, strictVersion) {\n const length = decodeVarint(await reader.upTo(8), reader)\n if (length === 0) {\n throw new Error('Invalid CAR header (zero length)')\n }\n const header = await reader.exactly(length, true)\n const block = decodeDagCbor(header)\n if (CarV1HeaderOrV2Pragma.toTyped(block) === undefined) {\n throw new Error('Invalid CAR header format')\n }\n if ((block.version !== 1 && block.version !== 2) || (strictVersion !== undefined && block.version !== strictVersion)) {\n throw new Error(`Invalid CAR version: ${block.version}${strictVersion !== undefined ? ` (expected ${strictVersion})` : ''}`)\n }\n if (block.version === 1) {\n // CarV1HeaderOrV2Pragma makes roots optional, let's make it mandatory\n if (!Array.isArray(block.roots)) {\n throw new Error('Invalid CAR header format')\n }\n return block\n }\n // version 2\n if (block.roots !== undefined) {\n throw new Error('Invalid CAR header format')\n }\n const v2Header = decodeV2Header(await reader.exactly(V2_HEADER_LENGTH, true))\n reader.seek(v2Header.dataOffset - reader.pos)\n const v1Header = await readHeader(reader, 1)\n return Object.assign(v1Header, v2Header)\n}\n\n/**\n * @param {BytesReader} reader\n * @returns {Promise<CID>}\n */\nasync function readCid (reader) {\n const first = await reader.exactly(2, false)\n if (first[0] === CIDV0_BYTES.SHA2_256 && first[1] === CIDV0_BYTES.LENGTH) {\n // cidv0 32-byte sha2-256\n const bytes = await reader.exactly(34, true)\n const multihash = Digest.decode(bytes)\n return CID.create(0, CIDV0_BYTES.DAG_PB, multihash)\n }\n\n const version = decodeVarint(await reader.upTo(8), reader)\n if (version !== 1) {\n throw new Error(`Unexpected CID version (${version})`)\n }\n const codec = decodeVarint(await reader.upTo(8), reader)\n const bytes = await reader.exactly(getMultihashLength(await reader.upTo(8)), true)\n const multihash = Digest.decode(bytes)\n return CID.create(version, codec, multihash)\n}\n\n/**\n * Reads the leading data of an individual block from CAR data from a\n * `BytesReader`. Returns a `BlockHeader` object which contains\n * `{ cid, length, blockLength }` which can be used to either index the block\n * or read the block binary data.\n *\n * @name async decoder.readBlockHead(reader)\n * @param {BytesReader} reader\n * @returns {Promise<BlockHeader>}\n */\nexport async function readBlockHead (reader) {\n // length includes a CID + Binary, where CID has a variable length\n // we have to deal with\n const start = reader.pos\n let length = decodeVarint(await reader.upTo(8), reader)\n if (length === 0) {\n throw new Error('Invalid CAR section (zero length)')\n }\n length += (reader.pos - start)\n const cid = await readCid(reader)\n const blockLength = length - Number(reader.pos - start) // subtract CID length\n\n return { cid, length, blockLength }\n}\n\n/**\n * @param {BytesReader} reader\n * @returns {Promise<Block>}\n */\nasync function readBlock (reader) {\n const { cid, blockLength } = await readBlockHead(reader)\n const bytes = await reader.exactly(blockLength, true)\n return { bytes, cid }\n}\n\n/**\n * @param {BytesReader} reader\n * @returns {Promise<BlockIndex>}\n */\nasync function readBlockIndex (reader) {\n const offset = reader.pos\n const { cid, length, blockLength } = await readBlockHead(reader)\n const index = { cid, length, blockLength, offset, blockOffset: reader.pos }\n reader.seek(index.blockLength)\n return index\n}\n\n/**\n * Creates a `CarDecoder` from a `BytesReader`. The `CarDecoder` is as async\n * interface that will consume the bytes from the `BytesReader` to yield a\n * `header()` and either `blocks()` or `blocksIndex()` data.\n *\n * @name decoder.createDecoder(reader)\n * @param {BytesReader} reader\n * @returns {CarDecoder}\n */\nexport function createDecoder (reader) {\n const headerPromise = (async () => {\n const header = await readHeader(reader)\n if (header.version === 2) {\n const v1length = reader.pos - header.dataOffset\n reader = limitReader(reader, header.dataSize - v1length)\n }\n return header\n })()\n\n return {\n header: () => headerPromise,\n\n async * blocks () {\n await headerPromise\n while ((await reader.upTo(8)).length > 0) {\n yield await readBlock(reader)\n }\n },\n\n async * blocksIndex () {\n await headerPromise\n while ((await reader.upTo(8)).length > 0) {\n yield await readBlockIndex(reader)\n }\n }\n }\n}\n\n/**\n * Creates a `BytesReader` from a `Uint8Array`.\n *\n * @name decoder.bytesReader(bytes)\n * @param {Uint8Array} bytes\n * @returns {BytesReader}\n */\nexport function bytesReader (bytes) {\n let pos = 0\n\n /** @type {BytesReader} */\n return {\n async upTo (length) {\n const out = bytes.subarray(pos, pos + Math.min(length, bytes.length - pos))\n return out\n },\n\n async exactly (length, seek = false) {\n if (length > bytes.length - pos) {\n throw new Error('Unexpected end of data')\n }\n const out = bytes.subarray(pos, pos + length)\n if (seek) {\n pos += length\n }\n return out\n },\n\n seek (length) {\n pos += length\n },\n\n get pos () {\n return pos\n }\n }\n}\n\n/**\n * @ignore\n * reusable reader for streams and files, we just need a way to read an\n * additional chunk (of some undetermined size) and a way to close the\n * reader when finished\n * @param {() => Promise<Uint8Array|null>} readChunk\n * @returns {BytesReader}\n */\nexport function chunkReader (readChunk /*, closer */) {\n let pos = 0\n let have = 0\n let offset = 0\n let currentChunk = new Uint8Array(0)\n\n const read = async (/** @type {number} */ length) => {\n have = currentChunk.length - offset\n const bufa = [currentChunk.subarray(offset)]\n while (have < length) {\n const chunk = await readChunk()\n if (chunk == null) {\n break\n }\n /* c8 ignore next 8 */\n // undo this ignore ^ when we have a fd implementation that can seek()\n if (have < 0) { // because of a seek()\n /* c8 ignore next 4 */\n // toohard to test the else\n if (chunk.length > have) {\n bufa.push(chunk.subarray(-have))\n } // else discard\n } else {\n bufa.push(chunk)\n }\n have += chunk.length\n }\n currentChunk = new Uint8Array(bufa.reduce((p, c) => p + c.length, 0))\n let off = 0\n for (const b of bufa) {\n currentChunk.set(b, off)\n off += b.length\n }\n offset = 0\n }\n\n /** @type {BytesReader} */\n return {\n async upTo (length) {\n if (currentChunk.length - offset < length) {\n await read(length)\n }\n return currentChunk.subarray(offset, offset + Math.min(currentChunk.length - offset, length))\n },\n\n async exactly (length, seek = false) {\n if (currentChunk.length - offset < length) {\n await read(length)\n }\n if (currentChunk.length - offset < length) {\n throw new Error('Unexpected end of data')\n }\n const out = currentChunk.subarray(offset, offset + length)\n if (seek) {\n pos += length\n offset += length\n }\n return out\n },\n\n seek (length) {\n pos += length\n offset += length\n },\n\n get pos () {\n return pos\n }\n }\n}\n\n/**\n * Creates a `BytesReader` from an `AsyncIterable<Uint8Array>`, which allows for\n * consumption of CAR data from a streaming source.\n *\n * @name decoder.asyncIterableReader(asyncIterable)\n * @param {AsyncIterable<Uint8Array>} asyncIterable\n * @returns {BytesReader}\n */\nexport function asyncIterableReader (asyncIterable) {\n const iterator = asyncIterable[Symbol.asyncIterator]()\n\n async function readChunk () {\n const next = await iterator.next()\n if (next.done) {\n return null\n }\n return next.value\n }\n\n return chunkReader(readChunk)\n}\n\n/**\n * Wraps a `BytesReader` in a limiting `BytesReader` which limits maximum read\n * to `byteLimit` bytes. It _does not_ update `pos` of the original\n * `BytesReader`.\n *\n * @name decoder.limitReader(reader, byteLimit)\n * @param {BytesReader} reader\n * @param {number} byteLimit\n * @returns {BytesReader}\n */\nexport function limitReader (reader, byteLimit) {\n let bytesRead = 0\n\n /** @type {BytesReader} */\n return {\n async upTo (length) {\n let bytes = await reader.upTo(length)\n if (bytes.length + bytesRead > byteLimit) {\n bytes = bytes.subarray(0, byteLimit - bytesRead)\n }\n return bytes\n },\n\n async exactly (length, seek = false) {\n const bytes = await reader.exactly(length, seek)\n if (bytes.length + bytesRead > byteLimit) {\n throw new Error('Unexpected end of data')\n }\n if (seek) {\n bytesRead += length\n }\n return bytes\n },\n\n seek (length) {\n bytesRead += length\n reader.seek(length)\n },\n\n get pos () {\n return reader.pos\n }\n }\n}\n","import fs from 'fs'\nimport { promisify } from 'util'\nimport { CarReader as BrowserCarReader } from './reader-browser.js'\n\n/**\n * @typedef {import('./api').Block} Block\n * @typedef {import('./api').BlockIndex} BlockIndex\n * @typedef {import('./api').CarReader} CarReaderIface\n */\n\nconst fsread = promisify(fs.read)\n\n/**\n * @class\n * @implements {CarReaderIface}\n */\nexport class CarReader extends BrowserCarReader {\n /**\n * Reads a block directly from a file descriptor for an open CAR file. This\n * function is **only available in Node.js** and not a browser environment.\n *\n * This function can be used in connection with {@link CarIndexer} which emits\n * the `BlockIndex` objects that are required by this function.\n *\n * The user is responsible for opening and closing the file used in this call.\n *\n * @async\n * @static\n * @memberof CarReader\n * @param {fs.promises.FileHandle | number} fd - A file descriptor from the\n * Node.js `fs` module. Either an integer, from `fs.open()` or a `FileHandle`\n * from `fs.promises.open()`.\n * @param {BlockIndex} blockIndex - An index pointing to the location of the\n * Block required. This `BlockIndex` should take the form:\n * `{cid:CID, blockLength:number, blockOffset:number}`.\n * @returns {Promise<Block>} A `{ cid:CID, bytes:Uint8Array }` pair.\n */\n static async readRaw (fd, blockIndex) {\n const { cid, blockLength, blockOffset } = blockIndex\n const bytes = new Uint8Array(blockLength)\n let read\n if (typeof fd === 'number') {\n read = (await fsread(fd, bytes, 0, blockLength, blockOffset)).bytesRead\n } else if (typeof fd === 'object' && typeof fd.read === 'function') { // FileDescriptor\n read = (await fd.read(bytes, 0, blockLength, blockOffset)).bytesRead\n } else {\n throw new TypeError('Bad fd')\n }\n if (read !== blockLength) {\n throw new Error(`Failed to read entire block (${read} instead of ${blockLength})`)\n }\n return { cid, bytes }\n }\n}\n\nexport const __browser = false\n","import { asyncIterableReader, bytesReader, createDecoder } from './decoder.js'\n\n/**\n * @typedef {import('multiformats').CID} CID\n * @typedef {import('./api').Block} Block\n * @typedef {import('./api').CarReader} CarReaderIface\n * @typedef {import('./coding').BytesReader} BytesReader\n * @typedef {import('./coding').CarHeader} CarHeader\n * @typedef {import('./coding').CarV2Header} CarV2Header\n */\n\n/**\n * Provides blockstore-like access to a CAR.\n *\n * Implements the `RootsReader` interface:\n * {@link CarReader.getRoots `getRoots()`}. And the `BlockReader` interface:\n * {@link CarReader.get `get()`}, {@link CarReader.has `has()`},\n * {@link CarReader.blocks `blocks()`} (defined as a `BlockIterator`) and\n * {@link CarReader.cids `cids()`} (defined as a `CIDIterator`).\n *\n * Load this class with either `import { CarReader } from '@ipld/car/reader'`\n * (`const { CarReader } = require('@ipld/car/reader')`). Or\n * `import { CarReader } from '@ipld/car'` (`const { CarReader } = require('@ipld/car')`).\n * The former will likely result in smaller bundle sizes where this is\n * important.\n *\n * @name CarReader\n * @class\n * @implements {CarReaderIface}\n * @property {number} version The version number of the CAR referenced by this\n * reader (should be `1` or `2`).\n */\nexport class CarReader {\n /**\n * @constructs CarReader\n * @param {CarHeader|CarV2Header} header\n * @param {Block[]} blocks\n */\n constructor (header, blocks) {\n this._header = header\n this._blocks = blocks\n this._keys = blocks.map((b) => b.cid.toString())\n }\n\n /**\n * @property\n * @memberof CarReader\n * @instance\n */\n get version () {\n return this._header.version\n }\n\n /**\n * Get the list of roots defined by the CAR referenced by this reader. May be\n * zero or more `CID`s.\n *\n * @function\n * @memberof CarReader\n * @instance\n * @async\n * @returns {Promise<CID[]>}\n */\n async getRoots () {\n return this._header.roots\n }\n\n /**\n * Check whether a given `CID` exists within the CAR referenced by this\n * reader.\n *\n * @function\n * @memberof CarReader\n * @instance\n * @async\n * @param {CID} key\n * @returns {Promise<boolean>}\n */\n async has (key) {\n return this._keys.indexOf(key.toString()) > -1\n }\n\n /**\n * Fetch a `Block` (a `{ cid:CID, bytes:Uint8Array }` pair) from the CAR\n * referenced by this reader matching the provided `CID`. In the case where\n * the provided `CID` doesn't exist within the CAR, `undefined` will be\n * returned.\n *\n * @function\n * @memberof CarReader\n * @instance\n * @async\n * @param {CID} key\n * @returns {Promise<Block | undefined>}\n */\n async get (key) {\n const index = this._keys.indexOf(key.toString())\n return index > -1 ? this._blocks[index] : undefined\n }\n\n /**\n * Returns a `BlockIterator` (`AsyncIterable<Block>`) that iterates over all\n * of the `Block`s (`{ cid:CID, bytes:Uint8Array }` pairs) contained within\n * the CAR referenced by this reader.\n *\n * @function\n * @memberof CarReader\n * @instance\n * @async\n * @generator\n * @returns {AsyncGenerator<Block>}\n */\n async * blocks () {\n for (const block of this._blocks) {\n yield block\n }\n }\n\n /**\n * Returns a `CIDIterator` (`AsyncIterable<CID>`) that iterates over all of\n * the `CID`s contained within the CAR referenced by this reader.\n *\n * @function\n * @memberof CarReader\n * @instance\n * @async\n * @generator\n * @returns {AsyncGenerator<CID>}\n */\n async * cids () {\n for (const block of this._blocks) {\n yield block.cid\n }\n }\n\n /**\n * Instantiate a {@link CarReader} from a `Uint8Array` blob. This performs a\n * decode fully in memory and maintains the decoded state in memory for full\n * access to the data via the `CarReader` API.\n *\n * @async\n * @static\n * @memberof CarReader\n * @param {Uint8Array} bytes\n * @returns {Promise<CarReader>}\n */\n static async fromBytes (bytes) {\n if (!(bytes instanceof Uint8Array)) {\n throw new TypeError('fromBytes() requires a Uint8Array')\n }\n return decodeReaderComplete(bytesReader(bytes))\n }\n\n /**\n * Instantiate a {@link CarReader} from a `AsyncIterable<Uint8Array>`, such as\n * a [modern Node.js stream](https://nodejs.org/api/stream.html#stream_streams_compatibility_with_async_generators_and_async_iterators).\n * This performs a decode fully in memory and maintains the decoded state in\n * memory for full access to the data via the `CarReader` API.\n *\n * Care should be taken for large archives; this API may not be appropriate\n * where memory is a concern or the archive is potentially larger than the\n * amount of memory that the runtime can handle.\n *\n * @async\n * @static\n * @memberof CarReader\n * @param {AsyncIterable<Uint8Array>} asyncIterable\n * @returns {Promise<CarReader>}\n */\n static async fromIterable (asyncIterable) {\n if (!asyncIterable || !(typeof asyncIterable[Symbol.asyncIterator] === 'function')) {\n throw new TypeError('fromIterable() requires an async iterable')\n }\n return decodeReaderComplete(asyncIterableReader(asyncIterable))\n }\n}\n\n/**\n * @private\n * @param {BytesReader} reader\n * @returns {Promise<CarReader>}\n */\nexport async function decodeReaderComplete (reader) {\n const decoder = createDecoder(reader)\n const header = await decoder.header()\n const blocks = []\n for await (const block of decoder.blocks()) {\n blocks.push(block)\n }\n\n return new CarReader(header, blocks)\n}\n\nexport const __browser = true\n","import {\n asyncIterableReader,\n bytesReader,\n createDecoder\n} from './decoder.js'\n\n/**\n * @typedef {import('multiformats').CID} CID\n * @typedef {import('./api').Block} Block\n * @typedef {import('./api').RootsReader} RootsReader\n * @typedef {import('./coding').BytesReader} BytesReader\n */\n\n/**\n * @class\n * @implements {RootsReader}\n * @property {number} version The version number of the CAR referenced by this reader (should be `1`).\n */\nexport class CarIteratorBase {\n /**\n * @param {number} version\n * @param {CID[]} roots\n * @param {AsyncIterable<Block>|void} iterable\n */\n constructor (version, roots, iterable) {\n this._version = version\n this._roots = roots\n this._iterable = iterable\n this._decoded = false\n }\n\n get version () {\n return this._version\n }\n\n /**\n * @returns {Promise<CID[]>}\n */\n async getRoots () {\n return this._roots\n }\n}\n\n/**\n * Provides an iterator over all of the `Block`s in a CAR. Implements a\n * `BlockIterator` interface, or `AsyncIterable<Block>`. Where a `Block` is\n * a `{ cid:CID, bytes:Uint8Array }` pair.\n *\n * As an implementer of `AsyncIterable`, this class can be used directly in a\n * `for await (const block of iterator) {}` loop. Where the `iterator` is\n * constructed using {@link CarBlockiterator.fromBytes} or\n * {@link CarBlockiterator.fromIterable}.\n *\n * An iteration can only be performce _once_ per instantiation.\n *\n * `CarBlockIterator` also implements the `RootsReader` interface and provides\n * the {@link CarBlockiterator.getRoots `getRoots()`} method.\n *\n * Load this class with either\n * `import { CarBlockIterator } from '@ipld/car/iterator'`\n * (`const { CarBlockIterator } = require('@ipld/car/iterator')`). Or\n * `import { CarBlockIterator } from '@ipld/car'`\n * (`const { CarBlockIterator } = require('@ipld/car')`).\n *\n * @name CarBlockIterator\n * @class\n * @implements {RootsReader}\n * @implements {AsyncIterable<Block>}\n * @property {number} version The version number of the CAR referenced by this\n * iterator (should be `1`).\n */\nexport class CarBlockIterator extends CarIteratorBase {\n // inherited method\n /**\n * Get the list of roots defined by the CAR referenced by this iterator. May be\n * zero or more `CID`s.\n *\n * @function getRoots\n * @memberof CarBlockIterator\n * @instance\n * @async\n * @returns {Promise<CID[]>}\n */\n\n /**\n * @returns {AsyncIterator<Block>}\n */\n [Symbol.asyncIterator] () {\n if (this._decoded) {\n throw new Error('Cannot decode more than once')\n }\n /* c8 ignore next 3 */\n if (!this._iterable) {\n throw new Error('Block iterable not found')\n }\n this._decoded = true\n return this._iterable[Symbol.asyncIterator]()\n }\n\n /**\n * Instantiate a {@link CarBlockIterator} from a `Uint8Array` blob. Rather\n * than decoding the entire byte array prior to returning the iterator, as in\n * {@link CarReader.fromBytes}, only the header is decoded and the remainder\n * of the CAR is parsed as the `Block`s as yielded.\n *\n * @async\n * @static\n * @memberof CarBlockIterator\n * @param {Uint8Array} bytes\n * @returns {Promise<CarBlockIterator>}\n */\n static async fromBytes (bytes) {\n const { version, roots, iterator } = await fromBytes(bytes)\n return new CarBlockIterator(version, roots, iterator)\n }\n\n /**\n * Instantiate a {@link CarBlockIterator} from a `AsyncIterable<Uint8Array>`,\n * such as a [modern Node.js stream](https://nodejs.org/api/stream.html#stream_streams_compatibility_with_async_generators_and_async_iterators).\n * Rather than decoding the entire byte array prior to returning the iterator,\n * as in {@link CarReader.fromIterable}, only the header is decoded and the\n * remainder of the CAR is parsed as the `Block`s as yielded.\n *\n * @async\n * @static\n * @param {AsyncIterable<Uint8Array>} asyncIterable\n * @returns {Promise<CarBlockIterator>}\n */\n static async fromIterable (asyncIterable) {\n const { version, roots, iterator } = await fromIterable(asyncIterable)\n return new CarBlockIterator(version, roots, iterator)\n }\n}\n\n/**\n * Provides an iterator over all of the `CID`s in a CAR. Implements a\n * `CIDIterator` interface, or `AsyncIterable<CID>`. Similar to\n * {@link CarBlockIterator} but only yields the CIDs in the CAR.\n *\n * As an implementer of `AsyncIterable`, this class can be used directly in a\n * `for await (const cid of iterator) {}` loop. Where the `iterator` is\n * constructed using {@link CarCIDiterator.fromBytes} or\n * {@link CarCIDiterator.fromIterable}.\n *\n * An iteration can only be performce _once_ per instantiation.\n *\n * `CarCIDIterator` also implements the `RootsReader` interface and provides\n * the {@link CarCIDiterator.getRoots `getRoots()`} method.\n *\n * Load this class with either\n * `import { CarCIDIterator } from '@ipld/car/iterator'`\n * (`const { CarCIDIterator } = require('@ipld/car/iterator')`). Or\n * `import { CarCIDIterator } from '@ipld/car'`\n * (`const { CarCIDIterator } = require('@ipld/car')`).\n *\n * @name CarCIDIterator\n * @class\n * @implements {RootsReader}\n * @implements {AsyncIterable<CID>}\n * @property {number} version The version number of the CAR referenced by this\n * iterator (should be `1`).\n */\nexport class CarCIDIterator extends CarIteratorBase {\n // inherited method\n /**\n * Get the list of roots defined by the CAR referenced by this iterator. May be\n * zero or more `CID`s.\n *\n * @function getRoots\n * @memberof CarCIDIterator\n * @instance\n * @async\n * @returns {Promise<CID[]>}\n */\n\n /**\n * @returns {AsyncIterator<CID>}\n */\n [Symbol.asyncIterator] () {\n if (this._decoded) {\n throw new Error('Cannot decode more than once')\n }\n /* c8 ignore next 3 */\n if (!this._iterable) {\n throw new Error('Block iterable not found')\n }\n this._decoded = true\n const iterable = this._iterable[Symbol.asyncIterator]()\n return {\n async next () {\n const next = await iterable.next()\n if (next.done) {\n return next\n }\n return { done: false, value: next.value.cid }\n }\n }\n }\n\n /**\n * Instantiate a {@link CarCIDIterator} from a `Uint8Array` blob. Rather\n * than decoding the entire byte array prior to returning the iterator, as in\n * {@link CarReader.fromBytes}, only the header is decoded and the remainder\n * of the CAR is parsed as the `CID`s as yielded.\n *\n * @async\n * @static\n * @memberof CarCIDIterator\n * @param {Uint8Array} bytes\n * @returns {Promise<CarCIDIterator>}\n */\n static async fromBytes (bytes) {\n const { version, roots, iterator } = await fromBytes(bytes)\n return new CarCIDIterator(version, roots, iterator)\n }\n\n /**\n * Instantiate a {@link CarCIDIterator} from a `AsyncIterable<Uint8Array>`,\n * such as a [modern Node.js stream](https://nodejs.org/api/stream.html#stream_streams_compatibility_with_async_generators_and_async_iterators).\n * Rather than decoding the entire byte array prior to returning the iterator,\n * as in {@link CarReader.fromIterable}, only the header is decoded and the\n * remainder of the CAR is parsed as the `CID`s as yielded.\n *\n * @async\n * @static\n * @memberof CarCIDIterator\n * @param {AsyncIterable<Uint8Array>} asyncIterable\n * @returns {Promise<CarCIDIterator>}\n */\n static async fromIterable (asyncIterable) {\n const { version, roots, iterator } = await fromIterable(asyncIterable)\n return new CarCIDIterator(version, roots, iterator)\n }\n}\n\n/**\n * @param {Uint8Array} bytes\n * @returns {Promise<{ version:number, roots:CID[], iterator:AsyncIterable<Block>}>}\n */\nasync function fromBytes (bytes) {\n if (!(bytes instanceof Uint8Array)) {\n throw new TypeError('fromBytes() requires a Uint8Array')\n }\n return decodeIterator(bytesReader(bytes))\n}\n\n/**\n * @param {AsyncIterable<Uint8Array>} asyncIterable\n * @returns {Promise<{ version:number, roots:CID[], iterator:AsyncIterable<Block>}>}\n */\nasync function fromIterable (asyncIterable) {\n if (!asyncIterable || !(typeof asyncIterable[Symbol.asyncIterator] === 'function')) {\n throw new TypeError('fromIterable() requires an async iterable')\n }\n return decodeIterator(asyncIterableReader(asyncIterable))\n}\n\n/**\n * @private\n * @param {BytesReader} reader\n * @returns {Promise<{ version:number, roots:CID[], iterator:AsyncIterable<Block>}>}\n */\nasync function decodeIterator (reader) {\n const decoder = createDecoder(reader)\n const { version, roots } = await decoder.header()\n return { version, roots, iterator: decoder.blocks() }\n}\n","import fs from 'fs'\nimport { promisify } from 'util'\nimport { readHeader, chunkReader } from './decoder.js'\nimport { createHeader } from './encoder.js'\nimport { CarWriter as BrowserCarWriter } from './writer-browser.js'\n\nconst fsread = promisify(fs.read)\nconst fswrite = promisify(fs.write)\n\n/**\n * @typedef {import('multiformats/cid').CID} CID\n * @typedef {import('./api').BlockWriter} BlockWriter\n */\n\n/**\n * @class\n * @implements {BlockWriter}\n */\nexport class CarWriter extends BrowserCarWriter {\n /**\n * Update the list of roots in the header of an existing CAR file. The first\n * argument must be a file descriptor for CAR file that is open in read and\n * write mode (not append), e.g. `fs.open` or `fs.promises.open` with `'r+'`\n * mode.\n *\n * This operation is an _overwrite_, the total length of the CAR will not be\n * modified. A rejection will occur if the new header will not be the same\n * length as the existing header, in which case the CAR will not be modified.\n * It is the responsibility of the user to ensure that the roots being\n * replaced encode as the same length as the new roots.\n *\n * This function is **only available in Node.js** and not a browser\n * environment.\n *\n * @async\n * @static\n * @memberof CarWriter\n * @param {fs.promises.FileHandle | number} fd - A file descriptor from the\n * Node.js `fs` module. Either an integer, from `fs.open()` or a `FileHandle`\n * from `fs.promises.open()`.\n * @param {CID[]} roots - A new list of roots to replace the existing list in\n * the CAR header. The new header must take up the same number of bytes as the\n * existing header, so the roots should collectively be the same byte length\n * as the existing roots.\n * @returns {Promise<void>}\n */\n static async updateRootsInFile (fd, roots) {\n const chunkSize = 256\n /** @type {Uint8Array} */\n let bytes\n let offset = 0\n\n /** @type {() => Promise<number>} */\n let readChunk\n if (typeof fd === 'number') {\n readChunk = async () => (await fsread(fd, bytes, 0, chunkSize, offset)).bytesRead\n } else if (typeof fd === 'object' && typeof fd.read === 'function') { // FileDescriptor\n readChunk = async () => (await fd.read(bytes, 0, chunkSize, offset)).bytesRead\n } else {\n throw new TypeError('Bad fd')\n }\n const fdReader = chunkReader(async () => {\n bytes = new Uint8Array(chunkSize) // need a new chunk each time, can't reuse old\n const read = await readChunk()\n offset += read\n /* eslint no-warning-comments: 0 */\n // TODO: test header > 256 bytes\n return read < chunkSize ? bytes.subarray(0, read) : bytes\n })\n\n await readHeader(fdReader)\n const newHeader = createHeader(roots)\n if (fdReader.pos !== newHeader.length) {\n throw new Error(`updateRoots() can only overwrite a header of the same length (old header is ${fdReader.pos} bytes, new header is ${newHeader.length} bytes)`)\n }\n if (typeof fd === 'number') {\n await fswrite(fd, newHeader, 0, newHeader.length, 0)\n } else if (typeof fd === 'object' && typeof fd.read === 'function') { // FileDescriptor\n await fd.write(newHeader, 0, newHeader.length, 0)\n }\n }\n}\n\nexport const __browser = false\n","import { encode as dagCborEncode } from '@ipld/dag-cbor'\nimport varint from 'varint'\n\n/**\n * @typedef {import('multiformats').CID} CID\n * @typedef {import('./api').Block} Block\n * @typedef {import('./coding').CarEncoder} CarEncoder\n * @typedef {import('./coding').IteratorChannel_Writer<Uint8Array>} IteratorChannel_Writer\n */\n\n/**\n * Create a header from an array of roots.\n *\n * @param {CID[]} roots\n * @returns {Uint8Array}\n */\nexport function createHeader (roots) {\n const headerBytes = dagCborEncode({ version: 1, roots })\n const varintBytes = varint.encode(headerBytes.length)\n const header = new Uint8Array(varintBytes.length + headerBytes.length)\n header.set(varintBytes, 0)\n header.set(headerBytes, varintBytes.length)\n return header\n}\n\n/**\n * @param {IteratorChannel_Writer} writer\n * @returns {CarEncoder}\n */\nfunction createEncoder (writer) {\n // none of this is wrapped in a mutex, that needs to happen above this to\n // avoid overwrites\n\n return {\n /**\n * @param {CID[]} roots\n * @returns {Promise<void>}\n */\n async setRoots (roots) {\n const bytes = createHeader(roots)\n await writer.write(bytes)\n },\n\n /**\n * @param {Block} block\n * @returns {Promise<void>}\n */\n async writeBlock (block) {\n const { cid, bytes } = block\n await writer.write(new Uint8Array(varint.encode(cid.bytes.length + bytes.length)))\n await writer.write(cid.bytes)\n if (bytes.length) {\n // zero-length blocks are valid, but it'd be safer if we didn't write them\n await writer.write(bytes)\n }\n },\n\n /**\n * @returns {Promise<void>}\n */\n async close () {\n await writer.end()\n }\n }\n}\n\nexport { createEncoder }\n","import { CID } from 'multiformats/cid'\nimport { bytesReader, readHeader } from './decoder.js'\nimport { createEncoder, createHeader } from './encoder.js'\nimport { create as iteratorChannel } from './iterator-channel.js'\n\n/**\n * @typedef {import('./api').Block} Block\n * @typedef {import('./api').BlockWriter} BlockWriter\n * @typedef {import('./api').WriterChannel} WriterChannel\n * @typedef {import('./coding').CarEncoder} CarEncoder\n * @typedef {import('./coding').IteratorChannel<Uint8Array>} IteratorChannel\n */\n\n/**\n * Provides a writer interface for the creation of CAR files.\n *\n * Creation of a `CarWriter` involves the instatiation of an input / output pair\n * in the form of a `WriterChannel`, which is a\n * `{ writer:CarWriter, out:AsyncIterable<Uint8Array> }` pair. These two\n * components form what can be thought of as a stream-like interface. The\n * `writer` component (an instantiated `CarWriter`), has methods to\n * {@link CarWriter.put `put()`} new blocks and {@link CarWriter.put `close()`}\n * the writing operation (finalising the CAR archive). The `out` component is\n * an `AsyncIterable` that yields the bytes of the archive. This can be\n * redirected to a file or other sink. In Node.js, you can use the\n * [`Readable.from()`](https://nodejs.org/api/stream.html#stream_stream_readable_from_iterable_options)\n * API to convert this to a standard Node.js stream, or it can be directly fed\n * to a\n * [`stream.pipeline()`](https://nodejs.org/api/stream.html#stream_stream_pipeline_source_transforms_destination_callback).\n *\n * The channel will provide a form of backpressure. The `Promise` from a\n * `write()` won't resolve until the resulting data is drained from the `out`\n * iterable.\n *\n * It is also possible to ignore the `Promise` from `write()` calls and allow\n * the generated data to queue in memory. This should be avoided for large CAR\n * archives of course due to the memory costs and potential for memory overflow.\n *\n * Load this class with either\n * `import { CarWriter } from '@ipld/car/writer'`\n * (`const { CarWriter } = require('@ipld/car/writer')`). Or\n * `import { CarWriter } from '@ipld/car'`\n * (`const { CarWriter } = require('@ipld/car')`). The former will likely\n * result in smaller bundle sizes where this is important.\n *\n * @name CarWriter\n * @class\n * @implements {BlockWriter}\n */\nexport class CarWriter {\n /**\n * @param {CID[]} roots\n * @param {CarEncoder} encoder\n */\n constructor (roots, encoder) {\n this._encoder = encoder\n /** @type {Promise<void>} */\n this._mutex = encoder.setRoots(roots)\n this._ended = false\n }\n\n /**\n * Write a `Block` (a `{ cid:CID, bytes:Uint8Array }` pair) to the archive.\n *\n * @function\n * @memberof CarWriter\n * @instance\n * @async\n * @param {Block} block - A `{ cid:CID, bytes:Uint8Array }` pair.\n * @returns {Promise<void>} The returned promise will only resolve once the\n * bytes this block generates are written to the `out` iterable.\n */\n async put (block) {\n if (!(block.bytes instanceof Uint8Array) || !block.cid) {\n throw new TypeError('Can only write {cid, bytes} objects')\n }\n if (this._ended) {\n throw new Error('Already closed')\n }\n const cid = CID.asCID(block.cid)\n if (!cid) {\n throw new TypeError('Can only write {cid, bytes} objects')\n }\n this._mutex = this._mutex.then(() => this._encoder.writeBlock({ cid, bytes: block.bytes }))\n return this._mutex\n }\n\n /**\n * Finalise the CAR archive and signal that the `out` iterable should end once\n * any remaining bytes are written.\n *\n * @function\n * @memberof CarWriter\n * @instance\n * @async\n * @returns {Promise<void>}\n */\n async close () {\n if (this._ended) {\n throw new Error('Already closed')\n }\n await this._mutex\n this._ended = true\n return this._encoder.close()\n }\n\n /**\n * Create a new CAR writer \"channel\" which consists of a\n * `{ writer:CarWriter, out:AsyncIterable<Uint8Array> }` pair.\n *\n * @async\n * @static\n * @memberof CarWriter\n * @param {CID[] | CID | void} roots\n * @returns {WriterChannel} The channel takes the form of\n * `{ writer:CarWriter, out:AsyncIterable<Uint8Array> }`.\n */\n static create (roots) {\n roots = toRoots(roots)\n const { encoder, iterator } = encodeWriter()\n const writer = new CarWriter(roots, encoder)\n const out = new CarWriterOut(iterator)\n return { writer, out }\n }\n\n /**\n * Create a new CAR appender \"channel\" which consists of a\n * `{ writer:CarWriter, out:AsyncIterable<Uint8Array> }` pair.\n * This appender does not consider roots and does not produce a CAR header.\n * It is designed to append blocks to an _existing_ CAR archive. It is\n * expected that `out` will be concatenated onto the end of an existing\n * archive that already has a properly formatted header.\n *\n * @async\n * @static\n * @memberof CarWriter\n * @returns {WriterChannel} The channel takes the form of\n * `{ writer:CarWriter, out:AsyncIterable<Uint8Array> }`.\n */\n static createAppender () {\n const { encoder, iterator } = encodeWriter()\n encoder.setRoots = () => Promise.resolve()\n const writer = new CarWriter([], encoder)\n const out = new CarWriterOut(iterator)\n return { writer, out }\n }\n\n /**\n * Update the list of roots in the header of an existing CAR as represented\n * in a Uint8Array.\n *\n * This operation is an _overwrite_, the total length of the CAR will not be\n * modified. A rejection will occur if the new header will not be the same\n * length as the existing header, in which case the CAR will not be modified.\n * It is the responsibility of the user to ensure that the roots being\n * replaced encode as the same length as the new roots.\n *\n * The byte array passed in an argument will be modified and also returned\n * upon successful modification.\n *\n * @async\n * @static\n * @memberof CarWriter\n * @param {Uint8Array} bytes\n * @param {CID[]} roots - A new list of roots to replace the existing list in\n * the CAR header. The new header must take up the same number of bytes as the\n * existing header, so the roots should collectively be the same byte length\n * as the existing roots.\n * @returns {Promise<Uint8Array>}\n */\n static async updateRootsInBytes (bytes, roots) {\n const reader = bytesReader(bytes)\n await readHeader(reader)\n const newHeader = createHeader(roots)\n if (Number(reader.pos) !== newHeader.length) {\n throw new Error(`updateRoots() can only overwrite a header of the same length (old header is ${reader.pos} bytes, new header is ${newHeader.length} bytes)`)\n }\n bytes.set(newHeader, 0)\n return bytes\n }\n}\n\n/**\n * @class\n * @implements {AsyncIterable<Uint8Array>}\n */\nexport class CarWriterOut {\n /**\n * @param {AsyncIterator<Uint8Array>} iterator\n */\n constructor (iterator) {\n this._iterator = iterator\n }\n\n [Symbol.asyncIterator] () {\n if (this._iterating) {\n throw new Error('Multiple iterator not supported')\n }\n this._iterating = true\n return this._iterator\n }\n}\n\nfunction encodeWriter () {\n /** @type {IteratorChannel} */\n const iw = iteratorChannel()\n const { writer, iterator } = iw\n const encoder = createEncoder(writer)\n return { encoder, iterator }\n}\n\n/**\n * @private\n * @param {CID[] | CID | void} roots\n * @returns {CID[]}\n */\nfunction toRoots (roots) {\n if (roots === undefined) {\n return []\n }\n\n if (!Array.isArray(roots)) {\n const cid = CID.asCID(roots)\n if (!cid) {\n throw new TypeError('roots must be a single CID or an array of CIDs')\n }\n return [cid]\n }\n\n const _roots = []\n for (const root of roots) {\n const _root = CID.asCID(root)\n if (!_root) {\n throw new TypeError('roots must be a single CID or an array of CIDs')\n }\n _roots.push(_root)\n }\n return _roots\n}\n\nexport const __browser = true\n","/**\n * @template {any} T\n * @typedef {import('./coding').IteratorChannel<T>} IteratorChannel\n */\n\nfunction noop () {}\n\n/**\n * @template {any} T\n * @returns {IteratorChannel<T>}\n */\nexport function create () {\n /** @type {T[]} */\n const chunkQueue = []\n /** @type {Promise<void> | null} */\n let drainer = null\n let drainerResolver = noop\n let ended = false\n /** @type {Promise<IteratorResult<T>> | null} */\n let outWait = null\n let outWaitResolver = noop\n\n const makeDrainer = () => {\n if (!drainer) {\n drainer = new Promise((resolve) => {\n drainerResolver = () => {\n drainer = null\n drainerResolver = noop\n resolve()\n }\n })\n }\n return drainer\n }\n\n /**\n * @returns {IteratorChannel<T>}\n */\n const writer = {\n /**\n * @param {T} chunk\n * @returns {Promise<void>}\n */\n write (chunk) {\n chunkQueue.push(chunk)\n const drainer = makeDrainer()\n outWaitResolver()\n return drainer\n },\n\n async end () {\n ended = true\n const drainer = makeDrainer()\n outWaitResolver()\n await drainer\n }\n }\n\n /** @type {AsyncIterator<T>} */\n const iterator = {\n /** @returns {Promise<IteratorResult<T>>} */\n async next () {\n const chunk = chunkQueue.shift()\n if (chunk) {\n if (chunkQueue.length === 0) {\n drainerResolver()\n }\n return { done: false, value: chunk }\n }\n\n if (ended) {\n drainerResolver()\n return { done: true, value: undefined }\n }\n\n if (!outWait) {\n outWait = new Promise((resolve) => {\n outWaitResolver = () => {\n outWait = null\n outWaitResolver = noop\n return resolve(iterator.next())\n }\n })\n }\n\n return outWait\n }\n }\n\n return { writer, iterator }\n}\n"],"mappings":"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","names":["exports","encode","exports","read","b","l","exports","exports","e","r","t","n","o","a","l","i","c","b","u","f","p","s","y","g","h","$","j","w","v","d","m","E","S","O","x","q","R","A","k","_","T","P","I","X","m$1","D","F","N","L","M","TextDecoder","dew","path","i","sep","posix","resolve","normalize","isAbsolute","join","relative","_makeLong","dirname","basename","extname","format","parse","format","resolve","finished","p","exports$1","_dewExec","dew","Stream","inherits","exports","exports","t","e","r","o","n","c","d","s","f","l","u","a","h","p","i","e","n","r","t","o","a","u","c","i","s","p","f","d","y","m","l","h","e","a","t","r","O","s","o","n","i","l","p","c","u","f","m","v","g","y","b","d","j","q","x","A","C","I","w","N","U","k","S","R","$","z","H","L","Z","_","E","P","T","B","D","F","G","exports","_dewExec","dew","process","path","sep","posix","resolve","normalize","isAbsolute","join","relative","_makeLong","dirname","basename","extname","format","parse","dew$2","i","len","len2","dew$1","buffer","e","m","d","s","c","exports$1","_dewExec","dew","Buffer","b","isBuffer","a","x","y","n","inspect","read","j","write","byteLength","E","name","exports","dew$f","Stats","i","l","d","b","p","g","AssertionError","E","name","a","Dirent","link","dew$8","dew$7","dew$6","Node","Link","vol","File","promisify","resolve","FileHandle","buffer","path","dew$3","_dewExec$2","_global","dew$2","exports","F_OK","sep","relative","join","dirname","path2","FLAGS","getPathFromURLPosix","n","h","Volume","self","StatWatcher","FSWatcher","_a","c","isBuffer","e","symlink","exports$3","_dewExec$1","dew$1","exports$2","_dewExec","dew","t","s","R_OK","W_OK","X_OK","createFsFromVolume","fs","exports$1","promises","encode","decode","i","varint","i","v","j","import_varint","decode","bytes","multihash","read","p","c","b","fsread","fromBytes","import_varint","encode","varint","resolve","drainer","fsread","CarWriter","read","c","decode","CarWriter","b"]}
|