@kubb/core 0.37.11 → 0.37.13

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../node_modules/.pnpm/path-browserify@1.0.1/node_modules/path-browserify/index.js","../../../node_modules/.pnpm/memfs@3.4.13/node_modules/memfs/lib/constants.js","../../../node_modules/.pnpm/memfs@3.4.13/node_modules/memfs/lib/getBigInt.js","../../../node_modules/.pnpm/memfs@3.4.13/node_modules/memfs/lib/Stats.js","../../../node_modules/.pnpm/memfs@3.4.13/node_modules/memfs/lib/internal/buffer.js","../../../node_modules/.pnpm/memfs@3.4.13/node_modules/memfs/lib/internal/errors.js","../../../node_modules/.pnpm/memfs@3.4.13/node_modules/memfs/lib/encoding.js","../../../node_modules/.pnpm/memfs@3.4.13/node_modules/memfs/lib/Dirent.js","../../../node_modules/.pnpm/memfs@3.4.13/node_modules/memfs/lib/setImmediate.js","../../../node_modules/.pnpm/memfs@3.4.13/node_modules/memfs/lib/process.js","../../../node_modules/.pnpm/eventemitter3@5.0.0/node_modules/eventemitter3/index.js","../../../node_modules/.pnpm/memfs@3.4.13/node_modules/memfs/lib/node.js","../../../node_modules/.pnpm/memfs@3.4.13/node_modules/memfs/lib/setTimeoutUnref.js","../../../node_modules/.pnpm/memfs@3.4.13/node_modules/memfs/lib/promises.js","../../../node_modules/.pnpm/fs-monkey@1.0.3/node_modules/fs-monkey/lib/correctPath.js","../../../node_modules/.pnpm/memfs@3.4.13/node_modules/memfs/lib/volume.js","../../../node_modules/.pnpm/fs-monkey@1.0.3/node_modules/fs-monkey/lib/util/lists.js","../../../node_modules/.pnpm/memfs@3.4.13/node_modules/memfs/lib/index.js","../../../node_modules/.pnpm/fs.realpath@1.0.0/node_modules/fs.realpath/old.js","../../../node_modules/.pnpm/fs.realpath@1.0.0/node_modules/fs.realpath/index.js","../../../node_modules/.pnpm/concat-map@0.0.1/node_modules/concat-map/index.js","../../../node_modules/.pnpm/balanced-match@1.0.2/node_modules/balanced-match/index.js","../../../node_modules/.pnpm/brace-expansion@1.1.11/node_modules/brace-expansion/index.js","../../../node_modules/.pnpm/minimatch@3.1.2/node_modules/minimatch/minimatch.js","../../../node_modules/.pnpm/inherits@2.0.4/node_modules/inherits/inherits_browser.js","../../../node_modules/.pnpm/inherits@2.0.4/node_modules/inherits/inherits.js","../../../node_modules/.pnpm/path-is-absolute@1.0.1/node_modules/path-is-absolute/index.js","../../../node_modules/.pnpm/glob@7.2.3/node_modules/glob/common.js","../../../node_modules/.pnpm/glob@7.2.3/node_modules/glob/sync.js","../../../node_modules/.pnpm/wrappy@1.0.2/node_modules/wrappy/wrappy.js","../../../node_modules/.pnpm/once@1.4.0/node_modules/once/once.js","../../../node_modules/.pnpm/inflight@1.0.6/node_modules/inflight/inflight.js","../../../node_modules/.pnpm/glob@7.2.3/node_modules/glob/glob.js","../../../node_modules/.pnpm/rimraf@3.0.2/node_modules/rimraf/rimraf.js","../../../node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/rng.js","../../../node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/regex.js","../../../node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/validate.js","../../../node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/stringify.js","../../../node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/v1.js","../../../node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/parse.js","../../../node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/v35.js","../../../node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/md5.js","../../../node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/v3.js","../../../node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/native.js","../../../node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/v4.js","../../../node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/sha1.js","../../../node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/v5.js","../../../node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/nil.js","../../../node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/version.js","../../../node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/index.js","../../../node_modules/.pnpm/directory-tree@3.5.1/node_modules/directory-tree/lib/directory-tree.js","../src/plugin.ts","../src/utils/isPromise.ts","../src/utils/write.ts","../src/utils/cache.ts","../src/utils/read.ts","../../../node_modules/.pnpm/eventemitter3@5.0.0/node_modules/eventemitter3/index.mjs","../../../node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/wrapper.mjs","../src/managers/fileManager/events.ts","../src/managers/fileManager/FileManager.ts","../src/managers/fileManager/TreeNode.ts","../src/managers/pluginManager/PluginManager.ts","../src/managers/pluginManager/validate.ts","../src/build.ts","../src/config.ts","../src/generators/Generator.ts","../src/generators/SchemaGenerator.ts","../src/index.ts"],"names":["parse","Stats","d","b","AssertionError","name","Dirent","EventEmitter","Node","Link","File","FileHandle","FLAGS","Volume","StatWatcher","FSWatcher","_a","fs","err","base","version","minimatch","Minimatch","filter","makeRe","braceExpand","set","m","path","read","cb","keys","er","stat","rimraf","p","validate","uuid","stringify","v1","v3","v4","v5","import_path","pathParser","import_fs","options","file","dirTree","argument0"],"mappings":"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","sourcesContent":["// 'path' module extracted from Node.js v8.11.1 (only the posix part)\n// transplited with Babel\n\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\n'use strict';\n\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError('Path must be a string. Received ' + JSON.stringify(path));\n }\n}\n\n// Resolves . and .. elements in a path with directory names\nfunction normalizeStringPosix(path, allowAboveRoot) {\n var res = '';\n var lastSegmentLength = 0;\n var lastSlash = -1;\n var dots = 0;\n var code;\n for (var i = 0; i <= path.length; ++i) {\n if (i < path.length)\n code = path.charCodeAt(i);\n else if (code === 47 /*/*/)\n break;\n else\n code = 47 /*/*/;\n if (code === 47 /*/*/) {\n if (lastSlash === i - 1 || dots === 1) {\n // NOOP\n } else if (lastSlash !== i - 1 && dots === 2) {\n if (res.length < 2 || lastSegmentLength !== 2 || res.charCodeAt(res.length - 1) !== 46 /*.*/ || res.charCodeAt(res.length - 2) !== 46 /*.*/) {\n if (res.length > 2) {\n var lastSlashIndex = res.lastIndexOf('/');\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 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 if (allowAboveRoot) {\n if (res.length > 0)\n res += '/..';\n else\n res = '..';\n lastSegmentLength = 2;\n }\n } else {\n if (res.length > 0)\n res += '/' + path.slice(lastSlash + 1, i);\n else\n res = path.slice(lastSlash + 1, i);\n lastSegmentLength = i - lastSlash - 1;\n }\n lastSlash = i;\n dots = 0;\n } else if (code === 46 /*.*/ && dots !== -1) {\n ++dots;\n } else {\n dots = -1;\n }\n }\n return res;\n}\n\nfunction _format(sep, pathObject) {\n var dir = pathObject.dir || pathObject.root;\n var base = pathObject.base || (pathObject.name || '') + (pathObject.ext || '');\n if (!dir) {\n return base;\n }\n if (dir === pathObject.root) {\n return dir + base;\n }\n return dir + sep + base;\n}\n\nvar 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)\n path = arguments[i];\n else {\n if (cwd === undefined)\n cwd = process.cwd();\n path = cwd;\n }\n\n assertPath(path);\n\n // Skip empty entries\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\n // Normalize the path\n resolvedPath = normalizeStringPosix(resolvedPath, !resolvedAbsolute);\n\n if (resolvedAbsolute) {\n if (resolvedPath.length > 0)\n return '/' + resolvedPath;\n else\n return '/';\n } else if (resolvedPath.length > 0) {\n return resolvedPath;\n } else {\n return '.';\n }\n },\n\n normalize: function normalize(path) {\n assertPath(path);\n\n if (path.length === 0) return '.';\n\n var isAbsolute = path.charCodeAt(0) === 47 /*/*/;\n var trailingSeparator = path.charCodeAt(path.length - 1) === 47 /*/*/;\n\n // Normalize the path\n path = normalizeStringPosix(path, !isAbsolute);\n\n if (path.length === 0 && !isAbsolute) path = '.';\n if (path.length > 0 && trailingSeparator) path += '/';\n\n if (isAbsolute) return '/' + path;\n return path;\n },\n\n isAbsolute: function isAbsolute(path) {\n assertPath(path);\n return path.length > 0 && path.charCodeAt(0) === 47 /*/*/;\n },\n\n join: function join() {\n if (arguments.length === 0)\n return '.';\n var joined;\n for (var i = 0; i < arguments.length; ++i) {\n var arg = arguments[i];\n assertPath(arg);\n if (arg.length > 0) {\n if (joined === undefined)\n joined = arg;\n else\n joined += '/' + arg;\n }\n }\n if (joined === undefined)\n return '.';\n return posix.normalize(joined);\n },\n\n relative: function relative(from, to) {\n assertPath(from);\n assertPath(to);\n\n if (from === to) return '';\n\n from = posix.resolve(from);\n to = posix.resolve(to);\n\n if (from === to) return '';\n\n // Trim any leading backslashes\n var fromStart = 1;\n for (; fromStart < from.length; ++fromStart) {\n if (from.charCodeAt(fromStart) !== 47 /*/*/)\n break;\n }\n var fromEnd = from.length;\n var fromLen = fromEnd - fromStart;\n\n // Trim any leading backslashes\n var toStart = 1;\n for (; toStart < to.length; ++toStart) {\n if (to.charCodeAt(toStart) !== 47 /*/*/)\n break;\n }\n var toEnd = to.length;\n var toLen = toEnd - toStart;\n\n // Compare paths to find the longest common path from root\n var length = fromLen < toLen ? fromLen : toLen;\n var lastCommonSep = -1;\n var i = 0;\n for (; i <= length; ++i) {\n if (i === length) {\n if (toLen > length) {\n if (to.charCodeAt(toStart + i) === 47 /*/*/) {\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 // 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 break;\n }\n var fromCode = from.charCodeAt(fromStart + i);\n var toCode = to.charCodeAt(toStart + i);\n if (fromCode !== toCode)\n break;\n else if (fromCode === 47 /*/*/)\n lastCommonSep = i;\n }\n\n var out = '';\n // Generate the relative path based on the path difference between `to`\n // and `from`\n for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) {\n if (i === fromEnd || from.charCodeAt(i) === 47 /*/*/) {\n if (out.length === 0)\n out += '..';\n else\n out += '/..';\n }\n }\n\n // Lastly, append the rest of the destination (`to`) path that comes after\n // the common path parts\n if (out.length > 0)\n return out + to.slice(toStart + lastCommonSep);\n else {\n toStart += lastCommonSep;\n if (to.charCodeAt(toStart) === 47 /*/*/)\n ++toStart;\n return to.slice(toStart);\n }\n },\n\n _makeLong: function _makeLong(path) {\n return path;\n },\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 var end = -1;\n var matchedSlash = true;\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\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\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\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 for (i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\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 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 // 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\n extname: function extname(path) {\n assertPath(path);\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\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 continue;\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 if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n 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 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n return path.slice(startDot, end);\n },\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 return _format('/', pathObject);\n },\n\n parse: function parse(path) {\n assertPath(path);\n\n var ret = { root: '', dir: '', base: '', ext: '', name: '' };\n if (path.length === 0) return ret;\n var code = path.charCodeAt(0);\n var isAbsolute = code === 47 /*/*/;\n var start;\n if (isAbsolute) {\n ret.root = '/';\n start = 1;\n } else {\n start = 0;\n }\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n var i = path.length - 1;\n\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n\n // Get non-dir info\n for (; i >= start; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\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 continue;\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 if (code === 46 /*.*/) {\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 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // 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 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\n return ret;\n },\n\n sep: '/',\n delimiter: ':',\n win32: null,\n posix: null\n};\n\nposix.posix = posix;\n\nmodule.exports = posix;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.constants = void 0;\nexports.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","if (typeof BigInt === 'function') exports.default = BigInt;\nelse\n exports.default = function BigIntNotSupported() {\n throw new Error('BigInt is not supported in this environment.');\n };\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Stats = void 0;\nvar constants_1 = require(\"./constants\");\nvar getBigInt_1 = require(\"./getBigInt\");\nvar S_IFMT = constants_1.constants.S_IFMT, S_IFDIR = constants_1.constants.S_IFDIR, S_IFREG = constants_1.constants.S_IFREG, S_IFBLK = constants_1.constants.S_IFBLK, S_IFCHR = constants_1.constants.S_IFCHR, S_IFLNK = constants_1.constants.S_IFLNK, S_IFIFO = constants_1.constants.S_IFIFO, S_IFSOCK = constants_1.constants.S_IFSOCK;\n/**\n * Statistics about a file/directory, like `fs.Stats`.\n */\nvar Stats = /** @class */ (function () {\n function Stats() {\n }\n Stats.build = function (node, bigint) {\n if (bigint === void 0) { bigint = false; }\n var stats = new Stats();\n var uid = node.uid, gid = node.gid, atime = node.atime, mtime = node.mtime, ctime = node.ctime;\n var getStatNumber = !bigint ? function (number) { return number; } : getBigInt_1.default;\n // 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 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 Stats.prototype._checkModeProperty = function (property) {\n return (Number(this.mode) & S_IFMT) === property;\n };\n Stats.prototype.isDirectory = function () {\n return this._checkModeProperty(S_IFDIR);\n };\n Stats.prototype.isFile = function () {\n return this._checkModeProperty(S_IFREG);\n };\n Stats.prototype.isBlockDevice = function () {\n return this._checkModeProperty(S_IFBLK);\n };\n Stats.prototype.isCharacterDevice = function () {\n return this._checkModeProperty(S_IFCHR);\n };\n Stats.prototype.isSymbolicLink = function () {\n return this._checkModeProperty(S_IFLNK);\n };\n Stats.prototype.isFIFO = function () {\n return this._checkModeProperty(S_IFIFO);\n };\n Stats.prototype.isSocket = function () {\n return this._checkModeProperty(S_IFSOCK);\n };\n return Stats;\n}());\nexports.Stats = Stats;\nexports.default = Stats;\n","\"use strict\";\nvar __spreadArray = (this && this.__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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bufferFrom = exports.bufferAllocUnsafe = exports.Buffer = void 0;\nvar buffer_1 = require(\"buffer\");\nObject.defineProperty(exports, \"Buffer\", { enumerable: true, get: function () { return buffer_1.Buffer; } });\nfunction bufferV0P12Ponyfill(arg0) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n return new (buffer_1.Buffer.bind.apply(buffer_1.Buffer, __spreadArray([void 0, arg0], args, false)))();\n}\nvar bufferAllocUnsafe = buffer_1.Buffer.allocUnsafe || bufferV0P12Ponyfill;\nexports.bufferAllocUnsafe = bufferAllocUnsafe;\nvar bufferFrom = buffer_1.Buffer.from || bufferV0P12Ponyfill;\nexports.bufferFrom = bufferFrom;\n","\"use strict\";\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.\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.E = exports.AssertionError = exports.message = exports.RangeError = exports.TypeError = exports.Error = void 0;\nvar assert = require(\"assert\");\nvar util = require(\"util\");\nvar kCode = typeof Symbol === 'undefined' ? '_kCode' : Symbol('code');\nvar messages = {}; // new Map();\nfunction makeNodeError(Base) {\n return /** @class */ (function (_super) {\n __extends(NodeError, _super);\n function NodeError(key) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var _this = _super.call(this, message(key, args)) || this;\n _this.code = key;\n _this[kCode] = key;\n _this.name = \"\".concat(_super.prototype.name, \" [\").concat(_this[kCode], \"]\");\n return _this;\n }\n return NodeError;\n }(Base));\n}\nvar g = typeof globalThis !== 'undefined' ? globalThis : global;\nvar AssertionError = /** @class */ (function (_super) {\n __extends(AssertionError, _super);\n function AssertionError(options) {\n var _this = this;\n if (typeof options !== 'object' || options === null) {\n throw new exports.TypeError('ERR_INVALID_ARG_TYPE', 'options', 'object');\n }\n if (options.message) {\n _this = _super.call(this, options.message) || this;\n }\n else {\n _this = _super.call(this, \"\".concat(util.inspect(options.actual).slice(0, 128), \" \") +\n \"\".concat(options.operator, \" \").concat(util.inspect(options.expected).slice(0, 128))) || this;\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.Error.captureStackTrace(_this, options.stackStartFunction);\n return _this;\n }\n return AssertionError;\n}(g.Error));\nexports.AssertionError = AssertionError;\nfunction message(key, args) {\n assert.strictEqual(typeof key, 'string');\n // const msg = messages.get(key);\n var msg = messages[key];\n assert(msg, \"An invalid error message key was used: \".concat(key, \".\"));\n var fmt;\n if (typeof msg === 'function') {\n fmt = msg;\n }\n else {\n fmt = util.format;\n if (args === undefined || args.length === 0)\n return msg;\n args.unshift(msg);\n }\n return String(fmt.apply(null, args));\n}\nexports.message = message;\n// Utility function for registering the error codes. Only used here. Exported\n// *only* to allow for testing.\nfunction E(sym, val) {\n messages[sym] = typeof val === 'function' ? val : String(val);\n}\nexports.E = E;\nexports.Error = makeNodeError(g.Error);\nexports.TypeError = makeNodeError(g.TypeError);\nexports.RangeError = makeNodeError(g.RangeError);\n// 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\nE('ERR_ARG_NOT_ITERABLE', '%s must be iterable');\nE('ERR_ASSERTION', '%s');\nE('ERR_BUFFER_OUT_OF_BOUNDS', bufferOutOfBounds);\nE('ERR_CHILD_CLOSED_BEFORE_REPLY', 'Child closed before reply received');\nE('ERR_CONSOLE_WRITABLE_STREAM', 'Console expects a writable stream instance for %s');\nE('ERR_CPU_USAGE', 'Unable to obtain cpu usage %s');\nE('ERR_DNS_SET_SERVERS_FAILED', function (err, servers) { return \"c-ares failed to set servers: \\\"\".concat(err, \"\\\" [\").concat(servers, \"]\"); });\nE('ERR_FALSY_VALUE_REJECTION', 'Promise was rejected with falsy value');\nE('ERR_ENCODING_NOT_SUPPORTED', function (enc) { return \"The \\\"\".concat(enc, \"\\\" encoding is not supported\"); });\nE('ERR_ENCODING_INVALID_ENCODED_DATA', function (enc) { return \"The encoded data was not valid for encoding \".concat(enc); });\nE('ERR_HTTP_HEADERS_SENT', 'Cannot render headers after they are sent to the client');\nE('ERR_HTTP_INVALID_STATUS_CODE', 'Invalid status code: %s');\nE('ERR_HTTP_TRAILER_INVALID', 'Trailers are invalid with this transfer encoding');\nE('ERR_INDEX_OUT_OF_RANGE', 'Index out of range');\nE('ERR_INVALID_ARG_TYPE', invalidArgType);\nE('ERR_INVALID_ARRAY_LENGTH', function (name, len, actual) {\n assert.strictEqual(typeof actual, 'number');\n return \"The array \\\"\".concat(name, \"\\\" (length \").concat(actual, \") must be of length \").concat(len, \".\");\n});\nE('ERR_INVALID_BUFFER_SIZE', 'Buffer size must be a multiple of %s');\nE('ERR_INVALID_CALLBACK', 'Callback must be a function');\nE('ERR_INVALID_CHAR', 'Invalid character in %s');\nE('ERR_INVALID_CURSOR_POS', 'Cannot set cursor row without setting its column');\nE('ERR_INVALID_FD', '\"fd\" must be a positive integer: %s');\nE('ERR_INVALID_FILE_URL_HOST', 'File URL host must be \"localhost\" or empty on %s');\nE('ERR_INVALID_FILE_URL_PATH', 'File URL path %s');\nE('ERR_INVALID_HANDLE_TYPE', 'This handle type cannot be sent');\nE('ERR_INVALID_IP_ADDRESS', 'Invalid IP address: %s');\nE('ERR_INVALID_OPT_VALUE', function (name, value) {\n return \"The value \\\"\".concat(String(value), \"\\\" is invalid for option \\\"\").concat(name, \"\\\"\");\n});\nE('ERR_INVALID_OPT_VALUE_ENCODING', function (value) { return \"The value \\\"\".concat(String(value), \"\\\" is invalid for option \\\"encoding\\\"\"); });\nE('ERR_INVALID_REPL_EVAL_CONFIG', 'Cannot specify both \"breakEvalOnSigint\" and \"eval\" for REPL');\nE('ERR_INVALID_SYNC_FORK_INPUT', 'Asynchronous forks do not support Buffer, Uint8Array or string input: %s');\nE('ERR_INVALID_THIS', 'Value of \"this\" must be of type %s');\nE('ERR_INVALID_TUPLE', '%s must be an iterable %s tuple');\nE('ERR_INVALID_URL', 'Invalid URL: %s');\nE('ERR_INVALID_URL_SCHEME', function (expected) { return \"The URL must be \".concat(oneOf(expected, 'scheme')); });\nE('ERR_IPC_CHANNEL_CLOSED', 'Channel closed');\nE('ERR_IPC_DISCONNECTED', 'IPC channel is already disconnected');\nE('ERR_IPC_ONE_PIPE', 'Child process can have only one IPC pipe');\nE('ERR_IPC_SYNC_FORK', 'IPC cannot be used with synchronous forks');\nE('ERR_MISSING_ARGS', missingArgs);\nE('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\nE('ERR_NAPI_CONS_FUNCTION', 'Constructor must be a function');\nE('ERR_NAPI_CONS_PROTOTYPE_OBJECT', 'Constructor.prototype must be an object');\nE('ERR_NO_CRYPTO', 'Node.js is not compiled with OpenSSL crypto support');\nE('ERR_NO_LONGER_SUPPORTED', '%s is no longer supported');\nE('ERR_PARSE_HISTORY_DATA', 'Could not parse history data in %s');\nE('ERR_SOCKET_ALREADY_BOUND', 'Socket is already bound');\nE('ERR_SOCKET_BAD_PORT', 'Port should be > 0 and < 65536');\nE('ERR_SOCKET_BAD_TYPE', 'Bad socket type specified. Valid types are: udp4, udp6');\nE('ERR_SOCKET_CANNOT_SEND', 'Unable to send data');\nE('ERR_SOCKET_CLOSED', 'Socket is closed');\nE('ERR_SOCKET_DGRAM_NOT_RUNNING', 'Not running');\nE('ERR_STDERR_CLOSE', 'process.stderr cannot be closed');\nE('ERR_STDOUT_CLOSE', 'process.stdout cannot be closed');\nE('ERR_STREAM_WRAP', 'Stream has StringDecoder set or is in objectMode');\nE('ERR_TLS_CERT_ALTNAME_INVALID', \"Hostname/IP does not match certificate's altnames: %s\");\nE('ERR_TLS_DH_PARAM_SIZE', function (size) { return \"DH parameter size \".concat(size, \" is less than 2048\"); });\nE('ERR_TLS_HANDSHAKE_TIMEOUT', 'TLS handshake timeout');\nE('ERR_TLS_RENEGOTIATION_FAILED', 'Failed to renegotiate');\nE('ERR_TLS_REQUIRED_SERVER_NAME', '\"servername\" is required parameter for Server.addContext');\nE('ERR_TLS_SESSION_ATTACK', 'TSL session renegotiation attack detected');\nE('ERR_TRANSFORM_ALREADY_TRANSFORMING', 'Calling transform done when still transforming');\nE('ERR_TRANSFORM_WITH_LENGTH_0', 'Calling transform done when writableState.length != 0');\nE('ERR_UNKNOWN_ENCODING', 'Unknown encoding: %s');\nE('ERR_UNKNOWN_SIGNAL', 'Unknown signal: %s');\nE('ERR_UNKNOWN_STDIN_TYPE', 'Unknown stdin file type');\nE('ERR_UNKNOWN_STREAM_TYPE', 'Unknown stream file type');\nE('ERR_V8BREAKITERATOR', 'Full ICU data not installed. ' + 'See https://github.com/nodejs/node/wiki/Intl');\nfunction invalidArgType(name, expected, actual) {\n assert(name, 'name is required');\n // determiner: 'must be' or 'must not be'\n var determiner;\n if (expected.includes('not ')) {\n determiner = 'must not be';\n expected = expected.split('not ')[1];\n }\n else {\n determiner = 'must be';\n }\n var msg;\n if (Array.isArray(name)) {\n var names = name.map(function (val) { return \"\\\"\".concat(val, \"\\\"\"); }).join(', ');\n msg = \"The \".concat(names, \" arguments \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n else if (name.includes(' argument')) {\n // for the case like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n else {\n var type = name.includes('.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n // if actual value received, output it\n if (arguments.length >= 3) {\n msg += \". Received type \".concat(actual !== null ? typeof actual : 'null');\n }\n return msg;\n}\nfunction missingArgs() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\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) { return \"\\\"\".concat(a, \"\\\"\"); });\n switch (len) {\n case 1:\n msg += \"\".concat(args[0], \" argument\");\n break;\n case 2:\n msg += \"\".concat(args[0], \" and \").concat(args[1], \" arguments\");\n break;\n default:\n msg += args.slice(0, len - 1).join(', ');\n msg += \", and \".concat(args[len - 1], \" arguments\");\n break;\n }\n return \"\".concat(msg, \" must be specified\");\n}\nfunction oneOf(expected, thing) {\n assert(expected, 'expected is required');\n assert(typeof thing === 'string', 'thing is required');\n if (Array.isArray(expected)) {\n var len = expected.length;\n assert(len > 0, 'At least one expected value needs to be specified');\n // tslint:disable-next-line\n expected = expected.map(function (i) { return String(i); });\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n }\n else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n }\n else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n }\n else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n}\nfunction bufferOutOfBounds(name, isWriting) {\n if (isWriting) {\n return 'Attempt to write outside buffer bounds';\n }\n else {\n return \"\\\"\".concat(name, \"\\\" is outside of buffer bounds\");\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.strToEncoding = exports.assertEncoding = exports.ENCODING_UTF8 = void 0;\nvar buffer_1 = require(\"./internal/buffer\");\nvar errors = require(\"./internal/errors\");\nexports.ENCODING_UTF8 = 'utf8';\nfunction assertEncoding(encoding) {\n if (encoding && !buffer_1.Buffer.isEncoding(encoding))\n throw new errors.TypeError('ERR_INVALID_OPT_VALUE_ENCODING', encoding);\n}\nexports.assertEncoding = assertEncoding;\nfunction strToEncoding(str, encoding) {\n if (!encoding || encoding === exports.ENCODING_UTF8)\n return str; // UTF-8\n if (encoding === 'buffer')\n return new buffer_1.Buffer(str); // `buffer` encoding\n return new buffer_1.Buffer(str).toString(encoding); // Custom encoding\n}\nexports.strToEncoding = strToEncoding;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Dirent = void 0;\nvar constants_1 = require(\"./constants\");\nvar encoding_1 = require(\"./encoding\");\nvar S_IFMT = constants_1.constants.S_IFMT, S_IFDIR = constants_1.constants.S_IFDIR, S_IFREG = constants_1.constants.S_IFREG, S_IFBLK = constants_1.constants.S_IFBLK, S_IFCHR = constants_1.constants.S_IFCHR, S_IFLNK = constants_1.constants.S_IFLNK, S_IFIFO = constants_1.constants.S_IFIFO, S_IFSOCK = constants_1.constants.S_IFSOCK;\n/**\n * A directory entry, like `fs.Dirent`.\n */\nvar Dirent = /** @class */ (function () {\n function Dirent() {\n this.name = '';\n this.mode = 0;\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 Dirent.prototype._checkModeProperty = function (property) {\n return (this.mode & S_IFMT) === property;\n };\n Dirent.prototype.isDirectory = function () {\n return this._checkModeProperty(S_IFDIR);\n };\n Dirent.prototype.isFile = function () {\n return this._checkModeProperty(S_IFREG);\n };\n Dirent.prototype.isBlockDevice = function () {\n return this._checkModeProperty(S_IFBLK);\n };\n Dirent.prototype.isCharacterDevice = function () {\n return this._checkModeProperty(S_IFCHR);\n };\n Dirent.prototype.isSymbolicLink = function () {\n return this._checkModeProperty(S_IFLNK);\n };\n Dirent.prototype.isFIFO = function () {\n return this._checkModeProperty(S_IFIFO);\n };\n Dirent.prototype.isSocket = function () {\n return this._checkModeProperty(S_IFSOCK);\n };\n return Dirent;\n}());\nexports.Dirent = Dirent;\nexports.default = Dirent;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar _setImmediate;\nif (typeof setImmediate === 'function')\n _setImmediate = setImmediate.bind(typeof globalThis !== 'undefined' ? globalThis : global);\nelse\n _setImmediate = setTimeout.bind(typeof globalThis !== 'undefined' ? globalThis : global);\nexports.default = _setImmediate;\n","\"use strict\";\n// Here we mock the global `process` variable in case we are not in Node's environment.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.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 */\nvar maybeReturnProcess = function () {\n if (typeof process !== 'undefined') {\n return process;\n }\n try {\n return require('process');\n }\n catch (_a) {\n return undefined;\n }\n};\nfunction createProcess() {\n var p = maybeReturnProcess() || {};\n if (!p.cwd)\n p.cwd = function () { return '/'; };\n if (!p.nextTick)\n p.nextTick = require('./setImmediate').default;\n if (!p.emitWarning)\n p.emitWarning = function (message, type) {\n // tslint:disable-next-line:no-console\n console.warn(\"\".concat(type).concat(type ? ': ' : '').concat(message));\n };\n if (!p.env)\n p.env = {};\n return p;\n}\nexports.createProcess = createProcess;\nexports.default = createProcess();\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.File = exports.Link = exports.Node = exports.SEP = void 0;\nvar process_1 = require(\"./process\");\nvar buffer_1 = require(\"./internal/buffer\");\nvar constants_1 = require(\"./constants\");\nvar events_1 = require(\"events\");\nvar Stats_1 = require(\"./Stats\");\nvar S_IFMT = constants_1.constants.S_IFMT, S_IFDIR = constants_1.constants.S_IFDIR, S_IFREG = constants_1.constants.S_IFREG, S_IFLNK = constants_1.constants.S_IFLNK, O_APPEND = constants_1.constants.O_APPEND;\nvar getuid = function () { var _a, _b; return (_b = (_a = process_1.default.getuid) === null || _a === void 0 ? void 0 : _a.call(process_1.default)) !== null && _b !== void 0 ? _b : 0; };\nvar getgid = function () { var _a, _b; return (_b = (_a = process_1.default.getgid) === null || _a === void 0 ? void 0 : _a.call(process_1.default)) !== null && _b !== void 0 ? _b : 0; };\nexports.SEP = '/';\n/**\n * Node in a file system (like i-node, v-node).\n */\nvar Node = /** @class */ (function (_super) {\n __extends(Node, _super);\n function Node(ino, perm) {\n if (perm === void 0) { perm = 438; }\n var _this = _super.call(this) || this;\n // User ID and group ID.\n _this.uid = getuid();\n _this.gid = getgid();\n _this.atime = new Date();\n _this.mtime = new Date();\n _this.ctime = new Date();\n _this.perm = 438; // Permissions `chmod`, `fchmod`\n _this.mode = S_IFREG; // S_IFDIR, S_IFREG, etc.. (file by default?)\n // Number of hard links pointing at this Node.\n _this.nlink = 1;\n _this.perm = perm;\n _this.mode |= perm;\n _this.ino = ino;\n return _this;\n }\n Node.prototype.getString = function (encoding) {\n if (encoding === void 0) { encoding = 'utf8'; }\n return this.getBuffer().toString(encoding);\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 Node.prototype.getBuffer = function () {\n if (!this.buf)\n this.setBuffer((0, buffer_1.bufferAllocUnsafe)(0));\n return (0, buffer_1.bufferFrom)(this.buf); // Return a copy.\n };\n Node.prototype.setBuffer = function (buf) {\n this.buf = (0, buffer_1.bufferFrom)(buf); // Creates a copy of data.\n this.touch();\n };\n Node.prototype.getSize = function () {\n return this.buf ? this.buf.length : 0;\n };\n Node.prototype.setModeProperty = function (property) {\n this.mode = (this.mode & ~S_IFMT) | property;\n };\n Node.prototype.setIsFile = function () {\n this.setModeProperty(S_IFREG);\n };\n Node.prototype.setIsDirectory = function () {\n this.setModeProperty(S_IFDIR);\n };\n Node.prototype.setIsSymlink = function () {\n this.setModeProperty(S_IFLNK);\n };\n Node.prototype.isFile = function () {\n return (this.mode & S_IFMT) === S_IFREG;\n };\n Node.prototype.isDirectory = function () {\n return (this.mode & S_IFMT) === S_IFDIR;\n };\n Node.prototype.isSymlink = function () {\n // return !!this.symlink;\n return (this.mode & S_IFMT) === S_IFLNK;\n };\n Node.prototype.makeSymlink = function (steps) {\n this.symlink = steps;\n this.setIsSymlink();\n };\n Node.prototype.write = function (buf, off, len, pos) {\n if (off === void 0) { off = 0; }\n if (len === void 0) { len = buf.length; }\n if (pos === void 0) { pos = 0; }\n if (!this.buf)\n this.buf = (0, buffer_1.bufferAllocUnsafe)(0);\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 buf.copy(this.buf, pos, off, off + len);\n this.touch();\n return len;\n };\n // Returns the number of bytes read.\n Node.prototype.read = function (buf, off, len, pos) {\n if (off === void 0) { off = 0; }\n if (len === void 0) { len = buf.byteLength; }\n if (pos === void 0) { pos = 0; }\n if (!this.buf)\n this.buf = (0, buffer_1.bufferAllocUnsafe)(0);\n var actualLen = len;\n if (actualLen > buf.byteLength) {\n actualLen = buf.byteLength;\n }\n if (actualLen + pos > this.buf.length) {\n actualLen = this.buf.length - pos;\n }\n this.buf.copy(buf, off, pos, pos + actualLen);\n return actualLen;\n };\n Node.prototype.truncate = function (len) {\n if (len === void 0) { len = 0; }\n if (!len)\n this.buf = (0, buffer_1.bufferAllocUnsafe)(0);\n else {\n if (!this.buf)\n this.buf = (0, buffer_1.bufferAllocUnsafe)(0);\n if (len <= this.buf.length) {\n this.buf = this.buf.slice(0, len);\n }\n else {\n var buf = (0, buffer_1.bufferAllocUnsafe)(len);\n this.buf.copy(buf);\n buf.fill(0, this.buf.length);\n this.buf = buf;\n }\n }\n this.touch();\n };\n Node.prototype.chmod = function (perm) {\n this.perm = perm;\n this.mode = (this.mode & ~511) | perm;\n this.touch();\n };\n Node.prototype.chown = function (uid, gid) {\n this.uid = uid;\n this.gid = gid;\n this.touch();\n };\n Node.prototype.touch = function () {\n this.mtime = new Date();\n this.emit('change', this);\n };\n Node.prototype.canRead = function (uid, gid) {\n if (uid === void 0) { uid = getuid(); }\n if (gid === void 0) { gid = getgid(); }\n if (this.perm & 4 /* S.IROTH */) {\n return true;\n }\n if (gid === this.gid) {\n if (this.perm & 32 /* S.IRGRP */) {\n return true;\n }\n }\n if (uid === this.uid) {\n if (this.perm & 256 /* S.IRUSR */) {\n return true;\n }\n }\n return false;\n };\n Node.prototype.canWrite = function (uid, gid) {\n if (uid === void 0) { uid = getuid(); }\n if (gid === void 0) { gid = getgid(); }\n if (this.perm & 2 /* S.IWOTH */) {\n return true;\n }\n if (gid === this.gid) {\n if (this.perm & 16 /* S.IWGRP */) {\n return true;\n }\n }\n if (uid === this.uid) {\n if (this.perm & 128 /* S.IWUSR */) {\n return true;\n }\n }\n return false;\n };\n Node.prototype.del = function () {\n this.emit('delete', this);\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 return Node;\n}(events_1.EventEmitter));\nexports.Node = Node;\n/**\n * Represents a hard link that points to an i-node `node`.\n */\nvar Link = /** @class */ (function (_super) {\n __extends(Link, _super);\n function Link(vol, parent, name) {\n var _this = _super.call(this) || this;\n _this.children = {};\n // Path to this node as Array: ['usr', 'bin', 'node'].\n _this._steps = [];\n // \"i-node\" number of the node.\n _this.ino = 0;\n // Number of children.\n _this.length = 0;\n _this.vol = vol;\n _this.parent = parent;\n _this.name = name;\n _this.syncSteps();\n return _this;\n }\n Object.defineProperty(Link.prototype, \"steps\", {\n get: function () {\n return this._steps;\n },\n // Recursively sync children steps, e.g. in case of dir rename\n set: function (val) {\n this._steps = val;\n for (var _i = 0, _a = Object.values(this.children); _i < _a.length; _i++) {\n var child = _a[_i];\n child === null || child === void 0 ? void 0 : child.syncSteps();\n }\n },\n enumerable: false,\n configurable: true\n });\n Link.prototype.setNode = function (node) {\n this.node = node;\n this.ino = node.ino;\n };\n Link.prototype.getNode = function () {\n return this.node;\n };\n Link.prototype.createChild = function (name, node) {\n if (node === void 0) { node = this.vol.createNode(); }\n var link = new Link(this.vol, this, name);\n link.setNode(node);\n if (node.isDirectory()) {\n // link.setChild('.', link);\n // link.getNode().nlink++;\n // link.setChild('..', this);\n // this.getNode().nlink++;\n }\n this.setChild(name, link);\n return link;\n };\n Link.prototype.setChild = function (name, link) {\n if (link === void 0) { link = new Link(this.vol, this, name); }\n this.children[name] = link;\n link.parent = this;\n this.length++;\n this.emit('child:add', link, this);\n return link;\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 Link.prototype.getChild = function (name) {\n if (Object.hasOwnProperty.call(this.children, name)) {\n return this.children[name];\n }\n };\n Link.prototype.getPath = function () {\n return this.steps.join(exports.SEP);\n };\n Link.prototype.getName = function () {\n return this.steps[this.steps.length - 1];\n };\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 * 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 Link.prototype.walk = function (steps, stop, i) {\n if (stop === void 0) { stop = steps.length; }\n if (i === void 0) { i = 0; }\n if (i >= steps.length)\n return this;\n if (i >= stop)\n return this;\n var step = steps[i];\n var link = this.getChild(step);\n if (!link)\n return null;\n return link.walk(steps, stop, i + 1);\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 Link.prototype.syncSteps = function () {\n this.steps = this.parent ? this.parent.steps.concat([this.name]) : [this.name];\n };\n return Link;\n}(events_1.EventEmitter));\nexports.Link = Link;\n/**\n * Represents an open file (file descriptor) that points to a `Link` (Hard-link) and a `Node`.\n */\nvar File = /** @class */ (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 File.prototype.getString = function (encoding) {\n if (encoding === void 0) { encoding = 'utf8'; }\n return this.node.getString();\n };\n File.prototype.setString = function (str) {\n this.node.setString(str);\n };\n File.prototype.getBuffer = function () {\n return this.node.getBuffer();\n };\n File.prototype.setBuffer = function (buf) {\n this.node.setBuffer(buf);\n };\n File.prototype.getSize = function () {\n return this.node.getSize();\n };\n File.prototype.truncate = function (len) {\n this.node.truncate(len);\n };\n File.prototype.seekTo = function (position) {\n this.position = position;\n };\n File.prototype.stats = function () {\n return Stats_1.default.build(this.node);\n };\n File.prototype.write = function (buf, offset, length, position) {\n if (offset === void 0) { offset = 0; }\n if (length === void 0) { length = buf.length; }\n if (typeof position !== 'number')\n position = this.position;\n if (this.flags & O_APPEND)\n position = this.getSize();\n var bytes = this.node.write(buf, offset, length, position);\n this.position = position + bytes;\n return bytes;\n };\n File.prototype.read = function (buf, offset, length, position) {\n if (offset === void 0) { offset = 0; }\n if (length === void 0) { length = buf.byteLength; }\n if (typeof position !== 'number')\n position = this.position;\n var bytes = this.node.read(buf, offset, length, position);\n this.position = position + bytes;\n return bytes;\n };\n File.prototype.chmod = function (perm) {\n this.node.chmod(perm);\n };\n File.prototype.chown = function (uid, gid) {\n this.node.chown(uid, gid);\n };\n return File;\n}());\nexports.File = File;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * `setTimeoutUnref` is just like `setTimeout`,\n * only in Node's environment it will \"unref\" its macro task.\n */\nfunction setTimeoutUnref(callback, time, args) {\n var ref = setTimeout.apply(typeof globalThis !== 'undefined' ? globalThis : global, arguments);\n if (ref && typeof ref === 'object' && typeof ref.unref === 'function')\n ref.unref();\n return ref;\n}\nexports.default = setTimeoutUnref;\n","\"use strict\";\nvar __spreadArray = (this && this.__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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FileHandle = void 0;\nfunction promisify(vol, fn, getResult) {\n if (getResult === void 0) { getResult = function (input) { return input; }; }\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\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)\n return reject(error);\n return resolve(getResult(result));\n }], false));\n });\n };\n}\nvar FileHandle = /** @class */ (function () {\n function FileHandle(vol, fd) {\n this.vol = vol;\n this.fd = fd;\n }\n FileHandle.prototype.appendFile = function (data, options) {\n return promisify(this.vol, 'appendFile')(this.fd, data, options);\n };\n FileHandle.prototype.chmod = function (mode) {\n return promisify(this.vol, 'fchmod')(this.fd, mode);\n };\n FileHandle.prototype.chown = function (uid, gid) {\n return promisify(this.vol, 'fchown')(this.fd, uid, gid);\n };\n FileHandle.prototype.close = function () {\n return promisify(this.vol, 'close')(this.fd);\n };\n FileHandle.prototype.datasync = function () {\n return promisify(this.vol, 'fdatasync')(this.fd);\n };\n FileHandle.prototype.read = function (buffer, offset, length, position) {\n return promisify(this.vol, 'read', function (bytesRead) { return ({ bytesRead: bytesRead, buffer: buffer }); })(this.fd, buffer, offset, length, position);\n };\n FileHandle.prototype.readFile = function (options) {\n return promisify(this.vol, 'readFile')(this.fd, options);\n };\n FileHandle.prototype.stat = function (options) {\n return promisify(this.vol, 'fstat')(this.fd, options);\n };\n FileHandle.prototype.sync = function () {\n return promisify(this.vol, 'fsync')(this.fd);\n };\n FileHandle.prototype.truncate = function (len) {\n return promisify(this.vol, 'ftruncate')(this.fd, len);\n };\n FileHandle.prototype.utimes = function (atime, mtime) {\n return promisify(this.vol, 'futimes')(this.fd, atime, mtime);\n };\n FileHandle.prototype.write = function (buffer, offset, length, position) {\n return promisify(this.vol, 'write', function (bytesWritten) { return ({ bytesWritten: bytesWritten, buffer: buffer }); })(this.fd, buffer, offset, length, position);\n };\n FileHandle.prototype.writeFile = function (data, options) {\n return promisify(this.vol, 'writeFile')(this.fd, data, options);\n };\n return FileHandle;\n}());\nexports.FileHandle = FileHandle;\nfunction createPromisesApi(vol) {\n if (typeof Promise === 'undefined')\n 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) { return new FileHandle(vol, fd); })(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 rm: function (path, options) {\n return promisify(vol, 'rm')(path, options);\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}\nexports.default = createPromisesApi;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.unixify = unixify;\nexports.correctPath = correctPath;\nvar isWin = process.platform === 'win32';\n\nfunction 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\nfunction isSeparator(str, i) {\n var _char = str[i];\n return i > 0 && (_char === '/' || isWin && _char === '\\\\');\n}\n\nfunction 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\nfunction 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\nfunction correctPath(filepath) {\n return unixify(filepath.replace(/^\\\\\\\\\\?\\\\.:\\\\/, '\\\\'));\n}","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __spreadArray = (this && this.__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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FSWatcher = exports.StatWatcher = exports.Volume = exports.toUnixTimestamp = exports.bufferToEncoding = exports.dataToBuffer = exports.dataToStr = exports.pathToSteps = exports.filenameToSteps = exports.pathToFilename = exports.flagsToNumber = exports.FLAGS = void 0;\nvar pathModule = require(\"path\");\nvar node_1 = require(\"./node\");\nvar Stats_1 = require(\"./Stats\");\nvar Dirent_1 = require(\"./Dirent\");\nvar buffer_1 = require(\"./internal/buffer\");\nvar setImmediate_1 = require(\"./setImmediate\");\nvar process_1 = require(\"./process\");\nvar setTimeoutUnref_1 = require(\"./setTimeoutUnref\");\nvar stream_1 = require(\"stream\");\nvar constants_1 = require(\"./constants\");\nvar events_1 = require(\"events\");\nvar encoding_1 = require(\"./encoding\");\nvar errors = require(\"./internal/errors\");\nvar util = require(\"util\");\nvar promises_1 = require(\"./promises\");\nvar resolveCrossPlatform = pathModule.resolve;\nvar O_RDONLY = constants_1.constants.O_RDONLY, O_WRONLY = constants_1.constants.O_WRONLY, O_RDWR = constants_1.constants.O_RDWR, O_CREAT = constants_1.constants.O_CREAT, O_EXCL = constants_1.constants.O_EXCL, O_TRUNC = constants_1.constants.O_TRUNC, O_APPEND = constants_1.constants.O_APPEND, O_SYNC = constants_1.constants.O_SYNC, O_DIRECTORY = constants_1.constants.O_DIRECTORY, F_OK = constants_1.constants.F_OK, COPYFILE_EXCL = constants_1.constants.COPYFILE_EXCL, COPYFILE_FICLONE_FORCE = constants_1.constants.COPYFILE_FICLONE_FORCE;\nvar _a = pathModule.posix ? pathModule.posix : pathModule, sep = _a.sep, relative = _a.relative, join = _a.join, dirname = _a.dirname;\nvar isWin = process_1.default.platform === 'win32';\nvar kMinPoolSpace = 128;\n// const kMaxLength = require('buffer').kMaxLength;\n// ---------------------------------------- Error messages\n// TODO: Use `internal/errors.js` in the future.\nvar 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};\nvar ERRSTR_OPTS = function (tipeof) { return \"Expected options to be either an object or a string, but got \".concat(tipeof, \" instead\"); };\n// const ERRSTR_FLAG = flag => `Unknown file open flag: ${flag}`;\nvar ENOENT = 'ENOENT';\nvar EBADF = 'EBADF';\nvar EINVAL = 'EINVAL';\nvar EPERM = 'EPERM';\nvar EPROTO = 'EPROTO';\nvar EEXIST = 'EEXIST';\nvar ENOTDIR = 'ENOTDIR';\nvar EMFILE = 'EMFILE';\nvar EACCES = 'EACCES';\nvar EISDIR = 'EISDIR';\nvar ENOTEMPTY = 'ENOTEMPTY';\nvar ENOSYS = 'ENOSYS';\nvar ERR_FS_EISDIR = 'ERR_FS_EISDIR';\nfunction formatError(errorCode, func, path, path2) {\n if (func === void 0) { func = ''; }\n if (path === void 0) { path = ''; }\n if (path2 === void 0) { path2 = ''; }\n var pathFormatted = '';\n if (path)\n pathFormatted = \" '\".concat(path, \"'\");\n if (path2)\n pathFormatted += \" -> '\".concat(path2, \"'\");\n switch (errorCode) {\n case ENOENT:\n return \"ENOENT: no such file or directory, \".concat(func).concat(pathFormatted);\n case EBADF:\n return \"EBADF: bad file descriptor, \".concat(func).concat(pathFormatted);\n case EINVAL:\n return \"EINVAL: invalid argument, \".concat(func).concat(pathFormatted);\n case EPERM:\n return \"EPERM: operation not permitted, \".concat(func).concat(pathFormatted);\n case EPROTO:\n return \"EPROTO: protocol error, \".concat(func).concat(pathFormatted);\n case EEXIST:\n return \"EEXIST: file already exists, \".concat(func).concat(pathFormatted);\n case ENOTDIR:\n return \"ENOTDIR: not a directory, \".concat(func).concat(pathFormatted);\n case EISDIR:\n return \"EISDIR: illegal operation on a directory, \".concat(func).concat(pathFormatted);\n case EACCES:\n return \"EACCES: permission denied, \".concat(func).concat(pathFormatted);\n case ENOTEMPTY:\n return \"ENOTEMPTY: directory not empty, \".concat(func).concat(pathFormatted);\n case EMFILE:\n return \"EMFILE: too many open files, \".concat(func).concat(pathFormatted);\n case ENOSYS:\n return \"ENOSYS: function not implemented, \".concat(func).concat(pathFormatted);\n case ERR_FS_EISDIR:\n return \"[ERR_FS_EISDIR]: Path is a directory: \".concat(func, \" returned EISDIR (is a directory) \").concat(path);\n default:\n return \"\".concat(errorCode, \": error occurred, \").concat(func).concat(pathFormatted);\n }\n}\nfunction createError(errorCode, func, path, path2, Constructor) {\n if (func === void 0) { func = ''; }\n if (path === void 0) { path = ''; }\n if (path2 === void 0) { path2 = ''; }\n if (Constructor === void 0) { Constructor = Error; }\n var error = new Constructor(formatError(errorCode, func, path, path2));\n error.code = errorCode;\n if (path) {\n error.path = path;\n }\n return error;\n}\n// ---------------------------------------- Flags\n// List of file `flags` as defined by Node.\nvar FLAGS;\n(function (FLAGS) {\n // Open file for reading. An exception occurs if the file does not exist.\n FLAGS[FLAGS[\"r\"] = O_RDONLY] = \"r\";\n // Open file for reading and writing. An exception occurs if the file does not exist.\n FLAGS[FLAGS[\"r+\"] = O_RDWR] = \"r+\";\n // Open file for reading in synchronous mode. Instructs the operating system to bypass the local file system cache.\n FLAGS[FLAGS[\"rs\"] = O_RDONLY | O_SYNC] = \"rs\";\n FLAGS[FLAGS[\"sr\"] = FLAGS.rs] = \"sr\";\n // Open file for reading and writing, telling the OS to open it synchronously. See notes for 'rs' about using this with caution.\n FLAGS[FLAGS[\"rs+\"] = O_RDWR | O_SYNC] = \"rs+\";\n FLAGS[FLAGS[\"sr+\"] = FLAGS['rs+']] = \"sr+\";\n // Open file for writing. The file is created (if it does not exist) or truncated (if it exists).\n FLAGS[FLAGS[\"w\"] = O_WRONLY | O_CREAT | O_TRUNC] = \"w\";\n // Like 'w' but fails if path exists.\n FLAGS[FLAGS[\"wx\"] = O_WRONLY | O_CREAT | O_TRUNC | O_EXCL] = \"wx\";\n FLAGS[FLAGS[\"xw\"] = FLAGS.wx] = \"xw\";\n // Open file for reading and writing. The file is created (if it does not exist) or truncated (if it exists).\n FLAGS[FLAGS[\"w+\"] = O_RDWR | O_CREAT | O_TRUNC] = \"w+\";\n // Like 'w+' but fails if path exists.\n FLAGS[FLAGS[\"wx+\"] = O_RDWR | O_CREAT | O_TRUNC | O_EXCL] = \"wx+\";\n FLAGS[FLAGS[\"xw+\"] = FLAGS['wx+']] = \"xw+\";\n // Open file for appending. The file is created if it does not exist.\n FLAGS[FLAGS[\"a\"] = O_WRONLY | O_APPEND | O_CREAT] = \"a\";\n // Like 'a' but fails if path exists.\n FLAGS[FLAGS[\"ax\"] = O_WRONLY | O_APPEND | O_CREAT | O_EXCL] = \"ax\";\n FLAGS[FLAGS[\"xa\"] = FLAGS.ax] = \"xa\";\n // Open file for reading and appending. The file is created if it does not exist.\n FLAGS[FLAGS[\"a+\"] = O_RDWR | O_APPEND | O_CREAT] = \"a+\";\n // Like 'a+' but fails if path exists.\n FLAGS[FLAGS[\"ax+\"] = O_RDWR | O_APPEND | O_CREAT | O_EXCL] = \"ax+\";\n FLAGS[FLAGS[\"xa+\"] = FLAGS['ax+']] = \"xa+\";\n})(FLAGS = exports.FLAGS || (exports.FLAGS = {}));\nfunction flagsToNumber(flags) {\n if (typeof flags === 'number')\n return flags;\n if (typeof flags === 'string') {\n var flagsNum = FLAGS[flags];\n if (typeof flagsNum !== 'undefined')\n return flagsNum;\n }\n // throw new TypeError(formatError(ERRSTR_FLAG(flags)));\n throw new errors.TypeError('ERR_INVALID_OPT_VALUE', 'flags', flags);\n}\nexports.flagsToNumber = flagsToNumber;\n// ---------------------------------------- Options\nfunction getOptions(defaults, options) {\n var opts;\n if (!options)\n return defaults;\n else {\n var tipeof = typeof options;\n switch (tipeof) {\n case 'string':\n opts = Object.assign({}, defaults, { encoding: options });\n break;\n case 'object':\n opts = Object.assign({}, defaults, options);\n break;\n default:\n throw TypeError(ERRSTR_OPTS(tipeof));\n }\n }\n if (opts.encoding !== 'buffer')\n (0, encoding_1.assertEncoding)(opts.encoding);\n return opts;\n}\nfunction optsGenerator(defaults) {\n return function (options) { return getOptions(defaults, options); };\n}\nfunction validateCallback(callback) {\n if (typeof callback !== 'function')\n throw TypeError(ERRSTR.CB);\n return callback;\n}\nfunction optsAndCbGenerator(getOpts) {\n return function (options, callback) {\n return typeof options === 'function' ? [getOpts(), options] : [getOpts(options), validateCallback(callback)];\n };\n}\nvar optsDefaults = {\n encoding: 'utf8',\n};\nvar getDefaultOpts = optsGenerator(optsDefaults);\nvar getDefaultOptsAndCb = optsAndCbGenerator(getDefaultOpts);\nvar readFileOptsDefaults = {\n flag: 'r',\n};\nvar getReadFileOptions = optsGenerator(readFileOptsDefaults);\nvar writeFileDefaults = {\n encoding: 'utf8',\n mode: 438 /* MODE.DEFAULT */,\n flag: FLAGS[FLAGS.w],\n};\nvar getWriteFileOptions = optsGenerator(writeFileDefaults);\nvar appendFileDefaults = {\n encoding: 'utf8',\n mode: 438 /* MODE.DEFAULT */,\n flag: FLAGS[FLAGS.a],\n};\nvar getAppendFileOpts = optsGenerator(appendFileDefaults);\nvar getAppendFileOptsAndCb = optsAndCbGenerator(getAppendFileOpts);\nvar realpathDefaults = optsDefaults;\nvar getRealpathOptions = optsGenerator(realpathDefaults);\nvar getRealpathOptsAndCb = optsAndCbGenerator(getRealpathOptions);\nvar mkdirDefaults = {\n mode: 511 /* MODE.DIR */,\n recursive: false,\n};\nvar getMkdirOptions = function (options) {\n if (typeof options === 'number')\n return Object.assign({}, mkdirDefaults, { mode: options });\n return Object.assign({}, mkdirDefaults, options);\n};\nvar rmdirDefaults = {\n recursive: false,\n};\nvar getRmdirOptions = function (options) {\n return Object.assign({}, rmdirDefaults, options);\n};\nvar getRmOpts = optsGenerator(optsDefaults);\nvar getRmOptsAndCb = optsAndCbGenerator(getRmOpts);\nvar readdirDefaults = {\n encoding: 'utf8',\n withFileTypes: false,\n};\nvar getReaddirOptions = optsGenerator(readdirDefaults);\nvar getReaddirOptsAndCb = optsAndCbGenerator(getReaddirOptions);\nvar statDefaults = {\n bigint: false,\n};\nvar getStatOptions = function (options) {\n if (options === void 0) { options = {}; }\n return Object.assign({}, statDefaults, options);\n};\nvar getStatOptsAndCb = function (options, callback) {\n return typeof options === 'function' ? [getStatOptions(), options] : [getStatOptions(options), validateCallback(callback)];\n};\n// ---------------------------------------- Utility functions\nfunction getPathFromURLPosix(url) {\n if (url.hostname !== '') {\n throw new errors.TypeError('ERR_INVALID_FILE_URL_HOST', process_1.default.platform);\n }\n var pathname = url.pathname;\n for (var n = 0; n < pathname.length; n++) {\n if (pathname[n] === '%') {\n var third = pathname.codePointAt(n + 2) | 0x20;\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 return decodeURIComponent(pathname);\n}\nfunction pathToFilename(path) {\n if (typeof path !== 'string' && !buffer_1.Buffer.isBuffer(path)) {\n try {\n if (!(path instanceof require('url').URL))\n throw new TypeError(ERRSTR.PATH_STR);\n }\n catch (err) {\n throw new TypeError(ERRSTR.PATH_STR);\n }\n path = getPathFromURLPosix(path);\n }\n var pathString = String(path);\n nullCheck(pathString);\n // return slash(pathString);\n return pathString;\n}\nexports.pathToFilename = pathToFilename;\nvar resolve = function (filename, base) {\n if (base === void 0) { base = process_1.default.cwd(); }\n return resolveCrossPlatform(base, filename);\n};\nif (isWin) {\n var _resolve_1 = resolve;\n var unixify_1 = require('fs-monkey/lib/correctPath').unixify;\n resolve = function (filename, base) { return unixify_1(_resolve_1(filename, base)); };\n}\nfunction filenameToSteps(filename, base) {\n var fullPath = resolve(filename, base);\n var fullPathSansSlash = fullPath.substring(1);\n if (!fullPathSansSlash)\n return [];\n return fullPathSansSlash.split(sep);\n}\nexports.filenameToSteps = filenameToSteps;\nfunction pathToSteps(path) {\n return filenameToSteps(pathToFilename(path));\n}\nexports.pathToSteps = pathToSteps;\nfunction dataToStr(data, encoding) {\n if (encoding === void 0) { encoding = encoding_1.ENCODING_UTF8; }\n if (buffer_1.Buffer.isBuffer(data))\n return data.toString(encoding);\n else if (data instanceof Uint8Array)\n return (0, buffer_1.bufferFrom)(data).toString(encoding);\n else\n return String(data);\n}\nexports.dataToStr = dataToStr;\nfunction dataToBuffer(data, encoding) {\n if (encoding === void 0) { encoding = encoding_1.ENCODING_UTF8; }\n if (buffer_1.Buffer.isBuffer(data))\n return data;\n else if (data instanceof Uint8Array)\n return (0, buffer_1.bufferFrom)(data);\n else\n return (0, buffer_1.bufferFrom)(String(data), encoding);\n}\nexports.dataToBuffer = dataToBuffer;\nfunction bufferToEncoding(buffer, encoding) {\n if (!encoding || encoding === 'buffer')\n return buffer;\n else\n return buffer.toString(encoding);\n}\nexports.bufferToEncoding = bufferToEncoding;\nfunction nullCheck(path, callback) {\n if (('' + path).indexOf('\\u0000') !== -1) {\n var er = new Error('Path must be a string without null bytes');\n er.code = ENOENT;\n if (typeof callback !== 'function')\n throw er;\n process_1.default.nextTick(callback, er);\n return false;\n }\n return true;\n}\nfunction _modeToNumber(mode, def) {\n if (typeof mode === 'number')\n return mode;\n if (typeof mode === 'string')\n return parseInt(mode, 8);\n if (def)\n return modeToNumber(def);\n return undefined;\n}\nfunction modeToNumber(mode, def) {\n var result = _modeToNumber(mode, def);\n if (typeof result !== 'number' || isNaN(result))\n throw new TypeError(ERRSTR.MODE_INT);\n return result;\n}\nfunction isFd(path) {\n return path >>> 0 === path;\n}\nfunction validateFd(fd) {\n if (!isFd(fd))\n throw TypeError(ERRSTR.FD);\n}\n// converts Date or number to a fractional UNIX timestamp\nfunction toUnixTimestamp(time) {\n // tslint:disable-next-line triple-equals\n if (typeof time === 'string' && +time == time) {\n return +time;\n }\n if (time instanceof Date) {\n return time.getTime() / 1000;\n }\n if (isFinite(time)) {\n if (time < 0) {\n return Date.now() / 1000;\n }\n return time;\n }\n throw new Error('Cannot parse time: ' + time);\n}\nexports.toUnixTimestamp = toUnixTimestamp;\nfunction validateUid(uid) {\n if (typeof uid !== 'number')\n throw TypeError(ERRSTR.UID);\n}\nfunction validateGid(gid) {\n if (typeof gid !== 'number')\n throw TypeError(ERRSTR.GID);\n}\nfunction flattenJSON(nestedJSON) {\n var flatJSON = {};\n function flatten(pathPrefix, node) {\n for (var path in node) {\n var contentOrNode = node[path];\n var joinedPath = join(pathPrefix, path);\n if (typeof contentOrNode === 'string') {\n flatJSON[joinedPath] = contentOrNode;\n }\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 }\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 flatten('', nestedJSON);\n return flatJSON;\n}\n/**\n * `Volume` represents a file system.\n */\nvar Volume = /** @class */ (function () {\n function Volume(props) {\n if (props === void 0) { props = {}; }\n // I-node number counter.\n this.ino = 0;\n // A mapping for i-node numbers to i-nodes (`Node`);\n this.inodes = {};\n // List of released i-node numbers, for reuse.\n this.releasedInos = [];\n // A mapping for file descriptors to `File`s.\n this.fds = {};\n // A list of reusable (opened and closed) file descriptors, that should be\n // used first before creating a new file descriptor.\n this.releasedFds = [];\n // Max number of open files.\n this.maxFiles = 10000;\n // Current number of open files.\n this.openFiles = 0;\n this.promisesApi = (0, promises_1.default)(this);\n this.statWatchers = {};\n this.props = Object.assign({ Node: node_1.Node, Link: node_1.Link, File: node_1.File }, props);\n var root = this.createLink();\n root.setNode(this.createNode(true));\n var self = this; // tslint:disable-line no-this-assignment\n this.StatWatcher = /** @class */ (function (_super) {\n __extends(StatWatcher, _super);\n function StatWatcher() {\n return _super.call(this, self) || this;\n }\n return StatWatcher;\n }(StatWatcher));\n var _ReadStream = FsReadStream;\n this.ReadStream = /** @class */ (function (_super) {\n __extends(class_1, _super);\n function class_1() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return _super.apply(this, __spreadArray([self], args, false)) || this;\n }\n return class_1;\n }(_ReadStream));\n var _WriteStream = FsWriteStream;\n this.WriteStream = /** @class */ (function (_super) {\n __extends(class_2, _super);\n function class_2() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return _super.apply(this, __spreadArray([self], args, false)) || this;\n }\n return class_2;\n }(_WriteStream));\n this.FSWatcher = /** @class */ (function (_super) {\n __extends(FSWatcher, _super);\n function FSWatcher() {\n return _super.call(this, self) || this;\n }\n return FSWatcher;\n }(FSWatcher));\n // root.setChild('.', root);\n // root.getNode().nlink++;\n // root.setChild('..', root);\n // root.getNode().nlink++;\n this.root = root;\n }\n Volume.fromJSON = function (json, cwd) {\n var vol = new Volume();\n vol.fromJSON(json, cwd);\n return vol;\n };\n Volume.fromNestedJSON = function (json, cwd) {\n var vol = new Volume();\n vol.fromNestedJSON(json, cwd);\n return vol;\n };\n Object.defineProperty(Volume.prototype, \"promises\", {\n get: function () {\n if (this.promisesApi === null)\n throw new Error('Promise is not supported in this environment.');\n return this.promisesApi;\n },\n enumerable: false,\n configurable: true\n });\n Volume.prototype.createLink = function (parent, name, isDirectory, perm) {\n if (isDirectory === void 0) { isDirectory = false; }\n if (!parent) {\n return new this.props.Link(this, null, '');\n }\n if (!name) {\n throw new Error('createLink: name cannot be empty');\n }\n return parent.createChild(name, this.createNode(isDirectory, perm));\n };\n Volume.prototype.deleteLink = function (link) {\n var parent = link.parent;\n if (parent) {\n parent.deleteChild(link);\n return true;\n }\n return false;\n };\n Volume.prototype.newInoNumber = function () {\n var releasedFd = this.releasedInos.pop();\n if (releasedFd)\n return releasedFd;\n else {\n this.ino = (this.ino + 1) % 0xffffffff;\n return this.ino;\n }\n };\n Volume.prototype.newFdNumber = function () {\n var releasedFd = this.releasedFds.pop();\n return typeof releasedFd === 'number' ? releasedFd : Volume.fd--;\n };\n Volume.prototype.createNode = function (isDirectory, perm) {\n if (isDirectory === void 0) { isDirectory = false; }\n var node = new this.props.Node(this.newInoNumber(), perm);\n if (isDirectory)\n node.setIsDirectory();\n this.inodes[node.ino] = node;\n return node;\n };\n Volume.prototype.getNode = function (ino) {\n return this.inodes[ino];\n };\n Volume.prototype.deleteNode = function (node) {\n node.del();\n delete this.inodes[node.ino];\n this.releasedInos.push(node.ino);\n };\n // Generates 6 character long random string, used by `mkdtemp`.\n Volume.prototype.genRndStr = function () {\n var str = (Math.random() + 1).toString(36).substring(2, 8);\n if (str.length === 6)\n return str;\n else\n return this.genRndStr();\n };\n // Returns a `Link` (hard link) referenced by path \"split\" into steps.\n Volume.prototype.getLink = function (steps) {\n return this.root.walk(steps);\n };\n // Just link `getLink`, but throws a correct user error, if link to found.\n Volume.prototype.getLinkOrThrow = function (filename, funcName) {\n var steps = filenameToSteps(filename);\n var link = this.getLink(steps);\n if (!link)\n throw createError(ENOENT, funcName, filename);\n return link;\n };\n // Just like `getLink`, but also dereference/resolves symbolic links.\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 while (i < steps.length) {\n var step = steps[i];\n link = link.getChild(step);\n if (!link)\n return null;\n var node = link.getNode();\n if (node.isSymlink()) {\n steps = node.symlink.concat(steps.slice(i + 1));\n link = this.root;\n i = 0;\n continue;\n }\n i++;\n }\n return link;\n };\n // Just like `getLinkOrThrow`, but also dereference/resolves symbolic links.\n Volume.prototype.getResolvedLinkOrThrow = function (filename, funcName) {\n var link = this.getResolvedLink(filename);\n if (!link)\n throw createError(ENOENT, funcName, filename);\n return link;\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 };\n // Just like `getLinkOrThrow`, but also verifies that the link is a directory.\n Volume.prototype.getLinkAsDirOrThrow = function (filename, funcName) {\n var link = this.getLinkOrThrow(filename, funcName);\n if (!link.getNode().isDirectory())\n throw createError(ENOTDIR, funcName, filename);\n return link;\n };\n // Get the immediate parent directory of the link.\n Volume.prototype.getLinkParent = function (steps) {\n return this.root.walk(steps, steps.length - 1);\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)\n throw createError(ENOENT, funcName, sep + steps.join(sep));\n if (!link.getNode().isDirectory())\n throw createError(ENOTDIR, funcName, sep + steps.join(sep));\n return link;\n };\n Volume.prototype.getFileByFd = function (fd) {\n return this.fds[String(fd)];\n };\n Volume.prototype.getFileByFdOrThrow = function (fd, funcName) {\n if (!isFd(fd))\n throw TypeError(ERRSTR.FD);\n var file = this.getFileByFd(fd);\n if (!file)\n throw createError(EBADF, funcName);\n return file;\n };\n /**\n * @todo This is not used anymore. Remove.\n */\n /*\n private getNodeByIdOrCreate(id: TFileId, flags: number, perm: number): Node {\n if (typeof id === 'number') {\n const file = this.getFileByFd(id);\n if (!file) throw Error('File nto found');\n return file.node;\n } else {\n const steps = pathToSteps(id as PathLike);\n let link = this.getLink(steps);\n if (link) return link.getNode();\n \n // Try creating a node if not found.\n if (flags & O_CREAT) {\n const dirLink = this.getLinkParent(steps);\n if (dirLink) {\n const name = steps[steps.length - 1];\n link = this.createLink(dirLink, name, 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 validateCallback(callback);\n (0, setImmediate_1.default)(function () {\n var result;\n try {\n result = method.apply(_this, args);\n }\n catch (err) {\n callback(err);\n return;\n }\n callback(null, result);\n });\n };\n Volume.prototype._toJSON = function (link, json, path) {\n var _a;\n if (link === void 0) { link = this.root; }\n if (json === void 0) { json = {}; }\n var isEmpty = true;\n var children = link.children;\n if (link.getNode().isFile()) {\n children = (_a = {}, _a[link.getName()] = link.parent.getChild(link.getName()), _a);\n link = link.parent;\n }\n for (var name_1 in children) {\n isEmpty = false;\n var child = link.getChild(name_1);\n if (!child) {\n throw new Error('_toJSON: unexpected undefined');\n }\n var node = child.getNode();\n if (node.isFile()) {\n var filename = child.getPath();\n if (path)\n filename = relative(path, filename);\n json[filename] = node.getString();\n }\n else if (node.isDirectory()) {\n this._toJSON(child, json, path);\n }\n }\n var dirPath = link.getPath();\n if (path)\n dirPath = relative(path, dirPath);\n if (dirPath && isEmpty) {\n json[dirPath] = null;\n }\n return json;\n };\n Volume.prototype.toJSON = function (paths, json, isRelative) {\n if (json === void 0) { json = {}; }\n if (isRelative === void 0) { isRelative = false; }\n var links = [];\n if (paths) {\n if (!(paths instanceof Array))\n paths = [paths];\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)\n continue;\n links.push(link);\n }\n }\n else {\n links.push(this.root);\n }\n if (!links.length)\n return json;\n for (var _a = 0, links_1 = links; _a < links_1.length; _a++) {\n var link = links_1[_a];\n this._toJSON(link, json, isRelative ? link.getPath() : '');\n }\n return json;\n };\n Volume.prototype.fromJSON = function (json, cwd) {\n if (cwd === void 0) { cwd = process_1.default.cwd(); }\n for (var filename in json) {\n var data = json[filename];\n filename = resolve(filename, cwd);\n if (typeof data === 'string') {\n var dir = dirname(filename);\n this.mkdirpBase(dir, 511 /* MODE.DIR */);\n this.writeFileSync(filename, data);\n }\n else {\n this.mkdirpBase(filename, 511 /* MODE.DIR */);\n }\n }\n };\n Volume.prototype.fromNestedJSON = function (json, cwd) {\n this.fromJSON(flattenJSON(json), cwd);\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 };\n // Legacy interface\n Volume.prototype.mountSync = function (mountpoint, json) {\n this.fromJSON(json, mountpoint);\n };\n Volume.prototype.openLink = function (link, flagsNum, resolveSymlinks) {\n if (resolveSymlinks === void 0) { resolveSymlinks = true; }\n if (this.openFiles >= this.maxFiles) {\n // Too many open files.\n throw createError(EMFILE, 'open', link.getPath());\n }\n // Resolve symlinks.\n var realLink = link;\n if (resolveSymlinks)\n realLink = this.resolveSymlinks(link);\n if (!realLink)\n throw createError(ENOENT, 'open', link.getPath());\n var node = realLink.getNode();\n // Check whether node is a directory\n if (node.isDirectory()) {\n if ((flagsNum & (O_RDONLY | O_RDWR | O_WRONLY)) !== O_RDONLY)\n throw createError(EISDIR, 'open', link.getPath());\n }\n else {\n if (flagsNum & O_DIRECTORY)\n throw createError(ENOTDIR, 'open', link.getPath());\n }\n // Check node permissions\n if (!(flagsNum & O_WRONLY)) {\n if (!node.canRead()) {\n throw createError(EACCES, 'open', link.getPath());\n }\n }\n if (flagsNum & O_RDWR) {\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)\n file.truncate();\n return file;\n };\n Volume.prototype.openFile = function (filename, flagsNum, modeNum, resolveSymlinks) {\n if (resolveSymlinks === void 0) { resolveSymlinks = true; }\n var steps = filenameToSteps(filename);\n var link = resolveSymlinks ? this.getResolvedLink(steps) : this.getLink(steps);\n if (link && flagsNum & O_EXCL)\n throw createError(EEXIST, 'open', filename);\n // Try creating a new file, if it does not exist.\n if (!link && flagsNum & O_CREAT) {\n // const dirLink: Link = this.getLinkParent(steps);\n var dirLink = this.getResolvedLink(steps.slice(0, steps.length - 1));\n // if(!dirLink) throw createError(ENOENT, 'open', filename);\n if (!dirLink)\n throw createError(ENOENT, 'open', sep + steps.join(sep));\n if (flagsNum & O_CREAT && typeof modeNum === 'number') {\n link = this.createLink(dirLink, steps[steps.length - 1], false, modeNum);\n }\n }\n if (link)\n return this.openLink(link, flagsNum, resolveSymlinks);\n throw createError(ENOENT, 'open', filename);\n };\n Volume.prototype.openBase = function (filename, flagsNum, modeNum, resolveSymlinks) {\n if (resolveSymlinks === void 0) { resolveSymlinks = true; }\n var file = this.openFile(filename, flagsNum, modeNum, resolveSymlinks);\n if (!file)\n throw createError(ENOENT, 'open', filename);\n return file.fd;\n };\n Volume.prototype.openSync = function (path, flags, mode) {\n if (mode === void 0) { mode = 438 /* MODE.DEFAULT */; }\n // Validate (1) mode; (2) path; (3) flags - in that order.\n var modeNum = modeToNumber(mode);\n var fileName = pathToFilename(path);\n var flagsNum = flagsToNumber(flags);\n return this.openBase(fileName, flagsNum, modeNum);\n };\n Volume.prototype.open = function (path, flags, a, b) {\n var mode = a;\n var callback = b;\n if (typeof a === 'function') {\n mode = 438 /* MODE.DEFAULT */;\n callback = a;\n }\n mode = mode || 438 /* MODE.DEFAULT */;\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 Volume.prototype.closeFile = function (file) {\n if (!this.fds[file.fd])\n return;\n this.openFiles--;\n delete this.fds[file.fd];\n this.releasedFds.push(file.fd);\n };\n Volume.prototype.closeSync = function (fd) {\n validateFd(fd);\n var file = this.getFileByFdOrThrow(fd, 'close');\n this.closeFile(file);\n };\n Volume.prototype.close = function (fd, callback) {\n validateFd(fd);\n this.wrapAsync(this.closeSync, [fd], callback);\n };\n Volume.prototype.openFileOrGetById = function (id, flagsNum, modeNum) {\n if (typeof id === 'number') {\n var file = this.fds[id];\n if (!file)\n throw createError(ENOENT);\n return file;\n }\n else {\n return this.openFile(pathToFilename(id), flagsNum, modeNum);\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 Volume.prototype.readSync = function (fd, buffer, offset, length, position) {\n validateFd(fd);\n return this.readBase(fd, buffer, offset, length, position);\n };\n Volume.prototype.read = function (fd, buffer, offset, length, position, callback) {\n var _this = this;\n validateCallback(callback);\n // This `if` branch is from Node.js\n if (length === 0) {\n return process_1.default.nextTick(function () {\n if (callback)\n callback(null, 0, buffer);\n });\n }\n (0, setImmediate_1.default)(function () {\n try {\n var bytes = _this.readBase(fd, buffer, offset, length, position);\n callback(null, bytes, buffer);\n }\n catch (err) {\n callback(err);\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)\n fd = id;\n else {\n var filename = pathToFilename(id);\n var steps = filenameToSteps(filename);\n var link = this.getResolvedLink(steps);\n if (link) {\n var node = link.getNode();\n if (node.isDirectory())\n throw createError(EISDIR, 'open', link.getPath());\n }\n fd = this.openSync(id, flagsNum);\n }\n try {\n result = bufferToEncoding(this.getFileByFdOrThrow(fd).getBuffer(), encoding);\n }\n finally {\n if (!userOwnsFd) {\n this.closeSync(fd);\n }\n }\n return result;\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 Volume.prototype.readFile = function (id, a, b) {\n var _a = optsAndCbGenerator(getReadFileOptions)(a, b), opts = _a[0], callback = _a[1];\n var flagsNum = flagsToNumber(opts.flag);\n this.wrapAsync(this.readFileBase, [id, flagsNum, opts.encoding], callback);\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 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 if (isBuffer) {\n offset = (b || 0) | 0;\n length = c;\n position = d;\n }\n else {\n position = b;\n encoding = c;\n }\n var buf = dataToBuffer(a, encoding);\n if (isBuffer) {\n if (typeof length === 'undefined') {\n length = buf.length;\n }\n }\n else {\n offset = 0;\n length = buf.length;\n }\n return this.writeBase(fd, buf, offset, length, position);\n };\n Volume.prototype.write = function (fd, a, b, c, d, e) {\n var _this = this;\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 if (tipa !== 'string') {\n if (tipb === 'function') {\n callback = b;\n }\n else if (tipc === 'function') {\n offset = b | 0;\n callback = c;\n }\n else if (tipd === 'function') {\n offset = b | 0;\n length = c;\n callback = d;\n }\n else {\n offset = b | 0;\n length = c;\n position = d;\n callback = e;\n }\n }\n else {\n if (tipb === 'function') {\n callback = b;\n }\n else if (tipc === 'function') {\n position = b;\n callback = c;\n }\n else if (tipd === 'function') {\n position = b;\n encoding = c;\n callback = d;\n }\n }\n var buf = dataToBuffer(a, encoding);\n if (tipa !== 'string') {\n if (typeof length === 'undefined')\n length = buf.length;\n }\n else {\n offset = 0;\n length = buf.length;\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 if (tipa !== 'string') {\n cb(null, bytes, buf);\n }\n else {\n cb(null, bytes, a);\n }\n }\n catch (err) {\n cb(err);\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)\n fd = id;\n else {\n fd = this.openBase(pathToFilename(id), flagsNum, modeNum);\n // 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 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)\n position += written;\n }\n }\n finally {\n if (!isUserFd)\n this.closeSync(fd);\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 Volume.prototype.writeFile = function (id, data, a, b) {\n var options = a;\n var callback = b;\n if (typeof a === 'function') {\n options = writeFileDefaults;\n callback = a;\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 Volume.prototype.linkBase = function (filename1, filename2) {\n var steps1 = filenameToSteps(filename1);\n var link1 = this.getLink(steps1);\n if (!link1)\n throw createError(ENOENT, 'link', filename1, filename2);\n var steps2 = filenameToSteps(filename2);\n // Check new link directory exists.\n var dir2 = this.getLinkParent(steps2);\n if (!dir2)\n throw createError(ENOENT, 'link', filename1, filename2);\n var name = steps2[steps2.length - 1];\n // Check if new file already exists.\n if (dir2.getChild(name))\n throw createError(EEXIST, 'link', filename1, filename2);\n var node = link1.getNode();\n node.nlink++;\n dir2.createChild(name, node);\n };\n Volume.prototype.copyFileBase = function (src, dest, flags) {\n var buf = this.readFileSync(src);\n if (flags & COPYFILE_EXCL) {\n if (this.existsSync(dest)) {\n throw createError(EEXIST, 'copyFile', src, dest);\n }\n }\n if (flags & COPYFILE_FICLONE_FORCE) {\n throw createError(ENOSYS, 'copyFile', src, dest);\n }\n this.writeFileBase(dest, buf, FLAGS.w, 438 /* MODE.DEFAULT */);\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 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 if (typeof a === 'function') {\n flags = 0;\n callback = a;\n }\n else {\n flags = a;\n callback = b;\n }\n validateCallback(callback);\n this.wrapAsync(this.copyFileBase, [srcFilename, destFilename, flags], callback);\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 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 Volume.prototype.unlinkBase = function (filename) {\n var steps = filenameToSteps(filename);\n var link = this.getLink(steps);\n if (!link)\n throw createError(ENOENT, 'unlink', filename);\n // TODO: Check if it is file, dir, other...\n if (link.length)\n throw Error('Dir not empty...');\n this.deleteLink(link);\n var node = link.getNode();\n node.nlink--;\n // When all hard links to i-node are deleted, remove the i-node, too.\n if (node.nlink <= 0) {\n this.deleteNode(node);\n }\n };\n Volume.prototype.unlinkSync = function (path) {\n var filename = pathToFilename(path);\n this.unlinkBase(filename);\n };\n Volume.prototype.unlink = function (path, callback) {\n var filename = pathToFilename(path);\n this.wrapAsync(this.unlinkBase, [filename], callback);\n };\n Volume.prototype.symlinkBase = function (targetFilename, pathFilename) {\n var pathSteps = filenameToSteps(pathFilename);\n // Check if directory exists, where we about to create a symlink.\n var dirLink = this.getLinkParent(pathSteps);\n if (!dirLink)\n throw createError(ENOENT, 'symlink', targetFilename, pathFilename);\n var name = pathSteps[pathSteps.length - 1];\n // Check if new file already exists.\n if (dirLink.getChild(name))\n throw createError(EEXIST, 'symlink', targetFilename, pathFilename);\n // Create symlink.\n var symlink = dirLink.createChild(name);\n symlink.getNode().makeSymlink(filenameToSteps(targetFilename));\n return symlink;\n };\n // `type` argument works only on Windows.\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 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 Volume.prototype.realpathBase = function (filename, encoding) {\n var steps = filenameToSteps(filename);\n var realLink = this.getResolvedLink(steps);\n if (!realLink)\n throw createError(ENOENT, 'realpath', filename);\n return (0, encoding_1.strToEncoding)(realLink.getPath() || '/', encoding);\n };\n Volume.prototype.realpathSync = function (path, options) {\n return this.realpathBase(pathToFilename(path), getRealpathOptions(options).encoding);\n };\n Volume.prototype.realpath = function (path, a, b) {\n var _a = getRealpathOptsAndCb(a, b), opts = _a[0], callback = _a[1];\n var pathFilename = pathToFilename(path);\n this.wrapAsync(this.realpathBase, [pathFilename, opts.encoding], callback);\n };\n Volume.prototype.lstatBase = function (filename, bigint, throwIfNoEntry) {\n if (bigint === void 0) { bigint = false; }\n if (throwIfNoEntry === void 0) { throwIfNoEntry = false; }\n var link = this.getLink(filenameToSteps(filename));\n if (link) {\n return Stats_1.default.build(link.getNode(), bigint);\n }\n else if (!throwIfNoEntry) {\n return undefined;\n }\n else {\n throw createError(ENOENT, 'lstat', filename);\n }\n };\n Volume.prototype.lstatSync = function (path, options) {\n var _a = getStatOptions(options), _b = _a.throwIfNoEntry, throwIfNoEntry = _b === void 0 ? true : _b, _c = _a.bigint, bigint = _c === void 0 ? false : _c;\n return this.lstatBase(pathToFilename(path), bigint, throwIfNoEntry);\n };\n Volume.prototype.lstat = function (path, a, b) {\n var _a = getStatOptsAndCb(a, b), _b = _a[0], _c = _b.throwIfNoEntry, throwIfNoEntry = _c === void 0 ? true : _c, _d = _b.bigint, bigint = _d === void 0 ? false : _d, callback = _a[1];\n this.wrapAsync(this.lstatBase, [pathToFilename(path), bigint, throwIfNoEntry], callback);\n };\n Volume.prototype.statBase = function (filename, bigint, throwIfNoEntry) {\n if (bigint === void 0) { bigint = false; }\n if (throwIfNoEntry === void 0) { throwIfNoEntry = true; }\n var link = this.getResolvedLink(filenameToSteps(filename));\n if (link) {\n return Stats_1.default.build(link.getNode(), bigint);\n }\n else if (!throwIfNoEntry) {\n return undefined;\n }\n else {\n throw createError(ENOENT, 'stat', filename);\n }\n };\n Volume.prototype.statSync = function (path, options) {\n var _a = getStatOptions(options), _b = _a.bigint, bigint = _b === void 0 ? true : _b, _c = _a.throwIfNoEntry, throwIfNoEntry = _c === void 0 ? true : _c;\n return this.statBase(pathToFilename(path), bigint, throwIfNoEntry);\n };\n Volume.prototype.stat = function (path, a, b) {\n var _a = getStatOptsAndCb(a, b), _b = _a[0], _c = _b.bigint, bigint = _c === void 0 ? false : _c, _d = _b.throwIfNoEntry, throwIfNoEntry = _d === void 0 ? true : _d, callback = _a[1];\n this.wrapAsync(this.statBase, [pathToFilename(path), bigint, throwIfNoEntry], callback);\n };\n Volume.prototype.fstatBase = function (fd, bigint) {\n if (bigint === void 0) { bigint = false; }\n var file = this.getFileByFd(fd);\n if (!file)\n throw createError(EBADF, 'fstat');\n return Stats_1.default.build(file.node, bigint);\n };\n Volume.prototype.fstatSync = function (fd, options) {\n return this.fstatBase(fd, getStatOptions(options).bigint);\n };\n Volume.prototype.fstat = function (fd, a, b) {\n var _a = getStatOptsAndCb(a, b), opts = _a[0], callback = _a[1];\n this.wrapAsync(this.fstatBase, [fd, opts.bigint], callback);\n };\n Volume.prototype.renameBase = function (oldPathFilename, newPathFilename) {\n var link = this.getLink(filenameToSteps(oldPathFilename));\n if (!link)\n throw createError(ENOENT, 'rename', oldPathFilename, newPathFilename);\n // TODO: Check if it is directory, if non-empty, we cannot move it, right?\n var newPathSteps = filenameToSteps(newPathFilename);\n // Check directory exists for the new location.\n var newPathDirLink = this.getLinkParent(newPathSteps);\n if (!newPathDirLink)\n throw createError(ENOENT, 'rename', oldPathFilename, newPathFilename);\n // 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 var oldLinkParent = link.parent;\n if (oldLinkParent) {\n oldLinkParent.deleteChild(link);\n }\n // Rename should overwrite the new path, if that exists.\n var name = newPathSteps[newPathSteps.length - 1];\n link.name = name;\n link.steps = __spreadArray(__spreadArray([], newPathDirLink.steps, true), [name], false);\n newPathDirLink.setChild(link.getName(), link);\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 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 Volume.prototype.existsBase = function (filename) {\n return !!this.statBase(filename);\n };\n Volume.prototype.existsSync = function (path) {\n try {\n return this.existsBase(pathToFilename(path));\n }\n catch (err) {\n return false;\n }\n };\n Volume.prototype.exists = function (path, callback) {\n var _this = this;\n var filename = pathToFilename(path);\n if (typeof callback !== 'function')\n throw Error(ERRSTR.CB);\n (0, setImmediate_1.default)(function () {\n try {\n callback(_this.existsBase(filename));\n }\n catch (err) {\n callback(false);\n }\n });\n };\n Volume.prototype.accessBase = function (filename, mode) {\n var link = this.getLinkOrThrow(filename, 'access');\n // TODO: Verify permissions\n };\n Volume.prototype.accessSync = function (path, mode) {\n if (mode === void 0) { mode = F_OK; }\n var filename = pathToFilename(path);\n mode = mode | 0;\n this.accessBase(filename, mode);\n };\n Volume.prototype.access = function (path, a, b) {\n var mode = F_OK;\n var callback;\n if (typeof a !== 'function') {\n mode = a | 0; // cast to number\n callback = validateCallback(b);\n }\n else {\n callback = a;\n }\n var filename = pathToFilename(path);\n this.wrapAsync(this.accessBase, [filename, mode], callback);\n };\n Volume.prototype.appendFileSync = function (id, data, options) {\n if (options === void 0) { options = appendFileDefaults; }\n var opts = getAppendFileOpts(options);\n // force append behavior when using a supplied file descriptor\n if (!opts.flag || isFd(id))\n opts.flag = 'a';\n this.writeFileSync(id, data, opts);\n };\n Volume.prototype.appendFile = function (id, data, a, b) {\n var _a = getAppendFileOptsAndCb(a, b), opts = _a[0], callback = _a[1];\n // force append behavior when using a supplied file descriptor\n if (!opts.flag || isFd(id))\n opts.flag = 'a';\n this.writeFile(id, data, opts, callback);\n };\n Volume.prototype.readdirBase = function (filename, options) {\n var steps = filenameToSteps(filename);\n var link = this.getResolvedLink(steps);\n if (!link)\n throw createError(ENOENT, 'readdir', filename);\n var node = link.getNode();\n if (!node.isDirectory())\n throw createError(ENOTDIR, 'scandir', filename);\n if (options.withFileTypes) {\n var list_1 = [];\n for (var name_2 in link.children) {\n var child = link.getChild(name_2);\n if (!child) {\n continue;\n }\n list_1.push(Dirent_1.default.build(child, options.encoding));\n }\n if (!isWin && options.encoding !== 'buffer')\n list_1.sort(function (a, b) {\n if (a.name < b.name)\n return -1;\n if (a.name > b.name)\n return 1;\n return 0;\n });\n return list_1;\n }\n var list = [];\n for (var name_3 in link.children) {\n list.push((0, encoding_1.strToEncoding)(name_3, options.encoding));\n }\n if (!isWin && options.encoding !== 'buffer')\n list.sort();\n return list;\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 Volume.prototype.readdir = function (path, a, b) {\n var _a = getReaddirOptsAndCb(a, b), options = _a[0], callback = _a[1];\n var filename = pathToFilename(path);\n this.wrapAsync(this.readdirBase, [filename, options], callback);\n };\n Volume.prototype.readlinkBase = function (filename, encoding) {\n var link = this.getLinkOrThrow(filename, 'readlink');\n var node = link.getNode();\n if (!node.isSymlink())\n throw createError(EINVAL, 'readlink', filename);\n var str = sep + node.symlink.join(sep);\n return (0, encoding_1.strToEncoding)(str, encoding);\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 Volume.prototype.readlink = function (path, a, b) {\n var _a = getDefaultOptsAndCb(a, b), opts = _a[0], callback = _a[1];\n var filename = pathToFilename(path);\n this.wrapAsync(this.readlinkBase, [filename, opts.encoding], callback);\n };\n Volume.prototype.fsyncBase = function (fd) {\n this.getFileByFdOrThrow(fd, 'fsync');\n };\n Volume.prototype.fsyncSync = function (fd) {\n this.fsyncBase(fd);\n };\n Volume.prototype.fsync = function (fd, callback) {\n this.wrapAsync(this.fsyncBase, [fd], callback);\n };\n Volume.prototype.fdatasyncBase = function (fd) {\n this.getFileByFdOrThrow(fd, 'fdatasync');\n };\n Volume.prototype.fdatasyncSync = function (fd) {\n this.fdatasyncBase(fd);\n };\n Volume.prototype.fdatasync = function (fd, callback) {\n this.wrapAsync(this.fdatasyncBase, [fd], callback);\n };\n Volume.prototype.ftruncateBase = function (fd, len) {\n var file = this.getFileByFdOrThrow(fd, 'ftruncate');\n file.truncate(len);\n };\n Volume.prototype.ftruncateSync = function (fd, len) {\n this.ftruncateBase(fd, len);\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 Volume.prototype.truncateBase = function (path, len) {\n var fd = this.openSync(path, 'r+');\n try {\n this.ftruncateSync(fd, len);\n }\n finally {\n this.closeSync(fd);\n }\n };\n Volume.prototype.truncateSync = function (id, len) {\n if (isFd(id))\n return this.ftruncateSync(id, len);\n this.truncateBase(id, len);\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))\n return this.ftruncate(id, len, callback);\n this.wrapAsync(this.truncateBase, [id, len], callback);\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 Volume.prototype.futimesSync = function (fd, atime, mtime) {\n this.futimesBase(fd, toUnixTimestamp(atime), toUnixTimestamp(mtime));\n };\n Volume.prototype.futimes = function (fd, atime, mtime, callback) {\n this.wrapAsync(this.futimesBase, [fd, toUnixTimestamp(atime), toUnixTimestamp(mtime)], callback);\n };\n Volume.prototype.utimesBase = function (filename, atime, mtime) {\n var fd = this.openSync(filename, 'r');\n try {\n this.futimesBase(fd, atime, mtime);\n }\n finally {\n this.closeSync(fd);\n }\n };\n Volume.prototype.utimesSync = function (path, atime, mtime) {\n this.utimesBase(pathToFilename(path), toUnixTimestamp(atime), toUnixTimestamp(mtime));\n };\n Volume.prototype.utimes = function (path, atime, mtime, callback) {\n this.wrapAsync(this.utimesBase, [pathToFilename(path), toUnixTimestamp(atime), toUnixTimestamp(mtime)], callback);\n };\n Volume.prototype.mkdirBase = function (filename, modeNum) {\n var steps = filenameToSteps(filename);\n // This will throw if user tries to create root dir `fs.mkdirSync('/')`.\n if (!steps.length) {\n throw createError(EEXIST, 'mkdir', filename);\n }\n var dir = this.getLinkParentAsDirOrThrow(filename, 'mkdir');\n // Check path already exists.\n var name = steps[steps.length - 1];\n if (dir.getChild(name))\n 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 Volume.prototype.mkdirpBase = function (filename, modeNum) {\n var fullPath = resolve(filename);\n var fullPathSansSlash = fullPath.substring(1);\n var steps = !fullPathSansSlash ? [] : fullPathSansSlash.split(sep);\n var link = this.root;\n var created = false;\n for (var i = 0; i < steps.length; i++) {\n var step = steps[i];\n if (!link.getNode().isDirectory())\n throw createError(ENOTDIR, 'mkdir', link.getPath());\n var child = link.getChild(step);\n if (child) {\n if (child.getNode().isDirectory())\n link = child;\n else\n throw createError(ENOTDIR, 'mkdir', child.getPath());\n }\n else {\n link = link.createChild(step, this.createNode(true, modeNum));\n created = true;\n }\n }\n return created ? fullPath : undefined;\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)\n return this.mkdirpBase(filename, modeNum);\n this.mkdirBase(filename, modeNum);\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)\n this.wrapAsync(this.mkdirpBase, [filename, modeNum], callback);\n else\n this.wrapAsync(this.mkdirBase, [filename, modeNum], callback);\n };\n // legacy interface\n Volume.prototype.mkdirpSync = function (path, mode) {\n return this.mkdirSync(path, { mode: mode, recursive: true });\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, { mode: mode, recursive: true }, callback);\n };\n Volume.prototype.mkdtempBase = function (prefix, encoding, retry) {\n if (retry === void 0) { retry = 5; }\n var filename = prefix + this.genRndStr();\n try {\n this.mkdirBase(filename, 511 /* MODE.DIR */);\n return (0, encoding_1.strToEncoding)(filename, encoding);\n }\n catch (err) {\n if (err.code === EEXIST) {\n if (retry > 1)\n return this.mkdtempBase(prefix, encoding, retry - 1);\n else\n throw Error('Could not create temp dir.');\n }\n else\n throw err;\n }\n };\n Volume.prototype.mkdtempSync = function (prefix, options) {\n var encoding = getDefaultOpts(options).encoding;\n if (!prefix || typeof prefix !== 'string')\n throw new TypeError('filename prefix is required');\n nullCheck(prefix);\n return this.mkdtempBase(prefix, encoding);\n };\n Volume.prototype.mkdtemp = function (prefix, a, b) {\n var _a = getDefaultOptsAndCb(a, b), encoding = _a[0].encoding, callback = _a[1];\n if (!prefix || typeof prefix !== 'string')\n throw new TypeError('filename prefix is required');\n if (!nullCheck(prefix))\n return;\n this.wrapAsync(this.mkdtempBase, [prefix, encoding], callback);\n };\n Volume.prototype.rmdirBase = function (filename, options) {\n var opts = getRmdirOptions(options);\n var link = this.getLinkAsDirOrThrow(filename, 'rmdir');\n // Check directory is empty.\n if (link.length && !opts.recursive)\n throw createError(ENOTEMPTY, 'rmdir', filename);\n this.deleteLink(link);\n };\n Volume.prototype.rmdirSync = function (path, options) {\n this.rmdirBase(pathToFilename(path), options);\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 Volume.prototype.rmBase = function (filename, options) {\n if (options === void 0) { options = {}; }\n var link = this.getResolvedLink(filename);\n if (!link) {\n // \"stat\" is used to match Node's native error message.\n if (!options.force)\n throw createError(ENOENT, 'stat', filename);\n return;\n }\n if (link.getNode().isDirectory()) {\n if (!options.recursive) {\n throw createError(ERR_FS_EISDIR, 'rm', filename);\n }\n }\n this.deleteLink(link);\n };\n Volume.prototype.rmSync = function (path, options) {\n this.rmBase(pathToFilename(path), options);\n };\n Volume.prototype.rm = function (path, a, b) {\n var _a = getRmOptsAndCb(a, b), opts = _a[0], callback = _a[1];\n this.wrapAsync(this.rmBase, [pathToFilename(path), opts], callback);\n };\n Volume.prototype.fchmodBase = function (fd, modeNum) {\n var file = this.getFileByFdOrThrow(fd, 'fchmod');\n file.chmod(modeNum);\n };\n Volume.prototype.fchmodSync = function (fd, mode) {\n this.fchmodBase(fd, modeToNumber(mode));\n };\n Volume.prototype.fchmod = function (fd, mode, callback) {\n this.wrapAsync(this.fchmodBase, [fd, modeToNumber(mode)], callback);\n };\n Volume.prototype.chmodBase = function (filename, modeNum) {\n var fd = this.openSync(filename, 'r');\n try {\n this.fchmodBase(fd, modeNum);\n }\n finally {\n this.closeSync(fd);\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 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 Volume.prototype.lchmodBase = function (filename, modeNum) {\n var fd = this.openBase(filename, O_RDWR, 0, false);\n try {\n this.fchmodBase(fd, modeNum);\n }\n finally {\n this.closeSync(fd);\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 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 Volume.prototype.fchownBase = function (fd, uid, gid) {\n this.getFileByFdOrThrow(fd, 'fchown').chown(uid, gid);\n };\n Volume.prototype.fchownSync = function (fd, uid, gid) {\n validateUid(uid);\n validateGid(gid);\n this.fchownBase(fd, uid, gid);\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 Volume.prototype.chownBase = function (filename, uid, gid) {\n var link = this.getResolvedLinkOrThrow(filename, 'chown');\n var node = link.getNode();\n node.chown(uid, gid);\n // if(node.isFile() || node.isSymlink()) {\n //\n // } else if(node.isDirectory()) {\n //\n // } else {\n // TODO: What do we do here?\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 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 Volume.prototype.lchownBase = function (filename, uid, gid) {\n this.getLinkOrThrow(filename, 'lchown').getNode().chown(uid, gid);\n };\n Volume.prototype.lchownSync = function (path, uid, gid) {\n validateUid(uid);\n validateGid(gid);\n this.lchownBase(pathToFilename(path), uid, gid);\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 Volume.prototype.watchFile = function (path, a, b) {\n var filename = pathToFilename(path);\n var options = a;\n var listener = b;\n if (typeof options === 'function') {\n listener = a;\n options = null;\n }\n if (typeof listener !== 'function') {\n throw Error('\"watchFile()\" requires a listener function');\n }\n var interval = 5007;\n var persistent = true;\n if (options && typeof options === 'object') {\n if (typeof options.interval === 'number')\n interval = options.interval;\n if (typeof options.persistent === 'boolean')\n persistent = options.persistent;\n }\n var watcher = this.statWatchers[filename];\n if (!watcher) {\n watcher = new this.StatWatcher();\n watcher.start(filename, persistent, interval);\n this.statWatchers[filename] = watcher;\n }\n watcher.addListener('change', listener);\n return watcher;\n };\n Volume.prototype.unwatchFile = function (path, listener) {\n var filename = pathToFilename(path);\n var watcher = this.statWatchers[filename];\n if (!watcher)\n return;\n if (typeof listener === 'function') {\n watcher.removeListener('change', listener);\n }\n else {\n watcher.removeAllListeners('change');\n }\n if (watcher.listenerCount('change') === 0) {\n watcher.stop();\n delete this.statWatchers[filename];\n }\n };\n Volume.prototype.createReadStream = function (path, options) {\n return new this.ReadStream(path, options);\n };\n Volume.prototype.createWriteStream = function (path, options) {\n return new this.WriteStream(path, options);\n };\n // watch(path: PathLike): FSWatcher;\n // watch(path: PathLike, options?: IWatchOptions | string): FSWatcher;\n Volume.prototype.watch = function (path, options, listener) {\n var filename = pathToFilename(path);\n var givenOptions = options;\n if (typeof options === 'function') {\n listener = options;\n givenOptions = null;\n }\n // tslint:disable-next-line prefer-const\n var _a = getDefaultOpts(givenOptions), persistent = _a.persistent, recursive = _a.recursive, encoding = _a.encoding;\n if (persistent === undefined)\n persistent = true;\n if (recursive === undefined)\n recursive = false;\n var watcher = new this.FSWatcher();\n watcher.start(filename, persistent, recursive, encoding);\n if (listener) {\n watcher.addListener('change', listener);\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 Volume.fd = 0x7fffffff;\n return Volume;\n}());\nexports.Volume = Volume;\nfunction emitStop(self) {\n self.emit('stop');\n}\nvar StatWatcher = /** @class */ (function (_super) {\n __extends(StatWatcher, _super);\n function StatWatcher(vol) {\n var _this = _super.call(this) || this;\n _this.onInterval = function () {\n try {\n var stats = _this.vol.statSync(_this.filename);\n if (_this.hasChanged(stats)) {\n _this.emit('change', stats, _this.prev);\n _this.prev = stats;\n }\n }\n finally {\n _this.loop();\n }\n };\n _this.vol = vol;\n return _this;\n }\n StatWatcher.prototype.loop = function () {\n this.timeoutRef = this.setTimeout(this.onInterval, this.interval);\n };\n StatWatcher.prototype.hasChanged = function (stats) {\n // if(!this.prev) return false;\n if (stats.mtimeMs > this.prev.mtimeMs)\n return true;\n if (stats.nlink !== this.prev.nlink)\n return true;\n return false;\n };\n StatWatcher.prototype.start = function (path, persistent, interval) {\n if (persistent === void 0) { persistent = true; }\n if (interval === void 0) { interval = 5007; }\n this.filename = pathToFilename(path);\n this.setTimeout = persistent\n ? setTimeout.bind(typeof globalThis !== 'undefined' ? globalThis : global)\n : setTimeoutUnref_1.default;\n this.interval = interval;\n this.prev = this.vol.statSync(this.filename);\n this.loop();\n };\n StatWatcher.prototype.stop = function () {\n clearTimeout(this.timeoutRef);\n process_1.default.nextTick(emitStop, this);\n };\n return StatWatcher;\n}(events_1.EventEmitter));\nexports.StatWatcher = StatWatcher;\nvar pool;\nfunction allocNewPool(poolSize) {\n pool = (0, buffer_1.bufferAllocUnsafe)(poolSize);\n pool.used = 0;\n}\nutil.inherits(FsReadStream, stream_1.Readable);\nexports.ReadStream = FsReadStream;\nfunction FsReadStream(vol, path, options) {\n if (!(this instanceof FsReadStream))\n return new FsReadStream(vol, path, options);\n this._vol = vol;\n // a little bit bigger buffer and water marks by default\n options = Object.assign({}, getOptions(options, {}));\n if (options.highWaterMark === undefined)\n 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 if (this.start !== undefined) {\n if (typeof this.start !== 'number') {\n throw new TypeError('\"start\" option must be a Number');\n }\n if (this.end === undefined) {\n this.end = Infinity;\n }\n else if (typeof this.end !== 'number') {\n throw new TypeError('\"end\" option must be a Number');\n }\n if (this.start > this.end) {\n throw new Error('\"start\" option must be <= \"end\" option');\n }\n this.pos = this.start;\n }\n if (typeof this.fd !== 'number')\n this.open();\n this.on('end', function () {\n if (this.autoClose) {\n if (this.destroy)\n this.destroy();\n }\n });\n}\nFsReadStream.prototype.open = function () {\n var self = this; // tslint:disable-line no-this-assignment\n this._vol.open(this.path, this.flags, this.mode, function (er, fd) {\n if (er) {\n if (self.autoClose) {\n if (self.destroy)\n self.destroy();\n }\n self.emit('error', er);\n return;\n }\n self.fd = fd;\n self.emit('open', fd);\n // start the flow of data.\n self.read();\n });\n};\nFsReadStream.prototype._read = function (n) {\n if (typeof this.fd !== 'number') {\n return this.once('open', function () {\n this._read(n);\n });\n }\n if (this.destroyed)\n return;\n if (!pool || pool.length - pool.used < kMinPoolSpace) {\n // discard the old pool.\n allocNewPool(this._readableState.highWaterMark);\n }\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 var thisPool = pool;\n var toRead = Math.min(pool.length - pool.used, n);\n var start = pool.used;\n if (this.pos !== undefined)\n toRead = Math.min(this.end - this.pos + 1, toRead);\n // already read everything we were supposed to read!\n // treat as EOF.\n if (toRead <= 0)\n return this.push(null);\n // the actual read.\n var self = this; // tslint:disable-line no-this-assignment\n this._vol.read(this.fd, pool, pool.used, toRead, this.pos, onread);\n // move the pool positions, and internal position for reading.\n if (this.pos !== undefined)\n this.pos += toRead;\n pool.used += toRead;\n function onread(er, bytesRead) {\n if (er) {\n if (self.autoClose && self.destroy) {\n self.destroy();\n }\n self.emit('error', er);\n }\n else {\n var b = null;\n if (bytesRead > 0) {\n self.bytesRead += bytesRead;\n b = thisPool.slice(start, start + bytesRead);\n }\n self.push(b);\n }\n }\n};\nFsReadStream.prototype._destroy = function (err, cb) {\n this.close(function (err2) {\n cb(err || err2);\n });\n};\nFsReadStream.prototype.close = function (cb) {\n var _this = this;\n var _a;\n if (cb)\n this.once('close', cb);\n if (this.closed || typeof this.fd !== 'number') {\n if (typeof this.fd !== 'number') {\n this.once('open', closeOnOpen);\n return;\n }\n return process_1.default.nextTick(function () { return _this.emit('close'); });\n }\n // Since Node 18, there is only a getter for '.closed'.\n // The first branch mimics other setters from Readable.\n // See https://github.com/nodejs/node/blob/v18.0.0/lib/internal/streams/readable.js#L1243\n if (typeof ((_a = this._readableState) === null || _a === void 0 ? void 0 : _a.closed) === 'boolean') {\n this._readableState.closed = true;\n }\n else {\n this.closed = true;\n }\n this._vol.close(this.fd, function (er) {\n if (er)\n _this.emit('error', er);\n else\n _this.emit('close');\n });\n this.fd = null;\n};\n// needed because as it will be called with arguments\n// that does not match this.close() signature\nfunction closeOnOpen(fd) {\n this.close();\n}\nutil.inherits(FsWriteStream, stream_1.Writable);\nexports.WriteStream = FsWriteStream;\nfunction FsWriteStream(vol, path, options) {\n if (!(this instanceof FsWriteStream))\n 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 if (this.start !== undefined) {\n if (typeof this.start !== 'number') {\n throw new TypeError('\"start\" option must be a Number');\n }\n if (this.start < 0) {\n throw new Error('\"start\" must be >= zero');\n }\n this.pos = this.start;\n }\n if (options.encoding)\n this.setDefaultEncoding(options.encoding);\n if (typeof this.fd !== 'number')\n this.open();\n // dispose on finish.\n this.once('finish', function () {\n if (this.autoClose) {\n this.close();\n }\n });\n}\nFsWriteStream.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 this.emit('error', er);\n return;\n }\n this.fd = fd;\n this.emit('open', fd);\n }.bind(this));\n};\nFsWriteStream.prototype._write = function (data, encoding, cb) {\n if (!(data instanceof buffer_1.Buffer || data instanceof Uint8Array))\n return this.emit('error', new Error('Invalid data'));\n if (typeof this.fd !== 'number') {\n return this.once('open', function () {\n this._write(data, encoding, cb);\n });\n }\n var self = this; // tslint:disable-line no-this-assignment\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 return cb(er);\n }\n self.bytesWritten += bytes;\n cb();\n });\n if (this.pos !== undefined)\n this.pos += data.length;\n};\nFsWriteStream.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 var self = this; // tslint:disable-line no-this-assignment\n var len = data.length;\n var chunks = new Array(len);\n var size = 0;\n for (var i = 0; i < len; i++) {\n var chunk = data[i].chunk;\n chunks[i] = chunk;\n size += chunk.length;\n }\n var buf = buffer_1.Buffer.concat(chunks);\n this._vol.write(this.fd, buf, 0, buf.length, this.pos, function (er, bytes) {\n if (er) {\n if (self.destroy)\n self.destroy();\n return cb(er);\n }\n self.bytesWritten += bytes;\n cb();\n });\n if (this.pos !== undefined)\n this.pos += size;\n};\nFsWriteStream.prototype.close = function (cb) {\n var _this = this;\n var _a;\n if (cb)\n this.once('close', cb);\n if (this.closed || typeof this.fd !== 'number') {\n if (typeof this.fd !== 'number') {\n this.once('open', closeOnOpen);\n return;\n }\n return process_1.default.nextTick(function () { return _this.emit('close'); });\n }\n // Since Node 18, there is only a getter for '.closed'.\n // The first branch mimics other setters from Writable.\n // See https://github.com/nodejs/node/blob/v18.0.0/lib/internal/streams/writable.js#L766\n if (typeof ((_a = this._writableState) === null || _a === void 0 ? void 0 : _a.closed) === 'boolean') {\n this._writableState.closed = true;\n }\n else {\n this.closed = true;\n }\n this._vol.close(this.fd, function (er) {\n if (er)\n _this.emit('error', er);\n else\n _this.emit('close');\n });\n this.fd = null;\n};\nFsWriteStream.prototype._destroy = FsReadStream.prototype._destroy;\n// There is no shutdown() for files.\nFsWriteStream.prototype.destroySoon = FsWriteStream.prototype.end;\n// ---------------------------------------- FSWatcher\nvar FSWatcher = /** @class */ (function (_super) {\n __extends(FSWatcher, _super);\n function FSWatcher(vol) {\n var _this = _super.call(this) || this;\n _this._filename = '';\n _this._filenameEncoded = '';\n // _persistent: boolean = true;\n _this._recursive = false;\n _this._encoding = encoding_1.ENCODING_UTF8;\n _this._onNodeChange = function () {\n _this._emit('change');\n };\n _this._onParentChild = function (link) {\n if (link.getName() === _this._getName()) {\n _this._emit('rename');\n }\n };\n _this._emit = function (type) {\n _this.emit('change', type, _this._filenameEncoded);\n };\n _this._persist = function () {\n _this._timer = setTimeout(_this._persist, 1e6);\n };\n _this._vol = vol;\n return _this;\n // 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 FSWatcher.prototype._getName = function () {\n return this._steps[this._steps.length - 1];\n };\n FSWatcher.prototype.start = function (path, persistent, recursive, encoding) {\n if (persistent === void 0) { persistent = true; }\n if (recursive === void 0) { recursive = false; }\n if (encoding === void 0) { encoding = encoding_1.ENCODING_UTF8; }\n this._filename = pathToFilename(path);\n this._steps = filenameToSteps(this._filename);\n this._filenameEncoded = (0, encoding_1.strToEncoding)(this._filename);\n // this._persistent = persistent;\n this._recursive = recursive;\n this._encoding = encoding;\n try {\n this._link = this._vol.getLinkOrThrow(this._filename, 'FSWatcher');\n }\n catch (err) {\n var error = new Error(\"watch \".concat(this._filename, \" \").concat(err.code));\n error.code = err.code;\n error.errno = err.code;\n throw error;\n }\n this._link.getNode().on('change', this._onNodeChange);\n this._link.on('child:add', this._onNodeChange);\n this._link.on('child:delete', this._onNodeChange);\n var parent = this._link.parent;\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 if (persistent)\n this._persist();\n };\n FSWatcher.prototype.close = function () {\n clearTimeout(this._timer);\n this._link.getNode().removeListener('change', this._onNodeChange);\n var parent = this._link.parent;\n if (parent) {\n // parent.removeListener('child:add', this._onParentChild);\n parent.removeListener('child:delete', this._onParentChild);\n }\n };\n return FSWatcher;\n}(events_1.EventEmitter));\nexports.FSWatcher = FSWatcher;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.fsAsyncMethods = exports.fsSyncMethods = exports.fsProps = void 0;\nvar fsProps = ['constants', 'F_OK', 'R_OK', 'W_OK', 'X_OK', 'Stats'];\nexports.fsProps = fsProps;\nvar 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'];\nexports.fsSyncMethods = fsSyncMethods;\nvar 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'];\nexports.fsAsyncMethods = fsAsyncMethods;","\"use strict\";\nvar __assign = (this && this.__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 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fs = exports.createFsFromVolume = exports.vol = exports.Volume = void 0;\nvar Stats_1 = require(\"./Stats\");\nvar Dirent_1 = require(\"./Dirent\");\nvar volume_1 = require(\"./volume\");\nvar _a = require('fs-monkey/lib/util/lists'), fsSyncMethods = _a.fsSyncMethods, fsAsyncMethods = _a.fsAsyncMethods;\nvar constants_1 = require(\"./constants\");\nvar F_OK = constants_1.constants.F_OK, R_OK = constants_1.constants.R_OK, W_OK = constants_1.constants.W_OK, X_OK = constants_1.constants.X_OK;\nexports.Volume = volume_1.Volume;\n// Default volume.\nexports.vol = new volume_1.Volume();\nfunction createFsFromVolume(vol) {\n var fs = { F_OK: F_OK, R_OK: R_OK, W_OK: W_OK, X_OK: X_OK, constants: constants_1.constants, Stats: Stats_1.default, Dirent: Dirent_1.default };\n // Bind FS methods.\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')\n fs[method] = vol[method].bind(vol);\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')\n fs[method] = vol[method].bind(vol);\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}\nexports.createFsFromVolume = createFsFromVolume;\nexports.fs = createFsFromVolume(exports.vol);\nmodule.exports = __assign(__assign({}, module.exports), exports.fs);\nmodule.exports.semantic = 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\nvar pathModule = require('path');\nvar isWindows = process.platform === 'win32';\nvar fs = require('fs');\n\n// JavaScript implementation of realpath, ported from node pre-v6\n\nvar DEBUG = process.env.NODE_DEBUG && /fs/.test(process.env.NODE_DEBUG);\n\nfunction rethrow() {\n // Only enable in debug mode. A backtrace uses ~1000 bytes of heap space and\n // is fairly slow to generate.\n var callback;\n if (DEBUG) {\n var backtrace = new Error;\n callback = debugCallback;\n } else\n callback = missingCallback;\n\n return callback;\n\n function debugCallback(err) {\n if (err) {\n backtrace.message = err.message;\n err = backtrace;\n missingCallback(err);\n }\n }\n\n function missingCallback(err) {\n if (err) {\n if (process.throwDeprecation)\n throw err; // Forgot a callback but don't know where? Use NODE_DEBUG=fs\n else if (!process.noDeprecation) {\n var msg = 'fs: missing callback ' + (err.stack || err.message);\n if (process.traceDeprecation)\n console.trace(msg);\n else\n console.error(msg);\n }\n }\n }\n}\n\nfunction maybeCallback(cb) {\n return typeof cb === 'function' ? cb : rethrow();\n}\n\nvar normalize = pathModule.normalize;\n\n// Regexp that finds the next partion of a (partial) path\n// result is [base_with_slash, base], e.g. ['somedir/', 'somedir']\nif (isWindows) {\n var nextPartRe = /(.*?)(?:[\\/\\\\]+|$)/g;\n} else {\n var nextPartRe = /(.*?)(?:[\\/]+|$)/g;\n}\n\n// Regex to find the device root, including trailing slash. E.g. 'c:\\\\'.\nif (isWindows) {\n var splitRootRe = /^(?:[a-zA-Z]:|[\\\\\\/]{2}[^\\\\\\/]+[\\\\\\/][^\\\\\\/]+)?[\\\\\\/]*/;\n} else {\n var splitRootRe = /^[\\/]*/;\n}\n\nexports.realpathSync = function realpathSync(p, cache) {\n // make p is absolute\n p = pathModule.resolve(p);\n\n if (cache && Object.prototype.hasOwnProperty.call(cache, p)) {\n return cache[p];\n }\n\n var original = p,\n seenLinks = {},\n knownHard = {};\n\n // current character position in p\n var pos;\n // the partial path so far, including a trailing slash if any\n var current;\n // the partial path without a trailing slash (except when pointing at a root)\n var base;\n // the partial path scanned in the previous round, with slash\n var previous;\n\n start();\n\n function start() {\n // Skip over roots\n var m = splitRootRe.exec(p);\n pos = m[0].length;\n current = m[0];\n base = m[0];\n previous = '';\n\n // On windows, check that the root exists. On unix there is no need.\n if (isWindows && !knownHard[base]) {\n fs.lstatSync(base);\n knownHard[base] = true;\n }\n }\n\n // walk down the path, swapping out linked pathparts for their real\n // values\n // NB: p.length changes.\n while (pos < p.length) {\n // find the next part\n nextPartRe.lastIndex = pos;\n var result = nextPartRe.exec(p);\n previous = current;\n current += result[0];\n base = previous + result[1];\n pos = nextPartRe.lastIndex;\n\n // continue if not a symlink\n if (knownHard[base] || (cache && cache[base] === base)) {\n continue;\n }\n\n var resolvedLink;\n if (cache && Object.prototype.hasOwnProperty.call(cache, base)) {\n // some known symbolic link. no need to stat again.\n resolvedLink = cache[base];\n } else {\n var stat = fs.lstatSync(base);\n if (!stat.isSymbolicLink()) {\n knownHard[base] = true;\n if (cache) cache[base] = base;\n continue;\n }\n\n // read the link if it wasn't read before\n // dev/ino always return 0 on windows, so skip the check.\n var linkTarget = null;\n if (!isWindows) {\n var id = stat.dev.toString(32) + ':' + stat.ino.toString(32);\n if (seenLinks.hasOwnProperty(id)) {\n linkTarget = seenLinks[id];\n }\n }\n if (linkTarget === null) {\n fs.statSync(base);\n linkTarget = fs.readlinkSync(base);\n }\n resolvedLink = pathModule.resolve(previous, linkTarget);\n // track this, if given a cache.\n if (cache) cache[base] = resolvedLink;\n if (!isWindows) seenLinks[id] = linkTarget;\n }\n\n // resolve the link, then start over\n p = pathModule.resolve(resolvedLink, p.slice(pos));\n start();\n }\n\n if (cache) cache[original] = p;\n\n return p;\n};\n\n\nexports.realpath = function realpath(p, cache, cb) {\n if (typeof cb !== 'function') {\n cb = maybeCallback(cache);\n cache = null;\n }\n\n // make p is absolute\n p = pathModule.resolve(p);\n\n if (cache && Object.prototype.hasOwnProperty.call(cache, p)) {\n return process.nextTick(cb.bind(null, null, cache[p]));\n }\n\n var original = p,\n seenLinks = {},\n knownHard = {};\n\n // current character position in p\n var pos;\n // the partial path so far, including a trailing slash if any\n var current;\n // the partial path without a trailing slash (except when pointing at a root)\n var base;\n // the partial path scanned in the previous round, with slash\n var previous;\n\n start();\n\n function start() {\n // Skip over roots\n var m = splitRootRe.exec(p);\n pos = m[0].length;\n current = m[0];\n base = m[0];\n previous = '';\n\n // On windows, check that the root exists. On unix there is no need.\n if (isWindows && !knownHard[base]) {\n fs.lstat(base, function(err) {\n if (err) return cb(err);\n knownHard[base] = true;\n LOOP();\n });\n } else {\n process.nextTick(LOOP);\n }\n }\n\n // walk down the path, swapping out linked pathparts for their real\n // values\n function LOOP() {\n // stop if scanned past end of path\n if (pos >= p.length) {\n if (cache) cache[original] = p;\n return cb(null, p);\n }\n\n // find the next part\n nextPartRe.lastIndex = pos;\n var result = nextPartRe.exec(p);\n previous = current;\n current += result[0];\n base = previous + result[1];\n pos = nextPartRe.lastIndex;\n\n // continue if not a symlink\n if (knownHard[base] || (cache && cache[base] === base)) {\n return process.nextTick(LOOP);\n }\n\n if (cache && Object.prototype.hasOwnProperty.call(cache, base)) {\n // known symbolic link. no need to stat again.\n return gotResolvedLink(cache[base]);\n }\n\n return fs.lstat(base, gotStat);\n }\n\n function gotStat(err, stat) {\n if (err) return cb(err);\n\n // if not a symlink, skip to the next path part\n if (!stat.isSymbolicLink()) {\n knownHard[base] = true;\n if (cache) cache[base] = base;\n return process.nextTick(LOOP);\n }\n\n // stat & read the link if not read before\n // call gotTarget as soon as the link target is known\n // dev/ino always return 0 on windows, so skip the check.\n if (!isWindows) {\n var id = stat.dev.toString(32) + ':' + stat.ino.toString(32);\n if (seenLinks.hasOwnProperty(id)) {\n return gotTarget(null, seenLinks[id], base);\n }\n }\n fs.stat(base, function(err) {\n if (err) return cb(err);\n\n fs.readlink(base, function(err, target) {\n if (!isWindows) seenLinks[id] = target;\n gotTarget(err, target);\n });\n });\n }\n\n function gotTarget(err, target, base) {\n if (err) return cb(err);\n\n var resolvedLink = pathModule.resolve(previous, target);\n if (cache) cache[base] = resolvedLink;\n gotResolvedLink(resolvedLink);\n }\n\n function gotResolvedLink(resolvedLink) {\n // resolve the link, then start over\n p = pathModule.resolve(resolvedLink, p.slice(pos));\n start();\n }\n};\n","module.exports = realpath\nrealpath.realpath = realpath\nrealpath.sync = realpathSync\nrealpath.realpathSync = realpathSync\nrealpath.monkeypatch = monkeypatch\nrealpath.unmonkeypatch = unmonkeypatch\n\nvar fs = require('fs')\nvar origRealpath = fs.realpath\nvar origRealpathSync = fs.realpathSync\n\nvar version = process.version\nvar ok = /^v[0-5]\\./.test(version)\nvar old = require('./old.js')\n\nfunction newError (er) {\n return er && er.syscall === 'realpath' && (\n er.code === 'ELOOP' ||\n er.code === 'ENOMEM' ||\n er.code === 'ENAMETOOLONG'\n )\n}\n\nfunction realpath (p, cache, cb) {\n if (ok) {\n return origRealpath(p, cache, cb)\n }\n\n if (typeof cache === 'function') {\n cb = cache\n cache = null\n }\n origRealpath(p, cache, function (er, result) {\n if (newError(er)) {\n old.realpath(p, cache, cb)\n } else {\n cb(er, result)\n }\n })\n}\n\nfunction realpathSync (p, cache) {\n if (ok) {\n return origRealpathSync(p, cache)\n }\n\n try {\n return origRealpathSync(p, cache)\n } catch (er) {\n if (newError(er)) {\n return old.realpathSync(p, cache)\n } else {\n throw er\n }\n }\n}\n\nfunction monkeypatch () {\n fs.realpath = realpath\n fs.realpathSync = realpathSync\n}\n\nfunction unmonkeypatch () {\n fs.realpath = origRealpath\n fs.realpathSync = origRealpathSync\n}\n","module.exports = function (xs, fn) {\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n var x = fn(xs[i], i);\n if (isArray(x)) res.push.apply(res, x);\n else res.push(x);\n }\n return res;\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n","'use strict';\nmodule.exports = balanced;\nfunction balanced(a, b, str) {\n if (a instanceof RegExp) a = maybeMatch(a, str);\n if (b instanceof RegExp) b = maybeMatch(b, str);\n\n var r = range(a, b, str);\n\n return r && {\n start: r[0],\n end: r[1],\n pre: str.slice(0, r[0]),\n body: str.slice(r[0] + a.length, r[1]),\n post: str.slice(r[1] + b.length)\n };\n}\n\nfunction maybeMatch(reg, str) {\n var m = str.match(reg);\n return m ? m[0] : null;\n}\n\nbalanced.range = range;\nfunction range(a, b, str) {\n var begs, beg, left, right, result;\n var ai = str.indexOf(a);\n var bi = str.indexOf(b, ai + 1);\n var i = ai;\n\n if (ai >= 0 && bi > 0) {\n if(a===b) {\n return [ai, bi];\n }\n begs = [];\n left = str.length;\n\n while (i >= 0 && !result) {\n if (i == ai) {\n begs.push(i);\n ai = str.indexOf(a, i + 1);\n } else if (begs.length == 1) {\n result = [ begs.pop(), bi ];\n } else {\n beg = begs.pop();\n if (beg < left) {\n left = beg;\n right = bi;\n }\n\n bi = str.indexOf(b, i + 1);\n }\n\n i = ai < bi && ai >= 0 ? ai : bi;\n }\n\n if (begs.length) {\n result = [ left, right ];\n }\n }\n\n return result;\n}\n","var concatMap = require('concat-map');\nvar balanced = require('balanced-match');\n\nmodule.exports = expandTop;\n\nvar escSlash = '\\0SLASH'+Math.random()+'\\0';\nvar escOpen = '\\0OPEN'+Math.random()+'\\0';\nvar escClose = '\\0CLOSE'+Math.random()+'\\0';\nvar escComma = '\\0COMMA'+Math.random()+'\\0';\nvar escPeriod = '\\0PERIOD'+Math.random()+'\\0';\n\nfunction numeric(str) {\n return parseInt(str, 10) == str\n ? parseInt(str, 10)\n : str.charCodeAt(0);\n}\n\nfunction escapeBraces(str) {\n return str.split('\\\\\\\\').join(escSlash)\n .split('\\\\{').join(escOpen)\n .split('\\\\}').join(escClose)\n .split('\\\\,').join(escComma)\n .split('\\\\.').join(escPeriod);\n}\n\nfunction unescapeBraces(str) {\n return str.split(escSlash).join('\\\\')\n .split(escOpen).join('{')\n .split(escClose).join('}')\n .split(escComma).join(',')\n .split(escPeriod).join('.');\n}\n\n\n// Basically just str.split(\",\"), but handling cases\n// where we have nested braced sections, which should be\n// treated as individual members, like {a,{b,c},d}\nfunction parseCommaParts(str) {\n if (!str)\n return [''];\n\n var parts = [];\n var m = balanced('{', '}', str);\n\n if (!m)\n return str.split(',');\n\n var pre = m.pre;\n var body = m.body;\n var post = m.post;\n var p = pre.split(',');\n\n p[p.length-1] += '{' + body + '}';\n var postParts = parseCommaParts(post);\n if (post.length) {\n p[p.length-1] += postParts.shift();\n p.push.apply(p, postParts);\n }\n\n parts.push.apply(parts, p);\n\n return parts;\n}\n\nfunction expandTop(str) {\n if (!str)\n return [];\n\n // I don't know why Bash 4.3 does this, but it does.\n // Anything starting with {} will have the first two bytes preserved\n // but *only* at the top level, so {},a}b will not expand to anything,\n // but a{},b}c will be expanded to [a}c,abc].\n // One could argue that this is a bug in Bash, but since the goal of\n // this module is to match Bash's rules, we escape a leading {}\n if (str.substr(0, 2) === '{}') {\n str = '\\\\{\\\\}' + str.substr(2);\n }\n\n return expand(escapeBraces(str), true).map(unescapeBraces);\n}\n\nfunction identity(e) {\n return e;\n}\n\nfunction embrace(str) {\n return '{' + str + '}';\n}\nfunction isPadded(el) {\n return /^-?0\\d/.test(el);\n}\n\nfunction lte(i, y) {\n return i <= y;\n}\nfunction gte(i, y) {\n return i >= y;\n}\n\nfunction expand(str, isTop) {\n var expansions = [];\n\n var m = balanced('{', '}', str);\n if (!m || /\\$$/.test(m.pre)) return [str];\n\n var isNumericSequence = /^-?\\d+\\.\\.-?\\d+(?:\\.\\.-?\\d+)?$/.test(m.body);\n var isAlphaSequence = /^[a-zA-Z]\\.\\.[a-zA-Z](?:\\.\\.-?\\d+)?$/.test(m.body);\n var isSequence = isNumericSequence || isAlphaSequence;\n var isOptions = m.body.indexOf(',') >= 0;\n if (!isSequence && !isOptions) {\n // {a},b}\n if (m.post.match(/,.*\\}/)) {\n str = m.pre + '{' + m.body + escClose + m.post;\n return expand(str);\n }\n return [str];\n }\n\n var n;\n if (isSequence) {\n n = m.body.split(/\\.\\./);\n } else {\n n = parseCommaParts(m.body);\n if (n.length === 1) {\n // x{{a,b}}y ==> x{a}y x{b}y\n n = expand(n[0], false).map(embrace);\n if (n.length === 1) {\n var post = m.post.length\n ? expand(m.post, false)\n : [''];\n return post.map(function(p) {\n return m.pre + n[0] + p;\n });\n }\n }\n }\n\n // at this point, n is the parts, and we know it's not a comma set\n // with a single entry.\n\n // no need to expand pre, since it is guaranteed to be free of brace-sets\n var pre = m.pre;\n var post = m.post.length\n ? expand(m.post, false)\n : [''];\n\n var N;\n\n if (isSequence) {\n var x = numeric(n[0]);\n var y = numeric(n[1]);\n var width = Math.max(n[0].length, n[1].length)\n var incr = n.length == 3\n ? Math.abs(numeric(n[2]))\n : 1;\n var test = lte;\n var reverse = y < x;\n if (reverse) {\n incr *= -1;\n test = gte;\n }\n var pad = n.some(isPadded);\n\n N = [];\n\n for (var i = x; test(i, y); i += incr) {\n var c;\n if (isAlphaSequence) {\n c = String.fromCharCode(i);\n if (c === '\\\\')\n c = '';\n } else {\n c = String(i);\n if (pad) {\n var need = width - c.length;\n if (need > 0) {\n var z = new Array(need + 1).join('0');\n if (i < 0)\n c = '-' + z + c.slice(1);\n else\n c = z + c;\n }\n }\n }\n N.push(c);\n }\n } else {\n N = concatMap(n, function(el) { return expand(el, false) });\n }\n\n for (var j = 0; j < N.length; j++) {\n for (var k = 0; k < post.length; k++) {\n var expansion = pre + N[j] + post[k];\n if (!isTop || isSequence || expansion)\n expansions.push(expansion);\n }\n }\n\n return expansions;\n}\n\n","module.exports = minimatch\nminimatch.Minimatch = Minimatch\n\nvar path = (function () { try { return require('path') } catch (e) {}}()) || {\n sep: '/'\n}\nminimatch.sep = path.sep\n\nvar GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {}\nvar expand = require('brace-expansion')\n\nvar plTypes = {\n '!': { open: '(?:(?!(?:', close: '))[^/]*?)'},\n '?': { open: '(?:', close: ')?' },\n '+': { open: '(?:', close: ')+' },\n '*': { open: '(?:', close: ')*' },\n '@': { open: '(?:', close: ')' }\n}\n\n// any single thing other than /\n// don't need to escape / when using new RegExp()\nvar qmark = '[^/]'\n\n// * => any number of characters\nvar star = qmark + '*?'\n\n// ** when dots are allowed. Anything goes, except .. and .\n// not (^ or / followed by one or two dots followed by $ or /),\n// followed by anything, any number of times.\nvar twoStarDot = '(?:(?!(?:\\\\\\/|^)(?:\\\\.{1,2})($|\\\\\\/)).)*?'\n\n// not a ^ or / followed by a dot,\n// followed by anything, any number of times.\nvar twoStarNoDot = '(?:(?!(?:\\\\\\/|^)\\\\.).)*?'\n\n// characters that need to be escaped in RegExp.\nvar reSpecials = charSet('().*{}+?[]^$\\\\!')\n\n// \"abc\" -> { a:true, b:true, c:true }\nfunction charSet (s) {\n return s.split('').reduce(function (set, c) {\n set[c] = true\n return set\n }, {})\n}\n\n// normalizes slashes.\nvar slashSplit = /\\/+/\n\nminimatch.filter = filter\nfunction filter (pattern, options) {\n options = options || {}\n return function (p, i, list) {\n return minimatch(p, pattern, options)\n }\n}\n\nfunction ext (a, b) {\n b = b || {}\n var t = {}\n Object.keys(a).forEach(function (k) {\n t[k] = a[k]\n })\n Object.keys(b).forEach(function (k) {\n t[k] = b[k]\n })\n return t\n}\n\nminimatch.defaults = function (def) {\n if (!def || typeof def !== 'object' || !Object.keys(def).length) {\n return minimatch\n }\n\n var orig = minimatch\n\n var m = function minimatch (p, pattern, options) {\n return orig(p, pattern, ext(def, options))\n }\n\n m.Minimatch = function Minimatch (pattern, options) {\n return new orig.Minimatch(pattern, ext(def, options))\n }\n m.Minimatch.defaults = function defaults (options) {\n return orig.defaults(ext(def, options)).Minimatch\n }\n\n m.filter = function filter (pattern, options) {\n return orig.filter(pattern, ext(def, options))\n }\n\n m.defaults = function defaults (options) {\n return orig.defaults(ext(def, options))\n }\n\n m.makeRe = function makeRe (pattern, options) {\n return orig.makeRe(pattern, ext(def, options))\n }\n\n m.braceExpand = function braceExpand (pattern, options) {\n return orig.braceExpand(pattern, ext(def, options))\n }\n\n m.match = function (list, pattern, options) {\n return orig.match(list, pattern, ext(def, options))\n }\n\n return m\n}\n\nMinimatch.defaults = function (def) {\n return minimatch.defaults(def).Minimatch\n}\n\nfunction minimatch (p, pattern, options) {\n assertValidPattern(pattern)\n\n if (!options) options = {}\n\n // shortcut: comments match nothing.\n if (!options.nocomment && pattern.charAt(0) === '#') {\n return false\n }\n\n return new Minimatch(pattern, options).match(p)\n}\n\nfunction Minimatch (pattern, options) {\n if (!(this instanceof Minimatch)) {\n return new Minimatch(pattern, options)\n }\n\n assertValidPattern(pattern)\n\n if (!options) options = {}\n\n pattern = pattern.trim()\n\n // windows support: need to use /, not \\\n if (!options.allowWindowsEscape && path.sep !== '/') {\n pattern = pattern.split(path.sep).join('/')\n }\n\n this.options = options\n this.set = []\n this.pattern = pattern\n this.regexp = null\n this.negate = false\n this.comment = false\n this.empty = false\n this.partial = !!options.partial\n\n // make the set of regexps etc.\n this.make()\n}\n\nMinimatch.prototype.debug = function () {}\n\nMinimatch.prototype.make = make\nfunction make () {\n var pattern = this.pattern\n var options = this.options\n\n // empty patterns and comments match nothing.\n if (!options.nocomment && pattern.charAt(0) === '#') {\n this.comment = true\n return\n }\n if (!pattern) {\n this.empty = true\n return\n }\n\n // step 1: figure out negation, etc.\n this.parseNegate()\n\n // step 2: expand braces\n var set = this.globSet = this.braceExpand()\n\n if (options.debug) this.debug = function debug() { console.error.apply(console, arguments) }\n\n this.debug(this.pattern, set)\n\n // step 3: now we have a set, so turn each one into a series of path-portion\n // matching patterns.\n // These will be regexps, except in the case of \"**\", which is\n // set to the GLOBSTAR object for globstar behavior,\n // and will not contain any / characters\n set = this.globParts = set.map(function (s) {\n return s.split(slashSplit)\n })\n\n this.debug(this.pattern, set)\n\n // glob --> regexps\n set = set.map(function (s, si, set) {\n return s.map(this.parse, this)\n }, this)\n\n this.debug(this.pattern, set)\n\n // filter out everything that didn't compile properly.\n set = set.filter(function (s) {\n return s.indexOf(false) === -1\n })\n\n this.debug(this.pattern, set)\n\n this.set = set\n}\n\nMinimatch.prototype.parseNegate = parseNegate\nfunction parseNegate () {\n var pattern = this.pattern\n var negate = false\n var options = this.options\n var negateOffset = 0\n\n if (options.nonegate) return\n\n for (var i = 0, l = pattern.length\n ; i < l && pattern.charAt(i) === '!'\n ; i++) {\n negate = !negate\n negateOffset++\n }\n\n if (negateOffset) this.pattern = pattern.substr(negateOffset)\n this.negate = negate\n}\n\n// Brace expansion:\n// a{b,c}d -> abd acd\n// a{b,}c -> abc ac\n// a{0..3}d -> a0d a1d a2d a3d\n// a{b,c{d,e}f}g -> abg acdfg acefg\n// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg\n//\n// Invalid sets are not expanded.\n// a{2..}b -> a{2..}b\n// a{b}c -> a{b}c\nminimatch.braceExpand = function (pattern, options) {\n return braceExpand(pattern, options)\n}\n\nMinimatch.prototype.braceExpand = braceExpand\n\nfunction braceExpand (pattern, options) {\n if (!options) {\n if (this instanceof Minimatch) {\n options = this.options\n } else {\n options = {}\n }\n }\n\n pattern = typeof pattern === 'undefined'\n ? this.pattern : pattern\n\n assertValidPattern(pattern)\n\n // Thanks to Yeting Li <https://github.com/yetingli> for\n // improving this regexp to avoid a ReDOS vulnerability.\n if (options.nobrace || !/\\{(?:(?!\\{).)*\\}/.test(pattern)) {\n // shortcut. no need to expand.\n return [pattern]\n }\n\n return expand(pattern)\n}\n\nvar MAX_PATTERN_LENGTH = 1024 * 64\nvar assertValidPattern = function (pattern) {\n if (typeof pattern !== 'string') {\n throw new TypeError('invalid pattern')\n }\n\n if (pattern.length > MAX_PATTERN_LENGTH) {\n throw new TypeError('pattern is too long')\n }\n}\n\n// parse a component of the expanded set.\n// At this point, no pattern may contain \"/\" in it\n// so we're going to return a 2d array, where each entry is the full\n// pattern, split on '/', and then turned into a regular expression.\n// A regexp is made at the end which joins each array with an\n// escaped /, and another full one which joins each regexp with |.\n//\n// Following the lead of Bash 4.1, note that \"**\" only has special meaning\n// when it is the *only* thing in a path portion. Otherwise, any series\n// of * is equivalent to a single *. Globstar behavior is enabled by\n// default, and can be disabled by setting options.noglobstar.\nMinimatch.prototype.parse = parse\nvar SUBPARSE = {}\nfunction parse (pattern, isSub) {\n assertValidPattern(pattern)\n\n var options = this.options\n\n // shortcuts\n if (pattern === '**') {\n if (!options.noglobstar)\n return GLOBSTAR\n else\n pattern = '*'\n }\n if (pattern === '') return ''\n\n var re = ''\n var hasMagic = !!options.nocase\n var escaping = false\n // ? => one single character\n var patternListStack = []\n var negativeLists = []\n var stateChar\n var inClass = false\n var reClassStart = -1\n var classStart = -1\n // . and .. never match anything that doesn't start with .,\n // even when options.dot is set.\n var patternStart = pattern.charAt(0) === '.' ? '' // anything\n // not (start or / followed by . or .. followed by / or end)\n : options.dot ? '(?!(?:^|\\\\\\/)\\\\.{1,2}(?:$|\\\\\\/))'\n : '(?!\\\\.)'\n var self = this\n\n function clearStateChar () {\n if (stateChar) {\n // we had some state-tracking character\n // that wasn't consumed by this pass.\n switch (stateChar) {\n case '*':\n re += star\n hasMagic = true\n break\n case '?':\n re += qmark\n hasMagic = true\n break\n default:\n re += '\\\\' + stateChar\n break\n }\n self.debug('clearStateChar %j %j', stateChar, re)\n stateChar = false\n }\n }\n\n for (var i = 0, len = pattern.length, c\n ; (i < len) && (c = pattern.charAt(i))\n ; i++) {\n this.debug('%s\\t%s %s %j', pattern, i, re, c)\n\n // skip over any that are escaped.\n if (escaping && reSpecials[c]) {\n re += '\\\\' + c\n escaping = false\n continue\n }\n\n switch (c) {\n /* istanbul ignore next */\n case '/': {\n // completely not allowed, even escaped.\n // Should already be path-split by now.\n return false\n }\n\n case '\\\\':\n clearStateChar()\n escaping = true\n continue\n\n // the various stateChar values\n // for the \"extglob\" stuff.\n case '?':\n case '*':\n case '+':\n case '@':\n case '!':\n this.debug('%s\\t%s %s %j <-- stateChar', pattern, i, re, c)\n\n // all of those are literals inside a class, except that\n // the glob [!a] means [^a] in regexp\n if (inClass) {\n this.debug(' in class')\n if (c === '!' && i === classStart + 1) c = '^'\n re += c\n continue\n }\n\n // if we already have a stateChar, then it means\n // that there was something like ** or +? in there.\n // Handle the stateChar, then proceed with this one.\n self.debug('call clearStateChar %j', stateChar)\n clearStateChar()\n stateChar = c\n // if extglob is disabled, then +(asdf|foo) isn't a thing.\n // just clear the statechar *now*, rather than even diving into\n // the patternList stuff.\n if (options.noext) clearStateChar()\n continue\n\n case '(':\n if (inClass) {\n re += '('\n continue\n }\n\n if (!stateChar) {\n re += '\\\\('\n continue\n }\n\n patternListStack.push({\n type: stateChar,\n start: i - 1,\n reStart: re.length,\n open: plTypes[stateChar].open,\n close: plTypes[stateChar].close\n })\n // negation is (?:(?!js)[^/]*)\n re += stateChar === '!' ? '(?:(?!(?:' : '(?:'\n this.debug('plType %j %j', stateChar, re)\n stateChar = false\n continue\n\n case ')':\n if (inClass || !patternListStack.length) {\n re += '\\\\)'\n continue\n }\n\n clearStateChar()\n hasMagic = true\n var pl = patternListStack.pop()\n // negation is (?:(?!js)[^/]*)\n // The others are (?:<pattern>)<type>\n re += pl.close\n if (pl.type === '!') {\n negativeLists.push(pl)\n }\n pl.reEnd = re.length\n continue\n\n case '|':\n if (inClass || !patternListStack.length || escaping) {\n re += '\\\\|'\n escaping = false\n continue\n }\n\n clearStateChar()\n re += '|'\n continue\n\n // these are mostly the same in regexp and glob\n case '[':\n // swallow any state-tracking char before the [\n clearStateChar()\n\n if (inClass) {\n re += '\\\\' + c\n continue\n }\n\n inClass = true\n classStart = i\n reClassStart = re.length\n re += c\n continue\n\n case ']':\n // a right bracket shall lose its special\n // meaning and represent itself in\n // a bracket expression if it occurs\n // first in the list. -- POSIX.2 2.8.3.2\n if (i === classStart + 1 || !inClass) {\n re += '\\\\' + c\n escaping = false\n continue\n }\n\n // handle the case where we left a class open.\n // \"[z-a]\" is valid, equivalent to \"\\[z-a\\]\"\n // split where the last [ was, make sure we don't have\n // an invalid re. if so, re-walk the contents of the\n // would-be class to re-translate any characters that\n // were passed through as-is\n // TODO: It would probably be faster to determine this\n // without a try/catch and a new RegExp, but it's tricky\n // to do safely. For now, this is safe and works.\n var cs = pattern.substring(classStart + 1, i)\n try {\n RegExp('[' + cs + ']')\n } catch (er) {\n // not a valid class!\n var sp = this.parse(cs, SUBPARSE)\n re = re.substr(0, reClassStart) + '\\\\[' + sp[0] + '\\\\]'\n hasMagic = hasMagic || sp[1]\n inClass = false\n continue\n }\n\n // finish up the class.\n hasMagic = true\n inClass = false\n re += c\n continue\n\n default:\n // swallow any state char that wasn't consumed\n clearStateChar()\n\n if (escaping) {\n // no need\n escaping = false\n } else if (reSpecials[c]\n && !(c === '^' && inClass)) {\n re += '\\\\'\n }\n\n re += c\n\n } // switch\n } // for\n\n // handle the case where we left a class open.\n // \"[abc\" is valid, equivalent to \"\\[abc\"\n if (inClass) {\n // split where the last [ was, and escape it\n // this is a huge pita. We now have to re-walk\n // the contents of the would-be class to re-translate\n // any characters that were passed through as-is\n cs = pattern.substr(classStart + 1)\n sp = this.parse(cs, SUBPARSE)\n re = re.substr(0, reClassStart) + '\\\\[' + sp[0]\n hasMagic = hasMagic || sp[1]\n }\n\n // handle the case where we had a +( thing at the *end*\n // of the pattern.\n // each pattern list stack adds 3 chars, and we need to go through\n // and escape any | chars that were passed through as-is for the regexp.\n // Go through and escape them, taking care not to double-escape any\n // | chars that were already escaped.\n for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) {\n var tail = re.slice(pl.reStart + pl.open.length)\n this.debug('setting tail', re, pl)\n // maybe some even number of \\, then maybe 1 \\, followed by a |\n tail = tail.replace(/((?:\\\\{2}){0,64})(\\\\?)\\|/g, function (_, $1, $2) {\n if (!$2) {\n // the | isn't already escaped, so escape it.\n $2 = '\\\\'\n }\n\n // need to escape all those slashes *again*, without escaping the\n // one that we need for escaping the | character. As it works out,\n // escaping an even number of slashes can be done by simply repeating\n // it exactly after itself. That's why this trick works.\n //\n // I am sorry that you have to see this.\n return $1 + $1 + $2 + '|'\n })\n\n this.debug('tail=%j\\n %s', tail, tail, pl, re)\n var t = pl.type === '*' ? star\n : pl.type === '?' ? qmark\n : '\\\\' + pl.type\n\n hasMagic = true\n re = re.slice(0, pl.reStart) + t + '\\\\(' + tail\n }\n\n // handle trailing things that only matter at the very end.\n clearStateChar()\n if (escaping) {\n // trailing \\\\\n re += '\\\\\\\\'\n }\n\n // only need to apply the nodot start if the re starts with\n // something that could conceivably capture a dot\n var addPatternStart = false\n switch (re.charAt(0)) {\n case '[': case '.': case '(': addPatternStart = true\n }\n\n // Hack to work around lack of negative lookbehind in JS\n // A pattern like: *.!(x).!(y|z) needs to ensure that a name\n // like 'a.xyz.yz' doesn't match. So, the first negative\n // lookahead, has to look ALL the way ahead, to the end of\n // the pattern.\n for (var n = negativeLists.length - 1; n > -1; n--) {\n var nl = negativeLists[n]\n\n var nlBefore = re.slice(0, nl.reStart)\n var nlFirst = re.slice(nl.reStart, nl.reEnd - 8)\n var nlLast = re.slice(nl.reEnd - 8, nl.reEnd)\n var nlAfter = re.slice(nl.reEnd)\n\n nlLast += nlAfter\n\n // Handle nested stuff like *(*.js|!(*.json)), where open parens\n // mean that we should *not* include the ) in the bit that is considered\n // \"after\" the negated section.\n var openParensBefore = nlBefore.split('(').length - 1\n var cleanAfter = nlAfter\n for (i = 0; i < openParensBefore; i++) {\n cleanAfter = cleanAfter.replace(/\\)[+*?]?/, '')\n }\n nlAfter = cleanAfter\n\n var dollar = ''\n if (nlAfter === '' && isSub !== SUBPARSE) {\n dollar = '$'\n }\n var newRe = nlBefore + nlFirst + nlAfter + dollar + nlLast\n re = newRe\n }\n\n // if the re is not \"\" at this point, then we need to make sure\n // it doesn't match against an empty path part.\n // Otherwise a/* will match a/, which it should not.\n if (re !== '' && hasMagic) {\n re = '(?=.)' + re\n }\n\n if (addPatternStart) {\n re = patternStart + re\n }\n\n // parsing just a piece of a larger pattern.\n if (isSub === SUBPARSE) {\n return [re, hasMagic]\n }\n\n // skip the regexp for non-magical patterns\n // unescape anything in it, though, so that it'll be\n // an exact match against a file etc.\n if (!hasMagic) {\n return globUnescape(pattern)\n }\n\n var flags = options.nocase ? 'i' : ''\n try {\n var regExp = new RegExp('^' + re + '$', flags)\n } catch (er) /* istanbul ignore next - should be impossible */ {\n // If it was an invalid regular expression, then it can't match\n // anything. This trick looks for a character after the end of\n // the string, which is of course impossible, except in multi-line\n // mode, but it's not a /m regex.\n return new RegExp('$.')\n }\n\n regExp._glob = pattern\n regExp._src = re\n\n return regExp\n}\n\nminimatch.makeRe = function (pattern, options) {\n return new Minimatch(pattern, options || {}).makeRe()\n}\n\nMinimatch.prototype.makeRe = makeRe\nfunction makeRe () {\n if (this.regexp || this.regexp === false) return this.regexp\n\n // at this point, this.set is a 2d array of partial\n // pattern strings, or \"**\".\n //\n // It's better to use .match(). This function shouldn't\n // be used, really, but it's pretty convenient sometimes,\n // when you just want to work with a regex.\n var set = this.set\n\n if (!set.length) {\n this.regexp = false\n return this.regexp\n }\n var options = this.options\n\n var twoStar = options.noglobstar ? star\n : options.dot ? twoStarDot\n : twoStarNoDot\n var flags = options.nocase ? 'i' : ''\n\n var re = set.map(function (pattern) {\n return pattern.map(function (p) {\n return (p === GLOBSTAR) ? twoStar\n : (typeof p === 'string') ? regExpEscape(p)\n : p._src\n }).join('\\\\\\/')\n }).join('|')\n\n // must match entire pattern\n // ending in a * or ** will make it less strict.\n re = '^(?:' + re + ')$'\n\n // can match anything, as long as it's not this.\n if (this.negate) re = '^(?!' + re + ').*$'\n\n try {\n this.regexp = new RegExp(re, flags)\n } catch (ex) /* istanbul ignore next - should be impossible */ {\n this.regexp = false\n }\n return this.regexp\n}\n\nminimatch.match = function (list, pattern, options) {\n options = options || {}\n var mm = new Minimatch(pattern, options)\n list = list.filter(function (f) {\n return mm.match(f)\n })\n if (mm.options.nonull && !list.length) {\n list.push(pattern)\n }\n return list\n}\n\nMinimatch.prototype.match = function match (f, partial) {\n if (typeof partial === 'undefined') partial = this.partial\n this.debug('match', f, this.pattern)\n // short-circuit in the case of busted things.\n // comments, etc.\n if (this.comment) return false\n if (this.empty) return f === ''\n\n if (f === '/' && partial) return true\n\n var options = this.options\n\n // windows: need to use /, not \\\n if (path.sep !== '/') {\n f = f.split(path.sep).join('/')\n }\n\n // treat the test path as a set of pathparts.\n f = f.split(slashSplit)\n this.debug(this.pattern, 'split', f)\n\n // just ONE of the pattern sets in this.set needs to match\n // in order for it to be valid. If negating, then just one\n // match means that we have failed.\n // Either way, return on the first hit.\n\n var set = this.set\n this.debug(this.pattern, 'set', set)\n\n // Find the basename of the path by looking for the last non-empty segment\n var filename\n var i\n for (i = f.length - 1; i >= 0; i--) {\n filename = f[i]\n if (filename) break\n }\n\n for (i = 0; i < set.length; i++) {\n var pattern = set[i]\n var file = f\n if (options.matchBase && pattern.length === 1) {\n file = [filename]\n }\n var hit = this.matchOne(file, pattern, partial)\n if (hit) {\n if (options.flipNegate) return true\n return !this.negate\n }\n }\n\n // didn't get any hits. this is success if it's a negative\n // pattern, failure otherwise.\n if (options.flipNegate) return false\n return this.negate\n}\n\n// set partial to true to test if, for example,\n// \"/a/b\" matches the start of \"/*/b/*/d\"\n// Partial means, if you run out of file before you run\n// out of pattern, then that's fine, as long as all\n// the parts match.\nMinimatch.prototype.matchOne = function (file, pattern, partial) {\n var options = this.options\n\n this.debug('matchOne',\n { 'this': this, file: file, pattern: pattern })\n\n this.debug('matchOne', file.length, pattern.length)\n\n for (var fi = 0,\n pi = 0,\n fl = file.length,\n pl = pattern.length\n ; (fi < fl) && (pi < pl)\n ; fi++, pi++) {\n this.debug('matchOne loop')\n var p = pattern[pi]\n var f = file[fi]\n\n this.debug(pattern, p, f)\n\n // should be impossible.\n // some invalid regexp stuff in the set.\n /* istanbul ignore if */\n if (p === false) return false\n\n if (p === GLOBSTAR) {\n this.debug('GLOBSTAR', [pattern, p, f])\n\n // \"**\"\n // a/**/b/**/c would match the following:\n // a/b/x/y/z/c\n // a/x/y/z/b/c\n // a/b/x/b/x/c\n // a/b/c\n // To do this, take the rest of the pattern after\n // the **, and see if it would match the file remainder.\n // If so, return success.\n // If not, the ** \"swallows\" a segment, and try again.\n // This is recursively awful.\n //\n // a/**/b/**/c matching a/b/x/y/z/c\n // - a matches a\n // - doublestar\n // - matchOne(b/x/y/z/c, b/**/c)\n // - b matches b\n // - doublestar\n // - matchOne(x/y/z/c, c) -> no\n // - matchOne(y/z/c, c) -> no\n // - matchOne(z/c, c) -> no\n // - matchOne(c, c) yes, hit\n var fr = fi\n var pr = pi + 1\n if (pr === pl) {\n this.debug('** at the end')\n // a ** at the end will just swallow the rest.\n // We have found a match.\n // however, it will not swallow /.x, unless\n // options.dot is set.\n // . and .. are *never* matched by **, for explosively\n // exponential reasons.\n for (; fi < fl; fi++) {\n if (file[fi] === '.' || file[fi] === '..' ||\n (!options.dot && file[fi].charAt(0) === '.')) return false\n }\n return true\n }\n\n // ok, let's see if we can swallow whatever we can.\n while (fr < fl) {\n var swallowee = file[fr]\n\n this.debug('\\nglobstar while', file, fr, pattern, pr, swallowee)\n\n // XXX remove this slice. Just pass the start index.\n if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {\n this.debug('globstar found match!', fr, fl, swallowee)\n // found a match.\n return true\n } else {\n // can't swallow \".\" or \"..\" ever.\n // can only swallow \".foo\" when explicitly asked.\n if (swallowee === '.' || swallowee === '..' ||\n (!options.dot && swallowee.charAt(0) === '.')) {\n this.debug('dot detected!', file, fr, pattern, pr)\n break\n }\n\n // ** swallows a segment, and continue.\n this.debug('globstar swallow a segment, and continue')\n fr++\n }\n }\n\n // no match was found.\n // However, in partial mode, we can't say this is necessarily over.\n // If there's more *pattern* left, then\n /* istanbul ignore if */\n if (partial) {\n // ran out of file\n this.debug('\\n>>> no match, partial?', file, fr, pattern, pr)\n if (fr === fl) return true\n }\n return false\n }\n\n // something other than **\n // non-magic patterns just have to match exactly\n // patterns with magic have been turned into regexps.\n var hit\n if (typeof p === 'string') {\n hit = f === p\n this.debug('string match', p, f, hit)\n } else {\n hit = f.match(p)\n this.debug('pattern match', p, f, hit)\n }\n\n if (!hit) return false\n }\n\n // Note: ending in / means that we'll get a final \"\"\n // at the end of the pattern. This can only match a\n // corresponding \"\" at the end of the file.\n // If the file ends in /, then it can only match a\n // a pattern that ends in /, unless the pattern just\n // doesn't have any more for it. But, a/b/ should *not*\n // match \"a/b/*\", even though \"\" matches against the\n // [^/]*? pattern, except in partial mode, where it might\n // simply not be reached yet.\n // However, a/b/ should still satisfy a/*\n\n // now either we fell off the end of the pattern, or we're done.\n if (fi === fl && pi === pl) {\n // ran out of pattern and filename at the same time.\n // an exact hit!\n return true\n } else if (fi === fl) {\n // ran out of file, but still had pattern left.\n // this is ok if we're doing the match as part of\n // a glob fs traversal.\n return partial\n } else /* istanbul ignore else */ if (pi === pl) {\n // ran out of pattern, still have file left.\n // this is only acceptable if we're on the very last\n // empty segment of a file with a trailing slash.\n // a/* should match a/b/\n return (fi === fl - 1) && (file[fi] === '')\n }\n\n // should be unreachable.\n /* istanbul ignore next */\n throw new Error('wtf?')\n}\n\n// replace stuff like \\* with *\nfunction globUnescape (s) {\n return s.replace(/\\\\(.)/g, '$1')\n}\n\nfunction regExpEscape (s) {\n return s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&')\n}\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","try {\n var util = require('util');\n /* istanbul ignore next */\n if (typeof util.inherits !== 'function') throw '';\n module.exports = util.inherits;\n} catch (e) {\n /* istanbul ignore next */\n module.exports = require('./inherits_browser.js');\n}\n","'use strict';\n\nfunction posix(path) {\n\treturn path.charAt(0) === '/';\n}\n\nfunction win32(path) {\n\t// https://github.com/nodejs/node/blob/b3fcc245fb25539909ef1d5eaa01dbf92e168633/lib/path.js#L56\n\tvar splitDeviceRe = /^([a-zA-Z]:|[\\\\\\/]{2}[^\\\\\\/]+[\\\\\\/]+[^\\\\\\/]+)?([\\\\\\/])?([\\s\\S]*?)$/;\n\tvar result = splitDeviceRe.exec(path);\n\tvar device = result[1] || '';\n\tvar isUnc = Boolean(device && device.charAt(1) !== ':');\n\n\t// UNC paths are always absolute\n\treturn Boolean(result[2] || isUnc);\n}\n\nmodule.exports = process.platform === 'win32' ? win32 : posix;\nmodule.exports.posix = posix;\nmodule.exports.win32 = win32;\n","exports.setopts = setopts\nexports.ownProp = ownProp\nexports.makeAbs = makeAbs\nexports.finish = finish\nexports.mark = mark\nexports.isIgnored = isIgnored\nexports.childrenIgnored = childrenIgnored\n\nfunction ownProp (obj, field) {\n return Object.prototype.hasOwnProperty.call(obj, field)\n}\n\nvar fs = require(\"fs\")\nvar path = require(\"path\")\nvar minimatch = require(\"minimatch\")\nvar isAbsolute = require(\"path-is-absolute\")\nvar Minimatch = minimatch.Minimatch\n\nfunction alphasort (a, b) {\n return a.localeCompare(b, 'en')\n}\n\nfunction setupIgnores (self, options) {\n self.ignore = options.ignore || []\n\n if (!Array.isArray(self.ignore))\n self.ignore = [self.ignore]\n\n if (self.ignore.length) {\n self.ignore = self.ignore.map(ignoreMap)\n }\n}\n\n// ignore patterns are always in dot:true mode.\nfunction ignoreMap (pattern) {\n var gmatcher = null\n if (pattern.slice(-3) === '/**') {\n var gpattern = pattern.replace(/(\\/\\*\\*)+$/, '')\n gmatcher = new Minimatch(gpattern, { dot: true })\n }\n\n return {\n matcher: new Minimatch(pattern, { dot: true }),\n gmatcher: gmatcher\n }\n}\n\nfunction setopts (self, pattern, options) {\n if (!options)\n options = {}\n\n // base-matching: just use globstar for that.\n if (options.matchBase && -1 === pattern.indexOf(\"/\")) {\n if (options.noglobstar) {\n throw new Error(\"base matching requires globstar\")\n }\n pattern = \"**/\" + pattern\n }\n\n self.silent = !!options.silent\n self.pattern = pattern\n self.strict = options.strict !== false\n self.realpath = !!options.realpath\n self.realpathCache = options.realpathCache || Object.create(null)\n self.follow = !!options.follow\n self.dot = !!options.dot\n self.mark = !!options.mark\n self.nodir = !!options.nodir\n if (self.nodir)\n self.mark = true\n self.sync = !!options.sync\n self.nounique = !!options.nounique\n self.nonull = !!options.nonull\n self.nosort = !!options.nosort\n self.nocase = !!options.nocase\n self.stat = !!options.stat\n self.noprocess = !!options.noprocess\n self.absolute = !!options.absolute\n self.fs = options.fs || fs\n\n self.maxLength = options.maxLength || Infinity\n self.cache = options.cache || Object.create(null)\n self.statCache = options.statCache || Object.create(null)\n self.symlinks = options.symlinks || Object.create(null)\n\n setupIgnores(self, options)\n\n self.changedCwd = false\n var cwd = process.cwd()\n if (!ownProp(options, \"cwd\"))\n self.cwd = cwd\n else {\n self.cwd = path.resolve(options.cwd)\n self.changedCwd = self.cwd !== cwd\n }\n\n self.root = options.root || path.resolve(self.cwd, \"/\")\n self.root = path.resolve(self.root)\n if (process.platform === \"win32\")\n self.root = self.root.replace(/\\\\/g, \"/\")\n\n // TODO: is an absolute `cwd` supposed to be resolved against `root`?\n // e.g. { cwd: '/test', root: __dirname } === path.join(__dirname, '/test')\n self.cwdAbs = isAbsolute(self.cwd) ? self.cwd : makeAbs(self, self.cwd)\n if (process.platform === \"win32\")\n self.cwdAbs = self.cwdAbs.replace(/\\\\/g, \"/\")\n self.nomount = !!options.nomount\n\n // disable comments and negation in Minimatch.\n // Note that they are not supported in Glob itself anyway.\n options.nonegate = true\n options.nocomment = true\n // always treat \\ in patterns as escapes, not path separators\n options.allowWindowsEscape = false\n\n self.minimatch = new Minimatch(pattern, options)\n self.options = self.minimatch.options\n}\n\nfunction finish (self) {\n var nou = self.nounique\n var all = nou ? [] : Object.create(null)\n\n for (var i = 0, l = self.matches.length; i < l; i ++) {\n var matches = self.matches[i]\n if (!matches || Object.keys(matches).length === 0) {\n if (self.nonull) {\n // do like the shell, and spit out the literal glob\n var literal = self.minimatch.globSet[i]\n if (nou)\n all.push(literal)\n else\n all[literal] = true\n }\n } else {\n // had matches\n var m = Object.keys(matches)\n if (nou)\n all.push.apply(all, m)\n else\n m.forEach(function (m) {\n all[m] = true\n })\n }\n }\n\n if (!nou)\n all = Object.keys(all)\n\n if (!self.nosort)\n all = all.sort(alphasort)\n\n // at *some* point we statted all of these\n if (self.mark) {\n for (var i = 0; i < all.length; i++) {\n all[i] = self._mark(all[i])\n }\n if (self.nodir) {\n all = all.filter(function (e) {\n var notDir = !(/\\/$/.test(e))\n var c = self.cache[e] || self.cache[makeAbs(self, e)]\n if (notDir && c)\n notDir = c !== 'DIR' && !Array.isArray(c)\n return notDir\n })\n }\n }\n\n if (self.ignore.length)\n all = all.filter(function(m) {\n return !isIgnored(self, m)\n })\n\n self.found = all\n}\n\nfunction mark (self, p) {\n var abs = makeAbs(self, p)\n var c = self.cache[abs]\n var m = p\n if (c) {\n var isDir = c === 'DIR' || Array.isArray(c)\n var slash = p.slice(-1) === '/'\n\n if (isDir && !slash)\n m += '/'\n else if (!isDir && slash)\n m = m.slice(0, -1)\n\n if (m !== p) {\n var mabs = makeAbs(self, m)\n self.statCache[mabs] = self.statCache[abs]\n self.cache[mabs] = self.cache[abs]\n }\n }\n\n return m\n}\n\n// lotta situps...\nfunction makeAbs (self, f) {\n var abs = f\n if (f.charAt(0) === '/') {\n abs = path.join(self.root, f)\n } else if (isAbsolute(f) || f === '') {\n abs = f\n } else if (self.changedCwd) {\n abs = path.resolve(self.cwd, f)\n } else {\n abs = path.resolve(f)\n }\n\n if (process.platform === 'win32')\n abs = abs.replace(/\\\\/g, '/')\n\n return abs\n}\n\n\n// Return true, if pattern ends with globstar '**', for the accompanying parent directory.\n// Ex:- If node_modules/** is the pattern, add 'node_modules' to ignore list along with it's contents\nfunction isIgnored (self, path) {\n if (!self.ignore.length)\n return false\n\n return self.ignore.some(function(item) {\n return item.matcher.match(path) || !!(item.gmatcher && item.gmatcher.match(path))\n })\n}\n\nfunction childrenIgnored (self, path) {\n if (!self.ignore.length)\n return false\n\n return self.ignore.some(function(item) {\n return !!(item.gmatcher && item.gmatcher.match(path))\n })\n}\n","module.exports = globSync\nglobSync.GlobSync = GlobSync\n\nvar rp = require('fs.realpath')\nvar minimatch = require('minimatch')\nvar Minimatch = minimatch.Minimatch\nvar Glob = require('./glob.js').Glob\nvar util = require('util')\nvar path = require('path')\nvar assert = require('assert')\nvar isAbsolute = require('path-is-absolute')\nvar common = require('./common.js')\nvar setopts = common.setopts\nvar ownProp = common.ownProp\nvar childrenIgnored = common.childrenIgnored\nvar isIgnored = common.isIgnored\n\nfunction globSync (pattern, options) {\n if (typeof options === 'function' || arguments.length === 3)\n throw new TypeError('callback provided to sync glob\\n'+\n 'See: https://github.com/isaacs/node-glob/issues/167')\n\n return new GlobSync(pattern, options).found\n}\n\nfunction GlobSync (pattern, options) {\n if (!pattern)\n throw new Error('must provide pattern')\n\n if (typeof options === 'function' || arguments.length === 3)\n throw new TypeError('callback provided to sync glob\\n'+\n 'See: https://github.com/isaacs/node-glob/issues/167')\n\n if (!(this instanceof GlobSync))\n return new GlobSync(pattern, options)\n\n setopts(this, pattern, options)\n\n if (this.noprocess)\n return this\n\n var n = this.minimatch.set.length\n this.matches = new Array(n)\n for (var i = 0; i < n; i ++) {\n this._process(this.minimatch.set[i], i, false)\n }\n this._finish()\n}\n\nGlobSync.prototype._finish = function () {\n assert.ok(this instanceof GlobSync)\n if (this.realpath) {\n var self = this\n this.matches.forEach(function (matchset, index) {\n var set = self.matches[index] = Object.create(null)\n for (var p in matchset) {\n try {\n p = self._makeAbs(p)\n var real = rp.realpathSync(p, self.realpathCache)\n set[real] = true\n } catch (er) {\n if (er.syscall === 'stat')\n set[self._makeAbs(p)] = true\n else\n throw er\n }\n }\n })\n }\n common.finish(this)\n}\n\n\nGlobSync.prototype._process = function (pattern, index, inGlobStar) {\n assert.ok(this instanceof GlobSync)\n\n // Get the first [n] parts of pattern that are all strings.\n var n = 0\n while (typeof pattern[n] === 'string') {\n n ++\n }\n // now n is the index of the first one that is *not* a string.\n\n // See if there's anything else\n var prefix\n switch (n) {\n // if not, then this is rather simple\n case pattern.length:\n this._processSimple(pattern.join('/'), index)\n return\n\n case 0:\n // pattern *starts* with some non-trivial item.\n // going to readdir(cwd), but not include the prefix in matches.\n prefix = null\n break\n\n default:\n // pattern has some string bits in the front.\n // whatever it starts with, whether that's 'absolute' like /foo/bar,\n // or 'relative' like '../baz'\n prefix = pattern.slice(0, n).join('/')\n break\n }\n\n var remain = pattern.slice(n)\n\n // get the list of entries.\n var read\n if (prefix === null)\n read = '.'\n else if (isAbsolute(prefix) ||\n isAbsolute(pattern.map(function (p) {\n return typeof p === 'string' ? p : '[*]'\n }).join('/'))) {\n if (!prefix || !isAbsolute(prefix))\n prefix = '/' + prefix\n read = prefix\n } else\n read = prefix\n\n var abs = this._makeAbs(read)\n\n //if ignored, skip processing\n if (childrenIgnored(this, read))\n return\n\n var isGlobStar = remain[0] === minimatch.GLOBSTAR\n if (isGlobStar)\n this._processGlobStar(prefix, read, abs, remain, index, inGlobStar)\n else\n this._processReaddir(prefix, read, abs, remain, index, inGlobStar)\n}\n\n\nGlobSync.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar) {\n var entries = this._readdir(abs, inGlobStar)\n\n // if the abs isn't a dir, then nothing can match!\n if (!entries)\n return\n\n // It will only match dot entries if it starts with a dot, or if\n // dot is set. Stuff like @(.foo|.bar) isn't allowed.\n var pn = remain[0]\n var negate = !!this.minimatch.negate\n var rawGlob = pn._glob\n var dotOk = this.dot || rawGlob.charAt(0) === '.'\n\n var matchedEntries = []\n for (var i = 0; i < entries.length; i++) {\n var e = entries[i]\n if (e.charAt(0) !== '.' || dotOk) {\n var m\n if (negate && !prefix) {\n m = !e.match(pn)\n } else {\n m = e.match(pn)\n }\n if (m)\n matchedEntries.push(e)\n }\n }\n\n var len = matchedEntries.length\n // If there are no matched entries, then nothing matches.\n if (len === 0)\n return\n\n // if this is the last remaining pattern bit, then no need for\n // an additional stat *unless* the user has specified mark or\n // stat explicitly. We know they exist, since readdir returned\n // them.\n\n if (remain.length === 1 && !this.mark && !this.stat) {\n if (!this.matches[index])\n this.matches[index] = Object.create(null)\n\n for (var i = 0; i < len; i ++) {\n var e = matchedEntries[i]\n if (prefix) {\n if (prefix.slice(-1) !== '/')\n e = prefix + '/' + e\n else\n e = prefix + e\n }\n\n if (e.charAt(0) === '/' && !this.nomount) {\n e = path.join(this.root, e)\n }\n this._emitMatch(index, e)\n }\n // This was the last one, and no stats were needed\n return\n }\n\n // now test all matched entries as stand-ins for that part\n // of the pattern.\n remain.shift()\n for (var i = 0; i < len; i ++) {\n var e = matchedEntries[i]\n var newPattern\n if (prefix)\n newPattern = [prefix, e]\n else\n newPattern = [e]\n this._process(newPattern.concat(remain), index, inGlobStar)\n }\n}\n\n\nGlobSync.prototype._emitMatch = function (index, e) {\n if (isIgnored(this, e))\n return\n\n var abs = this._makeAbs(e)\n\n if (this.mark)\n e = this._mark(e)\n\n if (this.absolute) {\n e = abs\n }\n\n if (this.matches[index][e])\n return\n\n if (this.nodir) {\n var c = this.cache[abs]\n if (c === 'DIR' || Array.isArray(c))\n return\n }\n\n this.matches[index][e] = true\n\n if (this.stat)\n this._stat(e)\n}\n\n\nGlobSync.prototype._readdirInGlobStar = function (abs) {\n // follow all symlinked directories forever\n // just proceed as if this is a non-globstar situation\n if (this.follow)\n return this._readdir(abs, false)\n\n var entries\n var lstat\n var stat\n try {\n lstat = this.fs.lstatSync(abs)\n } catch (er) {\n if (er.code === 'ENOENT') {\n // lstat failed, doesn't exist\n return null\n }\n }\n\n var isSym = lstat && lstat.isSymbolicLink()\n this.symlinks[abs] = isSym\n\n // If it's not a symlink or a dir, then it's definitely a regular file.\n // don't bother doing a readdir in that case.\n if (!isSym && lstat && !lstat.isDirectory())\n this.cache[abs] = 'FILE'\n else\n entries = this._readdir(abs, false)\n\n return entries\n}\n\nGlobSync.prototype._readdir = function (abs, inGlobStar) {\n var entries\n\n if (inGlobStar && !ownProp(this.symlinks, abs))\n return this._readdirInGlobStar(abs)\n\n if (ownProp(this.cache, abs)) {\n var c = this.cache[abs]\n if (!c || c === 'FILE')\n return null\n\n if (Array.isArray(c))\n return c\n }\n\n try {\n return this._readdirEntries(abs, this.fs.readdirSync(abs))\n } catch (er) {\n this._readdirError(abs, er)\n return null\n }\n}\n\nGlobSync.prototype._readdirEntries = function (abs, entries) {\n // if we haven't asked to stat everything, then just\n // assume that everything in there exists, so we can avoid\n // having to stat it a second time.\n if (!this.mark && !this.stat) {\n for (var i = 0; i < entries.length; i ++) {\n var e = entries[i]\n if (abs === '/')\n e = abs + e\n else\n e = abs + '/' + e\n this.cache[e] = true\n }\n }\n\n this.cache[abs] = entries\n\n // mark and cache dir-ness\n return entries\n}\n\nGlobSync.prototype._readdirError = function (f, er) {\n // handle errors, and cache the information\n switch (er.code) {\n case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205\n case 'ENOTDIR': // totally normal. means it *does* exist.\n var abs = this._makeAbs(f)\n this.cache[abs] = 'FILE'\n if (abs === this.cwdAbs) {\n var error = new Error(er.code + ' invalid cwd ' + this.cwd)\n error.path = this.cwd\n error.code = er.code\n throw error\n }\n break\n\n case 'ENOENT': // not terribly unusual\n case 'ELOOP':\n case 'ENAMETOOLONG':\n case 'UNKNOWN':\n this.cache[this._makeAbs(f)] = false\n break\n\n default: // some unusual error. Treat as failure.\n this.cache[this._makeAbs(f)] = false\n if (this.strict)\n throw er\n if (!this.silent)\n console.error('glob error', er)\n break\n }\n}\n\nGlobSync.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar) {\n\n var entries = this._readdir(abs, inGlobStar)\n\n // no entries means not a dir, so it can never have matches\n // foo.txt/** doesn't match foo.txt\n if (!entries)\n return\n\n // test without the globstar, and with every child both below\n // and replacing the globstar.\n var remainWithoutGlobStar = remain.slice(1)\n var gspref = prefix ? [ prefix ] : []\n var noGlobStar = gspref.concat(remainWithoutGlobStar)\n\n // the noGlobStar pattern exits the inGlobStar state\n this._process(noGlobStar, index, false)\n\n var len = entries.length\n var isSym = this.symlinks[abs]\n\n // If it's a symlink, and we're in a globstar, then stop\n if (isSym && inGlobStar)\n return\n\n for (var i = 0; i < len; i++) {\n var e = entries[i]\n if (e.charAt(0) === '.' && !this.dot)\n continue\n\n // these two cases enter the inGlobStar state\n var instead = gspref.concat(entries[i], remainWithoutGlobStar)\n this._process(instead, index, true)\n\n var below = gspref.concat(entries[i], remain)\n this._process(below, index, true)\n }\n}\n\nGlobSync.prototype._processSimple = function (prefix, index) {\n // XXX review this. Shouldn't it be doing the mounting etc\n // before doing stat? kinda weird?\n var exists = this._stat(prefix)\n\n if (!this.matches[index])\n this.matches[index] = Object.create(null)\n\n // If it doesn't exist, then just mark the lack of results\n if (!exists)\n return\n\n if (prefix && isAbsolute(prefix) && !this.nomount) {\n var trail = /[\\/\\\\]$/.test(prefix)\n if (prefix.charAt(0) === '/') {\n prefix = path.join(this.root, prefix)\n } else {\n prefix = path.resolve(this.root, prefix)\n if (trail)\n prefix += '/'\n }\n }\n\n if (process.platform === 'win32')\n prefix = prefix.replace(/\\\\/g, '/')\n\n // Mark this as a match\n this._emitMatch(index, prefix)\n}\n\n// Returns either 'DIR', 'FILE', or false\nGlobSync.prototype._stat = function (f) {\n var abs = this._makeAbs(f)\n var needDir = f.slice(-1) === '/'\n\n if (f.length > this.maxLength)\n return false\n\n if (!this.stat && ownProp(this.cache, abs)) {\n var c = this.cache[abs]\n\n if (Array.isArray(c))\n c = 'DIR'\n\n // It exists, but maybe not how we need it\n if (!needDir || c === 'DIR')\n return c\n\n if (needDir && c === 'FILE')\n return false\n\n // otherwise we have to stat, because maybe c=true\n // if we know it exists, but not what it is.\n }\n\n var exists\n var stat = this.statCache[abs]\n if (!stat) {\n var lstat\n try {\n lstat = this.fs.lstatSync(abs)\n } catch (er) {\n if (er && (er.code === 'ENOENT' || er.code === 'ENOTDIR')) {\n this.statCache[abs] = false\n return false\n }\n }\n\n if (lstat && lstat.isSymbolicLink()) {\n try {\n stat = this.fs.statSync(abs)\n } catch (er) {\n stat = lstat\n }\n } else {\n stat = lstat\n }\n }\n\n this.statCache[abs] = stat\n\n var c = true\n if (stat)\n c = stat.isDirectory() ? 'DIR' : 'FILE'\n\n this.cache[abs] = this.cache[abs] || c\n\n if (needDir && c === 'FILE')\n return false\n\n return c\n}\n\nGlobSync.prototype._mark = function (p) {\n return common.mark(this, p)\n}\n\nGlobSync.prototype._makeAbs = function (f) {\n return common.makeAbs(this, f)\n}\n","// Returns a wrapper function that returns a wrapped callback\n// The wrapper function should do some stuff, and return a\n// presumably different callback function.\n// This makes sure that own properties are retained, so that\n// decorations and such are not lost along the way.\nmodule.exports = wrappy\nfunction wrappy (fn, cb) {\n if (fn && cb) return wrappy(fn)(cb)\n\n if (typeof fn !== 'function')\n throw new TypeError('need wrapper function')\n\n Object.keys(fn).forEach(function (k) {\n wrapper[k] = fn[k]\n })\n\n return wrapper\n\n function wrapper() {\n var args = new Array(arguments.length)\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i]\n }\n var ret = fn.apply(this, args)\n var cb = args[args.length-1]\n if (typeof ret === 'function' && ret !== cb) {\n Object.keys(cb).forEach(function (k) {\n ret[k] = cb[k]\n })\n }\n return ret\n }\n}\n","var wrappy = require('wrappy')\nmodule.exports = wrappy(once)\nmodule.exports.strict = wrappy(onceStrict)\n\nonce.proto = once(function () {\n Object.defineProperty(Function.prototype, 'once', {\n value: function () {\n return once(this)\n },\n configurable: true\n })\n\n Object.defineProperty(Function.prototype, 'onceStrict', {\n value: function () {\n return onceStrict(this)\n },\n configurable: true\n })\n})\n\nfunction once (fn) {\n var f = function () {\n if (f.called) return f.value\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n f.called = false\n return f\n}\n\nfunction onceStrict (fn) {\n var f = function () {\n if (f.called)\n throw new Error(f.onceError)\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n var name = fn.name || 'Function wrapped with `once`'\n f.onceError = name + \" shouldn't be called more than once\"\n f.called = false\n return f\n}\n","var wrappy = require('wrappy')\nvar reqs = Object.create(null)\nvar once = require('once')\n\nmodule.exports = wrappy(inflight)\n\nfunction inflight (key, cb) {\n if (reqs[key]) {\n reqs[key].push(cb)\n return null\n } else {\n reqs[key] = [cb]\n return makeres(key)\n }\n}\n\nfunction makeres (key) {\n return once(function RES () {\n var cbs = reqs[key]\n var len = cbs.length\n var args = slice(arguments)\n\n // XXX It's somewhat ambiguous whether a new callback added in this\n // pass should be queued for later execution if something in the\n // list of callbacks throws, or if it should just be discarded.\n // However, it's such an edge case that it hardly matters, and either\n // choice is likely as surprising as the other.\n // As it happens, we do go ahead and schedule it for later execution.\n try {\n for (var i = 0; i < len; i++) {\n cbs[i].apply(null, args)\n }\n } finally {\n if (cbs.length > len) {\n // added more in the interim.\n // de-zalgo, just in case, but don't call again.\n cbs.splice(0, len)\n process.nextTick(function () {\n RES.apply(null, args)\n })\n } else {\n delete reqs[key]\n }\n }\n })\n}\n\nfunction slice (args) {\n var length = args.length\n var array = []\n\n for (var i = 0; i < length; i++) array[i] = args[i]\n return array\n}\n","// Approach:\n//\n// 1. Get the minimatch set\n// 2. For each pattern in the set, PROCESS(pattern, false)\n// 3. Store matches per-set, then uniq them\n//\n// PROCESS(pattern, inGlobStar)\n// Get the first [n] items from pattern that are all strings\n// Join these together. This is PREFIX.\n// If there is no more remaining, then stat(PREFIX) and\n// add to matches if it succeeds. END.\n//\n// If inGlobStar and PREFIX is symlink and points to dir\n// set ENTRIES = []\n// else readdir(PREFIX) as ENTRIES\n// If fail, END\n//\n// with ENTRIES\n// If pattern[n] is GLOBSTAR\n// // handle the case where the globstar match is empty\n// // by pruning it out, and testing the resulting pattern\n// PROCESS(pattern[0..n] + pattern[n+1 .. $], false)\n// // handle other cases.\n// for ENTRY in ENTRIES (not dotfiles)\n// // attach globstar + tail onto the entry\n// // Mark that this entry is a globstar match\n// PROCESS(pattern[0..n] + ENTRY + pattern[n .. $], true)\n//\n// else // not globstar\n// for ENTRY in ENTRIES (not dotfiles, unless pattern[n] is dot)\n// Test ENTRY against pattern[n]\n// If fails, continue\n// If passes, PROCESS(pattern[0..n] + item + pattern[n+1 .. $])\n//\n// Caveat:\n// Cache all stats and readdirs results to minimize syscall. Since all\n// we ever care about is existence and directory-ness, we can just keep\n// `true` for files, and [children,...] for directories, or `false` for\n// things that don't exist.\n\nmodule.exports = glob\n\nvar rp = require('fs.realpath')\nvar minimatch = require('minimatch')\nvar Minimatch = minimatch.Minimatch\nvar inherits = require('inherits')\nvar EE = require('events').EventEmitter\nvar path = require('path')\nvar assert = require('assert')\nvar isAbsolute = require('path-is-absolute')\nvar globSync = require('./sync.js')\nvar common = require('./common.js')\nvar setopts = common.setopts\nvar ownProp = common.ownProp\nvar inflight = require('inflight')\nvar util = require('util')\nvar childrenIgnored = common.childrenIgnored\nvar isIgnored = common.isIgnored\n\nvar once = require('once')\n\nfunction glob (pattern, options, cb) {\n if (typeof options === 'function') cb = options, options = {}\n if (!options) options = {}\n\n if (options.sync) {\n if (cb)\n throw new TypeError('callback provided to sync glob')\n return globSync(pattern, options)\n }\n\n return new Glob(pattern, options, cb)\n}\n\nglob.sync = globSync\nvar GlobSync = glob.GlobSync = globSync.GlobSync\n\n// old api surface\nglob.glob = glob\n\nfunction extend (origin, add) {\n if (add === null || typeof add !== 'object') {\n return origin\n }\n\n var keys = Object.keys(add)\n var i = keys.length\n while (i--) {\n origin[keys[i]] = add[keys[i]]\n }\n return origin\n}\n\nglob.hasMagic = function (pattern, options_) {\n var options = extend({}, options_)\n options.noprocess = true\n\n var g = new Glob(pattern, options)\n var set = g.minimatch.set\n\n if (!pattern)\n return false\n\n if (set.length > 1)\n return true\n\n for (var j = 0; j < set[0].length; j++) {\n if (typeof set[0][j] !== 'string')\n return true\n }\n\n return false\n}\n\nglob.Glob = Glob\ninherits(Glob, EE)\nfunction Glob (pattern, options, cb) {\n if (typeof options === 'function') {\n cb = options\n options = null\n }\n\n if (options && options.sync) {\n if (cb)\n throw new TypeError('callback provided to sync glob')\n return new GlobSync(pattern, options)\n }\n\n if (!(this instanceof Glob))\n return new Glob(pattern, options, cb)\n\n setopts(this, pattern, options)\n this._didRealPath = false\n\n // process each pattern in the minimatch set\n var n = this.minimatch.set.length\n\n // The matches are stored as {<filename>: true,...} so that\n // duplicates are automagically pruned.\n // Later, we do an Object.keys() on these.\n // Keep them as a list so we can fill in when nonull is set.\n this.matches = new Array(n)\n\n if (typeof cb === 'function') {\n cb = once(cb)\n this.on('error', cb)\n this.on('end', function (matches) {\n cb(null, matches)\n })\n }\n\n var self = this\n this._processing = 0\n\n this._emitQueue = []\n this._processQueue = []\n this.paused = false\n\n if (this.noprocess)\n return this\n\n if (n === 0)\n return done()\n\n var sync = true\n for (var i = 0; i < n; i ++) {\n this._process(this.minimatch.set[i], i, false, done)\n }\n sync = false\n\n function done () {\n --self._processing\n if (self._processing <= 0) {\n if (sync) {\n process.nextTick(function () {\n self._finish()\n })\n } else {\n self._finish()\n }\n }\n }\n}\n\nGlob.prototype._finish = function () {\n assert(this instanceof Glob)\n if (this.aborted)\n return\n\n if (this.realpath && !this._didRealpath)\n return this._realpath()\n\n common.finish(this)\n this.emit('end', this.found)\n}\n\nGlob.prototype._realpath = function () {\n if (this._didRealpath)\n return\n\n this._didRealpath = true\n\n var n = this.matches.length\n if (n === 0)\n return this._finish()\n\n var self = this\n for (var i = 0; i < this.matches.length; i++)\n this._realpathSet(i, next)\n\n function next () {\n if (--n === 0)\n self._finish()\n }\n}\n\nGlob.prototype._realpathSet = function (index, cb) {\n var matchset = this.matches[index]\n if (!matchset)\n return cb()\n\n var found = Object.keys(matchset)\n var self = this\n var n = found.length\n\n if (n === 0)\n return cb()\n\n var set = this.matches[index] = Object.create(null)\n found.forEach(function (p, i) {\n // If there's a problem with the stat, then it means that\n // one or more of the links in the realpath couldn't be\n // resolved. just return the abs value in that case.\n p = self._makeAbs(p)\n rp.realpath(p, self.realpathCache, function (er, real) {\n if (!er)\n set[real] = true\n else if (er.syscall === 'stat')\n set[p] = true\n else\n self.emit('error', er) // srsly wtf right here\n\n if (--n === 0) {\n self.matches[index] = set\n cb()\n }\n })\n })\n}\n\nGlob.prototype._mark = function (p) {\n return common.mark(this, p)\n}\n\nGlob.prototype._makeAbs = function (f) {\n return common.makeAbs(this, f)\n}\n\nGlob.prototype.abort = function () {\n this.aborted = true\n this.emit('abort')\n}\n\nGlob.prototype.pause = function () {\n if (!this.paused) {\n this.paused = true\n this.emit('pause')\n }\n}\n\nGlob.prototype.resume = function () {\n if (this.paused) {\n this.emit('resume')\n this.paused = false\n if (this._emitQueue.length) {\n var eq = this._emitQueue.slice(0)\n this._emitQueue.length = 0\n for (var i = 0; i < eq.length; i ++) {\n var e = eq[i]\n this._emitMatch(e[0], e[1])\n }\n }\n if (this._processQueue.length) {\n var pq = this._processQueue.slice(0)\n this._processQueue.length = 0\n for (var i = 0; i < pq.length; i ++) {\n var p = pq[i]\n this._processing--\n this._process(p[0], p[1], p[2], p[3])\n }\n }\n }\n}\n\nGlob.prototype._process = function (pattern, index, inGlobStar, cb) {\n assert(this instanceof Glob)\n assert(typeof cb === 'function')\n\n if (this.aborted)\n return\n\n this._processing++\n if (this.paused) {\n this._processQueue.push([pattern, index, inGlobStar, cb])\n return\n }\n\n //console.error('PROCESS %d', this._processing, pattern)\n\n // Get the first [n] parts of pattern that are all strings.\n var n = 0\n while (typeof pattern[n] === 'string') {\n n ++\n }\n // now n is the index of the first one that is *not* a string.\n\n // see if there's anything else\n var prefix\n switch (n) {\n // if not, then this is rather simple\n case pattern.length:\n this._processSimple(pattern.join('/'), index, cb)\n return\n\n case 0:\n // pattern *starts* with some non-trivial item.\n // going to readdir(cwd), but not include the prefix in matches.\n prefix = null\n break\n\n default:\n // pattern has some string bits in the front.\n // whatever it starts with, whether that's 'absolute' like /foo/bar,\n // or 'relative' like '../baz'\n prefix = pattern.slice(0, n).join('/')\n break\n }\n\n var remain = pattern.slice(n)\n\n // get the list of entries.\n var read\n if (prefix === null)\n read = '.'\n else if (isAbsolute(prefix) ||\n isAbsolute(pattern.map(function (p) {\n return typeof p === 'string' ? p : '[*]'\n }).join('/'))) {\n if (!prefix || !isAbsolute(prefix))\n prefix = '/' + prefix\n read = prefix\n } else\n read = prefix\n\n var abs = this._makeAbs(read)\n\n //if ignored, skip _processing\n if (childrenIgnored(this, read))\n return cb()\n\n var isGlobStar = remain[0] === minimatch.GLOBSTAR\n if (isGlobStar)\n this._processGlobStar(prefix, read, abs, remain, index, inGlobStar, cb)\n else\n this._processReaddir(prefix, read, abs, remain, index, inGlobStar, cb)\n}\n\nGlob.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar, cb) {\n var self = this\n this._readdir(abs, inGlobStar, function (er, entries) {\n return self._processReaddir2(prefix, read, abs, remain, index, inGlobStar, entries, cb)\n })\n}\n\nGlob.prototype._processReaddir2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) {\n\n // if the abs isn't a dir, then nothing can match!\n if (!entries)\n return cb()\n\n // It will only match dot entries if it starts with a dot, or if\n // dot is set. Stuff like @(.foo|.bar) isn't allowed.\n var pn = remain[0]\n var negate = !!this.minimatch.negate\n var rawGlob = pn._glob\n var dotOk = this.dot || rawGlob.charAt(0) === '.'\n\n var matchedEntries = []\n for (var i = 0; i < entries.length; i++) {\n var e = entries[i]\n if (e.charAt(0) !== '.' || dotOk) {\n var m\n if (negate && !prefix) {\n m = !e.match(pn)\n } else {\n m = e.match(pn)\n }\n if (m)\n matchedEntries.push(e)\n }\n }\n\n //console.error('prd2', prefix, entries, remain[0]._glob, matchedEntries)\n\n var len = matchedEntries.length\n // If there are no matched entries, then nothing matches.\n if (len === 0)\n return cb()\n\n // if this is the last remaining pattern bit, then no need for\n // an additional stat *unless* the user has specified mark or\n // stat explicitly. We know they exist, since readdir returned\n // them.\n\n if (remain.length === 1 && !this.mark && !this.stat) {\n if (!this.matches[index])\n this.matches[index] = Object.create(null)\n\n for (var i = 0; i < len; i ++) {\n var e = matchedEntries[i]\n if (prefix) {\n if (prefix !== '/')\n e = prefix + '/' + e\n else\n e = prefix + e\n }\n\n if (e.charAt(0) === '/' && !this.nomount) {\n e = path.join(this.root, e)\n }\n this._emitMatch(index, e)\n }\n // This was the last one, and no stats were needed\n return cb()\n }\n\n // now test all matched entries as stand-ins for that part\n // of the pattern.\n remain.shift()\n for (var i = 0; i < len; i ++) {\n var e = matchedEntries[i]\n var newPattern\n if (prefix) {\n if (prefix !== '/')\n e = prefix + '/' + e\n else\n e = prefix + e\n }\n this._process([e].concat(remain), index, inGlobStar, cb)\n }\n cb()\n}\n\nGlob.prototype._emitMatch = function (index, e) {\n if (this.aborted)\n return\n\n if (isIgnored(this, e))\n return\n\n if (this.paused) {\n this._emitQueue.push([index, e])\n return\n }\n\n var abs = isAbsolute(e) ? e : this._makeAbs(e)\n\n if (this.mark)\n e = this._mark(e)\n\n if (this.absolute)\n e = abs\n\n if (this.matches[index][e])\n return\n\n if (this.nodir) {\n var c = this.cache[abs]\n if (c === 'DIR' || Array.isArray(c))\n return\n }\n\n this.matches[index][e] = true\n\n var st = this.statCache[abs]\n if (st)\n this.emit('stat', e, st)\n\n this.emit('match', e)\n}\n\nGlob.prototype._readdirInGlobStar = function (abs, cb) {\n if (this.aborted)\n return\n\n // follow all symlinked directories forever\n // just proceed as if this is a non-globstar situation\n if (this.follow)\n return this._readdir(abs, false, cb)\n\n var lstatkey = 'lstat\\0' + abs\n var self = this\n var lstatcb = inflight(lstatkey, lstatcb_)\n\n if (lstatcb)\n self.fs.lstat(abs, lstatcb)\n\n function lstatcb_ (er, lstat) {\n if (er && er.code === 'ENOENT')\n return cb()\n\n var isSym = lstat && lstat.isSymbolicLink()\n self.symlinks[abs] = isSym\n\n // If it's not a symlink or a dir, then it's definitely a regular file.\n // don't bother doing a readdir in that case.\n if (!isSym && lstat && !lstat.isDirectory()) {\n self.cache[abs] = 'FILE'\n cb()\n } else\n self._readdir(abs, false, cb)\n }\n}\n\nGlob.prototype._readdir = function (abs, inGlobStar, cb) {\n if (this.aborted)\n return\n\n cb = inflight('readdir\\0'+abs+'\\0'+inGlobStar, cb)\n if (!cb)\n return\n\n //console.error('RD %j %j', +inGlobStar, abs)\n if (inGlobStar && !ownProp(this.symlinks, abs))\n return this._readdirInGlobStar(abs, cb)\n\n if (ownProp(this.cache, abs)) {\n var c = this.cache[abs]\n if (!c || c === 'FILE')\n return cb()\n\n if (Array.isArray(c))\n return cb(null, c)\n }\n\n var self = this\n self.fs.readdir(abs, readdirCb(this, abs, cb))\n}\n\nfunction readdirCb (self, abs, cb) {\n return function (er, entries) {\n if (er)\n self._readdirError(abs, er, cb)\n else\n self._readdirEntries(abs, entries, cb)\n }\n}\n\nGlob.prototype._readdirEntries = function (abs, entries, cb) {\n if (this.aborted)\n return\n\n // if we haven't asked to stat everything, then just\n // assume that everything in there exists, so we can avoid\n // having to stat it a second time.\n if (!this.mark && !this.stat) {\n for (var i = 0; i < entries.length; i ++) {\n var e = entries[i]\n if (abs === '/')\n e = abs + e\n else\n e = abs + '/' + e\n this.cache[e] = true\n }\n }\n\n this.cache[abs] = entries\n return cb(null, entries)\n}\n\nGlob.prototype._readdirError = function (f, er, cb) {\n if (this.aborted)\n return\n\n // handle errors, and cache the information\n switch (er.code) {\n case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205\n case 'ENOTDIR': // totally normal. means it *does* exist.\n var abs = this._makeAbs(f)\n this.cache[abs] = 'FILE'\n if (abs === this.cwdAbs) {\n var error = new Error(er.code + ' invalid cwd ' + this.cwd)\n error.path = this.cwd\n error.code = er.code\n this.emit('error', error)\n this.abort()\n }\n break\n\n case 'ENOENT': // not terribly unusual\n case 'ELOOP':\n case 'ENAMETOOLONG':\n case 'UNKNOWN':\n this.cache[this._makeAbs(f)] = false\n break\n\n default: // some unusual error. Treat as failure.\n this.cache[this._makeAbs(f)] = false\n if (this.strict) {\n this.emit('error', er)\n // If the error is handled, then we abort\n // if not, we threw out of here\n this.abort()\n }\n if (!this.silent)\n console.error('glob error', er)\n break\n }\n\n return cb()\n}\n\nGlob.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar, cb) {\n var self = this\n this._readdir(abs, inGlobStar, function (er, entries) {\n self._processGlobStar2(prefix, read, abs, remain, index, inGlobStar, entries, cb)\n })\n}\n\n\nGlob.prototype._processGlobStar2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) {\n //console.error('pgs2', prefix, remain[0], entries)\n\n // no entries means not a dir, so it can never have matches\n // foo.txt/** doesn't match foo.txt\n if (!entries)\n return cb()\n\n // test without the globstar, and with every child both below\n // and replacing the globstar.\n var remainWithoutGlobStar = remain.slice(1)\n var gspref = prefix ? [ prefix ] : []\n var noGlobStar = gspref.concat(remainWithoutGlobStar)\n\n // the noGlobStar pattern exits the inGlobStar state\n this._process(noGlobStar, index, false, cb)\n\n var isSym = this.symlinks[abs]\n var len = entries.length\n\n // If it's a symlink, and we're in a globstar, then stop\n if (isSym && inGlobStar)\n return cb()\n\n for (var i = 0; i < len; i++) {\n var e = entries[i]\n if (e.charAt(0) === '.' && !this.dot)\n continue\n\n // these two cases enter the inGlobStar state\n var instead = gspref.concat(entries[i], remainWithoutGlobStar)\n this._process(instead, index, true, cb)\n\n var below = gspref.concat(entries[i], remain)\n this._process(below, index, true, cb)\n }\n\n cb()\n}\n\nGlob.prototype._processSimple = function (prefix, index, cb) {\n // XXX review this. Shouldn't it be doing the mounting etc\n // before doing stat? kinda weird?\n var self = this\n this._stat(prefix, function (er, exists) {\n self._processSimple2(prefix, index, er, exists, cb)\n })\n}\nGlob.prototype._processSimple2 = function (prefix, index, er, exists, cb) {\n\n //console.error('ps2', prefix, exists)\n\n if (!this.matches[index])\n this.matches[index] = Object.create(null)\n\n // If it doesn't exist, then just mark the lack of results\n if (!exists)\n return cb()\n\n if (prefix && isAbsolute(prefix) && !this.nomount) {\n var trail = /[\\/\\\\]$/.test(prefix)\n if (prefix.charAt(0) === '/') {\n prefix = path.join(this.root, prefix)\n } else {\n prefix = path.resolve(this.root, prefix)\n if (trail)\n prefix += '/'\n }\n }\n\n if (process.platform === 'win32')\n prefix = prefix.replace(/\\\\/g, '/')\n\n // Mark this as a match\n this._emitMatch(index, prefix)\n cb()\n}\n\n// Returns either 'DIR', 'FILE', or false\nGlob.prototype._stat = function (f, cb) {\n var abs = this._makeAbs(f)\n var needDir = f.slice(-1) === '/'\n\n if (f.length > this.maxLength)\n return cb()\n\n if (!this.stat && ownProp(this.cache, abs)) {\n var c = this.cache[abs]\n\n if (Array.isArray(c))\n c = 'DIR'\n\n // It exists, but maybe not how we need it\n if (!needDir || c === 'DIR')\n return cb(null, c)\n\n if (needDir && c === 'FILE')\n return cb()\n\n // otherwise we have to stat, because maybe c=true\n // if we know it exists, but not what it is.\n }\n\n var exists\n var stat = this.statCache[abs]\n if (stat !== undefined) {\n if (stat === false)\n return cb(null, stat)\n else {\n var type = stat.isDirectory() ? 'DIR' : 'FILE'\n if (needDir && type === 'FILE')\n return cb()\n else\n return cb(null, type, stat)\n }\n }\n\n var self = this\n var statcb = inflight('stat\\0' + abs, lstatcb_)\n if (statcb)\n self.fs.lstat(abs, statcb)\n\n function lstatcb_ (er, lstat) {\n if (lstat && lstat.isSymbolicLink()) {\n // If it's a symlink, then treat it as the target, unless\n // the target does not exist, then treat it as a file.\n return self.fs.stat(abs, function (er, stat) {\n if (er)\n self._stat2(f, abs, null, lstat, cb)\n else\n self._stat2(f, abs, er, stat, cb)\n })\n } else {\n self._stat2(f, abs, er, lstat, cb)\n }\n }\n}\n\nGlob.prototype._stat2 = function (f, abs, er, stat, cb) {\n if (er && (er.code === 'ENOENT' || er.code === 'ENOTDIR')) {\n this.statCache[abs] = false\n return cb()\n }\n\n var needDir = f.slice(-1) === '/'\n this.statCache[abs] = stat\n\n if (abs.slice(-1) === '/' && stat && !stat.isDirectory())\n return cb(null, false, stat)\n\n var c = true\n if (stat)\n c = stat.isDirectory() ? 'DIR' : 'FILE'\n this.cache[abs] = this.cache[abs] || c\n\n if (needDir && c === 'FILE')\n return cb()\n\n return cb(null, c, stat)\n}\n","const assert = require(\"assert\")\nconst path = require(\"path\")\nconst fs = require(\"fs\")\nlet glob = undefined\ntry {\n glob = require(\"glob\")\n} catch (_err) {\n // treat glob as optional.\n}\n\nconst defaultGlobOpts = {\n nosort: true,\n silent: true\n}\n\n// for EMFILE handling\nlet timeout = 0\n\nconst isWindows = (process.platform === \"win32\")\n\nconst defaults = options => {\n const methods = [\n 'unlink',\n 'chmod',\n 'stat',\n 'lstat',\n 'rmdir',\n 'readdir'\n ]\n methods.forEach(m => {\n options[m] = options[m] || fs[m]\n m = m + 'Sync'\n options[m] = options[m] || fs[m]\n })\n\n options.maxBusyTries = options.maxBusyTries || 3\n options.emfileWait = options.emfileWait || 1000\n if (options.glob === false) {\n options.disableGlob = true\n }\n if (options.disableGlob !== true && glob === undefined) {\n throw Error('glob dependency not found, set `options.disableGlob = true` if intentional')\n }\n options.disableGlob = options.disableGlob || false\n options.glob = options.glob || defaultGlobOpts\n}\n\nconst rimraf = (p, options, cb) => {\n if (typeof options === 'function') {\n cb = options\n options = {}\n }\n\n assert(p, 'rimraf: missing path')\n assert.equal(typeof p, 'string', 'rimraf: path should be a string')\n assert.equal(typeof cb, 'function', 'rimraf: callback function required')\n assert(options, 'rimraf: invalid options argument provided')\n assert.equal(typeof options, 'object', 'rimraf: options should be object')\n\n defaults(options)\n\n let busyTries = 0\n let errState = null\n let n = 0\n\n const next = (er) => {\n errState = errState || er\n if (--n === 0)\n cb(errState)\n }\n\n const afterGlob = (er, results) => {\n if (er)\n return cb(er)\n\n n = results.length\n if (n === 0)\n return cb()\n\n results.forEach(p => {\n const CB = (er) => {\n if (er) {\n if ((er.code === \"EBUSY\" || er.code === \"ENOTEMPTY\" || er.code === \"EPERM\") &&\n busyTries < options.maxBusyTries) {\n busyTries ++\n // try again, with the same exact callback as this one.\n return setTimeout(() => rimraf_(p, options, CB), busyTries * 100)\n }\n\n // this one won't happen if graceful-fs is used.\n if (er.code === \"EMFILE\" && timeout < options.emfileWait) {\n return setTimeout(() => rimraf_(p, options, CB), timeout ++)\n }\n\n // already gone\n if (er.code === \"ENOENT\") er = null\n }\n\n timeout = 0\n next(er)\n }\n rimraf_(p, options, CB)\n })\n }\n\n if (options.disableGlob || !glob.hasMagic(p))\n return afterGlob(null, [p])\n\n options.lstat(p, (er, stat) => {\n if (!er)\n return afterGlob(null, [p])\n\n glob(p, options.glob, afterGlob)\n })\n\n}\n\n// Two possible strategies.\n// 1. Assume it's a file. unlink it, then do the dir stuff on EPERM or EISDIR\n// 2. Assume it's a directory. readdir, then do the file stuff on ENOTDIR\n//\n// Both result in an extra syscall when you guess wrong. However, there\n// are likely far more normal files in the world than directories. This\n// is based on the assumption that a the average number of files per\n// directory is >= 1.\n//\n// If anyone ever complains about this, then I guess the strategy could\n// be made configurable somehow. But until then, YAGNI.\nconst rimraf_ = (p, options, cb) => {\n assert(p)\n assert(options)\n assert(typeof cb === 'function')\n\n // sunos lets the root user unlink directories, which is... weird.\n // so we have to lstat here and make sure it's not a dir.\n options.lstat(p, (er, st) => {\n if (er && er.code === \"ENOENT\")\n return cb(null)\n\n // Windows can EPERM on stat. Life is suffering.\n if (er && er.code === \"EPERM\" && isWindows)\n fixWinEPERM(p, options, er, cb)\n\n if (st && st.isDirectory())\n return rmdir(p, options, er, cb)\n\n options.unlink(p, er => {\n if (er) {\n if (er.code === \"ENOENT\")\n return cb(null)\n if (er.code === \"EPERM\")\n return (isWindows)\n ? fixWinEPERM(p, options, er, cb)\n : rmdir(p, options, er, cb)\n if (er.code === \"EISDIR\")\n return rmdir(p, options, er, cb)\n }\n return cb(er)\n })\n })\n}\n\nconst fixWinEPERM = (p, options, er, cb) => {\n assert(p)\n assert(options)\n assert(typeof cb === 'function')\n\n options.chmod(p, 0o666, er2 => {\n if (er2)\n cb(er2.code === \"ENOENT\" ? null : er)\n else\n options.stat(p, (er3, stats) => {\n if (er3)\n cb(er3.code === \"ENOENT\" ? null : er)\n else if (stats.isDirectory())\n rmdir(p, options, er, cb)\n else\n options.unlink(p, cb)\n })\n })\n}\n\nconst fixWinEPERMSync = (p, options, er) => {\n assert(p)\n assert(options)\n\n try {\n options.chmodSync(p, 0o666)\n } catch (er2) {\n if (er2.code === \"ENOENT\")\n return\n else\n throw er\n }\n\n let stats\n try {\n stats = options.statSync(p)\n } catch (er3) {\n if (er3.code === \"ENOENT\")\n return\n else\n throw er\n }\n\n if (stats.isDirectory())\n rmdirSync(p, options, er)\n else\n options.unlinkSync(p)\n}\n\nconst rmdir = (p, options, originalEr, cb) => {\n assert(p)\n assert(options)\n assert(typeof cb === 'function')\n\n // try to rmdir first, and only readdir on ENOTEMPTY or EEXIST (SunOS)\n // if we guessed wrong, and it's not a directory, then\n // raise the original error.\n options.rmdir(p, er => {\n if (er && (er.code === \"ENOTEMPTY\" || er.code === \"EEXIST\" || er.code === \"EPERM\"))\n rmkids(p, options, cb)\n else if (er && er.code === \"ENOTDIR\")\n cb(originalEr)\n else\n cb(er)\n })\n}\n\nconst rmkids = (p, options, cb) => {\n assert(p)\n assert(options)\n assert(typeof cb === 'function')\n\n options.readdir(p, (er, files) => {\n if (er)\n return cb(er)\n let n = files.length\n if (n === 0)\n return options.rmdir(p, cb)\n let errState\n files.forEach(f => {\n rimraf(path.join(p, f), options, er => {\n if (errState)\n return\n if (er)\n return cb(errState = er)\n if (--n === 0)\n options.rmdir(p, cb)\n })\n })\n })\n}\n\n// this looks simpler, and is strictly *faster*, but will\n// tie up the JavaScript thread and fail on excessively\n// deep directory trees.\nconst rimrafSync = (p, options) => {\n options = options || {}\n defaults(options)\n\n assert(p, 'rimraf: missing path')\n assert.equal(typeof p, 'string', 'rimraf: path should be a string')\n assert(options, 'rimraf: missing options')\n assert.equal(typeof options, 'object', 'rimraf: options should be object')\n\n let results\n\n if (options.disableGlob || !glob.hasMagic(p)) {\n results = [p]\n } else {\n try {\n options.lstatSync(p)\n results = [p]\n } catch (er) {\n results = glob.sync(p, options.glob)\n }\n }\n\n if (!results.length)\n return\n\n for (let i = 0; i < results.length; i++) {\n const p = results[i]\n\n let st\n try {\n st = options.lstatSync(p)\n } catch (er) {\n if (er.code === \"ENOENT\")\n return\n\n // Windows can EPERM on stat. Life is suffering.\n if (er.code === \"EPERM\" && isWindows)\n fixWinEPERMSync(p, options, er)\n }\n\n try {\n // sunos lets the root user unlink directories, which is... weird.\n if (st && st.isDirectory())\n rmdirSync(p, options, null)\n else\n options.unlinkSync(p)\n } catch (er) {\n if (er.code === \"ENOENT\")\n return\n if (er.code === \"EPERM\")\n return isWindows ? fixWinEPERMSync(p, options, er) : rmdirSync(p, options, er)\n if (er.code !== \"EISDIR\")\n throw er\n\n rmdirSync(p, options, er)\n }\n }\n}\n\nconst rmdirSync = (p, options, originalEr) => {\n assert(p)\n assert(options)\n\n try {\n options.rmdirSync(p)\n } catch (er) {\n if (er.code === \"ENOENT\")\n return\n if (er.code === \"ENOTDIR\")\n throw originalEr\n if (er.code === \"ENOTEMPTY\" || er.code === \"EEXIST\" || er.code === \"EPERM\")\n rmkidsSync(p, options)\n }\n}\n\nconst rmkidsSync = (p, options) => {\n assert(p)\n assert(options)\n options.readdirSync(p).forEach(f => rimrafSync(path.join(p, f), options))\n\n // We only end up here once we got ENOTEMPTY at least once, and\n // at this point, we are guaranteed to have removed all the kids.\n // So, we know that it won't be ENOENT or ENOTDIR or anything else.\n // try really hard to delete stuff on windows, because it has a\n // PROFOUNDLY annoying habit of not closing handles promptly when\n // files are deleted, resulting in spurious ENOTEMPTY errors.\n const retries = isWindows ? 100 : 1\n let i = 0\n do {\n let threw = true\n try {\n const ret = options.rmdirSync(p, options)\n threw = false\n return ret\n } finally {\n if (++i < retries && threw)\n continue\n }\n } while (true)\n}\n\nmodule.exports = rimraf\nrimraf.sync = rimrafSync\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = rng;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate\n\nlet poolPtr = rnds8Pool.length;\n\nfunction rng() {\n if (poolPtr > rnds8Pool.length - 16) {\n _crypto.default.randomFillSync(rnds8Pool);\n\n poolPtr = 0;\n }\n\n return rnds8Pool.slice(poolPtr, poolPtr += 16);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _regex = _interopRequireDefault(require(\"./regex.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && _regex.default.test(uuid);\n}\n\nvar _default = validate;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nexports.unsafeStringify = unsafeStringify;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nfunction unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nvar _default = stringify;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = require(\"./stringify.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\nlet _nodeId;\n\nlet _clockseq; // Previous uuid creation time\n\n\nlet _lastMSecs = 0;\nlet _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n let i = buf && offset || 0;\n const b = buf || new Array(16);\n options = options || {};\n let node = options.node || _nodeId;\n let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n const seedBytes = options.random || (options.rng || _rng.default)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n const tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (let n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf || (0, _stringify.unsafeStringify)(b);\n}\n\nvar _default = v1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction parse(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n let v;\n const arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nvar _default = parse;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.URL = exports.DNS = void 0;\nexports.default = v35;\n\nvar _stringify = require(\"./stringify.js\");\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n const bytes = [];\n\n for (let i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nconst DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexports.DNS = DNS;\nconst URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexports.URL = URL;\n\nfunction v35(name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n var _namespace;\n\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = (0, _parse.default)(namespace);\n }\n\n if (((_namespace = namespace) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n let bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.unsafeStringify)(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction md5(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('md5').update(bytes).digest();\n}\n\nvar _default = md5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _md = _interopRequireDefault(require(\"./md5.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v3 = (0, _v.default)('v3', 0x30, _md.default);\nvar _default = v3;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _default = {\n randomUUID: _crypto.default.randomUUID\n};\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _native = _interopRequireDefault(require(\"./native.js\"));\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = require(\"./stringify.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction v4(options, buf, offset) {\n if (_native.default.randomUUID && !buf && !options) {\n return _native.default.randomUUID();\n }\n\n options = options || {};\n\n const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.unsafeStringify)(rnds);\n}\n\nvar _default = v4;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction sha1(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('sha1').update(bytes).digest();\n}\n\nvar _default = sha1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _sha = _interopRequireDefault(require(\"./sha1.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v5 = (0, _v.default)('v5', 0x50, _sha.default);\nvar _default = v5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = '00000000-0000-0000-0000-000000000000';\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction version(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n return parseInt(uuid.slice(14, 15), 16);\n}\n\nvar _default = version;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"NIL\", {\n enumerable: true,\n get: function () {\n return _nil.default;\n }\n});\nObject.defineProperty(exports, \"parse\", {\n enumerable: true,\n get: function () {\n return _parse.default;\n }\n});\nObject.defineProperty(exports, \"stringify\", {\n enumerable: true,\n get: function () {\n return _stringify.default;\n }\n});\nObject.defineProperty(exports, \"v1\", {\n enumerable: true,\n get: function () {\n return _v.default;\n }\n});\nObject.defineProperty(exports, \"v3\", {\n enumerable: true,\n get: function () {\n return _v2.default;\n }\n});\nObject.defineProperty(exports, \"v4\", {\n enumerable: true,\n get: function () {\n return _v3.default;\n }\n});\nObject.defineProperty(exports, \"v5\", {\n enumerable: true,\n get: function () {\n return _v4.default;\n }\n});\nObject.defineProperty(exports, \"validate\", {\n enumerable: true,\n get: function () {\n return _validate.default;\n }\n});\nObject.defineProperty(exports, \"version\", {\n enumerable: true,\n get: function () {\n return _version.default;\n }\n});\n\nvar _v = _interopRequireDefault(require(\"./v1.js\"));\n\nvar _v2 = _interopRequireDefault(require(\"./v3.js\"));\n\nvar _v3 = _interopRequireDefault(require(\"./v4.js\"));\n\nvar _v4 = _interopRequireDefault(require(\"./v5.js\"));\n\nvar _nil = _interopRequireDefault(require(\"./nil.js\"));\n\nvar _version = _interopRequireDefault(require(\"./version.js\"));\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","'use strict';\n\nconst FS = require('fs');\nconst PATH = require('path');\nconst constants = {\n DIRECTORY: 'directory',\n FILE: 'file'\n}\n\nfunction safeReadDirSync (path) {\n let dirData = {};\n try {\n dirData = FS.readdirSync(path);\n } catch(ex) {\n if (ex.code == \"EACCES\" || ex.code == \"EPERM\") {\n //User does not have permissions, ignore directory\n return null;\n }\n else throw ex;\n }\n return dirData;\n}\n\n/**\n * Normalizes windows style paths by replacing double backslahes with single forward slahes (unix style).\n * @param {string} path\n * @return {string}\n */\nfunction normalizePath(path) {\n return path.replace(/\\\\/g, '/');\n}\n\n/**\n * Tests if the supplied parameter is of type RegExp\n * @param {any} regExp\n * @return {Boolean}\n */\nfunction isRegExp(regExp) {\n return typeof regExp === \"object\" && regExp.constructor == RegExp;\n}\n\n/**\n * Collects the files and folders for a directory path into an Object, subject\n * to the options supplied, and invoking optional\n * @param {String} path\n * @param {Object} options\n * @param {function} onEachFile\n * @param {function} onEachDirectory\n * @return {Object}\n */\nfunction directoryTree (path, options, onEachFile, onEachDirectory, currentDepth = 0) {\n options = options || {};\n\n if (options.depth !== undefined && options.attributes && options.attributes.indexOf('size') !== -1) {\n throw new Error('usage of size attribute with depth option is prohibited');\n }\n\n const name = PATH.basename(path);\n path = options.normalizePath ? normalizePath(path) : path;\n const item = { path, name };\n let stats;\n let lstat;\n\n try {\n stats = FS.statSync(path);\n lstat = FS.lstatSync(path);\n }\n catch (e) { return null }\n\n // Skip if it matches the exclude regex\n if (options.exclude) {\n const excludes = isRegExp(options.exclude) ? [options.exclude] : options.exclude;\n if (excludes.some((exclusion) => exclusion.test(path))) {\n return null;\n }\n }\n\n if (lstat.isSymbolicLink()) {\n item.isSymbolicLink = true;\n // Skip if symbolic links should not be followed\n if (options.followSymlinks === false)\n return null;\n // Initialize the symbolic links array to avoid infinite loops\n if (!options.symlinks)\n options = { ...options, symlinks: [] };\n // Skip if a cyclic symbolic link has been found\n if (options.symlinks.find(ino => ino === lstat.ino)) {\n return null;\n } else {\n options.symlinks.push(lstat.ino);\n }\n }\n\n if (stats.isFile()) {\n\n const ext = PATH.extname(path).toLowerCase();\n\n // Skip if it does not match the extension regex\n if (options.extensions && !options.extensions.test(ext))\n return null;\n\n\n if (options.attributes) {\n options.attributes.forEach((attribute) => {\n switch (attribute) {\n case 'extension':\n item.extension = ext;\n break;\n case 'type':\n item.type = constants.FILE;\n break;\n default:\n item[attribute] = stats[attribute];\n break;\n }\n });\n }\n\n if (onEachFile) {\n onEachFile(item, path, stats);\n }\n }\n else if (stats.isDirectory()) {\n let dirData = safeReadDirSync(path);\n if (dirData === null) return null;\n\n if (options.depth === undefined || options.depth > currentDepth) {\n item.children = dirData\n .map(child => directoryTree(PATH.join(path, child), options, onEachFile, onEachDirectory, currentDepth + 1))\n .filter(e => !!e);\n }\n\n if (options.attributes) {\n options.attributes.forEach((attribute) => {\n switch (attribute) {\n case 'size':\n item.size = item.children.reduce((prev, cur) => prev + cur.size, 0);\n break;\n case 'type':\n item.type = constants.DIRECTORY;\n break;\n case 'extension':\n break;\n default:\n item[attribute] = stats[attribute];\n break;\n }\n \n });\n }\n\n if (onEachDirectory) {\n onEachDirectory(item, path, stats);\n }\n } else {\n return null; // Or set item.size = 0 for devices, FIFO and sockets ?\n }\n return item;\n}\n\nmodule.exports = directoryTree;\n","import pathParser from 'path'\n\nimport { createPluginCache } from './utils'\n\nimport type { FileManager, EmittedFile, File } from './managers/fileManager'\nimport type { PluginContext, KubbPlugin, PluginFactoryOptions } from './types'\n\ntype KubbPluginFactory<T extends PluginFactoryOptions = PluginFactoryOptions> = (\n options: T['options']\n) => T['nested'] extends true ? Array<KubbPlugin<T>> : KubbPlugin<T>\n\nexport function createPlugin<T extends PluginFactoryOptions = PluginFactoryOptions>(factory: KubbPluginFactory<T>) {\n return (options: T['options']) => {\n const plugin = factory(options)\n if (Array.isArray(plugin)) {\n throw new Error('Not implemented')\n }\n\n // default transform\n if (!plugin.transform) {\n plugin.transform = function transform(code) {\n return code\n }\n }\n\n return plugin\n }\n}\n\ntype Options = {\n config: PluginContext['config']\n fileManager: FileManager\n resolveId: PluginContext['resolveId']\n load: PluginContext['load']\n}\n\n// not publicly exported\nexport type CorePluginOptions = PluginFactoryOptions<Options, false, PluginContext>\n\nexport const name = 'core' as const\n\nconst isEmittedFile = (result: EmittedFile | File): result is EmittedFile => {\n return !!(result as any).id\n}\n\nexport const definePlugin = createPlugin<CorePluginOptions>((options) => {\n const { fileManager, resolveId, load } = options\n const indexFiles: File[] = []\n\n const api: PluginContext = {\n get config() {\n return options.config\n },\n fileManager,\n async addFile(file, options) {\n if (isEmittedFile(file)) {\n const resolvedId = await resolveId({ fileName: file.id, directory: file.importer, options: file.options })\n const path = resolvedId || file.importer || file.id\n\n return fileManager.add({\n path,\n fileName: file.name || file.id,\n source: file.source || '',\n })\n }\n\n if (options?.root) {\n indexFiles.push(file)\n }\n\n return fileManager.addOrAppend(file)\n },\n resolveId,\n load,\n cache: createPluginCache(Object.create(null)),\n }\n\n return {\n name,\n api,\n resolveId(fileName, directory) {\n if (!directory) {\n return null\n }\n return pathParser.resolve(directory, fileName)\n },\n }\n})\n","import type { MaybePromise } from '../types'\n\nexport const isPromise = <T>(result: MaybePromise<T>): result is Promise<T> => {\n return typeof (result as any)?.then === 'function'\n}\n","/* eslint-disable consistent-return */\nimport { promises as fs } from 'fs'\nimport pathParser from 'path'\n\nimport rimraf from 'rimraf'\n\n\nconst safeWriteFileToPath = async (path: string, data: any) => {\n // resolve the full path and get just the directory, ignoring the file and extension\n const passedPath = pathParser.dirname(pathParser.resolve(path))\n // make the directory, recursively. Theoretically, if every directory in the path exists, this won't do anything.\n await fs.mkdir(passedPath, { recursive: true })\n // write the file to the newly created directory\n return fs.writeFile(pathParser.resolve(path), data, { encoding: 'utf-8' })\n}\n\nexport const write = async (data: string, path: string) => {\n \n\n try {\n await fs.stat(path)\n const oldContent = await fs.readFile(path, { encoding: 'utf-8' })\n if (oldContent?.toString() === data) {\n return\n }\n } catch (_err) {\n return safeWriteFileToPath(path, data)\n }\n\n return safeWriteFileToPath(path, data)\n}\n\nexport const clean = async (path: string) => {\n return new Promise((resolve, reject) => {\n rimraf(path, (err) => {\n if (err) {\n reject(err)\n } else {\n resolve(true)\n }\n })\n })\n}\n","/* eslint-disable no-param-reassign */\n/* eslint-disable consistent-return */\n\nexport interface Cache<TCache = any> {\n delete(id: string): boolean\n get<T = TCache>(id: string): T\n has(id: string): boolean\n set<T = TCache>(id: string, value: T): void\n}\n\nexport function createPluginCache(cache: any): Cache {\n return {\n delete(id: string) {\n return delete cache[id]\n },\n get(id: string) {\n const item = cache[id]\n if (!item) return\n item[0] = 0\n return item[1]\n },\n has(id: string) {\n const item = cache[id]\n if (!item) return false\n item[0] = 0\n return true\n },\n set(id: string, value: any) {\n cache[id] = [0, value]\n },\n }\n}\n","import pathParser from 'path'\nimport { promises as fs } from 'fs'\n\n// TODO check for a better way or resolving the relative path\nexport const getRelativePath = (root?: string | null, file?: string | null) => {\n if (!root || !file) {\n throw new Error('Root and file should be filled in when retrieving the relativePath')\n }\n const newPath = pathParser.relative(root, file).replace('../', '').replace('.ts', '').trimEnd()\n\n return `./${newPath}`\n}\n\nexport type PathMode = 'file' | 'directory'\n\nexport const getPathMode = (path: string | undefined | null): PathMode | undefined => {\n if (!path) {\n return undefined\n }\n return pathParser.extname(path) ? 'file' : 'directory'\n}\n\nexport const read = async (path: string) => {\n try {\n return fs.readFile(path)\n } catch (err) {\n console.error(err)\n throw err\n }\n}\n","import EventEmitter from './index.js'\n\nexport { EventEmitter }\nexport default EventEmitter\n","import uuid from './dist/index.js';\nexport const v1 = uuid.v1;\nexport const v3 = uuid.v3;\nexport const v4 = uuid.v4;\nexport const v5 = uuid.v5;\nexport const NIL = uuid.NIL;\nexport const version = uuid.version;\nexport const validate = uuid.validate;\nexport const stringify = uuid.stringify;\nexport const parse = uuid.parse;\n","import type EventEmitter from 'eventemitter3'\nimport type { File, Status, UUID } from './types'\n\nconst keys = {\n getFileKey: () => `file`,\n getStatusChangeKey: () => `status-change`,\n getStatusChangeByIdKey: (id: string) => `${id}-status-change`,\n getSuccessKey: () => `success`,\n getRemoveKey: (id: string) => `${id}remove`,\n} as const\n\ntype VoidFunction = () => void\n\nexport const getFileManagerEvents = (emitter: EventEmitter) => {\n return {\n /**\n * Emiter\n */\n emitFile: (id: UUID, file: File): void => {\n emitter.emit(keys.getFileKey(), id, file)\n },\n emitStatusChange: (file: File): void => {\n emitter.emit(keys.getStatusChangeKey(), file)\n },\n emitStatusChangeById: (id: UUID, status: Status): void => {\n emitter.emit(keys.getStatusChangeByIdKey(id), status)\n },\n emitSuccess: (): void => {\n emitter.emit(keys.getSuccessKey())\n },\n emitRemove: (id: UUID, file: File): void => {\n emitter.emit(keys.getRemoveKey(id), file)\n },\n /**\n * Listeners\n */\n\n onAdd: (callback: (id: UUID, file: File) => void): VoidFunction => {\n emitter.on(keys.getFileKey(), callback)\n return () => emitter.removeListener(keys.getFileKey(), callback)\n },\n onStatusChange: (callback: (file: File) => void): VoidFunction => {\n emitter.on(keys.getStatusChangeKey(), callback)\n return () => emitter.removeListener(keys.getStatusChangeKey(), callback)\n },\n onStatusChangeById: (id: UUID, callback: (status: Status) => void): VoidFunction => {\n emitter.on(keys.getStatusChangeByIdKey(id), callback)\n return () => emitter.removeListener(keys.getStatusChangeByIdKey(id), callback)\n },\n onSuccess: (callback: () => void): VoidFunction => {\n emitter.on(keys.getSuccessKey(), callback)\n return () => emitter.removeListener(keys.getSuccessKey(), callback)\n },\n onRemove: (id: UUID, callback: (file: File) => void): VoidFunction => {\n emitter.on(keys.getRemoveKey(id), callback)\n return () => emitter.removeListener(keys.getRemoveKey(id), callback)\n },\n }\n}\n","import EventEmitter from 'eventemitter3'\nimport { v4 as uuidv4 } from 'uuid'\n\nimport { getFileManagerEvents } from './events'\n\nimport { write, read } from '../../utils'\n\nimport type { CacheStore, UUID, Status, File } from './types'\n\nexport class FileManager {\n private cache: Map<CacheStore['id'], CacheStore> = new Map()\n\n emitter = new EventEmitter()\n\n events = getFileManagerEvents(this.emitter)\n\n constructor() {\n this.events.onStatusChange(() => {\n if (this.getCountByStatus('removed') === this.cache.size) {\n // all files are been resolved and written to the file system\n this.events.emitSuccess()\n }\n })\n }\n\n private getCache(id: UUID) {\n return this.cache.get(id)\n }\n\n private getCacheByPath(path: string | undefined): CacheStore | undefined {\n let cache\n\n this.cache.forEach((item) => {\n if (item.file.path === path) {\n cache = item\n }\n })\n return cache as CacheStore\n }\n\n private getCountByStatus(status: Status) {\n let count = 0\n\n this.cache.forEach((item) => {\n if (item.status === status) {\n count++\n }\n })\n return count\n }\n\n get files() {\n const files: File[] = []\n this.cache.forEach((item) => {\n files.push(item.file)\n })\n\n return files\n }\n\n add(file: File) {\n const cacheItem = { id: uuidv4(), file, status: 'new' as Status }\n\n this.cache.set(cacheItem.id, cacheItem)\n this.events.emitFile(cacheItem.id, file)\n\n return new Promise<File>((resolve) => {\n const unsubscribe = this.events.onRemove(cacheItem.id, (file) => {\n resolve(file)\n unsubscribe()\n })\n })\n }\n\n addOrAppend(file: File) {\n const previousCache = this.getCacheByPath(file.path)\n\n if (previousCache) {\n this.remove(previousCache.id)\n return this.add({\n ...file,\n source: `${previousCache.file.source}\\n${file.source}`,\n })\n }\n return this.add(file)\n }\n\n setStatus(id: UUID, status: Status) {\n const cacheItem = this.getCache(id)\n if (!cacheItem) {\n return\n }\n\n cacheItem.status = status\n this.cache.set(id, cacheItem)\n this.events.emitStatusChange(cacheItem.file)\n this.events.emitStatusChangeById(id, status)\n }\n\n get(id: UUID) {\n const cacheItem = this.getCache(id)\n return cacheItem?.file\n }\n\n remove(id: UUID) {\n const cacheItem = this.getCache(id)\n if (!cacheItem) {\n return\n }\n\n this.setStatus(id, 'removed')\n this.events.emitRemove(id, cacheItem.file)\n }\n\n async write(...params: Parameters<typeof write>) {\n return write(...params)\n }\n\n async read(...params: Parameters<typeof read>) {\n return read(...params)\n }\n}\n","import dirTree from 'directory-tree'\n\nimport type { DirectoryTree, DirectoryTreeOptions } from 'directory-tree'\n\nexport class TreeNode<T = unknown> {\n public data: T\n\n public parent?: TreeNode<T>\n\n public children: Array<TreeNode<T>>\n\n constructor(data: T, parent?: TreeNode<T>) {\n this.data = data\n this.parent = parent\n return this\n }\n\n addChild(data: T) {\n const child = new TreeNode(data, this)\n if (!this.children) {\n this.children = []\n }\n this.children.push(child)\n return child\n }\n\n find(data: T) {\n if (data === this.data) {\n return this\n }\n\n if (this.children) {\n for (let i = 0, { length } = this.children, target: any = null; i < length; i++) {\n target = this.children[i].find(data)\n if (target) {\n return target\n }\n }\n }\n\n return null\n }\n\n leaves() {\n if (!this.children || this.children.length === 0) {\n // this is a leaf\n return [this]\n }\n\n // if not a leaf, return all children's leaves recursively\n const leaves = []\n if (this.children) {\n for (let i = 0, { length } = this.children; i < length; i++) {\n // eslint-disable-next-line prefer-spread\n leaves.push.apply(leaves, this.children[i].leaves())\n }\n }\n return leaves\n }\n\n root() {\n if (!this.parent) {\n return this\n }\n return this.parent.root()\n }\n\n forEach(callback: (treeNode: TreeNode<T>) => void) {\n if (typeof callback !== 'function') {\n throw new TypeError('forEach() callback must be a function')\n }\n\n // run this node through function\n callback(this)\n\n // do the same for all children\n if (this.children) {\n for (let i = 0, { length } = this.children; i < length; i++) {\n this.children[i].forEach(callback)\n }\n }\n\n return this\n }\n\n public static build(path: string, options: DirectoryTreeOptions = {}) {\n const filteredTree = dirTree(path, { extensions: options?.extensions, exclude: options.exclude })\n\n if (!filteredTree) {\n return\n }\n\n const treeNode = new TreeNode({ name: filteredTree.name, path: filteredTree.path, type: filteredTree.type })\n\n const recurse = (node: typeof treeNode, item: DirectoryTree) => {\n const subNode = node.addChild({ name: item.name, path: item.path, type: item.type })\n\n if (item.children?.length) {\n item.children?.forEach((child) => {\n recurse(subNode, child)\n })\n }\n }\n\n filteredTree.children?.forEach((child) => recurse(treeNode, child))\n\n return treeNode\n }\n}\n","/* eslint-disable no-await-in-loop */\n/* eslint-disable no-restricted-syntax */\n\nimport { definePlugin } from '../../plugin'\nimport { FileManager } from '../fileManager'\n\nimport type { Argument0, Strategy } from './types'\nimport type { KubbConfig, KubbPlugin, PluginLifecycleHooks, PluginLifecycle, MaybePromise, ResolveIdParams } from '../../types'\nimport type { Logger } from '../../build'\nimport type { CorePluginOptions } from '../../plugin'\n\n// inspired by: https://github.com/rollup/rollup/blob/master/src/utils/PluginDriver.ts#\n\n// This will make sure no input hook is omitted\nconst hookNames: {\n [P in PluginLifecycleHooks]: 1\n} = {\n validate: 1,\n buildStart: 1,\n resolveId: 1,\n load: 1,\n transform: 1,\n writeFile: 1,\n buildEnd: 1,\n}\nexport const hooks = Object.keys(hookNames) as [PluginLifecycleHooks]\n\nexport class PluginManager {\n public plugins: KubbPlugin[]\n\n public readonly fileManager: FileManager\n\n private readonly logger?: Logger\n\n private readonly config: KubbConfig\n\n public readonly core: KubbPlugin<CorePluginOptions>\n\n constructor(config: KubbConfig, options: { logger?: Logger }) {\n this.logger = options.logger\n this.config = config\n\n this.fileManager = new FileManager()\n this.core = definePlugin({\n config,\n fileManager: this.fileManager,\n load: this.load,\n resolveId: this.resolveId,\n }) as KubbPlugin<CorePluginOptions> & {\n api: CorePluginOptions['api']\n }\n this.plugins = [this.core, ...(config.plugins || [])]\n }\n\n resolveId = (params: ResolveIdParams) => {\n if (params.pluginName) {\n return this.hookForPlugin(params.pluginName, 'resolveId', [params.fileName, params.directory, params.options])\n }\n return this.hookFirst('resolveId', [params.fileName, params.directory, params.options])\n }\n\n load = async (id: string) => {\n return this.hookFirst('load', [id])\n }\n\n // run only hook for a specific plugin name\n hookForPlugin<H extends PluginLifecycleHooks>(\n pluginName: string,\n hookName: H,\n parameters: Parameters<PluginLifecycle[H]>,\n skipped?: ReadonlySet<KubbPlugin> | null\n ): Promise<ReturnType<PluginLifecycle[H]> | null> {\n let promise: Promise<ReturnType<PluginLifecycle[H]> | null> = Promise.resolve(null)\n for (const plugin of this.getSortedPlugins(hookName, pluginName)) {\n if (skipped && skipped.has(plugin)) continue\n promise = promise.then((result) => {\n if (result != null) return result\n return this.run('hookFirst', hookName, parameters, plugin) as any\n })\n }\n return promise\n }\n\n // chains, first non-null result stops and returns\n hookFirst<H extends PluginLifecycleHooks>(\n hookName: H,\n parameters: Parameters<PluginLifecycle[H]>,\n skipped?: ReadonlySet<KubbPlugin> | null\n ): Promise<ReturnType<PluginLifecycle[H]> | null> {\n let promise: Promise<ReturnType<PluginLifecycle[H]> | null> = Promise.resolve(null)\n for (const plugin of this.getSortedPlugins(hookName)) {\n if (skipped && skipped.has(plugin)) continue\n promise = promise.then((result) => {\n if (result != null) return result\n return this.run('hookFirst', hookName, parameters, plugin) as any\n })\n }\n return promise\n }\n\n // parallel\n async hookParallel<H extends PluginLifecycleHooks, TOuput = void>(hookName: H, parameters?: Parameters<PluginLifecycle[H]> | undefined) {\n const parallelPromises: Promise<TOuput>[] = []\n\n for (const plugin of this.getSortedPlugins(hookName)) {\n if ((plugin[hookName] as { sequential?: boolean })?.sequential) {\n await Promise.all(parallelPromises)\n parallelPromises.length = 0\n await this.run('hookParallel', hookName, parameters, plugin)\n } else {\n const promise: Promise<TOuput> = this.run('hookParallel', hookName, parameters, plugin)\n\n parallelPromises.push(promise)\n }\n }\n return Promise.all(parallelPromises)\n }\n\n // chains, reduces returned value, handling the reduced value as the first hook argument\n hookReduceArg0<H extends PluginLifecycleHooks>(\n hookName: H,\n [argument0, ...rest]: Parameters<PluginLifecycle[H]>,\n reduce: (reduction: Argument0<H>, result: ReturnType<PluginLifecycle[H]>, plugin: KubbPlugin) => MaybePromise<Argument0<H> | null>\n ): Promise<Argument0<H>> {\n let promise = Promise.resolve(argument0)\n for (const plugin of this.getSortedPlugins(hookName)) {\n promise = promise.then((argument0) =>\n this.run('hookReduceArg0', hookName, [argument0, ...rest] as Parameters<PluginLifecycle[H]>, plugin).then((result) =>\n reduce.call(this.core.api, argument0, result, plugin)\n )\n )\n }\n return promise\n }\n\n // chains\n\n hookSeq<H extends PluginLifecycleHooks>(hookName: H, parameters?: Parameters<PluginLifecycle[H]>) {\n let promise: Promise<void> = Promise.resolve()\n for (const plugin of this.getSortedPlugins(hookName)) {\n promise = promise.then(() => this.run('hookSeq', hookName, parameters, plugin))\n }\n return promise.then(noReturn)\n }\n\n private getSortedPlugins(hookName: keyof PluginLifecycle, pluginName?: string): KubbPlugin[] {\n const plugins = [...this.plugins]\n\n if (pluginName) {\n const pluginsByPluginName = plugins.filter((item) => item.name === pluginName && item[hookName])\n if (pluginsByPluginName.length === 0) {\n // fallback on the core plugin when there is no match\n if (this.config.logLevel === 'warn' && this.logger?.spinner) {\n this.logger.spinner.info(`Plugin hook with ${hookName} not found for plugin ${pluginName}`)\n }\n return [this.core]\n }\n return pluginsByPluginName\n }\n\n return plugins\n }\n\n /**\n * Run an async plugin hook and return the result.\n * @param hookName Name of the plugin hook. Must be either in `PluginHooks` or `OutputPluginValueHooks`.\n * @param args Arguments passed to the plugin hook.\n * @param plugin The actual pluginObject to run.\n */\n // Implementation signature\n private run<H extends PluginLifecycleHooks, TResult = void>(\n strategy: Strategy,\n hookName: H,\n parameters: unknown[] | undefined,\n plugin: KubbPlugin\n ): Promise<TResult> {\n const hook = plugin[hookName]!\n\n return Promise.resolve()\n .then(() => {\n if (typeof hook !== 'function') {\n return hook\n }\n\n if (this.config.logLevel === 'info' && this.logger?.spinner) {\n this.logger.spinner.text = `[${strategy}] ${hookName}: Excecuting task for plugin ${plugin.name} \\n`\n }\n\n const hookResult = (hook as any).apply(this.core.api, parameters)\n\n if (!hookResult?.then) {\n // short circuit for non-thenables and non-Promises\n if (this.config.logLevel === 'info' && this.logger?.spinner) {\n this.logger.spinner.succeed(`[${strategy}] ${hookName}: Excecuting task for plugin ${plugin.name} \\n`)\n }\n return hookResult\n }\n\n return Promise.resolve(hookResult).then((result) => {\n // action was fulfilled\n if (this.config.logLevel === 'info' && this.logger?.spinner) {\n this.logger.spinner.succeed(`[${strategy}] ${hookName}: Excecuting task for plugin ${plugin.name} \\n`)\n }\n return result\n })\n })\n .catch((e: Error) => this.catcher<H>(e, plugin, hookName))\n }\n\n /**\n * Run a sync plugin hook and return the result.\n * @param hookName Name of the plugin hook. Must be in `PluginHooks`.\n * @param args Arguments passed to the plugin hook.\n * @param plugin The acutal plugin\n * @param replaceContext When passed, the plugin context can be overridden.\n */\n private runSync<H extends PluginLifecycleHooks>(hookName: H, parameters: Parameters<PluginLifecycle[H]>, plugin: KubbPlugin): ReturnType<PluginLifecycle[H]> {\n const hook = plugin[hookName]!\n\n // const context = this.pluginContexts.get(plugin)!;\n\n try {\n // eslint-disable-next-line @typescript-eslint/ban-types\n return (hook as Function).apply(this.core.api, parameters)\n } catch (error: any) {\n return error\n }\n }\n\n private catcher<H extends PluginLifecycleHooks>(e: Error, plugin: KubbPlugin, hookName: H) {\n const text = `${e.message} (plugin: ${plugin.name}, hook: ${hookName})\\n`\n\n if (this.logger?.spinner) {\n this.logger.spinner.fail(text)\n throw e\n }\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nfunction noReturn() {}\n","import type { KubbPlugin } from '../../types'\n\nexport class ValidationPluginError extends Error {}\n\nexport const validatePlugins = (plugins: KubbPlugin[], dependedPluginNames: string | string[]): true => {\n let pluginNames: string[] = []\n if (typeof dependedPluginNames === 'string') {\n pluginNames = [dependedPluginNames]\n } else {\n pluginNames = dependedPluginNames\n }\n\n pluginNames.forEach((pluginName) => {\n const exists = plugins.some((plugin) => plugin.name === pluginName)\n if (!exists) {\n throw new ValidationPluginError(`This plugin depends on the ${pluginName} plugin.`)\n }\n })\n\n return true\n}\n","import { PluginManager } from './managers/pluginManager'\nimport { clean } from './utils/write'\n\nimport type { FileManager } from './managers/fileManager'\nimport type { PluginContext, TransformResult, LogLevel, KubbPlugin } from './types'\n\ntype BuildOutput = {\n fileManager: FileManager\n}\n\n// Same type as ora\ntype Spinner = {\n start: (text?: string) => Spinner\n succeed: (text: string) => Spinner\n fail: (text?: string) => Spinner\n stopAndPersist: (options: { text: string }) => Spinner\n render: () => Spinner\n text: string\n info: (text: string) => Spinner\n}\n\nexport type Logger = {\n log: (message: string, logLevel: LogLevel) => void\n spinner?: Spinner\n}\ntype BuildOptions = {\n config: PluginContext['config']\n mode: 'development' | 'production'\n logger?: Logger\n}\n\nasync function transformReducer(this: PluginContext, _previousCode: string, result: TransformResult, _plugin: KubbPlugin) {\n if (result === null) {\n return null\n }\n return result\n}\n\nasync function buildImplementation(options: BuildOptions, done: (output: BuildOutput) => void) {\n const { config, logger } = options\n\n if (config.output.clean) {\n await clean(config.output.path)\n }\n\n const pluginManager = new PluginManager(config, { logger })\n const { plugins, fileManager } = pluginManager\n\n try {\n await pluginManager.hookParallel<'validate', true>('validate', [plugins])\n } catch (e: any) {\n return\n }\n\n fileManager.events.onSuccess(async () => {\n await pluginManager.hookParallel('buildEnd')\n setTimeout(() => {\n done({ fileManager })\n }, 1000)\n })\n\n fileManager.events.onAdd(async (id, file) => {\n const { path } = file\n let { source: code } = file\n\n const loadedResult = await pluginManager.hookFirst('load', [path])\n if (loadedResult) {\n code = loadedResult\n }\n\n if (code) {\n const transformedCode = await pluginManager.hookReduceArg0('transform', [code, path], transformReducer)\n\n if (typeof config.input === 'object') {\n await pluginManager.hookParallel('writeFile', [transformedCode, path])\n }\n\n fileManager.setStatus(id, 'success')\n fileManager.remove(id)\n }\n })\n\n await pluginManager.hookParallel('buildStart', [config])\n}\n\nexport type KubbBuild = (options: BuildOptions) => Promise<BuildOutput>\n\nexport function build(options: BuildOptions): Promise<BuildOutput> {\n return new Promise((resolve, reject) => {\n try {\n buildImplementation(options, resolve)\n } catch (e) {\n reject(e)\n }\n })\n}\n","import type { MaybePromise, KubbUserConfig, CLIOptions } from './types'\n\n/**\n * Type helper to make it easier to use kubb.config.ts\n * accepts a direct {@link KubbConfig} object, or a function that returns it.\n * The function receives a {@link ConfigEnv} object that exposes two properties:\n */\nexport const defineConfig = (\n options:\n | MaybePromise<KubbUserConfig>\n | ((\n /** The options derived from the CLI flags */\n cliOptions: CLIOptions\n ) => MaybePromise<KubbUserConfig>)\n) => options\n","/**\n * Abstract class that contains the building blocks for plugins to create their own Generator\n * @link idea based on https://github.com/colinhacks/zod/blob/master/src/types.ts#L137\n */\nexport abstract class Generator<TOptions extends object = object> {\n private _options: TOptions = {} as TOptions\n\n constructor(options: TOptions = {} as TOptions) {\n if (options) {\n this._options = {\n ...this._options,\n ...options,\n }\n }\n return this\n }\n\n get options() {\n return this._options\n }\n\n abstract build(...params: unknown[]): unknown\n}\n","import { Generator } from './Generator'\n/**\n * Abstract class that contains the building blocks for plugins to create their own SchemaGenerator\n */\nexport abstract class SchemaGenerator<TOptions extends object, TInput, TOutput> extends Generator<TOptions> {\n abstract build(schema: TInput, name: string, description?: string): TOutput\n}\n","/* eslint-disable @typescript-eslint/no-empty-interface */\nimport { build } from './build'\n\nexport * from './config'\nexport * from './build'\nexport { CorePluginOptions, createPlugin } from './plugin'\nexport * from './utils'\nexport * from './types'\nexport * from './managers'\nexport * from './generators'\nexport default build\n"]}
1
+ {"version":3,"sources":["../../../node_modules/.pnpm/path-browserify@1.0.1/node_modules/path-browserify/index.js","../../../node_modules/.pnpm/memfs@3.4.13/node_modules/memfs/lib/constants.js","../../../node_modules/.pnpm/memfs@3.4.13/node_modules/memfs/lib/getBigInt.js","../../../node_modules/.pnpm/memfs@3.4.13/node_modules/memfs/lib/Stats.js","../../../node_modules/.pnpm/base64-js@1.5.1/node_modules/base64-js/index.js","../../../node_modules/.pnpm/ieee754@1.2.1/node_modules/ieee754/index.js","../../../node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/index.js","../../../node_modules/.pnpm/memfs@3.4.13/node_modules/memfs/lib/internal/buffer.js","../../../node_modules/.pnpm/has-symbols@1.0.3/node_modules/has-symbols/shams.js","../../../node_modules/.pnpm/has-tostringtag@1.0.0/node_modules/has-tostringtag/shams.js","../../../node_modules/.pnpm/has-symbols@1.0.3/node_modules/has-symbols/index.js","../../../node_modules/.pnpm/function-bind@1.1.1/node_modules/function-bind/implementation.js","../../../node_modules/.pnpm/function-bind@1.1.1/node_modules/function-bind/index.js","../../../node_modules/.pnpm/has@1.0.3/node_modules/has/src/index.js","../../../node_modules/.pnpm/get-intrinsic@1.1.3/node_modules/get-intrinsic/index.js","../../../node_modules/.pnpm/call-bind@1.0.2/node_modules/call-bind/index.js","../../../node_modules/.pnpm/call-bind@1.0.2/node_modules/call-bind/callBound.js","../../../node_modules/.pnpm/is-arguments@1.1.1/node_modules/is-arguments/index.js","../../../node_modules/.pnpm/is-generator-function@1.0.10/node_modules/is-generator-function/index.js","../../../node_modules/.pnpm/is-callable@1.2.7/node_modules/is-callable/index.js","../../../node_modules/.pnpm/for-each@0.3.3/node_modules/for-each/index.js","../../../node_modules/.pnpm/available-typed-arrays@1.0.5/node_modules/available-typed-arrays/index.js","../../../node_modules/.pnpm/gopd@1.0.1/node_modules/gopd/index.js","../../../node_modules/.pnpm/is-typed-array@1.1.10/node_modules/is-typed-array/index.js","../../../node_modules/.pnpm/which-typed-array@1.1.9/node_modules/which-typed-array/index.js","../../../node_modules/.pnpm/util@0.12.5/node_modules/util/support/types.js","../../../node_modules/.pnpm/util@0.12.5/node_modules/util/support/isBufferBrowser.js","../../../node_modules/.pnpm/inherits@2.0.4/node_modules/inherits/inherits_browser.js","../../../node_modules/.pnpm/util@0.12.5/node_modules/util/util.js","../../../node_modules/.pnpm/assert@2.0.0/node_modules/assert/build/internal/errors.js","../../../node_modules/.pnpm/assert@2.0.0/node_modules/assert/build/internal/assert/assertion_error.js","../../../node_modules/.pnpm/es6-object-assign@1.1.0/node_modules/es6-object-assign/index.js","../../../node_modules/.pnpm/object-keys@1.1.1/node_modules/object-keys/isArguments.js","../../../node_modules/.pnpm/object-keys@1.1.1/node_modules/object-keys/implementation.js","../../../node_modules/.pnpm/object-keys@1.1.1/node_modules/object-keys/index.js","../../../node_modules/.pnpm/has-property-descriptors@1.0.0/node_modules/has-property-descriptors/index.js","../../../node_modules/.pnpm/define-properties@1.1.4/node_modules/define-properties/index.js","../../../node_modules/.pnpm/object-is@1.1.5/node_modules/object-is/implementation.js","../../../node_modules/.pnpm/object-is@1.1.5/node_modules/object-is/polyfill.js","../../../node_modules/.pnpm/object-is@1.1.5/node_modules/object-is/shim.js","../../../node_modules/.pnpm/object-is@1.1.5/node_modules/object-is/index.js","../../../node_modules/.pnpm/is-nan@1.3.2/node_modules/is-nan/implementation.js","../../../node_modules/.pnpm/is-nan@1.3.2/node_modules/is-nan/polyfill.js","../../../node_modules/.pnpm/is-nan@1.3.2/node_modules/is-nan/shim.js","../../../node_modules/.pnpm/is-nan@1.3.2/node_modules/is-nan/index.js","../../../node_modules/.pnpm/assert@2.0.0/node_modules/assert/build/internal/util/comparisons.js","../../../node_modules/.pnpm/assert@2.0.0/node_modules/assert/build/assert.js","../../../node_modules/.pnpm/memfs@3.4.13/node_modules/memfs/lib/internal/errors.js","../../../node_modules/.pnpm/memfs@3.4.13/node_modules/memfs/lib/encoding.js","../../../node_modules/.pnpm/memfs@3.4.13/node_modules/memfs/lib/Dirent.js","../../../node_modules/.pnpm/memfs@3.4.13/node_modules/memfs/lib/setImmediate.js","../../../node_modules/.pnpm/memfs@3.4.13/node_modules/memfs/lib/process.js","../../../node_modules/.pnpm/eventemitter3@5.0.0/node_modules/eventemitter3/index.js","../../../node_modules/.pnpm/memfs@3.4.13/node_modules/memfs/lib/node.js","../../../node_modules/.pnpm/memfs@3.4.13/node_modules/memfs/lib/setTimeoutUnref.js","../../../node_modules/.pnpm/readable-stream@3.6.0/node_modules/readable-stream/lib/internal/streams/stream-browser.js","../../../node_modules/.pnpm/readable-stream@3.6.0/node_modules/readable-stream/lib/internal/streams/buffer_list.js","../../../node_modules/.pnpm/readable-stream@3.6.0/node_modules/readable-stream/lib/internal/streams/destroy.js","../../../node_modules/.pnpm/readable-stream@3.6.0/node_modules/readable-stream/errors-browser.js","../../../node_modules/.pnpm/readable-stream@3.6.0/node_modules/readable-stream/lib/internal/streams/state.js","../../../node_modules/.pnpm/util-deprecate@1.0.2/node_modules/util-deprecate/browser.js","../../../node_modules/.pnpm/readable-stream@3.6.0/node_modules/readable-stream/lib/_stream_writable.js","../../../node_modules/.pnpm/readable-stream@3.6.0/node_modules/readable-stream/lib/_stream_duplex.js","../../../node_modules/.pnpm/safe-buffer@5.2.1/node_modules/safe-buffer/index.js","../../../node_modules/.pnpm/string_decoder@1.3.0/node_modules/string_decoder/lib/string_decoder.js","../../../node_modules/.pnpm/readable-stream@3.6.0/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","../../../node_modules/.pnpm/readable-stream@3.6.0/node_modules/readable-stream/lib/internal/streams/async_iterator.js","../../../node_modules/.pnpm/readable-stream@3.6.0/node_modules/readable-stream/lib/internal/streams/from-browser.js","../../../node_modules/.pnpm/readable-stream@3.6.0/node_modules/readable-stream/lib/_stream_readable.js","../../../node_modules/.pnpm/readable-stream@3.6.0/node_modules/readable-stream/lib/_stream_transform.js","../../../node_modules/.pnpm/readable-stream@3.6.0/node_modules/readable-stream/lib/_stream_passthrough.js","../../../node_modules/.pnpm/readable-stream@3.6.0/node_modules/readable-stream/lib/internal/streams/pipeline.js","../../../node_modules/.pnpm/stream-browserify@3.0.0/node_modules/stream-browserify/index.js","../../../node_modules/.pnpm/memfs@3.4.13/node_modules/memfs/lib/promises.js","../../../node_modules/.pnpm/fs-monkey@1.0.3/node_modules/fs-monkey/lib/correctPath.js","../../../node_modules/.pnpm/memfs@3.4.13/node_modules/memfs/lib/volume.js","../../../node_modules/.pnpm/fs-monkey@1.0.3/node_modules/fs-monkey/lib/util/lists.js","../../../node_modules/.pnpm/memfs@3.4.13/node_modules/memfs/lib/index.js","../../../node_modules/.pnpm/fs.realpath@1.0.0/node_modules/fs.realpath/old.js","../../../node_modules/.pnpm/fs.realpath@1.0.0/node_modules/fs.realpath/index.js","../../../node_modules/.pnpm/concat-map@0.0.1/node_modules/concat-map/index.js","../../../node_modules/.pnpm/balanced-match@1.0.2/node_modules/balanced-match/index.js","../../../node_modules/.pnpm/brace-expansion@1.1.11/node_modules/brace-expansion/index.js","../../../node_modules/.pnpm/minimatch@3.1.2/node_modules/minimatch/minimatch.js","../../../node_modules/.pnpm/path-is-absolute@1.0.1/node_modules/path-is-absolute/index.js","../../../node_modules/.pnpm/glob@7.2.3/node_modules/glob/common.js","../../../node_modules/.pnpm/glob@7.2.3/node_modules/glob/sync.js","../../../node_modules/.pnpm/wrappy@1.0.2/node_modules/wrappy/wrappy.js","../../../node_modules/.pnpm/once@1.4.0/node_modules/once/once.js","../../../node_modules/.pnpm/inflight@1.0.6/node_modules/inflight/inflight.js","../../../node_modules/.pnpm/glob@7.2.3/node_modules/glob/glob.js","../../../node_modules/.pnpm/rimraf@3.0.2/node_modules/rimraf/rimraf.js","../../../node_modules/.pnpm/directory-tree@3.5.1/node_modules/directory-tree/lib/directory-tree.js","../src/plugin.ts","../src/utils/isPromise.ts","../src/utils/write.ts","../src/utils/cache.ts","../src/utils/read.ts","../../../node_modules/.pnpm/eventemitter3@5.0.0/node_modules/eventemitter3/index.mjs","../../../node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/esm-browser/rng.js","../../../node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/esm-browser/stringify.js","../../../node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/esm-browser/native.js","../../../node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/esm-browser/v4.js","../src/managers/fileManager/events.ts","../src/managers/fileManager/FileManager.ts","../src/managers/fileManager/TreeNode.ts","../src/managers/pluginManager/PluginManager.ts","../src/managers/pluginManager/validate.ts","../src/build.ts","../src/config.ts","../src/generators/Generator.ts","../src/generators/SchemaGenerator.ts","../src/index.ts"],"names":["Stats","len","i","len2","Buffer","read","write","byteLength","name","require_buffer","require_shams","Empty","undefined","doEval","stringToPath","getBaseIntrinsic","applyBind","forEachArray","forEachString","forEachObject","forEach","isPromise","getOwnPropertyDescriptors","keys","x","_typeof","obj","_getPrototypeOf","o","_setPrototypeOf","p","NodeError","_wrapNativeSuper","Class","_construct","Parent","args","AssertionError","require_implementation","hasPropertyDescriptors","isNaN","require_polyfill","require_shim","arrayFromSet","arrayFromMap","Comparison","require_errors","d","b","Dirent","EventEmitter","Node","Link","File","require_util","err","realHasInstance","onlegacyfinish","onfinish","onend","onerror","onclose","onrequest","createReadableStreamAsyncIterator","EElistenerCount","debug","n","FileHandle","FLAGS","Volume","StatWatcher","FSWatcher","_a","fs","base","minimatch","Minimatch","filter","makeRe","braceExpand","set","m","path","cb","er","stat","rimraf","import_path","pathParser","import_fs","options","file","dirTree","argument0"],"mappings":"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","sourcesContent":["// 'path' module extracted from Node.js v8.11.1 (only the posix part)\n// transplited with Babel\n\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\n'use strict';\n\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError('Path must be a string. Received ' + JSON.stringify(path));\n }\n}\n\n// Resolves . and .. elements in a path with directory names\nfunction normalizeStringPosix(path, allowAboveRoot) {\n var res = '';\n var lastSegmentLength = 0;\n var lastSlash = -1;\n var dots = 0;\n var code;\n for (var i = 0; i <= path.length; ++i) {\n if (i < path.length)\n code = path.charCodeAt(i);\n else if (code === 47 /*/*/)\n break;\n else\n code = 47 /*/*/;\n if (code === 47 /*/*/) {\n if (lastSlash === i - 1 || dots === 1) {\n // NOOP\n } else if (lastSlash !== i - 1 && dots === 2) {\n if (res.length < 2 || lastSegmentLength !== 2 || res.charCodeAt(res.length - 1) !== 46 /*.*/ || res.charCodeAt(res.length - 2) !== 46 /*.*/) {\n if (res.length > 2) {\n var lastSlashIndex = res.lastIndexOf('/');\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 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 if (allowAboveRoot) {\n if (res.length > 0)\n res += '/..';\n else\n res = '..';\n lastSegmentLength = 2;\n }\n } else {\n if (res.length > 0)\n res += '/' + path.slice(lastSlash + 1, i);\n else\n res = path.slice(lastSlash + 1, i);\n lastSegmentLength = i - lastSlash - 1;\n }\n lastSlash = i;\n dots = 0;\n } else if (code === 46 /*.*/ && dots !== -1) {\n ++dots;\n } else {\n dots = -1;\n }\n }\n return res;\n}\n\nfunction _format(sep, pathObject) {\n var dir = pathObject.dir || pathObject.root;\n var base = pathObject.base || (pathObject.name || '') + (pathObject.ext || '');\n if (!dir) {\n return base;\n }\n if (dir === pathObject.root) {\n return dir + base;\n }\n return dir + sep + base;\n}\n\nvar 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)\n path = arguments[i];\n else {\n if (cwd === undefined)\n cwd = process.cwd();\n path = cwd;\n }\n\n assertPath(path);\n\n // Skip empty entries\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\n // Normalize the path\n resolvedPath = normalizeStringPosix(resolvedPath, !resolvedAbsolute);\n\n if (resolvedAbsolute) {\n if (resolvedPath.length > 0)\n return '/' + resolvedPath;\n else\n return '/';\n } else if (resolvedPath.length > 0) {\n return resolvedPath;\n } else {\n return '.';\n }\n },\n\n normalize: function normalize(path) {\n assertPath(path);\n\n if (path.length === 0) return '.';\n\n var isAbsolute = path.charCodeAt(0) === 47 /*/*/;\n var trailingSeparator = path.charCodeAt(path.length - 1) === 47 /*/*/;\n\n // Normalize the path\n path = normalizeStringPosix(path, !isAbsolute);\n\n if (path.length === 0 && !isAbsolute) path = '.';\n if (path.length > 0 && trailingSeparator) path += '/';\n\n if (isAbsolute) return '/' + path;\n return path;\n },\n\n isAbsolute: function isAbsolute(path) {\n assertPath(path);\n return path.length > 0 && path.charCodeAt(0) === 47 /*/*/;\n },\n\n join: function join() {\n if (arguments.length === 0)\n return '.';\n var joined;\n for (var i = 0; i < arguments.length; ++i) {\n var arg = arguments[i];\n assertPath(arg);\n if (arg.length > 0) {\n if (joined === undefined)\n joined = arg;\n else\n joined += '/' + arg;\n }\n }\n if (joined === undefined)\n return '.';\n return posix.normalize(joined);\n },\n\n relative: function relative(from, to) {\n assertPath(from);\n assertPath(to);\n\n if (from === to) return '';\n\n from = posix.resolve(from);\n to = posix.resolve(to);\n\n if (from === to) return '';\n\n // Trim any leading backslashes\n var fromStart = 1;\n for (; fromStart < from.length; ++fromStart) {\n if (from.charCodeAt(fromStart) !== 47 /*/*/)\n break;\n }\n var fromEnd = from.length;\n var fromLen = fromEnd - fromStart;\n\n // Trim any leading backslashes\n var toStart = 1;\n for (; toStart < to.length; ++toStart) {\n if (to.charCodeAt(toStart) !== 47 /*/*/)\n break;\n }\n var toEnd = to.length;\n var toLen = toEnd - toStart;\n\n // Compare paths to find the longest common path from root\n var length = fromLen < toLen ? fromLen : toLen;\n var lastCommonSep = -1;\n var i = 0;\n for (; i <= length; ++i) {\n if (i === length) {\n if (toLen > length) {\n if (to.charCodeAt(toStart + i) === 47 /*/*/) {\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 // 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 break;\n }\n var fromCode = from.charCodeAt(fromStart + i);\n var toCode = to.charCodeAt(toStart + i);\n if (fromCode !== toCode)\n break;\n else if (fromCode === 47 /*/*/)\n lastCommonSep = i;\n }\n\n var out = '';\n // Generate the relative path based on the path difference between `to`\n // and `from`\n for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) {\n if (i === fromEnd || from.charCodeAt(i) === 47 /*/*/) {\n if (out.length === 0)\n out += '..';\n else\n out += '/..';\n }\n }\n\n // Lastly, append the rest of the destination (`to`) path that comes after\n // the common path parts\n if (out.length > 0)\n return out + to.slice(toStart + lastCommonSep);\n else {\n toStart += lastCommonSep;\n if (to.charCodeAt(toStart) === 47 /*/*/)\n ++toStart;\n return to.slice(toStart);\n }\n },\n\n _makeLong: function _makeLong(path) {\n return path;\n },\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 var end = -1;\n var matchedSlash = true;\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\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\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\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 for (i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\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 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 // 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\n extname: function extname(path) {\n assertPath(path);\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\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 continue;\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 if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n 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 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n return path.slice(startDot, end);\n },\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 return _format('/', pathObject);\n },\n\n parse: function parse(path) {\n assertPath(path);\n\n var ret = { root: '', dir: '', base: '', ext: '', name: '' };\n if (path.length === 0) return ret;\n var code = path.charCodeAt(0);\n var isAbsolute = code === 47 /*/*/;\n var start;\n if (isAbsolute) {\n ret.root = '/';\n start = 1;\n } else {\n start = 0;\n }\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n var i = path.length - 1;\n\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n\n // Get non-dir info\n for (; i >= start; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\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 continue;\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 if (code === 46 /*.*/) {\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 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // 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 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\n return ret;\n },\n\n sep: '/',\n delimiter: ':',\n win32: null,\n posix: null\n};\n\nposix.posix = posix;\n\nmodule.exports = posix;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.constants = void 0;\nexports.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","if (typeof BigInt === 'function') exports.default = BigInt;\nelse\n exports.default = function BigIntNotSupported() {\n throw new Error('BigInt is not supported in this environment.');\n };\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Stats = void 0;\nvar constants_1 = require(\"./constants\");\nvar getBigInt_1 = require(\"./getBigInt\");\nvar S_IFMT = constants_1.constants.S_IFMT, S_IFDIR = constants_1.constants.S_IFDIR, S_IFREG = constants_1.constants.S_IFREG, S_IFBLK = constants_1.constants.S_IFBLK, S_IFCHR = constants_1.constants.S_IFCHR, S_IFLNK = constants_1.constants.S_IFLNK, S_IFIFO = constants_1.constants.S_IFIFO, S_IFSOCK = constants_1.constants.S_IFSOCK;\n/**\n * Statistics about a file/directory, like `fs.Stats`.\n */\nvar Stats = /** @class */ (function () {\n function Stats() {\n }\n Stats.build = function (node, bigint) {\n if (bigint === void 0) { bigint = false; }\n var stats = new Stats();\n var uid = node.uid, gid = node.gid, atime = node.atime, mtime = node.mtime, ctime = node.ctime;\n var getStatNumber = !bigint ? function (number) { return number; } : getBigInt_1.default;\n // 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 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 Stats.prototype._checkModeProperty = function (property) {\n return (Number(this.mode) & S_IFMT) === property;\n };\n Stats.prototype.isDirectory = function () {\n return this._checkModeProperty(S_IFDIR);\n };\n Stats.prototype.isFile = function () {\n return this._checkModeProperty(S_IFREG);\n };\n Stats.prototype.isBlockDevice = function () {\n return this._checkModeProperty(S_IFBLK);\n };\n Stats.prototype.isCharacterDevice = function () {\n return this._checkModeProperty(S_IFCHR);\n };\n Stats.prototype.isSymbolicLink = function () {\n return this._checkModeProperty(S_IFLNK);\n };\n Stats.prototype.isFIFO = function () {\n return this._checkModeProperty(S_IFIFO);\n };\n Stats.prototype.isSocket = function () {\n return this._checkModeProperty(S_IFSOCK);\n };\n return Stats;\n}());\nexports.Stats = Stats;\nexports.default = Stats;\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction 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 }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction 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\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction 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 var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\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 }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nexports.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\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\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 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 return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.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\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 if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\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 & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\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 */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\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\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\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\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction 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(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\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 &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\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 **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction 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\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\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'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction 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\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\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction 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 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 }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction 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 return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction 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 ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.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 if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\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\nBuffer.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 default:\n return false\n }\n}\n\nBuffer.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 if (length === undefined) {\n length = 0\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 for (i = 0; i < list.length; ++i) {\n let buf = list[i]\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(\n buffer,\n buf,\n pos\n )\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 pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\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 if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\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 }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\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}\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\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\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 return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\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 return this\n}\n\nBuffer.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\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.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\nBuffer.prototype.inspect = function inspect () {\n let str = ''\n const max = exports.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}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.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 if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\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 if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\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}\n\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\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\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 }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\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 return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\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 return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction 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 if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\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 if (dir) {\n let foundIndex = -1\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 for (i = byteOffset; i >= 0; i--) {\n let found = true\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 if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n const remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\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 let i\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 return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.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\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\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(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\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\n let loweredCase = false\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\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction 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\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\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 = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\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\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = ''\n let i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction 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] & 0x7F)\n }\n return ret\n}\n\nfunction 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 return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.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\n const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction 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\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.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\nBuffer.prototype.readUint16BE =\nBuffer.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\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.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 if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.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 if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let i = byteLength\n let mul = 1\n let val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.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 & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.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 & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.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 if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.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 if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.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\nBuffer.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\nBuffer.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\nBuffer.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\nfunction 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\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\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 & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\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 & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\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(0xffffffff))\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\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\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(0xffffffff))\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\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\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 & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\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 & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction 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\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.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\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\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')\n\n // Are we oob?\n if (end > this.length) end = this.length\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(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.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 if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n 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 }\n\n // Invalid ranges are not set to a default, so can range check early.\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\n if (!val) val = 0\n\n let i\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)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\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\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n 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)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\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 if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\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 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction 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',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction 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)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n const byteArray = []\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) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n let c, hi, lo\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\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\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n let i\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 return i\n}\n\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\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","\"use strict\";\nvar __spreadArray = (this && this.__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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bufferFrom = exports.bufferAllocUnsafe = exports.Buffer = void 0;\nvar buffer_1 = require(\"buffer\");\nObject.defineProperty(exports, \"Buffer\", { enumerable: true, get: function () { return buffer_1.Buffer; } });\nfunction bufferV0P12Ponyfill(arg0) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n return new (buffer_1.Buffer.bind.apply(buffer_1.Buffer, __spreadArray([void 0, arg0], args, false)))();\n}\nvar bufferAllocUnsafe = buffer_1.Buffer.allocUnsafe || bufferV0P12Ponyfill;\nexports.bufferAllocUnsafe = bufferAllocUnsafe;\nvar bufferFrom = buffer_1.Buffer.from || bufferV0P12Ponyfill;\nexports.bufferFrom = bufferFrom;\n","'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slice.call(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\nvar bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\n","'use strict';\n\nvar undefined;\n\nvar $SyntaxError = SyntaxError;\nvar $Function = Function;\nvar $TypeError = TypeError;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': RangeError,\n\t'%ReferenceError%': ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('has');\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\nvar $exec = bind.call(Function.call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\nvar $max = GetIntrinsic('%Math.max%');\n\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = null;\n\t}\n}\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = $reflectApply(bind, $call, arguments);\n\tif ($gOPD && $defineProperty) {\n\t\tvar desc = $gOPD(func, 'length');\n\t\tif (desc.configurable) {\n\t\t\t// original length, plus the receiver, minus any additional arguments (after the receiver)\n\t\t\t$defineProperty(\n\t\t\t\tfunc,\n\t\t\t\t'length',\n\t\t\t\t{ value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) }\n\t\t\t);\n\t\t}\n\t}\n\treturn func;\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\n\nvar isStandardArguments = function isArguments(value) {\n\tif (hasToStringTag && value && typeof value === 'object' && Symbol.toStringTag in value) {\n\t\treturn false;\n\t}\n\treturn $toString(value) === '[object Arguments]';\n};\n\nvar isLegacyArguments = function isArguments(value) {\n\tif (isStandardArguments(value)) {\n\t\treturn true;\n\t}\n\treturn value !== null &&\n\t\ttypeof value === 'object' &&\n\t\ttypeof value.length === 'number' &&\n\t\tvalue.length >= 0 &&\n\t\t$toString(value) !== '[object Array]' &&\n\t\t$toString(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = (function () {\n\treturn isStandardArguments(arguments);\n}());\n\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;\n","'use strict';\n\nvar toStr = Object.prototype.toString;\nvar fnToStr = Function.prototype.toString;\nvar isFnRegex = /^\\s*(?:function)?\\*/;\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar getProto = Object.getPrototypeOf;\nvar getGeneratorFunc = function () { // eslint-disable-line consistent-return\n\tif (!hasToStringTag) {\n\t\treturn false;\n\t}\n\ttry {\n\t\treturn Function('return function*() {}')();\n\t} catch (e) {\n\t}\n};\nvar GeneratorFunction;\n\nmodule.exports = function isGeneratorFunction(fn) {\n\tif (typeof fn !== 'function') {\n\t\treturn false;\n\t}\n\tif (isFnRegex.test(fnToStr.call(fn))) {\n\t\treturn true;\n\t}\n\tif (!hasToStringTag) {\n\t\tvar str = toStr.call(fn);\n\t\treturn str === '[object GeneratorFunction]';\n\t}\n\tif (!getProto) {\n\t\treturn false;\n\t}\n\tif (typeof GeneratorFunction === 'undefined') {\n\t\tvar generatorFunc = getGeneratorFunc();\n\t\tGeneratorFunction = generatorFunc ? getProto(generatorFunc) : false;\n\t}\n\treturn getProto(fn) === GeneratorFunction;\n};\n","'use strict';\n\nvar fnToStr = Function.prototype.toString;\nvar reflectApply = typeof Reflect === 'object' && Reflect !== null && Reflect.apply;\nvar badArrayLike;\nvar isCallableMarker;\nif (typeof reflectApply === 'function' && typeof Object.defineProperty === 'function') {\n\ttry {\n\t\tbadArrayLike = Object.defineProperty({}, 'length', {\n\t\t\tget: function () {\n\t\t\t\tthrow isCallableMarker;\n\t\t\t}\n\t\t});\n\t\tisCallableMarker = {};\n\t\t// eslint-disable-next-line no-throw-literal\n\t\treflectApply(function () { throw 42; }, null, badArrayLike);\n\t} catch (_) {\n\t\tif (_ !== isCallableMarker) {\n\t\t\treflectApply = null;\n\t\t}\n\t}\n} else {\n\treflectApply = null;\n}\n\nvar constructorRegex = /^\\s*class\\b/;\nvar isES6ClassFn = function isES6ClassFunction(value) {\n\ttry {\n\t\tvar fnStr = fnToStr.call(value);\n\t\treturn constructorRegex.test(fnStr);\n\t} catch (e) {\n\t\treturn false; // not a function\n\t}\n};\n\nvar tryFunctionObject = function tryFunctionToStr(value) {\n\ttry {\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tfnToStr.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar objectClass = '[object Object]';\nvar fnClass = '[object Function]';\nvar genClass = '[object GeneratorFunction]';\nvar ddaClass = '[object HTMLAllCollection]'; // IE 11\nvar ddaClass2 = '[object HTML document.all class]';\nvar ddaClass3 = '[object HTMLCollection]'; // IE 9-10\nvar hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag; // better: use `has-tostringtag`\n\nvar isIE68 = !(0 in [,]); // eslint-disable-line no-sparse-arrays, comma-spacing\n\nvar isDDA = function isDocumentDotAll() { return false; };\nif (typeof document === 'object') {\n\t// Firefox 3 canonicalizes DDA to undefined when it's not accessed directly\n\tvar all = document.all;\n\tif (toStr.call(all) === toStr.call(document.all)) {\n\t\tisDDA = function isDocumentDotAll(value) {\n\t\t\t/* globals document: false */\n\t\t\t// in IE 6-8, typeof document.all is \"object\" and it's truthy\n\t\t\tif ((isIE68 || !value) && (typeof value === 'undefined' || typeof value === 'object')) {\n\t\t\t\ttry {\n\t\t\t\t\tvar str = toStr.call(value);\n\t\t\t\t\treturn (\n\t\t\t\t\t\tstr === ddaClass\n\t\t\t\t\t\t|| str === ddaClass2\n\t\t\t\t\t\t|| str === ddaClass3 // opera 12.16\n\t\t\t\t\t\t|| str === objectClass // IE 6-8\n\t\t\t\t\t) && value('') == null; // eslint-disable-line eqeqeq\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\t}\n}\n\nmodule.exports = reflectApply\n\t? function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\ttry {\n\t\t\treflectApply(value, null, badArrayLike);\n\t\t} catch (e) {\n\t\t\tif (e !== isCallableMarker) { return false; }\n\t\t}\n\t\treturn !isES6ClassFn(value) && tryFunctionObject(value);\n\t}\n\t: function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\tif (hasToStringTag) { return tryFunctionObject(value); }\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tvar strClass = toStr.call(value);\n\t\tif (strClass !== fnClass && strClass !== genClass && !(/^\\[object HTML/).test(strClass)) { return false; }\n\t\treturn tryFunctionObject(value);\n\t};\n","'use strict';\n\nvar isCallable = require('is-callable');\n\nvar toStr = Object.prototype.toString;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar forEachArray = function forEachArray(array, iterator, receiver) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (hasOwnProperty.call(array, i)) {\n if (receiver == null) {\n iterator(array[i], i, array);\n } else {\n iterator.call(receiver, array[i], i, array);\n }\n }\n }\n};\n\nvar forEachString = function forEachString(string, iterator, receiver) {\n for (var i = 0, len = string.length; i < len; i++) {\n // no such thing as a sparse string.\n if (receiver == null) {\n iterator(string.charAt(i), i, string);\n } else {\n iterator.call(receiver, string.charAt(i), i, string);\n }\n }\n};\n\nvar forEachObject = function forEachObject(object, iterator, receiver) {\n for (var k in object) {\n if (hasOwnProperty.call(object, k)) {\n if (receiver == null) {\n iterator(object[k], k, object);\n } else {\n iterator.call(receiver, object[k], k, object);\n }\n }\n }\n};\n\nvar forEach = function forEach(list, iterator, thisArg) {\n if (!isCallable(iterator)) {\n throw new TypeError('iterator must be a function');\n }\n\n var receiver;\n if (arguments.length >= 3) {\n receiver = thisArg;\n }\n\n if (toStr.call(list) === '[object Array]') {\n forEachArray(list, iterator, receiver);\n } else if (typeof list === 'string') {\n forEachString(list, iterator, receiver);\n } else {\n forEachObject(list, iterator, receiver);\n }\n};\n\nmodule.exports = forEach;\n","'use strict';\n\nvar possibleNames = [\n\t'BigInt64Array',\n\t'BigUint64Array',\n\t'Float32Array',\n\t'Float64Array',\n\t'Int16Array',\n\t'Int32Array',\n\t'Int8Array',\n\t'Uint16Array',\n\t'Uint32Array',\n\t'Uint8Array',\n\t'Uint8ClampedArray'\n];\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\n\nmodule.exports = function availableTypedArrays() {\n\tvar out = [];\n\tfor (var i = 0; i < possibleNames.length; i++) {\n\t\tif (typeof g[possibleNames[i]] === 'function') {\n\t\t\tout[out.length] = possibleNames[i];\n\t\t}\n\t}\n\treturn out;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\n\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n","'use strict';\n\nvar forEach = require('for-each');\nvar availableTypedArrays = require('available-typed-arrays');\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar gOPD = require('gopd');\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\nvar typedArrays = availableTypedArrays();\n\nvar $indexOf = callBound('Array.prototype.indexOf', true) || function indexOf(array, value) {\n\tfor (var i = 0; i < array.length; i += 1) {\n\t\tif (array[i] === value) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n};\nvar $slice = callBound('String.prototype.slice');\nvar toStrTags = {};\nvar getPrototypeOf = Object.getPrototypeOf; // require('getprototypeof');\nif (hasToStringTag && gOPD && getPrototypeOf) {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tif (Symbol.toStringTag in arr) {\n\t\t\tvar proto = getPrototypeOf(arr);\n\t\t\tvar descriptor = gOPD(proto, Symbol.toStringTag);\n\t\t\tif (!descriptor) {\n\t\t\t\tvar superProto = getPrototypeOf(proto);\n\t\t\t\tdescriptor = gOPD(superProto, Symbol.toStringTag);\n\t\t\t}\n\t\t\ttoStrTags[typedArray] = descriptor.get;\n\t\t}\n\t});\n}\n\nvar tryTypedArrays = function tryAllTypedArrays(value) {\n\tvar anyTrue = false;\n\tforEach(toStrTags, function (getter, typedArray) {\n\t\tif (!anyTrue) {\n\t\t\ttry {\n\t\t\t\tanyTrue = getter.call(value) === typedArray;\n\t\t\t} catch (e) { /**/ }\n\t\t}\n\t});\n\treturn anyTrue;\n};\n\nmodule.exports = function isTypedArray(value) {\n\tif (!value || typeof value !== 'object') { return false; }\n\tif (!hasToStringTag || !(Symbol.toStringTag in value)) {\n\t\tvar tag = $slice($toString(value), 8, -1);\n\t\treturn $indexOf(typedArrays, tag) > -1;\n\t}\n\tif (!gOPD) { return false; }\n\treturn tryTypedArrays(value);\n};\n","'use strict';\n\nvar forEach = require('for-each');\nvar availableTypedArrays = require('available-typed-arrays');\nvar callBound = require('call-bind/callBound');\nvar gOPD = require('gopd');\n\nvar $toString = callBound('Object.prototype.toString');\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\nvar typedArrays = availableTypedArrays();\n\nvar $slice = callBound('String.prototype.slice');\nvar toStrTags = {};\nvar getPrototypeOf = Object.getPrototypeOf; // require('getprototypeof');\nif (hasToStringTag && gOPD && getPrototypeOf) {\n\tforEach(typedArrays, function (typedArray) {\n\t\tif (typeof g[typedArray] === 'function') {\n\t\t\tvar arr = new g[typedArray]();\n\t\t\tif (Symbol.toStringTag in arr) {\n\t\t\t\tvar proto = getPrototypeOf(arr);\n\t\t\t\tvar descriptor = gOPD(proto, Symbol.toStringTag);\n\t\t\t\tif (!descriptor) {\n\t\t\t\t\tvar superProto = getPrototypeOf(proto);\n\t\t\t\t\tdescriptor = gOPD(superProto, Symbol.toStringTag);\n\t\t\t\t}\n\t\t\t\ttoStrTags[typedArray] = descriptor.get;\n\t\t\t}\n\t\t}\n\t});\n}\n\nvar tryTypedArrays = function tryAllTypedArrays(value) {\n\tvar foundName = false;\n\tforEach(toStrTags, function (getter, typedArray) {\n\t\tif (!foundName) {\n\t\t\ttry {\n\t\t\t\tvar name = getter.call(value);\n\t\t\t\tif (name === typedArray) {\n\t\t\t\t\tfoundName = name;\n\t\t\t\t}\n\t\t\t} catch (e) {}\n\t\t}\n\t});\n\treturn foundName;\n};\n\nvar isTypedArray = require('is-typed-array');\n\nmodule.exports = function whichTypedArray(value) {\n\tif (!isTypedArray(value)) { return false; }\n\tif (!hasToStringTag || !(Symbol.toStringTag in value)) { return $slice($toString(value), 8, -1); }\n\treturn tryTypedArrays(value);\n};\n","// Currently in sync with Node.js lib/internal/util/types.js\n// https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9\n\n'use strict';\n\nvar isArgumentsObject = require('is-arguments');\nvar isGeneratorFunction = require('is-generator-function');\nvar whichTypedArray = require('which-typed-array');\nvar isTypedArray = require('is-typed-array');\n\nfunction uncurryThis(f) {\n return f.call.bind(f);\n}\n\nvar BigIntSupported = typeof BigInt !== 'undefined';\nvar SymbolSupported = typeof Symbol !== 'undefined';\n\nvar ObjectToString = uncurryThis(Object.prototype.toString);\n\nvar numberValue = uncurryThis(Number.prototype.valueOf);\nvar stringValue = uncurryThis(String.prototype.valueOf);\nvar booleanValue = uncurryThis(Boolean.prototype.valueOf);\n\nif (BigIntSupported) {\n var bigIntValue = uncurryThis(BigInt.prototype.valueOf);\n}\n\nif (SymbolSupported) {\n var symbolValue = uncurryThis(Symbol.prototype.valueOf);\n}\n\nfunction checkBoxedPrimitive(value, prototypeValueOf) {\n if (typeof value !== 'object') {\n return false;\n }\n try {\n prototypeValueOf(value);\n return true;\n } catch(e) {\n return false;\n }\n}\n\nexports.isArgumentsObject = isArgumentsObject;\nexports.isGeneratorFunction = isGeneratorFunction;\nexports.isTypedArray = isTypedArray;\n\n// Taken from here and modified for better browser support\n// https://github.com/sindresorhus/p-is-promise/blob/cda35a513bda03f977ad5cde3a079d237e82d7ef/index.js\nfunction isPromise(input) {\n\treturn (\n\t\t(\n\t\t\ttypeof Promise !== 'undefined' &&\n\t\t\tinput instanceof Promise\n\t\t) ||\n\t\t(\n\t\t\tinput !== null &&\n\t\t\ttypeof input === 'object' &&\n\t\t\ttypeof input.then === 'function' &&\n\t\t\ttypeof input.catch === 'function'\n\t\t)\n\t);\n}\nexports.isPromise = isPromise;\n\nfunction isArrayBufferView(value) {\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n return ArrayBuffer.isView(value);\n }\n\n return (\n isTypedArray(value) ||\n isDataView(value)\n );\n}\nexports.isArrayBufferView = isArrayBufferView;\n\n\nfunction isUint8Array(value) {\n return whichTypedArray(value) === 'Uint8Array';\n}\nexports.isUint8Array = isUint8Array;\n\nfunction isUint8ClampedArray(value) {\n return whichTypedArray(value) === 'Uint8ClampedArray';\n}\nexports.isUint8ClampedArray = isUint8ClampedArray;\n\nfunction isUint16Array(value) {\n return whichTypedArray(value) === 'Uint16Array';\n}\nexports.isUint16Array = isUint16Array;\n\nfunction isUint32Array(value) {\n return whichTypedArray(value) === 'Uint32Array';\n}\nexports.isUint32Array = isUint32Array;\n\nfunction isInt8Array(value) {\n return whichTypedArray(value) === 'Int8Array';\n}\nexports.isInt8Array = isInt8Array;\n\nfunction isInt16Array(value) {\n return whichTypedArray(value) === 'Int16Array';\n}\nexports.isInt16Array = isInt16Array;\n\nfunction isInt32Array(value) {\n return whichTypedArray(value) === 'Int32Array';\n}\nexports.isInt32Array = isInt32Array;\n\nfunction isFloat32Array(value) {\n return whichTypedArray(value) === 'Float32Array';\n}\nexports.isFloat32Array = isFloat32Array;\n\nfunction isFloat64Array(value) {\n return whichTypedArray(value) === 'Float64Array';\n}\nexports.isFloat64Array = isFloat64Array;\n\nfunction isBigInt64Array(value) {\n return whichTypedArray(value) === 'BigInt64Array';\n}\nexports.isBigInt64Array = isBigInt64Array;\n\nfunction isBigUint64Array(value) {\n return whichTypedArray(value) === 'BigUint64Array';\n}\nexports.isBigUint64Array = isBigUint64Array;\n\nfunction isMapToString(value) {\n return ObjectToString(value) === '[object Map]';\n}\nisMapToString.working = (\n typeof Map !== 'undefined' &&\n isMapToString(new Map())\n);\n\nfunction isMap(value) {\n if (typeof Map === 'undefined') {\n return false;\n }\n\n return isMapToString.working\n ? isMapToString(value)\n : value instanceof Map;\n}\nexports.isMap = isMap;\n\nfunction isSetToString(value) {\n return ObjectToString(value) === '[object Set]';\n}\nisSetToString.working = (\n typeof Set !== 'undefined' &&\n isSetToString(new Set())\n);\nfunction isSet(value) {\n if (typeof Set === 'undefined') {\n return false;\n }\n\n return isSetToString.working\n ? isSetToString(value)\n : value instanceof Set;\n}\nexports.isSet = isSet;\n\nfunction isWeakMapToString(value) {\n return ObjectToString(value) === '[object WeakMap]';\n}\nisWeakMapToString.working = (\n typeof WeakMap !== 'undefined' &&\n isWeakMapToString(new WeakMap())\n);\nfunction isWeakMap(value) {\n if (typeof WeakMap === 'undefined') {\n return false;\n }\n\n return isWeakMapToString.working\n ? isWeakMapToString(value)\n : value instanceof WeakMap;\n}\nexports.isWeakMap = isWeakMap;\n\nfunction isWeakSetToString(value) {\n return ObjectToString(value) === '[object WeakSet]';\n}\nisWeakSetToString.working = (\n typeof WeakSet !== 'undefined' &&\n isWeakSetToString(new WeakSet())\n);\nfunction isWeakSet(value) {\n return isWeakSetToString(value);\n}\nexports.isWeakSet = isWeakSet;\n\nfunction isArrayBufferToString(value) {\n return ObjectToString(value) === '[object ArrayBuffer]';\n}\nisArrayBufferToString.working = (\n typeof ArrayBuffer !== 'undefined' &&\n isArrayBufferToString(new ArrayBuffer())\n);\nfunction isArrayBuffer(value) {\n if (typeof ArrayBuffer === 'undefined') {\n return false;\n }\n\n return isArrayBufferToString.working\n ? isArrayBufferToString(value)\n : value instanceof ArrayBuffer;\n}\nexports.isArrayBuffer = isArrayBuffer;\n\nfunction isDataViewToString(value) {\n return ObjectToString(value) === '[object DataView]';\n}\nisDataViewToString.working = (\n typeof ArrayBuffer !== 'undefined' &&\n typeof DataView !== 'undefined' &&\n isDataViewToString(new DataView(new ArrayBuffer(1), 0, 1))\n);\nfunction isDataView(value) {\n if (typeof DataView === 'undefined') {\n return false;\n }\n\n return isDataViewToString.working\n ? isDataViewToString(value)\n : value instanceof DataView;\n}\nexports.isDataView = isDataView;\n\n// Store a copy of SharedArrayBuffer in case it's deleted elsewhere\nvar SharedArrayBufferCopy = typeof SharedArrayBuffer !== 'undefined' ? SharedArrayBuffer : undefined;\nfunction isSharedArrayBufferToString(value) {\n return ObjectToString(value) === '[object SharedArrayBuffer]';\n}\nfunction isSharedArrayBuffer(value) {\n if (typeof SharedArrayBufferCopy === 'undefined') {\n return false;\n }\n\n if (typeof isSharedArrayBufferToString.working === 'undefined') {\n isSharedArrayBufferToString.working = isSharedArrayBufferToString(new SharedArrayBufferCopy());\n }\n\n return isSharedArrayBufferToString.working\n ? isSharedArrayBufferToString(value)\n : value instanceof SharedArrayBufferCopy;\n}\nexports.isSharedArrayBuffer = isSharedArrayBuffer;\n\nfunction isAsyncFunction(value) {\n return ObjectToString(value) === '[object AsyncFunction]';\n}\nexports.isAsyncFunction = isAsyncFunction;\n\nfunction isMapIterator(value) {\n return ObjectToString(value) === '[object Map Iterator]';\n}\nexports.isMapIterator = isMapIterator;\n\nfunction isSetIterator(value) {\n return ObjectToString(value) === '[object Set Iterator]';\n}\nexports.isSetIterator = isSetIterator;\n\nfunction isGeneratorObject(value) {\n return ObjectToString(value) === '[object Generator]';\n}\nexports.isGeneratorObject = isGeneratorObject;\n\nfunction isWebAssemblyCompiledModule(value) {\n return ObjectToString(value) === '[object WebAssembly.Module]';\n}\nexports.isWebAssemblyCompiledModule = isWebAssemblyCompiledModule;\n\nfunction isNumberObject(value) {\n return checkBoxedPrimitive(value, numberValue);\n}\nexports.isNumberObject = isNumberObject;\n\nfunction isStringObject(value) {\n return checkBoxedPrimitive(value, stringValue);\n}\nexports.isStringObject = isStringObject;\n\nfunction isBooleanObject(value) {\n return checkBoxedPrimitive(value, booleanValue);\n}\nexports.isBooleanObject = isBooleanObject;\n\nfunction isBigIntObject(value) {\n return BigIntSupported && checkBoxedPrimitive(value, bigIntValue);\n}\nexports.isBigIntObject = isBigIntObject;\n\nfunction isSymbolObject(value) {\n return SymbolSupported && checkBoxedPrimitive(value, symbolValue);\n}\nexports.isSymbolObject = isSymbolObject;\n\nfunction isBoxedPrimitive(value) {\n return (\n isNumberObject(value) ||\n isStringObject(value) ||\n isBooleanObject(value) ||\n isBigIntObject(value) ||\n isSymbolObject(value)\n );\n}\nexports.isBoxedPrimitive = isBoxedPrimitive;\n\nfunction isAnyArrayBuffer(value) {\n return typeof Uint8Array !== 'undefined' && (\n isArrayBuffer(value) ||\n isSharedArrayBuffer(value)\n );\n}\nexports.isAnyArrayBuffer = isAnyArrayBuffer;\n\n['isProxy', 'isExternal', 'isModuleNamespaceObject'].forEach(function(method) {\n Object.defineProperty(exports, method, {\n enumerable: false,\n value: function() {\n throw new Error(method + ' is not supported in userland');\n }\n });\n});\n","module.exports = function isBuffer(arg) {\n return arg && typeof arg === 'object'\n && typeof arg.copy === 'function'\n && typeof arg.fill === 'function'\n && typeof arg.readUInt8 === 'function';\n}","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\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\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||\n function getOwnPropertyDescriptors(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n return descriptors;\n };\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n if (typeof process !== 'undefined' && process.noDeprecation === true) {\n return fn;\n }\n\n // Allow for deprecating things in the process of starting up.\n if (typeof process === 'undefined') {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnvRegex = /^$/;\n\nif (process.env.NODE_DEBUG) {\n var debugEnv = process.env.NODE_DEBUG;\n debugEnv = debugEnv.replace(/[|\\\\{}()[\\]^$+?.]/g, '\\\\$&')\n .replace(/\\*/g, '.*')\n .replace(/,/g, '$|^')\n .toUpperCase();\n debugEnvRegex = new RegExp('^' + debugEnv + '$', 'i');\n}\nexports.debuglog = function(set) {\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (debugEnvRegex.test(set)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').slice(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.slice(1, -1);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nexports.types = require('./support/types');\n\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\nexports.types.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\nexports.types.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\nexports.types.isNativeError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n if (typeof original !== 'function')\n throw new TypeError('The \"original\" argument must be of type Function');\n\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n if (typeof fn !== 'function') {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return fn;\n }\n\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function (resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n args.push(function (err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n\n return promise;\n }\n\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return Object.defineProperties(\n fn,\n getOwnPropertyDescriptors(original)\n );\n}\n\nexports.promisify.custom = kCustomPromisifiedSymbol\n\nfunction callbackifyOnRejected(reason, cb) {\n // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n // Because `null` is a special error value in callbacks which means \"no error\n // occurred\", we error-wrap so the callback consumer can distinguish between\n // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n if (!reason) {\n var newReason = new Error('Promise was rejected with a falsy value');\n newReason.reason = reason;\n reason = newReason;\n }\n return cb(reason);\n}\n\nfunction callbackify(original) {\n if (typeof original !== 'function') {\n throw new TypeError('The \"original\" argument must be of type Function');\n }\n\n // We DO NOT return the promise as it gives the user a false sense that\n // the promise is actually somehow related to the callback's execution\n // and that the callback throwing will reject the promise.\n function callbackified() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var maybeCb = args.pop();\n if (typeof maybeCb !== 'function') {\n throw new TypeError('The last argument must be of type Function');\n }\n var self = this;\n var cb = function() {\n return maybeCb.apply(self, arguments);\n };\n // In true node style we process the callback on `nextTick` with all the\n // implications (stack, `uncaughtException`, `async_hooks`)\n original.apply(this, args)\n .then(function(ret) { process.nextTick(cb.bind(null, null, ret)) },\n function(rej) { process.nextTick(callbackifyOnRejected.bind(null, rej, cb)) });\n }\n\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(callbackified,\n getOwnPropertyDescriptors(original));\n return callbackified;\n}\nexports.callbackify = callbackify;\n","// Currently in sync with Node.js lib/internal/errors.js\n// https://github.com/nodejs/node/commit/3b044962c48fe313905877a96b5d0894a5404f6f\n\n/* eslint node-core/documented-errors: \"error\" */\n\n/* eslint node-core/alphabetize-errors: \"error\" */\n\n/* eslint node-core/prefer-util-format-errors: \"error\" */\n'use strict'; // 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\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar codes = {}; // Lazy loaded\n\nvar assert;\nvar util;\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inherits(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n var _this;\n\n _classCallCheck(this, NodeError);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(NodeError).call(this, getMessage(arg1, arg2, arg3)));\n _this.code = code;\n return _this;\n }\n\n return NodeError;\n }(Base);\n\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_AMBIGUOUS_ARGUMENT', 'The \"%s\" argument is ambiguous. %s', TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n if (assert === undefined) assert = require('../assert');\n assert(typeof name === 'string', \"'name' must be a string\"); // determiner: 'must be' or 'must not be'\n\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } // TODO(BridgeAR): Improve the output by showing `null` and similar.\n\n\n msg += \". Received type \".concat(_typeof(actual));\n return msg;\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_VALUE', function (name, value) {\n var reason = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'is invalid';\n if (util === undefined) util = require('util/');\n var inspected = util.inspect(value);\n\n if (inspected.length > 128) {\n inspected = \"\".concat(inspected.slice(0, 128), \"...\");\n }\n\n return \"The argument '\".concat(name, \"' \").concat(reason, \". Received \").concat(inspected);\n}, TypeError, RangeError);\ncreateErrorType('ERR_INVALID_RETURN_VALUE', function (input, name, value) {\n var type;\n\n if (value && value.constructor && value.constructor.name) {\n type = \"instance of \".concat(value.constructor.name);\n } else {\n type = \"type \".concat(_typeof(value));\n }\n\n return \"Expected \".concat(input, \" to be returned from the \\\"\").concat(name, \"\\\"\") + \" function but got \".concat(type, \".\");\n}, TypeError);\ncreateErrorType('ERR_MISSING_ARGS', function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (assert === undefined) assert = require('../assert');\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 \"\\\"\".concat(a, \"\\\"\");\n });\n\n switch (len) {\n case 1:\n msg += \"\".concat(args[0], \" argument\");\n break;\n\n case 2:\n msg += \"\".concat(args[0], \" and \").concat(args[1], \" arguments\");\n break;\n\n default:\n msg += args.slice(0, len - 1).join(', ');\n msg += \", and \".concat(args[len - 1], \" arguments\");\n break;\n }\n\n return \"\".concat(msg, \" must be specified\");\n}, TypeError);\nmodule.exports.codes = codes;","// Currently in sync with Node.js lib/internal/assert/assertion_error.js\n// https://github.com/nodejs/node/commit/0817840f775032169ddd70c85ac059f18ffcc81c\n'use strict';\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _construct(Parent, args, Class) { if (isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar _require = require('util/'),\n inspect = _require.inspect;\n\nvar _require2 = require('../errors'),\n ERR_INVALID_ARG_TYPE = _require2.codes.ERR_INVALID_ARG_TYPE; // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/repeat\n\n\nfunction repeat(str, count) {\n count = Math.floor(count);\n if (str.length == 0 || count == 0) return '';\n var maxCount = str.length * count;\n count = Math.floor(Math.log(count) / Math.log(2));\n\n while (count) {\n str += str;\n count--;\n }\n\n str += str.substring(0, maxCount - str.length);\n return str;\n}\n\nvar blue = '';\nvar green = '';\nvar red = '';\nvar white = '';\nvar kReadableOperator = {\n deepStrictEqual: 'Expected values to be strictly deep-equal:',\n strictEqual: 'Expected values to be strictly equal:',\n strictEqualObject: 'Expected \"actual\" to be reference-equal to \"expected\":',\n deepEqual: 'Expected values to be loosely deep-equal:',\n equal: 'Expected values to be loosely equal:',\n notDeepStrictEqual: 'Expected \"actual\" not to be strictly deep-equal to:',\n notStrictEqual: 'Expected \"actual\" to be strictly unequal to:',\n notStrictEqualObject: 'Expected \"actual\" not to be reference-equal to \"expected\":',\n notDeepEqual: 'Expected \"actual\" not to be loosely deep-equal to:',\n notEqual: 'Expected \"actual\" to be loosely unequal to:',\n notIdentical: 'Values identical but not reference-equal:'\n}; // Comparing short primitives should just show === / !== instead of using the\n// diff.\n\nvar kMaxShortLength = 10;\n\nfunction copyError(source) {\n var keys = Object.keys(source);\n var target = Object.create(Object.getPrototypeOf(source));\n keys.forEach(function (key) {\n target[key] = source[key];\n });\n Object.defineProperty(target, 'message', {\n value: source.message\n });\n return target;\n}\n\nfunction inspectValue(val) {\n // The util.inspect default values could be changed. This makes sure the\n // error messages contain the necessary information nevertheless.\n return inspect(val, {\n compact: false,\n customInspect: false,\n depth: 1000,\n maxArrayLength: Infinity,\n // Assert compares only enumerable properties (with a few exceptions).\n showHidden: false,\n // Having a long line as error is better than wrapping the line for\n // comparison for now.\n // TODO(BridgeAR): `breakLength` should be limited as soon as soon as we\n // have meta information about the inspected properties (i.e., know where\n // in what line the property starts and ends).\n breakLength: Infinity,\n // Assert does not detect proxies currently.\n showProxy: false,\n sorted: true,\n // Inspect getters as we also check them when comparing entries.\n getters: true\n });\n}\n\nfunction createErrDiff(actual, expected, operator) {\n var other = '';\n var res = '';\n var lastPos = 0;\n var end = '';\n var skipped = false;\n var actualInspected = inspectValue(actual);\n var actualLines = actualInspected.split('\\n');\n var expectedLines = inspectValue(expected).split('\\n');\n var i = 0;\n var indicator = ''; // In case both values are objects explicitly mark them as not reference equal\n // for the `strictEqual` operator.\n\n if (operator === 'strictEqual' && _typeof(actual) === 'object' && _typeof(expected) === 'object' && actual !== null && expected !== null) {\n operator = 'strictEqualObject';\n } // If \"actual\" and \"expected\" fit on a single line and they are not strictly\n // equal, check further special handling.\n\n\n if (actualLines.length === 1 && expectedLines.length === 1 && actualLines[0] !== expectedLines[0]) {\n var inputLength = actualLines[0].length + expectedLines[0].length; // If the character length of \"actual\" and \"expected\" together is less than\n // kMaxShortLength and if neither is an object and at least one of them is\n // not `zero`, use the strict equal comparison to visualize the output.\n\n if (inputLength <= kMaxShortLength) {\n if ((_typeof(actual) !== 'object' || actual === null) && (_typeof(expected) !== 'object' || expected === null) && (actual !== 0 || expected !== 0)) {\n // -0 === +0\n return \"\".concat(kReadableOperator[operator], \"\\n\\n\") + \"\".concat(actualLines[0], \" !== \").concat(expectedLines[0], \"\\n\");\n }\n } else if (operator !== 'strictEqualObject') {\n // If the stderr is a tty and the input length is lower than the current\n // columns per line, add a mismatch indicator below the output. If it is\n // not a tty, use a default value of 80 characters.\n var maxLength = process.stderr && process.stderr.isTTY ? process.stderr.columns : 80;\n\n if (inputLength < maxLength) {\n while (actualLines[0][i] === expectedLines[0][i]) {\n i++;\n } // Ignore the first characters.\n\n\n if (i > 2) {\n // Add position indicator for the first mismatch in case it is a\n // single line and the input length is less than the column length.\n indicator = \"\\n \".concat(repeat(' ', i), \"^\");\n i = 0;\n }\n }\n }\n } // Remove all ending lines that match (this optimizes the output for\n // readability by reducing the number of total changed lines).\n\n\n var a = actualLines[actualLines.length - 1];\n var b = expectedLines[expectedLines.length - 1];\n\n while (a === b) {\n if (i++ < 2) {\n end = \"\\n \".concat(a).concat(end);\n } else {\n other = a;\n }\n\n actualLines.pop();\n expectedLines.pop();\n if (actualLines.length === 0 || expectedLines.length === 0) break;\n a = actualLines[actualLines.length - 1];\n b = expectedLines[expectedLines.length - 1];\n }\n\n var maxLines = Math.max(actualLines.length, expectedLines.length); // Strict equal with identical objects that are not identical by reference.\n // E.g., assert.deepStrictEqual({ a: Symbol() }, { a: Symbol() })\n\n if (maxLines === 0) {\n // We have to get the result again. The lines were all removed before.\n var _actualLines = actualInspected.split('\\n'); // Only remove lines in case it makes sense to collapse those.\n // TODO: Accept env to always show the full error.\n\n\n if (_actualLines.length > 30) {\n _actualLines[26] = \"\".concat(blue, \"...\").concat(white);\n\n while (_actualLines.length > 27) {\n _actualLines.pop();\n }\n }\n\n return \"\".concat(kReadableOperator.notIdentical, \"\\n\\n\").concat(_actualLines.join('\\n'), \"\\n\");\n }\n\n if (i > 3) {\n end = \"\\n\".concat(blue, \"...\").concat(white).concat(end);\n skipped = true;\n }\n\n if (other !== '') {\n end = \"\\n \".concat(other).concat(end);\n other = '';\n }\n\n var printedLines = 0;\n var msg = kReadableOperator[operator] + \"\\n\".concat(green, \"+ actual\").concat(white, \" \").concat(red, \"- expected\").concat(white);\n var skippedMsg = \" \".concat(blue, \"...\").concat(white, \" Lines skipped\");\n\n for (i = 0; i < maxLines; i++) {\n // Only extra expected lines exist\n var cur = i - lastPos;\n\n if (actualLines.length < i + 1) {\n // If the last diverging line is more than one line above and the\n // current line is at least line three, add some of the former lines and\n // also add dots to indicate skipped entries.\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(expectedLines[i - 2]);\n printedLines++;\n }\n\n res += \"\\n \".concat(expectedLines[i - 1]);\n printedLines++;\n } // Mark the current line as the last diverging one.\n\n\n lastPos = i; // Add the expected line to the cache.\n\n other += \"\\n\".concat(red, \"-\").concat(white, \" \").concat(expectedLines[i]);\n printedLines++; // Only extra actual lines exist\n } else if (expectedLines.length < i + 1) {\n // If the last diverging line is more than one line above and the\n // current line is at least line three, add some of the former lines and\n // also add dots to indicate skipped entries.\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(actualLines[i - 2]);\n printedLines++;\n }\n\n res += \"\\n \".concat(actualLines[i - 1]);\n printedLines++;\n } // Mark the current line as the last diverging one.\n\n\n lastPos = i; // Add the actual line to the result.\n\n res += \"\\n\".concat(green, \"+\").concat(white, \" \").concat(actualLines[i]);\n printedLines++; // Lines diverge\n } else {\n var expectedLine = expectedLines[i];\n var actualLine = actualLines[i]; // If the lines diverge, specifically check for lines that only diverge by\n // a trailing comma. In that case it is actually identical and we should\n // mark it as such.\n\n var divergingLines = actualLine !== expectedLine && (!endsWith(actualLine, ',') || actualLine.slice(0, -1) !== expectedLine); // If the expected line has a trailing comma but is otherwise identical,\n // add a comma at the end of the actual line. Otherwise the output could\n // look weird as in:\n //\n // [\n // 1 // No comma at the end!\n // + 2\n // ]\n //\n\n if (divergingLines && endsWith(expectedLine, ',') && expectedLine.slice(0, -1) === actualLine) {\n divergingLines = false;\n actualLine += ',';\n }\n\n if (divergingLines) {\n // If the last diverging line is more than one line above and the\n // current line is at least line three, add some of the former lines and\n // also add dots to indicate skipped entries.\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(actualLines[i - 2]);\n printedLines++;\n }\n\n res += \"\\n \".concat(actualLines[i - 1]);\n printedLines++;\n } // Mark the current line as the last diverging one.\n\n\n lastPos = i; // Add the actual line to the result and cache the expected diverging\n // line so consecutive diverging lines show up as +++--- and not +-+-+-.\n\n res += \"\\n\".concat(green, \"+\").concat(white, \" \").concat(actualLine);\n other += \"\\n\".concat(red, \"-\").concat(white, \" \").concat(expectedLine);\n printedLines += 2; // Lines are identical\n } else {\n // Add all cached information to the result before adding other things\n // and reset the cache.\n res += other;\n other = ''; // If the last diverging line is exactly one line above or if it is the\n // very first line, add the line to the result.\n\n if (cur === 1 || i === 0) {\n res += \"\\n \".concat(actualLine);\n printedLines++;\n }\n }\n } // Inspected object to big (Show ~20 rows max)\n\n\n if (printedLines > 20 && i < maxLines - 2) {\n return \"\".concat(msg).concat(skippedMsg, \"\\n\").concat(res, \"\\n\").concat(blue, \"...\").concat(white).concat(other, \"\\n\") + \"\".concat(blue, \"...\").concat(white);\n }\n }\n\n return \"\".concat(msg).concat(skipped ? skippedMsg : '', \"\\n\").concat(res).concat(other).concat(end).concat(indicator);\n}\n\nvar AssertionError =\n/*#__PURE__*/\nfunction (_Error) {\n _inherits(AssertionError, _Error);\n\n function AssertionError(options) {\n var _this;\n\n _classCallCheck(this, AssertionError);\n\n if (_typeof(options) !== 'object' || options === null) {\n throw new ERR_INVALID_ARG_TYPE('options', 'Object', options);\n }\n\n var message = options.message,\n operator = options.operator,\n stackStartFn = options.stackStartFn;\n var actual = options.actual,\n expected = options.expected;\n var limit = Error.stackTraceLimit;\n Error.stackTraceLimit = 0;\n\n if (message != null) {\n _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, String(message)));\n } else {\n if (process.stderr && process.stderr.isTTY) {\n // Reset on each call to make sure we handle dynamically set environment\n // variables correct.\n if (process.stderr && process.stderr.getColorDepth && process.stderr.getColorDepth() !== 1) {\n blue = \"\\x1B[34m\";\n green = \"\\x1B[32m\";\n white = \"\\x1B[39m\";\n red = \"\\x1B[31m\";\n } else {\n blue = '';\n green = '';\n white = '';\n red = '';\n }\n } // Prevent the error stack from being visible by duplicating the error\n // in a very close way to the original in case both sides are actually\n // instances of Error.\n\n\n if (_typeof(actual) === 'object' && actual !== null && _typeof(expected) === 'object' && expected !== null && 'stack' in actual && actual instanceof Error && 'stack' in expected && expected instanceof Error) {\n actual = copyError(actual);\n expected = copyError(expected);\n }\n\n if (operator === 'deepStrictEqual' || operator === 'strictEqual') {\n _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, createErrDiff(actual, expected, operator)));\n } else if (operator === 'notDeepStrictEqual' || operator === 'notStrictEqual') {\n // In case the objects are equal but the operator requires unequal, show\n // the first object and say A equals B\n var base = kReadableOperator[operator];\n var res = inspectValue(actual).split('\\n'); // In case \"actual\" is an object, it should not be reference equal.\n\n if (operator === 'notStrictEqual' && _typeof(actual) === 'object' && actual !== null) {\n base = kReadableOperator.notStrictEqualObject;\n } // Only remove lines in case it makes sense to collapse those.\n // TODO: Accept env to always show the full error.\n\n\n if (res.length > 30) {\n res[26] = \"\".concat(blue, \"...\").concat(white);\n\n while (res.length > 27) {\n res.pop();\n }\n } // Only print a single input.\n\n\n if (res.length === 1) {\n _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, \"\".concat(base, \" \").concat(res[0])));\n } else {\n _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, \"\".concat(base, \"\\n\\n\").concat(res.join('\\n'), \"\\n\")));\n }\n } else {\n var _res = inspectValue(actual);\n\n var other = '';\n var knownOperators = kReadableOperator[operator];\n\n if (operator === 'notDeepEqual' || operator === 'notEqual') {\n _res = \"\".concat(kReadableOperator[operator], \"\\n\\n\").concat(_res);\n\n if (_res.length > 1024) {\n _res = \"\".concat(_res.slice(0, 1021), \"...\");\n }\n } else {\n other = \"\".concat(inspectValue(expected));\n\n if (_res.length > 512) {\n _res = \"\".concat(_res.slice(0, 509), \"...\");\n }\n\n if (other.length > 512) {\n other = \"\".concat(other.slice(0, 509), \"...\");\n }\n\n if (operator === 'deepEqual' || operator === 'equal') {\n _res = \"\".concat(knownOperators, \"\\n\\n\").concat(_res, \"\\n\\nshould equal\\n\\n\");\n } else {\n other = \" \".concat(operator, \" \").concat(other);\n }\n }\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, \"\".concat(_res).concat(other)));\n }\n }\n\n Error.stackTraceLimit = limit;\n _this.generatedMessage = !message;\n Object.defineProperty(_assertThisInitialized(_this), 'name', {\n value: 'AssertionError [ERR_ASSERTION]',\n enumerable: false,\n writable: true,\n configurable: true\n });\n _this.code = 'ERR_ASSERTION';\n _this.actual = actual;\n _this.expected = expected;\n _this.operator = operator;\n\n if (Error.captureStackTrace) {\n // eslint-disable-next-line no-restricted-syntax\n Error.captureStackTrace(_assertThisInitialized(_this), stackStartFn);\n } // Create error message including the error code in the name.\n\n\n _this.stack; // Reset the name.\n\n _this.name = 'AssertionError';\n return _possibleConstructorReturn(_this);\n }\n\n _createClass(AssertionError, [{\n key: \"toString\",\n value: function toString() {\n return \"\".concat(this.name, \" [\").concat(this.code, \"]: \").concat(this.message);\n }\n }, {\n key: inspect.custom,\n value: function value(recurseTimes, ctx) {\n // This limits the `actual` and `expected` property default inspection to\n // the minimum depth. Otherwise those values would be too verbose compared\n // to the actual error message which contains a combined view of these two\n // input values.\n return inspect(this, _objectSpread({}, ctx, {\n customInspect: false,\n depth: 0\n }));\n }\n }]);\n\n return AssertionError;\n}(_wrapNativeSuper(Error));\n\nmodule.exports = AssertionError;","/**\n * Code refactored from Mozilla Developer Network:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n */\n\n'use strict';\n\nfunction assign(target, firstSource) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert first argument to object');\n }\n\n var to = Object(target);\n for (var i = 1; i < arguments.length; i++) {\n var nextSource = arguments[i];\n if (nextSource === undefined || nextSource === null) {\n continue;\n }\n\n var keysArray = Object.keys(Object(nextSource));\n for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex++) {\n var nextKey = keysArray[nextIndex];\n var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n return to;\n}\n\nfunction polyfill() {\n if (!Object.assign) {\n Object.defineProperty(Object, 'assign', {\n enumerable: false,\n configurable: true,\n writable: true,\n value: assign\n });\n }\n}\n\nmodule.exports = {\n assign: assign,\n polyfill: polyfill\n};\n","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n","'use strict';\n\nvar keysShim;\nif (!Object.keys) {\n\t// modified from https://github.com/es-shims/es5-shim\n\tvar has = Object.prototype.hasOwnProperty;\n\tvar toStr = Object.prototype.toString;\n\tvar isArgs = require('./isArguments'); // eslint-disable-line global-require\n\tvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\tvar hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');\n\tvar hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\n\tvar dontEnums = [\n\t\t'toString',\n\t\t'toLocaleString',\n\t\t'valueOf',\n\t\t'hasOwnProperty',\n\t\t'isPrototypeOf',\n\t\t'propertyIsEnumerable',\n\t\t'constructor'\n\t];\n\tvar equalsConstructorPrototype = function (o) {\n\t\tvar ctor = o.constructor;\n\t\treturn ctor && ctor.prototype === o;\n\t};\n\tvar excludedKeys = {\n\t\t$applicationCache: true,\n\t\t$console: true,\n\t\t$external: true,\n\t\t$frame: true,\n\t\t$frameElement: true,\n\t\t$frames: true,\n\t\t$innerHeight: true,\n\t\t$innerWidth: true,\n\t\t$onmozfullscreenchange: true,\n\t\t$onmozfullscreenerror: true,\n\t\t$outerHeight: true,\n\t\t$outerWidth: true,\n\t\t$pageXOffset: true,\n\t\t$pageYOffset: true,\n\t\t$parent: true,\n\t\t$scrollLeft: true,\n\t\t$scrollTop: true,\n\t\t$scrollX: true,\n\t\t$scrollY: true,\n\t\t$self: true,\n\t\t$webkitIndexedDB: true,\n\t\t$webkitStorageInfo: true,\n\t\t$window: true\n\t};\n\tvar hasAutomationEqualityBug = (function () {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined') { return false; }\n\t\tfor (var k in window) {\n\t\t\ttry {\n\t\t\t\tif (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}());\n\tvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t}\n\t\ttry {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tkeysShim = function keys(object) {\n\t\tvar isObject = object !== null && typeof object === 'object';\n\t\tvar isFunction = toStr.call(object) === '[object Function]';\n\t\tvar isArguments = isArgs(object);\n\t\tvar isString = isObject && toStr.call(object) === '[object String]';\n\t\tvar theKeys = [];\n\n\t\tif (!isObject && !isFunction && !isArguments) {\n\t\t\tthrow new TypeError('Object.keys called on a non-object');\n\t\t}\n\n\t\tvar skipProto = hasProtoEnumBug && isFunction;\n\t\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\t\ttheKeys.push(String(i));\n\t\t\t}\n\t\t}\n\n\t\tif (isArguments && object.length > 0) {\n\t\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\t\ttheKeys.push(String(j));\n\t\t\t}\n\t\t} else {\n\t\t\tfor (var name in object) {\n\t\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\t\ttheKeys.push(String(name));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (hasDontEnumBug) {\n\t\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn theKeys;\n\t};\n}\nmodule.exports = keysShim;\n","'use strict';\n\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\n\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) { return origKeys(o); } : require('./implementation');\n\nvar originalKeys = Object.keys;\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\tvar args = Object.keys(arguments);\n\t\t\treturn args && args.length === arguments.length;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tObject.keys = function keys(object) { // eslint-disable-line func-name-matching\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t}\n\t\t\t\treturn originalKeys(object);\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\tif ($defineProperty) {\n\t\ttry {\n\t\t\t$defineProperty({}, 'a', { value: 1 });\n\t\t\treturn true;\n\t\t} catch (e) {\n\t\t\t// IE 8 has a broken defineProperty\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn false;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n\t// node v0.6 has a bug where array lengths can be Set but not Defined\n\tif (!hasPropertyDescriptors()) {\n\t\treturn null;\n\t}\n\ttry {\n\t\treturn $defineProperty([], 'length', { value: 1 }).length !== 1;\n\t} catch (e) {\n\t\t// In Firefox 4-22, defining length on an array throws an exception.\n\t\treturn true;\n\t}\n};\n\nmodule.exports = hasPropertyDescriptors;\n","'use strict';\n\nvar keys = require('object-keys');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\n\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar origDefineProperty = Object.defineProperty;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar hasPropertyDescriptors = require('has-property-descriptors')();\n\nvar supportsDescriptors = origDefineProperty && hasPropertyDescriptors;\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object && (!isFunction(predicate) || !predicate())) {\n\t\treturn;\n\t}\n\tif (supportsDescriptors) {\n\t\torigDefineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: value,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\tobject[name] = value; // eslint-disable-line no-param-reassign\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = concat.call(props, Object.getOwnPropertySymbols(map));\n\t}\n\tfor (var i = 0; i < props.length; i += 1) {\n\t\tdefineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n\t}\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n","'use strict';\n\nvar numberIsNaN = function (value) {\n\treturn value !== value;\n};\n\nmodule.exports = function is(a, b) {\n\tif (a === 0 && b === 0) {\n\t\treturn 1 / a === 1 / b;\n\t}\n\tif (a === b) {\n\t\treturn true;\n\t}\n\tif (numberIsNaN(a) && numberIsNaN(b)) {\n\t\treturn true;\n\t}\n\treturn false;\n};\n\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\treturn typeof Object.is === 'function' ? Object.is : implementation;\n};\n","'use strict';\n\nvar getPolyfill = require('./polyfill');\nvar define = require('define-properties');\n\nmodule.exports = function shimObjectIs() {\n\tvar polyfill = getPolyfill();\n\tdefine(Object, { is: polyfill }, {\n\t\tis: function testObjectIs() {\n\t\t\treturn Object.is !== polyfill;\n\t\t}\n\t});\n\treturn polyfill;\n};\n","'use strict';\n\nvar define = require('define-properties');\nvar callBind = require('call-bind');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = callBind(getPolyfill(), Object);\n\ndefine(polyfill, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = polyfill;\n","'use strict';\n\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\nmodule.exports = function isNaN(value) {\n\treturn value !== value;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\tif (Number.isNaN && Number.isNaN(NaN) && !Number.isNaN('a')) {\n\t\treturn Number.isNaN;\n\t}\n\treturn implementation;\n};\n","'use strict';\n\nvar define = require('define-properties');\nvar getPolyfill = require('./polyfill');\n\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\nmodule.exports = function shimNumberIsNaN() {\n\tvar polyfill = getPolyfill();\n\tdefine(Number, { isNaN: polyfill }, {\n\t\tisNaN: function testIsNaN() {\n\t\t\treturn Number.isNaN !== polyfill;\n\t\t}\n\t});\n\treturn polyfill;\n};\n","'use strict';\n\nvar callBind = require('call-bind');\nvar define = require('define-properties');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = callBind(getPolyfill(), Number);\n\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\ndefine(polyfill, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = polyfill;\n","// Currently in sync with Node.js lib/internal/util/comparisons.js\n// https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9\n'use strict';\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar regexFlagsSupported = /a/g.flags !== undefined;\n\nvar arrayFromSet = function arrayFromSet(set) {\n var array = [];\n set.forEach(function (value) {\n return array.push(value);\n });\n return array;\n};\n\nvar arrayFromMap = function arrayFromMap(map) {\n var array = [];\n map.forEach(function (value, key) {\n return array.push([key, value]);\n });\n return array;\n};\n\nvar objectIs = Object.is ? Object.is : require('object-is');\nvar objectGetOwnPropertySymbols = Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols : function () {\n return [];\n};\nvar numberIsNaN = Number.isNaN ? Number.isNaN : require('is-nan');\n\nfunction uncurryThis(f) {\n return f.call.bind(f);\n}\n\nvar hasOwnProperty = uncurryThis(Object.prototype.hasOwnProperty);\nvar propertyIsEnumerable = uncurryThis(Object.prototype.propertyIsEnumerable);\nvar objectToString = uncurryThis(Object.prototype.toString);\n\nvar _require$types = require('util/').types,\n isAnyArrayBuffer = _require$types.isAnyArrayBuffer,\n isArrayBufferView = _require$types.isArrayBufferView,\n isDate = _require$types.isDate,\n isMap = _require$types.isMap,\n isRegExp = _require$types.isRegExp,\n isSet = _require$types.isSet,\n isNativeError = _require$types.isNativeError,\n isBoxedPrimitive = _require$types.isBoxedPrimitive,\n isNumberObject = _require$types.isNumberObject,\n isStringObject = _require$types.isStringObject,\n isBooleanObject = _require$types.isBooleanObject,\n isBigIntObject = _require$types.isBigIntObject,\n isSymbolObject = _require$types.isSymbolObject,\n isFloat32Array = _require$types.isFloat32Array,\n isFloat64Array = _require$types.isFloat64Array;\n\nfunction isNonIndex(key) {\n if (key.length === 0 || key.length > 10) return true;\n\n for (var i = 0; i < key.length; i++) {\n var code = key.charCodeAt(i);\n if (code < 48 || code > 57) return true;\n } // The maximum size for an array is 2 ** 32 -1.\n\n\n return key.length === 10 && key >= Math.pow(2, 32);\n}\n\nfunction getOwnNonIndexProperties(value) {\n return Object.keys(value).filter(isNonIndex).concat(objectGetOwnPropertySymbols(value).filter(Object.prototype.propertyIsEnumerable.bind(value)));\n} // Taken from https://github.com/feross/buffer/blob/680e9e5e488f22aac27599a57dc844a6315928dd/index.js\n// original notice:\n\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 */\n\n\nfunction compare(a, b) {\n if (a === b) {\n return 0;\n }\n\n var x = a.length;\n var y = b.length;\n\n for (var 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) {\n return -1;\n }\n\n if (y < x) {\n return 1;\n }\n\n return 0;\n}\n\nvar ONLY_ENUMERABLE = undefined;\nvar kStrict = true;\nvar kLoose = false;\nvar kNoIterator = 0;\nvar kIsArray = 1;\nvar kIsSet = 2;\nvar kIsMap = 3; // Check if they have the same source and flags\n\nfunction areSimilarRegExps(a, b) {\n return regexFlagsSupported ? a.source === b.source && a.flags === b.flags : RegExp.prototype.toString.call(a) === RegExp.prototype.toString.call(b);\n}\n\nfunction areSimilarFloatArrays(a, b) {\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n\n for (var offset = 0; offset < a.byteLength; offset++) {\n if (a[offset] !== b[offset]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction areSimilarTypedArrays(a, b) {\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n\n return compare(new Uint8Array(a.buffer, a.byteOffset, a.byteLength), new Uint8Array(b.buffer, b.byteOffset, b.byteLength)) === 0;\n}\n\nfunction areEqualArrayBuffers(buf1, buf2) {\n return buf1.byteLength === buf2.byteLength && compare(new Uint8Array(buf1), new Uint8Array(buf2)) === 0;\n}\n\nfunction isEqualBoxedPrimitive(val1, val2) {\n if (isNumberObject(val1)) {\n return isNumberObject(val2) && objectIs(Number.prototype.valueOf.call(val1), Number.prototype.valueOf.call(val2));\n }\n\n if (isStringObject(val1)) {\n return isStringObject(val2) && String.prototype.valueOf.call(val1) === String.prototype.valueOf.call(val2);\n }\n\n if (isBooleanObject(val1)) {\n return isBooleanObject(val2) && Boolean.prototype.valueOf.call(val1) === Boolean.prototype.valueOf.call(val2);\n }\n\n if (isBigIntObject(val1)) {\n return isBigIntObject(val2) && BigInt.prototype.valueOf.call(val1) === BigInt.prototype.valueOf.call(val2);\n }\n\n return isSymbolObject(val2) && Symbol.prototype.valueOf.call(val1) === Symbol.prototype.valueOf.call(val2);\n} // Notes: Type tags are historical [[Class]] properties that can be set by\n// FunctionTemplate::SetClassName() in C++ or Symbol.toStringTag in JS\n// and retrieved using Object.prototype.toString.call(obj) in JS\n// See https://tc39.github.io/ecma262/#sec-object.prototype.tostring\n// for a list of tags pre-defined in the spec.\n// There are some unspecified tags in the wild too (e.g. typed array tags).\n// Since tags can be altered, they only serve fast failures\n//\n// Typed arrays and buffers are checked by comparing the content in their\n// underlying ArrayBuffer. This optimization requires that it's\n// reasonable to interpret their underlying memory in the same way,\n// which is checked by comparing their type tags.\n// (e.g. a Uint8Array and a Uint16Array with the same memory content\n// could still be different because they will be interpreted differently).\n//\n// For strict comparison, objects should have\n// a) The same built-in type tags\n// b) The same prototypes.\n\n\nfunction innerDeepEqual(val1, val2, strict, memos) {\n // All identical values are equivalent, as determined by ===.\n if (val1 === val2) {\n if (val1 !== 0) return true;\n return strict ? objectIs(val1, val2) : true;\n } // Check more closely if val1 and val2 are equal.\n\n\n if (strict) {\n if (_typeof(val1) !== 'object') {\n return typeof val1 === 'number' && numberIsNaN(val1) && numberIsNaN(val2);\n }\n\n if (_typeof(val2) !== 'object' || val1 === null || val2 === null) {\n return false;\n }\n\n if (Object.getPrototypeOf(val1) !== Object.getPrototypeOf(val2)) {\n return false;\n }\n } else {\n if (val1 === null || _typeof(val1) !== 'object') {\n if (val2 === null || _typeof(val2) !== 'object') {\n // eslint-disable-next-line eqeqeq\n return val1 == val2;\n }\n\n return false;\n }\n\n if (val2 === null || _typeof(val2) !== 'object') {\n return false;\n }\n }\n\n var val1Tag = objectToString(val1);\n var val2Tag = objectToString(val2);\n\n if (val1Tag !== val2Tag) {\n return false;\n }\n\n if (Array.isArray(val1)) {\n // Check for sparse arrays and general fast path\n if (val1.length !== val2.length) {\n return false;\n }\n\n var keys1 = getOwnNonIndexProperties(val1, ONLY_ENUMERABLE);\n var keys2 = getOwnNonIndexProperties(val2, ONLY_ENUMERABLE);\n\n if (keys1.length !== keys2.length) {\n return false;\n }\n\n return keyCheck(val1, val2, strict, memos, kIsArray, keys1);\n } // [browserify] This triggers on certain types in IE (Map/Set) so we don't\n // wan't to early return out of the rest of the checks. However we can check\n // if the second value is one of these values and the first isn't.\n\n\n if (val1Tag === '[object Object]') {\n // return keyCheck(val1, val2, strict, memos, kNoIterator);\n if (!isMap(val1) && isMap(val2) || !isSet(val1) && isSet(val2)) {\n return false;\n }\n }\n\n if (isDate(val1)) {\n if (!isDate(val2) || Date.prototype.getTime.call(val1) !== Date.prototype.getTime.call(val2)) {\n return false;\n }\n } else if (isRegExp(val1)) {\n if (!isRegExp(val2) || !areSimilarRegExps(val1, val2)) {\n return false;\n }\n } else if (isNativeError(val1) || val1 instanceof Error) {\n // Do not compare the stack as it might differ even though the error itself\n // is otherwise identical.\n if (val1.message !== val2.message || val1.name !== val2.name) {\n return false;\n }\n } else if (isArrayBufferView(val1)) {\n if (!strict && (isFloat32Array(val1) || isFloat64Array(val1))) {\n if (!areSimilarFloatArrays(val1, val2)) {\n return false;\n }\n } else if (!areSimilarTypedArrays(val1, val2)) {\n return false;\n } // Buffer.compare returns true, so val1.length === val2.length. If they both\n // only contain numeric keys, we don't need to exam further than checking\n // the symbols.\n\n\n var _keys = getOwnNonIndexProperties(val1, ONLY_ENUMERABLE);\n\n var _keys2 = getOwnNonIndexProperties(val2, ONLY_ENUMERABLE);\n\n if (_keys.length !== _keys2.length) {\n return false;\n }\n\n return keyCheck(val1, val2, strict, memos, kNoIterator, _keys);\n } else if (isSet(val1)) {\n if (!isSet(val2) || val1.size !== val2.size) {\n return false;\n }\n\n return keyCheck(val1, val2, strict, memos, kIsSet);\n } else if (isMap(val1)) {\n if (!isMap(val2) || val1.size !== val2.size) {\n return false;\n }\n\n return keyCheck(val1, val2, strict, memos, kIsMap);\n } else if (isAnyArrayBuffer(val1)) {\n if (!areEqualArrayBuffers(val1, val2)) {\n return false;\n }\n } else if (isBoxedPrimitive(val1) && !isEqualBoxedPrimitive(val1, val2)) {\n return false;\n }\n\n return keyCheck(val1, val2, strict, memos, kNoIterator);\n}\n\nfunction getEnumerables(val, keys) {\n return keys.filter(function (k) {\n return propertyIsEnumerable(val, k);\n });\n}\n\nfunction keyCheck(val1, val2, strict, memos, iterationType, aKeys) {\n // For all remaining Object pairs, including Array, objects and Maps,\n // equivalence is determined by having:\n // a) The same number of owned enumerable properties\n // b) The same set of keys/indexes (although not necessarily the same order)\n // c) Equivalent values for every corresponding key/index\n // d) For Sets and Maps, equal contents\n // Note: this accounts for both named and indexed properties on Arrays.\n if (arguments.length === 5) {\n aKeys = Object.keys(val1);\n var bKeys = Object.keys(val2); // The pair must have the same number of owned properties.\n\n if (aKeys.length !== bKeys.length) {\n return false;\n }\n } // Cheap key test\n\n\n var i = 0;\n\n for (; i < aKeys.length; i++) {\n if (!hasOwnProperty(val2, aKeys[i])) {\n return false;\n }\n }\n\n if (strict && arguments.length === 5) {\n var symbolKeysA = objectGetOwnPropertySymbols(val1);\n\n if (symbolKeysA.length !== 0) {\n var count = 0;\n\n for (i = 0; i < symbolKeysA.length; i++) {\n var key = symbolKeysA[i];\n\n if (propertyIsEnumerable(val1, key)) {\n if (!propertyIsEnumerable(val2, key)) {\n return false;\n }\n\n aKeys.push(key);\n count++;\n } else if (propertyIsEnumerable(val2, key)) {\n return false;\n }\n }\n\n var symbolKeysB = objectGetOwnPropertySymbols(val2);\n\n if (symbolKeysA.length !== symbolKeysB.length && getEnumerables(val2, symbolKeysB).length !== count) {\n return false;\n }\n } else {\n var _symbolKeysB = objectGetOwnPropertySymbols(val2);\n\n if (_symbolKeysB.length !== 0 && getEnumerables(val2, _symbolKeysB).length !== 0) {\n return false;\n }\n }\n }\n\n if (aKeys.length === 0 && (iterationType === kNoIterator || iterationType === kIsArray && val1.length === 0 || val1.size === 0)) {\n return true;\n } // Use memos to handle cycles.\n\n\n if (memos === undefined) {\n memos = {\n val1: new Map(),\n val2: new Map(),\n position: 0\n };\n } else {\n // We prevent up to two map.has(x) calls by directly retrieving the value\n // and checking for undefined. The map can only contain numbers, so it is\n // safe to check for undefined only.\n var val2MemoA = memos.val1.get(val1);\n\n if (val2MemoA !== undefined) {\n var val2MemoB = memos.val2.get(val2);\n\n if (val2MemoB !== undefined) {\n return val2MemoA === val2MemoB;\n }\n }\n\n memos.position++;\n }\n\n memos.val1.set(val1, memos.position);\n memos.val2.set(val2, memos.position);\n var areEq = objEquiv(val1, val2, strict, aKeys, memos, iterationType);\n memos.val1.delete(val1);\n memos.val2.delete(val2);\n return areEq;\n}\n\nfunction setHasEqualElement(set, val1, strict, memo) {\n // Go looking.\n var setValues = arrayFromSet(set);\n\n for (var i = 0; i < setValues.length; i++) {\n var val2 = setValues[i];\n\n if (innerDeepEqual(val1, val2, strict, memo)) {\n // Remove the matching element to make sure we do not check that again.\n set.delete(val2);\n return true;\n }\n }\n\n return false;\n} // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness#Loose_equality_using\n// Sadly it is not possible to detect corresponding values properly in case the\n// type is a string, number, bigint or boolean. The reason is that those values\n// can match lots of different string values (e.g., 1n == '+00001').\n\n\nfunction findLooseMatchingPrimitives(prim) {\n switch (_typeof(prim)) {\n case 'undefined':\n return null;\n\n case 'object':\n // Only pass in null as object!\n return undefined;\n\n case 'symbol':\n return false;\n\n case 'string':\n prim = +prim;\n // Loose equal entries exist only if the string is possible to convert to\n // a regular number and not NaN.\n // Fall through\n\n case 'number':\n if (numberIsNaN(prim)) {\n return false;\n }\n\n }\n\n return true;\n}\n\nfunction setMightHaveLoosePrim(a, b, prim) {\n var altValue = findLooseMatchingPrimitives(prim);\n if (altValue != null) return altValue;\n return b.has(altValue) && !a.has(altValue);\n}\n\nfunction mapMightHaveLoosePrim(a, b, prim, item, memo) {\n var altValue = findLooseMatchingPrimitives(prim);\n\n if (altValue != null) {\n return altValue;\n }\n\n var curB = b.get(altValue);\n\n if (curB === undefined && !b.has(altValue) || !innerDeepEqual(item, curB, false, memo)) {\n return false;\n }\n\n return !a.has(altValue) && innerDeepEqual(item, curB, false, memo);\n}\n\nfunction setEquiv(a, b, strict, memo) {\n // This is a lazily initiated Set of entries which have to be compared\n // pairwise.\n var set = null;\n var aValues = arrayFromSet(a);\n\n for (var i = 0; i < aValues.length; i++) {\n var val = aValues[i]; // Note: Checking for the objects first improves the performance for object\n // heavy sets but it is a minor slow down for primitives. As they are fast\n // to check this improves the worst case scenario instead.\n\n if (_typeof(val) === 'object' && val !== null) {\n if (set === null) {\n set = new Set();\n } // If the specified value doesn't exist in the second set its an not null\n // object (or non strict only: a not matching primitive) we'll need to go\n // hunting for something thats deep-(strict-)equal to it. To make this\n // O(n log n) complexity we have to copy these values in a new set first.\n\n\n set.add(val);\n } else if (!b.has(val)) {\n if (strict) return false; // Fast path to detect missing string, symbol, undefined and null values.\n\n if (!setMightHaveLoosePrim(a, b, val)) {\n return false;\n }\n\n if (set === null) {\n set = new Set();\n }\n\n set.add(val);\n }\n }\n\n if (set !== null) {\n var bValues = arrayFromSet(b);\n\n for (var _i = 0; _i < bValues.length; _i++) {\n var _val = bValues[_i]; // We have to check if a primitive value is already\n // matching and only if it's not, go hunting for it.\n\n if (_typeof(_val) === 'object' && _val !== null) {\n if (!setHasEqualElement(set, _val, strict, memo)) return false;\n } else if (!strict && !a.has(_val) && !setHasEqualElement(set, _val, strict, memo)) {\n return false;\n }\n }\n\n return set.size === 0;\n }\n\n return true;\n}\n\nfunction mapHasEqualEntry(set, map, key1, item1, strict, memo) {\n // To be able to handle cases like:\n // Map([[{}, 'a'], [{}, 'b']]) vs Map([[{}, 'b'], [{}, 'a']])\n // ... we need to consider *all* matching keys, not just the first we find.\n var setValues = arrayFromSet(set);\n\n for (var i = 0; i < setValues.length; i++) {\n var key2 = setValues[i];\n\n if (innerDeepEqual(key1, key2, strict, memo) && innerDeepEqual(item1, map.get(key2), strict, memo)) {\n set.delete(key2);\n return true;\n }\n }\n\n return false;\n}\n\nfunction mapEquiv(a, b, strict, memo) {\n var set = null;\n var aEntries = arrayFromMap(a);\n\n for (var i = 0; i < aEntries.length; i++) {\n var _aEntries$i = _slicedToArray(aEntries[i], 2),\n key = _aEntries$i[0],\n item1 = _aEntries$i[1];\n\n if (_typeof(key) === 'object' && key !== null) {\n if (set === null) {\n set = new Set();\n }\n\n set.add(key);\n } else {\n // By directly retrieving the value we prevent another b.has(key) check in\n // almost all possible cases.\n var item2 = b.get(key);\n\n if (item2 === undefined && !b.has(key) || !innerDeepEqual(item1, item2, strict, memo)) {\n if (strict) return false; // Fast path to detect missing string, symbol, undefined and null\n // keys.\n\n if (!mapMightHaveLoosePrim(a, b, key, item1, memo)) return false;\n\n if (set === null) {\n set = new Set();\n }\n\n set.add(key);\n }\n }\n }\n\n if (set !== null) {\n var bEntries = arrayFromMap(b);\n\n for (var _i2 = 0; _i2 < bEntries.length; _i2++) {\n var _bEntries$_i = _slicedToArray(bEntries[_i2], 2),\n key = _bEntries$_i[0],\n item = _bEntries$_i[1];\n\n if (_typeof(key) === 'object' && key !== null) {\n if (!mapHasEqualEntry(set, a, key, item, strict, memo)) return false;\n } else if (!strict && (!a.has(key) || !innerDeepEqual(a.get(key), item, false, memo)) && !mapHasEqualEntry(set, a, key, item, false, memo)) {\n return false;\n }\n }\n\n return set.size === 0;\n }\n\n return true;\n}\n\nfunction objEquiv(a, b, strict, keys, memos, iterationType) {\n // Sets and maps don't have their entries accessible via normal object\n // properties.\n var i = 0;\n\n if (iterationType === kIsSet) {\n if (!setEquiv(a, b, strict, memos)) {\n return false;\n }\n } else if (iterationType === kIsMap) {\n if (!mapEquiv(a, b, strict, memos)) {\n return false;\n }\n } else if (iterationType === kIsArray) {\n for (; i < a.length; i++) {\n if (hasOwnProperty(a, i)) {\n if (!hasOwnProperty(b, i) || !innerDeepEqual(a[i], b[i], strict, memos)) {\n return false;\n }\n } else if (hasOwnProperty(b, i)) {\n return false;\n } else {\n // Array is sparse.\n var keysA = Object.keys(a);\n\n for (; i < keysA.length; i++) {\n var key = keysA[i];\n\n if (!hasOwnProperty(b, key) || !innerDeepEqual(a[key], b[key], strict, memos)) {\n return false;\n }\n }\n\n if (keysA.length !== Object.keys(b).length) {\n return false;\n }\n\n return true;\n }\n }\n } // The pair must have equivalent values for every corresponding key.\n // Possibly expensive deep test:\n\n\n for (i = 0; i < keys.length; i++) {\n var _key = keys[i];\n\n if (!innerDeepEqual(a[_key], b[_key], strict, memos)) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction isDeepEqual(val1, val2) {\n return innerDeepEqual(val1, val2, kLoose);\n}\n\nfunction isDeepStrictEqual(val1, val2) {\n return innerDeepEqual(val1, val2, kStrict);\n}\n\nmodule.exports = {\n isDeepEqual: isDeepEqual,\n isDeepStrictEqual: isDeepStrictEqual\n};","// Currently in sync with Node.js lib/assert.js\n// https://github.com/nodejs/node/commit/2a51ae424a513ec9a6aa3466baa0cc1d55dd4f3b\n// Originally from narwhal.js (http://narwhaljs.org)\n// Copyright (c) 2009 Thomas Robinson <280north.com>\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the 'Software'), to\n// deal in the Software without restriction, including without limitation the\n// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n// sell copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\n// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar _require = require('./internal/errors'),\n _require$codes = _require.codes,\n ERR_AMBIGUOUS_ARGUMENT = _require$codes.ERR_AMBIGUOUS_ARGUMENT,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_INVALID_ARG_VALUE = _require$codes.ERR_INVALID_ARG_VALUE,\n ERR_INVALID_RETURN_VALUE = _require$codes.ERR_INVALID_RETURN_VALUE,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS;\n\nvar AssertionError = require('./internal/assert/assertion_error');\n\nvar _require2 = require('util/'),\n inspect = _require2.inspect;\n\nvar _require$types = require('util/').types,\n isPromise = _require$types.isPromise,\n isRegExp = _require$types.isRegExp;\n\nvar objectAssign = Object.assign ? Object.assign : require('es6-object-assign').assign;\nvar objectIs = Object.is ? Object.is : require('object-is');\nvar errorCache = new Map();\nvar isDeepEqual;\nvar isDeepStrictEqual;\nvar parseExpressionAt;\nvar findNodeAround;\nvar decoder;\n\nfunction lazyLoadComparison() {\n var comparison = require('./internal/util/comparisons');\n\n isDeepEqual = comparison.isDeepEqual;\n isDeepStrictEqual = comparison.isDeepStrictEqual;\n} // Escape control characters but not \\n and \\t to keep the line breaks and\n// indentation intact.\n// eslint-disable-next-line no-control-regex\n\n\nvar escapeSequencesRegExp = /[\\x00-\\x08\\x0b\\x0c\\x0e-\\x1f]/g;\nvar meta = [\"\\\\u0000\", \"\\\\u0001\", \"\\\\u0002\", \"\\\\u0003\", \"\\\\u0004\", \"\\\\u0005\", \"\\\\u0006\", \"\\\\u0007\", '\\\\b', '', '', \"\\\\u000b\", '\\\\f', '', \"\\\\u000e\", \"\\\\u000f\", \"\\\\u0010\", \"\\\\u0011\", \"\\\\u0012\", \"\\\\u0013\", \"\\\\u0014\", \"\\\\u0015\", \"\\\\u0016\", \"\\\\u0017\", \"\\\\u0018\", \"\\\\u0019\", \"\\\\u001a\", \"\\\\u001b\", \"\\\\u001c\", \"\\\\u001d\", \"\\\\u001e\", \"\\\\u001f\"];\n\nvar escapeFn = function escapeFn(str) {\n return meta[str.charCodeAt(0)];\n};\n\nvar warned = false; // The assert module provides functions that throw\n// AssertionError's when particular conditions are not met. The\n// assert module must conform to the following interface.\n\nvar assert = module.exports = ok;\nvar NO_EXCEPTION_SENTINEL = {}; // All of the following functions must throw an AssertionError\n// when a corresponding condition is not met, with a message that\n// may be undefined if not provided. All assertion methods provide\n// both the actual and expected values to the assertion error for\n// display purposes.\n\nfunction innerFail(obj) {\n if (obj.message instanceof Error) throw obj.message;\n throw new AssertionError(obj);\n}\n\nfunction fail(actual, expected, message, operator, stackStartFn) {\n var argsLen = arguments.length;\n var internalMessage;\n\n if (argsLen === 0) {\n internalMessage = 'Failed';\n } else if (argsLen === 1) {\n message = actual;\n actual = undefined;\n } else {\n if (warned === false) {\n warned = true;\n var warn = process.emitWarning ? process.emitWarning : console.warn.bind(console);\n warn('assert.fail() with more than one argument is deprecated. ' + 'Please use assert.strictEqual() instead or only pass a message.', 'DeprecationWarning', 'DEP0094');\n }\n\n if (argsLen === 2) operator = '!=';\n }\n\n if (message instanceof Error) throw message;\n var errArgs = {\n actual: actual,\n expected: expected,\n operator: operator === undefined ? 'fail' : operator,\n stackStartFn: stackStartFn || fail\n };\n\n if (message !== undefined) {\n errArgs.message = message;\n }\n\n var err = new AssertionError(errArgs);\n\n if (internalMessage) {\n err.message = internalMessage;\n err.generatedMessage = true;\n }\n\n throw err;\n}\n\nassert.fail = fail; // The AssertionError is defined in internal/error.\n\nassert.AssertionError = AssertionError;\n\nfunction innerOk(fn, argLen, value, message) {\n if (!value) {\n var generatedMessage = false;\n\n if (argLen === 0) {\n generatedMessage = true;\n message = 'No value argument passed to `assert.ok()`';\n } else if (message instanceof Error) {\n throw message;\n }\n\n var err = new AssertionError({\n actual: value,\n expected: true,\n message: message,\n operator: '==',\n stackStartFn: fn\n });\n err.generatedMessage = generatedMessage;\n throw err;\n }\n} // Pure assertion tests whether a value is truthy, as determined\n// by !!value.\n\n\nfunction ok() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n innerOk.apply(void 0, [ok, args.length].concat(args));\n}\n\nassert.ok = ok; // The equality assertion tests shallow, coercive equality with ==.\n\n/* eslint-disable no-restricted-properties */\n\nassert.equal = function equal(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n } // eslint-disable-next-line eqeqeq\n\n\n if (actual != expected) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: '==',\n stackStartFn: equal\n });\n }\n}; // The non-equality assertion tests for whether two objects are not\n// equal with !=.\n\n\nassert.notEqual = function notEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n } // eslint-disable-next-line eqeqeq\n\n\n if (actual == expected) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: '!=',\n stackStartFn: notEqual\n });\n }\n}; // The equivalence assertion tests a deep equality relation.\n\n\nassert.deepEqual = function deepEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (isDeepEqual === undefined) lazyLoadComparison();\n\n if (!isDeepEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'deepEqual',\n stackStartFn: deepEqual\n });\n }\n}; // The non-equivalence assertion tests for any deep inequality.\n\n\nassert.notDeepEqual = function notDeepEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (isDeepEqual === undefined) lazyLoadComparison();\n\n if (isDeepEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'notDeepEqual',\n stackStartFn: notDeepEqual\n });\n }\n};\n/* eslint-enable */\n\n\nassert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (isDeepEqual === undefined) lazyLoadComparison();\n\n if (!isDeepStrictEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'deepStrictEqual',\n stackStartFn: deepStrictEqual\n });\n }\n};\n\nassert.notDeepStrictEqual = notDeepStrictEqual;\n\nfunction notDeepStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (isDeepEqual === undefined) lazyLoadComparison();\n\n if (isDeepStrictEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'notDeepStrictEqual',\n stackStartFn: notDeepStrictEqual\n });\n }\n}\n\nassert.strictEqual = function strictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (!objectIs(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'strictEqual',\n stackStartFn: strictEqual\n });\n }\n};\n\nassert.notStrictEqual = function notStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (objectIs(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'notStrictEqual',\n stackStartFn: notStrictEqual\n });\n }\n};\n\nvar Comparison = function Comparison(obj, keys, actual) {\n var _this = this;\n\n _classCallCheck(this, Comparison);\n\n keys.forEach(function (key) {\n if (key in obj) {\n if (actual !== undefined && typeof actual[key] === 'string' && isRegExp(obj[key]) && obj[key].test(actual[key])) {\n _this[key] = actual[key];\n } else {\n _this[key] = obj[key];\n }\n }\n });\n};\n\nfunction compareExceptionKey(actual, expected, key, message, keys, fn) {\n if (!(key in actual) || !isDeepStrictEqual(actual[key], expected[key])) {\n if (!message) {\n // Create placeholder objects to create a nice output.\n var a = new Comparison(actual, keys);\n var b = new Comparison(expected, keys, actual);\n var err = new AssertionError({\n actual: a,\n expected: b,\n operator: 'deepStrictEqual',\n stackStartFn: fn\n });\n err.actual = actual;\n err.expected = expected;\n err.operator = fn.name;\n throw err;\n }\n\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: fn.name,\n stackStartFn: fn\n });\n }\n}\n\nfunction expectedException(actual, expected, msg, fn) {\n if (typeof expected !== 'function') {\n if (isRegExp(expected)) return expected.test(actual); // assert.doesNotThrow does not accept objects.\n\n if (arguments.length === 2) {\n throw new ERR_INVALID_ARG_TYPE('expected', ['Function', 'RegExp'], expected);\n } // Handle primitives properly.\n\n\n if (_typeof(actual) !== 'object' || actual === null) {\n var err = new AssertionError({\n actual: actual,\n expected: expected,\n message: msg,\n operator: 'deepStrictEqual',\n stackStartFn: fn\n });\n err.operator = fn.name;\n throw err;\n }\n\n var keys = Object.keys(expected); // Special handle errors to make sure the name and the message are compared\n // as well.\n\n if (expected instanceof Error) {\n keys.push('name', 'message');\n } else if (keys.length === 0) {\n throw new ERR_INVALID_ARG_VALUE('error', expected, 'may not be an empty object');\n }\n\n if (isDeepEqual === undefined) lazyLoadComparison();\n keys.forEach(function (key) {\n if (typeof actual[key] === 'string' && isRegExp(expected[key]) && expected[key].test(actual[key])) {\n return;\n }\n\n compareExceptionKey(actual, expected, key, msg, keys, fn);\n });\n return true;\n } // Guard instanceof against arrow functions as they don't have a prototype.\n\n\n if (expected.prototype !== undefined && actual instanceof expected) {\n return true;\n }\n\n if (Error.isPrototypeOf(expected)) {\n return false;\n }\n\n return expected.call({}, actual) === true;\n}\n\nfunction getActual(fn) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', 'Function', fn);\n }\n\n try {\n fn();\n } catch (e) {\n return e;\n }\n\n return NO_EXCEPTION_SENTINEL;\n}\n\nfunction checkIsPromise(obj) {\n // Accept native ES6 promises and promises that are implemented in a similar\n // way. Do not accept thenables that use a function as `obj` and that have no\n // `catch` handler.\n // TODO: thenables are checked up until they have the correct methods,\n // but according to documentation, the `then` method should receive\n // the `fulfill` and `reject` arguments as well or it may be never resolved.\n return isPromise(obj) || obj !== null && _typeof(obj) === 'object' && typeof obj.then === 'function' && typeof obj.catch === 'function';\n}\n\nfunction waitForActual(promiseFn) {\n return Promise.resolve().then(function () {\n var resultPromise;\n\n if (typeof promiseFn === 'function') {\n // Return a rejected promise if `promiseFn` throws synchronously.\n resultPromise = promiseFn(); // Fail in case no promise is returned.\n\n if (!checkIsPromise(resultPromise)) {\n throw new ERR_INVALID_RETURN_VALUE('instance of Promise', 'promiseFn', resultPromise);\n }\n } else if (checkIsPromise(promiseFn)) {\n resultPromise = promiseFn;\n } else {\n throw new ERR_INVALID_ARG_TYPE('promiseFn', ['Function', 'Promise'], promiseFn);\n }\n\n return Promise.resolve().then(function () {\n return resultPromise;\n }).then(function () {\n return NO_EXCEPTION_SENTINEL;\n }).catch(function (e) {\n return e;\n });\n });\n}\n\nfunction expectsError(stackStartFn, actual, error, message) {\n if (typeof error === 'string') {\n if (arguments.length === 4) {\n throw new ERR_INVALID_ARG_TYPE('error', ['Object', 'Error', 'Function', 'RegExp'], error);\n }\n\n if (_typeof(actual) === 'object' && actual !== null) {\n if (actual.message === error) {\n throw new ERR_AMBIGUOUS_ARGUMENT('error/message', \"The error message \\\"\".concat(actual.message, \"\\\" is identical to the message.\"));\n }\n } else if (actual === error) {\n throw new ERR_AMBIGUOUS_ARGUMENT('error/message', \"The error \\\"\".concat(actual, \"\\\" is identical to the message.\"));\n }\n\n message = error;\n error = undefined;\n } else if (error != null && _typeof(error) !== 'object' && typeof error !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('error', ['Object', 'Error', 'Function', 'RegExp'], error);\n }\n\n if (actual === NO_EXCEPTION_SENTINEL) {\n var details = '';\n\n if (error && error.name) {\n details += \" (\".concat(error.name, \")\");\n }\n\n details += message ? \": \".concat(message) : '.';\n var fnType = stackStartFn.name === 'rejects' ? 'rejection' : 'exception';\n innerFail({\n actual: undefined,\n expected: error,\n operator: stackStartFn.name,\n message: \"Missing expected \".concat(fnType).concat(details),\n stackStartFn: stackStartFn\n });\n }\n\n if (error && !expectedException(actual, error, message, stackStartFn)) {\n throw actual;\n }\n}\n\nfunction expectsNoError(stackStartFn, actual, error, message) {\n if (actual === NO_EXCEPTION_SENTINEL) return;\n\n if (typeof error === 'string') {\n message = error;\n error = undefined;\n }\n\n if (!error || expectedException(actual, error)) {\n var details = message ? \": \".concat(message) : '.';\n var fnType = stackStartFn.name === 'doesNotReject' ? 'rejection' : 'exception';\n innerFail({\n actual: actual,\n expected: error,\n operator: stackStartFn.name,\n message: \"Got unwanted \".concat(fnType).concat(details, \"\\n\") + \"Actual message: \\\"\".concat(actual && actual.message, \"\\\"\"),\n stackStartFn: stackStartFn\n });\n }\n\n throw actual;\n}\n\nassert.throws = function throws(promiseFn) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n expectsError.apply(void 0, [throws, getActual(promiseFn)].concat(args));\n};\n\nassert.rejects = function rejects(promiseFn) {\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n\n return waitForActual(promiseFn).then(function (result) {\n return expectsError.apply(void 0, [rejects, result].concat(args));\n });\n};\n\nassert.doesNotThrow = function doesNotThrow(fn) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n\n expectsNoError.apply(void 0, [doesNotThrow, getActual(fn)].concat(args));\n};\n\nassert.doesNotReject = function doesNotReject(fn) {\n for (var _len5 = arguments.length, args = new Array(_len5 > 1 ? _len5 - 1 : 0), _key5 = 1; _key5 < _len5; _key5++) {\n args[_key5 - 1] = arguments[_key5];\n }\n\n return waitForActual(fn).then(function (result) {\n return expectsNoError.apply(void 0, [doesNotReject, result].concat(args));\n });\n};\n\nassert.ifError = function ifError(err) {\n if (err !== null && err !== undefined) {\n var message = 'ifError got unwanted exception: ';\n\n if (_typeof(err) === 'object' && typeof err.message === 'string') {\n if (err.message.length === 0 && err.constructor) {\n message += err.constructor.name;\n } else {\n message += err.message;\n }\n } else {\n message += inspect(err);\n }\n\n var newErr = new AssertionError({\n actual: err,\n expected: null,\n operator: 'ifError',\n message: message,\n stackStartFn: ifError\n }); // Make sure we actually have a stack trace!\n\n var origStack = err.stack;\n\n if (typeof origStack === 'string') {\n // This will remove any duplicated frames from the error frames taken\n // from within `ifError` and add the original error frames to the newly\n // created ones.\n var tmp2 = origStack.split('\\n');\n tmp2.shift(); // Filter all frames existing in err.stack.\n\n var tmp1 = newErr.stack.split('\\n');\n\n for (var i = 0; i < tmp2.length; i++) {\n // Find the first occurrence of the frame.\n var pos = tmp1.indexOf(tmp2[i]);\n\n if (pos !== -1) {\n // Only keep new frames.\n tmp1 = tmp1.slice(0, pos);\n break;\n }\n }\n\n newErr.stack = \"\".concat(tmp1.join('\\n'), \"\\n\").concat(tmp2.join('\\n'));\n }\n\n throw newErr;\n }\n}; // Expose a strict only variant of assert\n\n\nfunction strict() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n innerOk.apply(void 0, [strict, args.length].concat(args));\n}\n\nassert.strict = objectAssign(strict, assert, {\n equal: assert.strictEqual,\n deepEqual: assert.deepStrictEqual,\n notEqual: assert.notStrictEqual,\n notDeepEqual: assert.notDeepStrictEqual\n});\nassert.strict.strict = assert.strict;","\"use strict\";\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.\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.E = exports.AssertionError = exports.message = exports.RangeError = exports.TypeError = exports.Error = void 0;\nvar assert = require(\"assert\");\nvar util = require(\"util\");\nvar kCode = typeof Symbol === 'undefined' ? '_kCode' : Symbol('code');\nvar messages = {}; // new Map();\nfunction makeNodeError(Base) {\n return /** @class */ (function (_super) {\n __extends(NodeError, _super);\n function NodeError(key) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var _this = _super.call(this, message(key, args)) || this;\n _this.code = key;\n _this[kCode] = key;\n _this.name = \"\".concat(_super.prototype.name, \" [\").concat(_this[kCode], \"]\");\n return _this;\n }\n return NodeError;\n }(Base));\n}\nvar g = typeof globalThis !== 'undefined' ? globalThis : global;\nvar AssertionError = /** @class */ (function (_super) {\n __extends(AssertionError, _super);\n function AssertionError(options) {\n var _this = this;\n if (typeof options !== 'object' || options === null) {\n throw new exports.TypeError('ERR_INVALID_ARG_TYPE', 'options', 'object');\n }\n if (options.message) {\n _this = _super.call(this, options.message) || this;\n }\n else {\n _this = _super.call(this, \"\".concat(util.inspect(options.actual).slice(0, 128), \" \") +\n \"\".concat(options.operator, \" \").concat(util.inspect(options.expected).slice(0, 128))) || this;\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.Error.captureStackTrace(_this, options.stackStartFunction);\n return _this;\n }\n return AssertionError;\n}(g.Error));\nexports.AssertionError = AssertionError;\nfunction message(key, args) {\n assert.strictEqual(typeof key, 'string');\n // const msg = messages.get(key);\n var msg = messages[key];\n assert(msg, \"An invalid error message key was used: \".concat(key, \".\"));\n var fmt;\n if (typeof msg === 'function') {\n fmt = msg;\n }\n else {\n fmt = util.format;\n if (args === undefined || args.length === 0)\n return msg;\n args.unshift(msg);\n }\n return String(fmt.apply(null, args));\n}\nexports.message = message;\n// Utility function for registering the error codes. Only used here. Exported\n// *only* to allow for testing.\nfunction E(sym, val) {\n messages[sym] = typeof val === 'function' ? val : String(val);\n}\nexports.E = E;\nexports.Error = makeNodeError(g.Error);\nexports.TypeError = makeNodeError(g.TypeError);\nexports.RangeError = makeNodeError(g.RangeError);\n// 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\nE('ERR_ARG_NOT_ITERABLE', '%s must be iterable');\nE('ERR_ASSERTION', '%s');\nE('ERR_BUFFER_OUT_OF_BOUNDS', bufferOutOfBounds);\nE('ERR_CHILD_CLOSED_BEFORE_REPLY', 'Child closed before reply received');\nE('ERR_CONSOLE_WRITABLE_STREAM', 'Console expects a writable stream instance for %s');\nE('ERR_CPU_USAGE', 'Unable to obtain cpu usage %s');\nE('ERR_DNS_SET_SERVERS_FAILED', function (err, servers) { return \"c-ares failed to set servers: \\\"\".concat(err, \"\\\" [\").concat(servers, \"]\"); });\nE('ERR_FALSY_VALUE_REJECTION', 'Promise was rejected with falsy value');\nE('ERR_ENCODING_NOT_SUPPORTED', function (enc) { return \"The \\\"\".concat(enc, \"\\\" encoding is not supported\"); });\nE('ERR_ENCODING_INVALID_ENCODED_DATA', function (enc) { return \"The encoded data was not valid for encoding \".concat(enc); });\nE('ERR_HTTP_HEADERS_SENT', 'Cannot render headers after they are sent to the client');\nE('ERR_HTTP_INVALID_STATUS_CODE', 'Invalid status code: %s');\nE('ERR_HTTP_TRAILER_INVALID', 'Trailers are invalid with this transfer encoding');\nE('ERR_INDEX_OUT_OF_RANGE', 'Index out of range');\nE('ERR_INVALID_ARG_TYPE', invalidArgType);\nE('ERR_INVALID_ARRAY_LENGTH', function (name, len, actual) {\n assert.strictEqual(typeof actual, 'number');\n return \"The array \\\"\".concat(name, \"\\\" (length \").concat(actual, \") must be of length \").concat(len, \".\");\n});\nE('ERR_INVALID_BUFFER_SIZE', 'Buffer size must be a multiple of %s');\nE('ERR_INVALID_CALLBACK', 'Callback must be a function');\nE('ERR_INVALID_CHAR', 'Invalid character in %s');\nE('ERR_INVALID_CURSOR_POS', 'Cannot set cursor row without setting its column');\nE('ERR_INVALID_FD', '\"fd\" must be a positive integer: %s');\nE('ERR_INVALID_FILE_URL_HOST', 'File URL host must be \"localhost\" or empty on %s');\nE('ERR_INVALID_FILE_URL_PATH', 'File URL path %s');\nE('ERR_INVALID_HANDLE_TYPE', 'This handle type cannot be sent');\nE('ERR_INVALID_IP_ADDRESS', 'Invalid IP address: %s');\nE('ERR_INVALID_OPT_VALUE', function (name, value) {\n return \"The value \\\"\".concat(String(value), \"\\\" is invalid for option \\\"\").concat(name, \"\\\"\");\n});\nE('ERR_INVALID_OPT_VALUE_ENCODING', function (value) { return \"The value \\\"\".concat(String(value), \"\\\" is invalid for option \\\"encoding\\\"\"); });\nE('ERR_INVALID_REPL_EVAL_CONFIG', 'Cannot specify both \"breakEvalOnSigint\" and \"eval\" for REPL');\nE('ERR_INVALID_SYNC_FORK_INPUT', 'Asynchronous forks do not support Buffer, Uint8Array or string input: %s');\nE('ERR_INVALID_THIS', 'Value of \"this\" must be of type %s');\nE('ERR_INVALID_TUPLE', '%s must be an iterable %s tuple');\nE('ERR_INVALID_URL', 'Invalid URL: %s');\nE('ERR_INVALID_URL_SCHEME', function (expected) { return \"The URL must be \".concat(oneOf(expected, 'scheme')); });\nE('ERR_IPC_CHANNEL_CLOSED', 'Channel closed');\nE('ERR_IPC_DISCONNECTED', 'IPC channel is already disconnected');\nE('ERR_IPC_ONE_PIPE', 'Child process can have only one IPC pipe');\nE('ERR_IPC_SYNC_FORK', 'IPC cannot be used with synchronous forks');\nE('ERR_MISSING_ARGS', missingArgs);\nE('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\nE('ERR_NAPI_CONS_FUNCTION', 'Constructor must be a function');\nE('ERR_NAPI_CONS_PROTOTYPE_OBJECT', 'Constructor.prototype must be an object');\nE('ERR_NO_CRYPTO', 'Node.js is not compiled with OpenSSL crypto support');\nE('ERR_NO_LONGER_SUPPORTED', '%s is no longer supported');\nE('ERR_PARSE_HISTORY_DATA', 'Could not parse history data in %s');\nE('ERR_SOCKET_ALREADY_BOUND', 'Socket is already bound');\nE('ERR_SOCKET_BAD_PORT', 'Port should be > 0 and < 65536');\nE('ERR_SOCKET_BAD_TYPE', 'Bad socket type specified. Valid types are: udp4, udp6');\nE('ERR_SOCKET_CANNOT_SEND', 'Unable to send data');\nE('ERR_SOCKET_CLOSED', 'Socket is closed');\nE('ERR_SOCKET_DGRAM_NOT_RUNNING', 'Not running');\nE('ERR_STDERR_CLOSE', 'process.stderr cannot be closed');\nE('ERR_STDOUT_CLOSE', 'process.stdout cannot be closed');\nE('ERR_STREAM_WRAP', 'Stream has StringDecoder set or is in objectMode');\nE('ERR_TLS_CERT_ALTNAME_INVALID', \"Hostname/IP does not match certificate's altnames: %s\");\nE('ERR_TLS_DH_PARAM_SIZE', function (size) { return \"DH parameter size \".concat(size, \" is less than 2048\"); });\nE('ERR_TLS_HANDSHAKE_TIMEOUT', 'TLS handshake timeout');\nE('ERR_TLS_RENEGOTIATION_FAILED', 'Failed to renegotiate');\nE('ERR_TLS_REQUIRED_SERVER_NAME', '\"servername\" is required parameter for Server.addContext');\nE('ERR_TLS_SESSION_ATTACK', 'TSL session renegotiation attack detected');\nE('ERR_TRANSFORM_ALREADY_TRANSFORMING', 'Calling transform done when still transforming');\nE('ERR_TRANSFORM_WITH_LENGTH_0', 'Calling transform done when writableState.length != 0');\nE('ERR_UNKNOWN_ENCODING', 'Unknown encoding: %s');\nE('ERR_UNKNOWN_SIGNAL', 'Unknown signal: %s');\nE('ERR_UNKNOWN_STDIN_TYPE', 'Unknown stdin file type');\nE('ERR_UNKNOWN_STREAM_TYPE', 'Unknown stream file type');\nE('ERR_V8BREAKITERATOR', 'Full ICU data not installed. ' + 'See https://github.com/nodejs/node/wiki/Intl');\nfunction invalidArgType(name, expected, actual) {\n assert(name, 'name is required');\n // determiner: 'must be' or 'must not be'\n var determiner;\n if (expected.includes('not ')) {\n determiner = 'must not be';\n expected = expected.split('not ')[1];\n }\n else {\n determiner = 'must be';\n }\n var msg;\n if (Array.isArray(name)) {\n var names = name.map(function (val) { return \"\\\"\".concat(val, \"\\\"\"); }).join(', ');\n msg = \"The \".concat(names, \" arguments \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n else if (name.includes(' argument')) {\n // for the case like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n else {\n var type = name.includes('.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n // if actual value received, output it\n if (arguments.length >= 3) {\n msg += \". Received type \".concat(actual !== null ? typeof actual : 'null');\n }\n return msg;\n}\nfunction missingArgs() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\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) { return \"\\\"\".concat(a, \"\\\"\"); });\n switch (len) {\n case 1:\n msg += \"\".concat(args[0], \" argument\");\n break;\n case 2:\n msg += \"\".concat(args[0], \" and \").concat(args[1], \" arguments\");\n break;\n default:\n msg += args.slice(0, len - 1).join(', ');\n msg += \", and \".concat(args[len - 1], \" arguments\");\n break;\n }\n return \"\".concat(msg, \" must be specified\");\n}\nfunction oneOf(expected, thing) {\n assert(expected, 'expected is required');\n assert(typeof thing === 'string', 'thing is required');\n if (Array.isArray(expected)) {\n var len = expected.length;\n assert(len > 0, 'At least one expected value needs to be specified');\n // tslint:disable-next-line\n expected = expected.map(function (i) { return String(i); });\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n }\n else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n }\n else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n }\n else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n}\nfunction bufferOutOfBounds(name, isWriting) {\n if (isWriting) {\n return 'Attempt to write outside buffer bounds';\n }\n else {\n return \"\\\"\".concat(name, \"\\\" is outside of buffer bounds\");\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.strToEncoding = exports.assertEncoding = exports.ENCODING_UTF8 = void 0;\nvar buffer_1 = require(\"./internal/buffer\");\nvar errors = require(\"./internal/errors\");\nexports.ENCODING_UTF8 = 'utf8';\nfunction assertEncoding(encoding) {\n if (encoding && !buffer_1.Buffer.isEncoding(encoding))\n throw new errors.TypeError('ERR_INVALID_OPT_VALUE_ENCODING', encoding);\n}\nexports.assertEncoding = assertEncoding;\nfunction strToEncoding(str, encoding) {\n if (!encoding || encoding === exports.ENCODING_UTF8)\n return str; // UTF-8\n if (encoding === 'buffer')\n return new buffer_1.Buffer(str); // `buffer` encoding\n return new buffer_1.Buffer(str).toString(encoding); // Custom encoding\n}\nexports.strToEncoding = strToEncoding;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Dirent = void 0;\nvar constants_1 = require(\"./constants\");\nvar encoding_1 = require(\"./encoding\");\nvar S_IFMT = constants_1.constants.S_IFMT, S_IFDIR = constants_1.constants.S_IFDIR, S_IFREG = constants_1.constants.S_IFREG, S_IFBLK = constants_1.constants.S_IFBLK, S_IFCHR = constants_1.constants.S_IFCHR, S_IFLNK = constants_1.constants.S_IFLNK, S_IFIFO = constants_1.constants.S_IFIFO, S_IFSOCK = constants_1.constants.S_IFSOCK;\n/**\n * A directory entry, like `fs.Dirent`.\n */\nvar Dirent = /** @class */ (function () {\n function Dirent() {\n this.name = '';\n this.mode = 0;\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 Dirent.prototype._checkModeProperty = function (property) {\n return (this.mode & S_IFMT) === property;\n };\n Dirent.prototype.isDirectory = function () {\n return this._checkModeProperty(S_IFDIR);\n };\n Dirent.prototype.isFile = function () {\n return this._checkModeProperty(S_IFREG);\n };\n Dirent.prototype.isBlockDevice = function () {\n return this._checkModeProperty(S_IFBLK);\n };\n Dirent.prototype.isCharacterDevice = function () {\n return this._checkModeProperty(S_IFCHR);\n };\n Dirent.prototype.isSymbolicLink = function () {\n return this._checkModeProperty(S_IFLNK);\n };\n Dirent.prototype.isFIFO = function () {\n return this._checkModeProperty(S_IFIFO);\n };\n Dirent.prototype.isSocket = function () {\n return this._checkModeProperty(S_IFSOCK);\n };\n return Dirent;\n}());\nexports.Dirent = Dirent;\nexports.default = Dirent;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar _setImmediate;\nif (typeof setImmediate === 'function')\n _setImmediate = setImmediate.bind(typeof globalThis !== 'undefined' ? globalThis : global);\nelse\n _setImmediate = setTimeout.bind(typeof globalThis !== 'undefined' ? globalThis : global);\nexports.default = _setImmediate;\n","\"use strict\";\n// Here we mock the global `process` variable in case we are not in Node's environment.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.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 */\nvar maybeReturnProcess = function () {\n if (typeof process !== 'undefined') {\n return process;\n }\n try {\n return require('process');\n }\n catch (_a) {\n return undefined;\n }\n};\nfunction createProcess() {\n var p = maybeReturnProcess() || {};\n if (!p.cwd)\n p.cwd = function () { return '/'; };\n if (!p.nextTick)\n p.nextTick = require('./setImmediate').default;\n if (!p.emitWarning)\n p.emitWarning = function (message, type) {\n // tslint:disable-next-line:no-console\n console.warn(\"\".concat(type).concat(type ? ': ' : '').concat(message));\n };\n if (!p.env)\n p.env = {};\n return p;\n}\nexports.createProcess = createProcess;\nexports.default = createProcess();\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.File = exports.Link = exports.Node = exports.SEP = void 0;\nvar process_1 = require(\"./process\");\nvar buffer_1 = require(\"./internal/buffer\");\nvar constants_1 = require(\"./constants\");\nvar events_1 = require(\"events\");\nvar Stats_1 = require(\"./Stats\");\nvar S_IFMT = constants_1.constants.S_IFMT, S_IFDIR = constants_1.constants.S_IFDIR, S_IFREG = constants_1.constants.S_IFREG, S_IFLNK = constants_1.constants.S_IFLNK, O_APPEND = constants_1.constants.O_APPEND;\nvar getuid = function () { var _a, _b; return (_b = (_a = process_1.default.getuid) === null || _a === void 0 ? void 0 : _a.call(process_1.default)) !== null && _b !== void 0 ? _b : 0; };\nvar getgid = function () { var _a, _b; return (_b = (_a = process_1.default.getgid) === null || _a === void 0 ? void 0 : _a.call(process_1.default)) !== null && _b !== void 0 ? _b : 0; };\nexports.SEP = '/';\n/**\n * Node in a file system (like i-node, v-node).\n */\nvar Node = /** @class */ (function (_super) {\n __extends(Node, _super);\n function Node(ino, perm) {\n if (perm === void 0) { perm = 438; }\n var _this = _super.call(this) || this;\n // User ID and group ID.\n _this.uid = getuid();\n _this.gid = getgid();\n _this.atime = new Date();\n _this.mtime = new Date();\n _this.ctime = new Date();\n _this.perm = 438; // Permissions `chmod`, `fchmod`\n _this.mode = S_IFREG; // S_IFDIR, S_IFREG, etc.. (file by default?)\n // Number of hard links pointing at this Node.\n _this.nlink = 1;\n _this.perm = perm;\n _this.mode |= perm;\n _this.ino = ino;\n return _this;\n }\n Node.prototype.getString = function (encoding) {\n if (encoding === void 0) { encoding = 'utf8'; }\n return this.getBuffer().toString(encoding);\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 Node.prototype.getBuffer = function () {\n if (!this.buf)\n this.setBuffer((0, buffer_1.bufferAllocUnsafe)(0));\n return (0, buffer_1.bufferFrom)(this.buf); // Return a copy.\n };\n Node.prototype.setBuffer = function (buf) {\n this.buf = (0, buffer_1.bufferFrom)(buf); // Creates a copy of data.\n this.touch();\n };\n Node.prototype.getSize = function () {\n return this.buf ? this.buf.length : 0;\n };\n Node.prototype.setModeProperty = function (property) {\n this.mode = (this.mode & ~S_IFMT) | property;\n };\n Node.prototype.setIsFile = function () {\n this.setModeProperty(S_IFREG);\n };\n Node.prototype.setIsDirectory = function () {\n this.setModeProperty(S_IFDIR);\n };\n Node.prototype.setIsSymlink = function () {\n this.setModeProperty(S_IFLNK);\n };\n Node.prototype.isFile = function () {\n return (this.mode & S_IFMT) === S_IFREG;\n };\n Node.prototype.isDirectory = function () {\n return (this.mode & S_IFMT) === S_IFDIR;\n };\n Node.prototype.isSymlink = function () {\n // return !!this.symlink;\n return (this.mode & S_IFMT) === S_IFLNK;\n };\n Node.prototype.makeSymlink = function (steps) {\n this.symlink = steps;\n this.setIsSymlink();\n };\n Node.prototype.write = function (buf, off, len, pos) {\n if (off === void 0) { off = 0; }\n if (len === void 0) { len = buf.length; }\n if (pos === void 0) { pos = 0; }\n if (!this.buf)\n this.buf = (0, buffer_1.bufferAllocUnsafe)(0);\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 buf.copy(this.buf, pos, off, off + len);\n this.touch();\n return len;\n };\n // Returns the number of bytes read.\n Node.prototype.read = function (buf, off, len, pos) {\n if (off === void 0) { off = 0; }\n if (len === void 0) { len = buf.byteLength; }\n if (pos === void 0) { pos = 0; }\n if (!this.buf)\n this.buf = (0, buffer_1.bufferAllocUnsafe)(0);\n var actualLen = len;\n if (actualLen > buf.byteLength) {\n actualLen = buf.byteLength;\n }\n if (actualLen + pos > this.buf.length) {\n actualLen = this.buf.length - pos;\n }\n this.buf.copy(buf, off, pos, pos + actualLen);\n return actualLen;\n };\n Node.prototype.truncate = function (len) {\n if (len === void 0) { len = 0; }\n if (!len)\n this.buf = (0, buffer_1.bufferAllocUnsafe)(0);\n else {\n if (!this.buf)\n this.buf = (0, buffer_1.bufferAllocUnsafe)(0);\n if (len <= this.buf.length) {\n this.buf = this.buf.slice(0, len);\n }\n else {\n var buf = (0, buffer_1.bufferAllocUnsafe)(len);\n this.buf.copy(buf);\n buf.fill(0, this.buf.length);\n this.buf = buf;\n }\n }\n this.touch();\n };\n Node.prototype.chmod = function (perm) {\n this.perm = perm;\n this.mode = (this.mode & ~511) | perm;\n this.touch();\n };\n Node.prototype.chown = function (uid, gid) {\n this.uid = uid;\n this.gid = gid;\n this.touch();\n };\n Node.prototype.touch = function () {\n this.mtime = new Date();\n this.emit('change', this);\n };\n Node.prototype.canRead = function (uid, gid) {\n if (uid === void 0) { uid = getuid(); }\n if (gid === void 0) { gid = getgid(); }\n if (this.perm & 4 /* S.IROTH */) {\n return true;\n }\n if (gid === this.gid) {\n if (this.perm & 32 /* S.IRGRP */) {\n return true;\n }\n }\n if (uid === this.uid) {\n if (this.perm & 256 /* S.IRUSR */) {\n return true;\n }\n }\n return false;\n };\n Node.prototype.canWrite = function (uid, gid) {\n if (uid === void 0) { uid = getuid(); }\n if (gid === void 0) { gid = getgid(); }\n if (this.perm & 2 /* S.IWOTH */) {\n return true;\n }\n if (gid === this.gid) {\n if (this.perm & 16 /* S.IWGRP */) {\n return true;\n }\n }\n if (uid === this.uid) {\n if (this.perm & 128 /* S.IWUSR */) {\n return true;\n }\n }\n return false;\n };\n Node.prototype.del = function () {\n this.emit('delete', this);\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 return Node;\n}(events_1.EventEmitter));\nexports.Node = Node;\n/**\n * Represents a hard link that points to an i-node `node`.\n */\nvar Link = /** @class */ (function (_super) {\n __extends(Link, _super);\n function Link(vol, parent, name) {\n var _this = _super.call(this) || this;\n _this.children = {};\n // Path to this node as Array: ['usr', 'bin', 'node'].\n _this._steps = [];\n // \"i-node\" number of the node.\n _this.ino = 0;\n // Number of children.\n _this.length = 0;\n _this.vol = vol;\n _this.parent = parent;\n _this.name = name;\n _this.syncSteps();\n return _this;\n }\n Object.defineProperty(Link.prototype, \"steps\", {\n get: function () {\n return this._steps;\n },\n // Recursively sync children steps, e.g. in case of dir rename\n set: function (val) {\n this._steps = val;\n for (var _i = 0, _a = Object.values(this.children); _i < _a.length; _i++) {\n var child = _a[_i];\n child === null || child === void 0 ? void 0 : child.syncSteps();\n }\n },\n enumerable: false,\n configurable: true\n });\n Link.prototype.setNode = function (node) {\n this.node = node;\n this.ino = node.ino;\n };\n Link.prototype.getNode = function () {\n return this.node;\n };\n Link.prototype.createChild = function (name, node) {\n if (node === void 0) { node = this.vol.createNode(); }\n var link = new Link(this.vol, this, name);\n link.setNode(node);\n if (node.isDirectory()) {\n // link.setChild('.', link);\n // link.getNode().nlink++;\n // link.setChild('..', this);\n // this.getNode().nlink++;\n }\n this.setChild(name, link);\n return link;\n };\n Link.prototype.setChild = function (name, link) {\n if (link === void 0) { link = new Link(this.vol, this, name); }\n this.children[name] = link;\n link.parent = this;\n this.length++;\n this.emit('child:add', link, this);\n return link;\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 Link.prototype.getChild = function (name) {\n if (Object.hasOwnProperty.call(this.children, name)) {\n return this.children[name];\n }\n };\n Link.prototype.getPath = function () {\n return this.steps.join(exports.SEP);\n };\n Link.prototype.getName = function () {\n return this.steps[this.steps.length - 1];\n };\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 * 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 Link.prototype.walk = function (steps, stop, i) {\n if (stop === void 0) { stop = steps.length; }\n if (i === void 0) { i = 0; }\n if (i >= steps.length)\n return this;\n if (i >= stop)\n return this;\n var step = steps[i];\n var link = this.getChild(step);\n if (!link)\n return null;\n return link.walk(steps, stop, i + 1);\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 Link.prototype.syncSteps = function () {\n this.steps = this.parent ? this.parent.steps.concat([this.name]) : [this.name];\n };\n return Link;\n}(events_1.EventEmitter));\nexports.Link = Link;\n/**\n * Represents an open file (file descriptor) that points to a `Link` (Hard-link) and a `Node`.\n */\nvar File = /** @class */ (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 File.prototype.getString = function (encoding) {\n if (encoding === void 0) { encoding = 'utf8'; }\n return this.node.getString();\n };\n File.prototype.setString = function (str) {\n this.node.setString(str);\n };\n File.prototype.getBuffer = function () {\n return this.node.getBuffer();\n };\n File.prototype.setBuffer = function (buf) {\n this.node.setBuffer(buf);\n };\n File.prototype.getSize = function () {\n return this.node.getSize();\n };\n File.prototype.truncate = function (len) {\n this.node.truncate(len);\n };\n File.prototype.seekTo = function (position) {\n this.position = position;\n };\n File.prototype.stats = function () {\n return Stats_1.default.build(this.node);\n };\n File.prototype.write = function (buf, offset, length, position) {\n if (offset === void 0) { offset = 0; }\n if (length === void 0) { length = buf.length; }\n if (typeof position !== 'number')\n position = this.position;\n if (this.flags & O_APPEND)\n position = this.getSize();\n var bytes = this.node.write(buf, offset, length, position);\n this.position = position + bytes;\n return bytes;\n };\n File.prototype.read = function (buf, offset, length, position) {\n if (offset === void 0) { offset = 0; }\n if (length === void 0) { length = buf.byteLength; }\n if (typeof position !== 'number')\n position = this.position;\n var bytes = this.node.read(buf, offset, length, position);\n this.position = position + bytes;\n return bytes;\n };\n File.prototype.chmod = function (perm) {\n this.node.chmod(perm);\n };\n File.prototype.chown = function (uid, gid) {\n this.node.chown(uid, gid);\n };\n return File;\n}());\nexports.File = File;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * `setTimeoutUnref` is just like `setTimeout`,\n * only in Node's environment it will \"unref\" its macro task.\n */\nfunction setTimeoutUnref(callback, time, args) {\n var ref = setTimeout.apply(typeof globalThis !== 'undefined' ? globalThis : global, arguments);\n if (ref && typeof ref === 'object' && typeof ref.unref === 'function')\n ref.unref();\n return ref;\n}\nexports.default = setTimeoutUnref;\n","module.exports = require('events').EventEmitter;\n","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\n\nvar _require2 = require('util'),\n inspect = _require2.inspect;\n\nvar custom = inspect && inspect.custom || 'inspect';\n\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\n\nmodule.exports =\n/*#__PURE__*/\nfunction () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n\n while (p = p.next) {\n ret += s + p.data;\n }\n\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n\n return ret;\n } // Consumes a specified amount of bytes or characters from the buffered data.\n\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n } // Consumes a specified amount of characters from the buffered data.\n\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Consumes a specified amount of bytes from the buffered data.\n\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Make sure the linked list only shows the minimal necessary information.\n\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n\n return BufferList;\n}();","'use strict'; // undocumented cb() API, needed for core, not for public API\n\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n } // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n } // if this is a duplex stream mark the writable part as destroyed as well\n\n\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n\n return this;\n}\n\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\n\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\n\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\n\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n\n return Math.floor(hwm);\n } // Default value\n\n\n return state.objectMode ? 16 : 16 * 1024;\n}\n\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","\n/**\n * Module exports.\n */\n\nmodule.exports = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate (fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config (name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!global.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}\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// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n'use strict';\n\nmodule.exports = Writable;\n/* <replacement> */\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n} // It seems a linked list but it is not\n// there will be only 2 of these for each stream\n\n\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* </replacement> */\n\n/*<replacement>*/\n\n\nvar Duplex;\n/*</replacement>*/\n\nWritable.WritableState = WritableState;\n/*<replacement>*/\n\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/*</replacement>*/\n\n/*<replacement>*/\n\nvar Stream = require('./internal/streams/stream');\n/*</replacement>*/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\n\nrequire('inherits')(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called\n\n this.finalCalled = false; // drain event flag.\n\n this.needDrain = false; // at the start of calling end()\n\n this.ending = false; // when end() has been called, and returned\n\n this.ended = false; // when 'finish' is emitted\n\n this.finished = false; // has it been destroyed\n\n this.destroyed = false; // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n\n this.length = 0; // a flag to see when we're in the middle of a write.\n\n this.writing = false; // when true all writes will be buffered until .uncork() call\n\n this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n\n this.sync = true; // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n\n this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb)\n\n this.onwrite = function (er) {\n onwrite(stream, er);\n }; // the callback that the user supplies to write(chunk,encoding,cb)\n\n\n this.writecb = null; // the amount that is being written when _write is called.\n\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null; // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n\n this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n\n this.prefinished = false; // True if the error was already emitted and should not be thrown again\n\n this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end')\n\n this.autoDestroy = !!options.autoDestroy; // count buffered requests\n\n this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n\n while (current) {\n out.push(current);\n current = current.next;\n }\n\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})(); // Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\n\n\nvar realHasInstance;\n\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex'); // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex); // legacy.\n\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n} // Otherwise people can pipe Writable streams, which is just wrong.\n\n\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb\n\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n} // Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\n\n\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n\n return true;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\n\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n}); // if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\n\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false.\n\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er); // this can emit finish, and it will always happen\n // after error\n\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er); // this can emit finish, but finish must\n // always follow error\n\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n} // Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\n\n\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n} // if there's something in the buffer waiting, then process it\n\n\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n\n state.pendingcb++;\n state.lastBufferedRequest = null;\n\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks\n\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n } // ignore unnecessary end() calls.\n\n\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n\n if (err) {\n errorOrDestroy(stream, err);\n }\n\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n\n if (need) {\n prefinish(stream, state);\n\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n } // reuse the free corkReq.\n\n\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\n\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\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// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n'use strict';\n/*<replacement>*/\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n\n for (var key in obj) {\n keys.push(key);\n }\n\n return keys;\n};\n/*</replacement>*/\n\n\nmodule.exports = Duplex;\n\nvar Readable = require('./_stream_readable');\n\nvar Writable = require('./_stream_writable');\n\nrequire('inherits')(Duplex, Readable);\n\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n}); // the no-half-open enforcer\n\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return; // no more data can be written.\n // But allow more writes to happen in this tick.\n\n process.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\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\n'use strict';\n\n/*<replacement>*/\n\nvar Buffer = require('safe-buffer').Buffer;\n/*</replacement>*/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n callback.apply(this, args);\n };\n}\n\nfunction noop() {}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n\n var writableEnded = stream._writableState && stream._writableState.finished;\n\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n\n var onclose = function onclose() {\n var err;\n\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\n\nmodule.exports = eos;","'use strict';\n\nvar _Object$setPrototypeO;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar finished = require('./end-of-stream');\n\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\n\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\n\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n\n if (resolve !== null) {\n var data = iter[kStream].read(); // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\n\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\n\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\n\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n\n next: function next() {\n var _this = this;\n\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n\n if (error !== null) {\n return Promise.reject(error);\n }\n\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n } // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n\n\n var lastPromise = this[kLastPromise];\n var promise;\n\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n\n promise = new Promise(this[kHandlePromise]);\n }\n\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\n\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject]; // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n\n iterator[kError] = err;\n return;\n }\n\n var resolve = iterator[kLastResolve];\n\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\n\nmodule.exports = createReadableStreamAsyncIterator;","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\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'use strict';\n\nmodule.exports = Readable;\n/*<replacement>*/\n\nvar Duplex;\n/*</replacement>*/\n\nReadable.ReadableState = ReadableState;\n/*<replacement>*/\n\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/*</replacement>*/\n\n/*<replacement>*/\n\n\nvar Stream = require('./internal/streams/stream');\n/*</replacement>*/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n/*<replacement>*/\n\n\nvar debugUtil = require('util');\n\nvar debug;\n\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/*</replacement>*/\n\n\nvar BufferList = require('./internal/streams/buffer_list');\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; // Lazy loaded to improve the startup performance.\n\n\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\n\nrequire('inherits')(Readable, Stream);\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n\n this.sync = true; // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'end' (and potentially 'finish')\n\n this.autoDestroy = !!options.autoDestroy; // has it been destroyed\n\n this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s\n\n this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled\n\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex); // legacy\n\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\n\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n}; // Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\n\n\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n}; // Unshift should *always* be something directly out of read()\n\n\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n } // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n\n\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n\n return er;\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n}; // backwards compatibility.\n\n\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder; // If setEncoding(null), decoder.encoding equals utf8\n\n this._readableState.encoding = this._readableState.decoder.encoding; // Iterate over current buffer to convert already stored Buffers:\n\n var p = this._readableState.buffer.head;\n var content = '';\n\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n\n this._readableState.buffer.clear();\n\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n}; // Don't raise the hwm > 1GB\n\n\nvar MAX_HWM = 0x40000000;\n\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n\n return n;\n} // This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n } // If we're asking for more than the current hwm, then raise the hwm.\n\n\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n; // Don't have enough\n\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n\n return state.length;\n} // you can override either this method, or the async _read(n) below.\n\n\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up.\n\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n } // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n // if we need a readable event, then we need to do some reading.\n\n\n var doRead = state.needReadable;\n debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some\n\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n } // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n\n\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true; // if the length is currently zero, then we *need* a readable event.\n\n if (state.length === 0) state.needReadable = true; // call internal read method\n\n this._read(state.highWaterMark);\n\n state.sync = false; // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick.\n\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n\n if (state.decoder) {\n var chunk = state.decoder.end();\n\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n\n state.ended = true;\n\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n} // Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\n\n\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\n\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n } // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n\n\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n} // at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\n\n\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length) // didn't get any data, stop spinning.\n break;\n }\n\n state.readingMore = false;\n} // abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\n\n\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n\n default:\n state.pipes.push(dest);\n break;\n }\n\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n } // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n\n\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n\n function cleanup() {\n debug('cleanup'); // cleanup event handlers once the pipe is broken\n\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true; // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n src.on('data', ondata);\n\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n\n src.pause();\n }\n } // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n\n\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n } // Make sure our error handler is attached before userland ones.\n\n\n prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once.\n\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n\n dest.once('close', onclose);\n\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n } // tell the dest that it's being piped to\n\n\n dest.emit('pipe', src); // start the flow if it hasn't been started already.\n\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n }; // if we're not piping anywhere, then do nothing.\n\n if (state.pipesCount === 0) return this; // just one destination. most common case.\n\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes; // got a match.\n\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n } // slow case. multiple pipe destinations.\n\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n }\n\n return this;\n } // try to find the right one.\n\n\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n}; // set up data events if they are asked for\n// Ensure readable listeners eventually get something\n\n\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0; // Try start flowing on next tick if stream isn't explicitly paused\n\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n\n return res;\n};\n\nReadable.prototype.addListener = Readable.prototype.on;\n\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true; // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n} // pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\n\n\nReadable.prototype.resume = function () {\n var state = this._readableState;\n\n if (!state.flowing) {\n debug('resume'); // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n\n state.paused = false;\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n\n if (!state.reading) {\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n\n this._readableState.paused = true;\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n\n while (state.flowing && stream.read() !== null) {\n ;\n }\n} // wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\n\n\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode\n\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n\n if (!ret) {\n paused = true;\n stream.pause();\n }\n }); // proxy all the other methods.\n // important when wrapping filters and duplexes.\n\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n } // proxy certain important events.\n\n\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n } // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n\n\n this._read = function (n) {\n debug('wrapped _read', n);\n\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n\n return createReadableStreamAsyncIterator(this);\n };\n}\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n}); // exposed for testing purposes only.\n\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n}); // Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length); // Check that we didn't get one last unshift.\n\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\n\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n\n return from(Readable, iterable, opts);\n };\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n\n return -1;\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// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n'use strict';\n\nmodule.exports = Transform;\n\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n\nvar Duplex = require('./_stream_duplex');\n\nrequire('inherits')(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n }; // start out asking for a readable event once data is transformed.\n\n this._readableState.needReadable = true; // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n } // When the writable side finishes, then flush out anything remaining.\n\n\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n}; // This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\n\n\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n}; // Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\n\n\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data); // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\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// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\nrequire('inherits')(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar eos;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\n\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true; // request.destroy just do .end - .abort is what we want\n\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\n\nfunction call(fn) {\n fn();\n}\n\nfunction pipe(from, to) {\n return from.pipe(to);\n}\n\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\n\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\n\nmodule.exports = pipeline;","// 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\nmodule.exports = Stream;\n\nvar EE = require('events').EventEmitter;\nvar inherits = require('inherits');\n\ninherits(Stream, EE);\nStream.Readable = require('readable-stream/lib/_stream_readable.js');\nStream.Writable = require('readable-stream/lib/_stream_writable.js');\nStream.Duplex = require('readable-stream/lib/_stream_duplex.js');\nStream.Transform = require('readable-stream/lib/_stream_transform.js');\nStream.PassThrough = require('readable-stream/lib/_stream_passthrough.js');\nStream.finished = require('readable-stream/lib/internal/streams/end-of-stream.js')\nStream.pipeline = require('readable-stream/lib/internal/streams/pipeline.js')\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\n\n\n// old-style streams. Note that the pipe method (the only relevant\n// part of this class) is overridden in the Readable class.\n\nfunction Stream() {\n EE.call(this);\n}\n\nStream.prototype.pipe = function(dest, options) {\n var source = this;\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);\n\n // 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 if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend);\n source.on('close', onclose);\n }\n\n var didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n dest.end();\n }\n\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n if (typeof dest.destroy === 'function') dest.destroy();\n }\n\n // don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup();\n if (EE.listenerCount(this, 'error') === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on('error', onerror);\n dest.on('error', onerror);\n\n // remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata);\n dest.removeListener('drain', ondrain);\n\n source.removeListener('end', onend);\n source.removeListener('close', onclose);\n\n source.removeListener('error', onerror);\n dest.removeListener('error', onerror);\n\n source.removeListener('end', cleanup);\n source.removeListener('close', cleanup);\n\n dest.removeListener('close', cleanup);\n }\n\n source.on('end', cleanup);\n source.on('close', cleanup);\n\n dest.on('close', cleanup);\n\n dest.emit('pipe', source);\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest;\n};\n","\"use strict\";\nvar __spreadArray = (this && this.__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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FileHandle = void 0;\nfunction promisify(vol, fn, getResult) {\n if (getResult === void 0) { getResult = function (input) { return input; }; }\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\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)\n return reject(error);\n return resolve(getResult(result));\n }], false));\n });\n };\n}\nvar FileHandle = /** @class */ (function () {\n function FileHandle(vol, fd) {\n this.vol = vol;\n this.fd = fd;\n }\n FileHandle.prototype.appendFile = function (data, options) {\n return promisify(this.vol, 'appendFile')(this.fd, data, options);\n };\n FileHandle.prototype.chmod = function (mode) {\n return promisify(this.vol, 'fchmod')(this.fd, mode);\n };\n FileHandle.prototype.chown = function (uid, gid) {\n return promisify(this.vol, 'fchown')(this.fd, uid, gid);\n };\n FileHandle.prototype.close = function () {\n return promisify(this.vol, 'close')(this.fd);\n };\n FileHandle.prototype.datasync = function () {\n return promisify(this.vol, 'fdatasync')(this.fd);\n };\n FileHandle.prototype.read = function (buffer, offset, length, position) {\n return promisify(this.vol, 'read', function (bytesRead) { return ({ bytesRead: bytesRead, buffer: buffer }); })(this.fd, buffer, offset, length, position);\n };\n FileHandle.prototype.readFile = function (options) {\n return promisify(this.vol, 'readFile')(this.fd, options);\n };\n FileHandle.prototype.stat = function (options) {\n return promisify(this.vol, 'fstat')(this.fd, options);\n };\n FileHandle.prototype.sync = function () {\n return promisify(this.vol, 'fsync')(this.fd);\n };\n FileHandle.prototype.truncate = function (len) {\n return promisify(this.vol, 'ftruncate')(this.fd, len);\n };\n FileHandle.prototype.utimes = function (atime, mtime) {\n return promisify(this.vol, 'futimes')(this.fd, atime, mtime);\n };\n FileHandle.prototype.write = function (buffer, offset, length, position) {\n return promisify(this.vol, 'write', function (bytesWritten) { return ({ bytesWritten: bytesWritten, buffer: buffer }); })(this.fd, buffer, offset, length, position);\n };\n FileHandle.prototype.writeFile = function (data, options) {\n return promisify(this.vol, 'writeFile')(this.fd, data, options);\n };\n return FileHandle;\n}());\nexports.FileHandle = FileHandle;\nfunction createPromisesApi(vol) {\n if (typeof Promise === 'undefined')\n 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) { return new FileHandle(vol, fd); })(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 rm: function (path, options) {\n return promisify(vol, 'rm')(path, options);\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}\nexports.default = createPromisesApi;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.unixify = unixify;\nexports.correctPath = correctPath;\nvar isWin = process.platform === 'win32';\n\nfunction 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\nfunction isSeparator(str, i) {\n var _char = str[i];\n return i > 0 && (_char === '/' || isWin && _char === '\\\\');\n}\n\nfunction 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\nfunction 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\nfunction correctPath(filepath) {\n return unixify(filepath.replace(/^\\\\\\\\\\?\\\\.:\\\\/, '\\\\'));\n}","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __spreadArray = (this && this.__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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FSWatcher = exports.StatWatcher = exports.Volume = exports.toUnixTimestamp = exports.bufferToEncoding = exports.dataToBuffer = exports.dataToStr = exports.pathToSteps = exports.filenameToSteps = exports.pathToFilename = exports.flagsToNumber = exports.FLAGS = void 0;\nvar pathModule = require(\"path\");\nvar node_1 = require(\"./node\");\nvar Stats_1 = require(\"./Stats\");\nvar Dirent_1 = require(\"./Dirent\");\nvar buffer_1 = require(\"./internal/buffer\");\nvar setImmediate_1 = require(\"./setImmediate\");\nvar process_1 = require(\"./process\");\nvar setTimeoutUnref_1 = require(\"./setTimeoutUnref\");\nvar stream_1 = require(\"stream\");\nvar constants_1 = require(\"./constants\");\nvar events_1 = require(\"events\");\nvar encoding_1 = require(\"./encoding\");\nvar errors = require(\"./internal/errors\");\nvar util = require(\"util\");\nvar promises_1 = require(\"./promises\");\nvar resolveCrossPlatform = pathModule.resolve;\nvar O_RDONLY = constants_1.constants.O_RDONLY, O_WRONLY = constants_1.constants.O_WRONLY, O_RDWR = constants_1.constants.O_RDWR, O_CREAT = constants_1.constants.O_CREAT, O_EXCL = constants_1.constants.O_EXCL, O_TRUNC = constants_1.constants.O_TRUNC, O_APPEND = constants_1.constants.O_APPEND, O_SYNC = constants_1.constants.O_SYNC, O_DIRECTORY = constants_1.constants.O_DIRECTORY, F_OK = constants_1.constants.F_OK, COPYFILE_EXCL = constants_1.constants.COPYFILE_EXCL, COPYFILE_FICLONE_FORCE = constants_1.constants.COPYFILE_FICLONE_FORCE;\nvar _a = pathModule.posix ? pathModule.posix : pathModule, sep = _a.sep, relative = _a.relative, join = _a.join, dirname = _a.dirname;\nvar isWin = process_1.default.platform === 'win32';\nvar kMinPoolSpace = 128;\n// const kMaxLength = require('buffer').kMaxLength;\n// ---------------------------------------- Error messages\n// TODO: Use `internal/errors.js` in the future.\nvar 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};\nvar ERRSTR_OPTS = function (tipeof) { return \"Expected options to be either an object or a string, but got \".concat(tipeof, \" instead\"); };\n// const ERRSTR_FLAG = flag => `Unknown file open flag: ${flag}`;\nvar ENOENT = 'ENOENT';\nvar EBADF = 'EBADF';\nvar EINVAL = 'EINVAL';\nvar EPERM = 'EPERM';\nvar EPROTO = 'EPROTO';\nvar EEXIST = 'EEXIST';\nvar ENOTDIR = 'ENOTDIR';\nvar EMFILE = 'EMFILE';\nvar EACCES = 'EACCES';\nvar EISDIR = 'EISDIR';\nvar ENOTEMPTY = 'ENOTEMPTY';\nvar ENOSYS = 'ENOSYS';\nvar ERR_FS_EISDIR = 'ERR_FS_EISDIR';\nfunction formatError(errorCode, func, path, path2) {\n if (func === void 0) { func = ''; }\n if (path === void 0) { path = ''; }\n if (path2 === void 0) { path2 = ''; }\n var pathFormatted = '';\n if (path)\n pathFormatted = \" '\".concat(path, \"'\");\n if (path2)\n pathFormatted += \" -> '\".concat(path2, \"'\");\n switch (errorCode) {\n case ENOENT:\n return \"ENOENT: no such file or directory, \".concat(func).concat(pathFormatted);\n case EBADF:\n return \"EBADF: bad file descriptor, \".concat(func).concat(pathFormatted);\n case EINVAL:\n return \"EINVAL: invalid argument, \".concat(func).concat(pathFormatted);\n case EPERM:\n return \"EPERM: operation not permitted, \".concat(func).concat(pathFormatted);\n case EPROTO:\n return \"EPROTO: protocol error, \".concat(func).concat(pathFormatted);\n case EEXIST:\n return \"EEXIST: file already exists, \".concat(func).concat(pathFormatted);\n case ENOTDIR:\n return \"ENOTDIR: not a directory, \".concat(func).concat(pathFormatted);\n case EISDIR:\n return \"EISDIR: illegal operation on a directory, \".concat(func).concat(pathFormatted);\n case EACCES:\n return \"EACCES: permission denied, \".concat(func).concat(pathFormatted);\n case ENOTEMPTY:\n return \"ENOTEMPTY: directory not empty, \".concat(func).concat(pathFormatted);\n case EMFILE:\n return \"EMFILE: too many open files, \".concat(func).concat(pathFormatted);\n case ENOSYS:\n return \"ENOSYS: function not implemented, \".concat(func).concat(pathFormatted);\n case ERR_FS_EISDIR:\n return \"[ERR_FS_EISDIR]: Path is a directory: \".concat(func, \" returned EISDIR (is a directory) \").concat(path);\n default:\n return \"\".concat(errorCode, \": error occurred, \").concat(func).concat(pathFormatted);\n }\n}\nfunction createError(errorCode, func, path, path2, Constructor) {\n if (func === void 0) { func = ''; }\n if (path === void 0) { path = ''; }\n if (path2 === void 0) { path2 = ''; }\n if (Constructor === void 0) { Constructor = Error; }\n var error = new Constructor(formatError(errorCode, func, path, path2));\n error.code = errorCode;\n if (path) {\n error.path = path;\n }\n return error;\n}\n// ---------------------------------------- Flags\n// List of file `flags` as defined by Node.\nvar FLAGS;\n(function (FLAGS) {\n // Open file for reading. An exception occurs if the file does not exist.\n FLAGS[FLAGS[\"r\"] = O_RDONLY] = \"r\";\n // Open file for reading and writing. An exception occurs if the file does not exist.\n FLAGS[FLAGS[\"r+\"] = O_RDWR] = \"r+\";\n // Open file for reading in synchronous mode. Instructs the operating system to bypass the local file system cache.\n FLAGS[FLAGS[\"rs\"] = O_RDONLY | O_SYNC] = \"rs\";\n FLAGS[FLAGS[\"sr\"] = FLAGS.rs] = \"sr\";\n // Open file for reading and writing, telling the OS to open it synchronously. See notes for 'rs' about using this with caution.\n FLAGS[FLAGS[\"rs+\"] = O_RDWR | O_SYNC] = \"rs+\";\n FLAGS[FLAGS[\"sr+\"] = FLAGS['rs+']] = \"sr+\";\n // Open file for writing. The file is created (if it does not exist) or truncated (if it exists).\n FLAGS[FLAGS[\"w\"] = O_WRONLY | O_CREAT | O_TRUNC] = \"w\";\n // Like 'w' but fails if path exists.\n FLAGS[FLAGS[\"wx\"] = O_WRONLY | O_CREAT | O_TRUNC | O_EXCL] = \"wx\";\n FLAGS[FLAGS[\"xw\"] = FLAGS.wx] = \"xw\";\n // Open file for reading and writing. The file is created (if it does not exist) or truncated (if it exists).\n FLAGS[FLAGS[\"w+\"] = O_RDWR | O_CREAT | O_TRUNC] = \"w+\";\n // Like 'w+' but fails if path exists.\n FLAGS[FLAGS[\"wx+\"] = O_RDWR | O_CREAT | O_TRUNC | O_EXCL] = \"wx+\";\n FLAGS[FLAGS[\"xw+\"] = FLAGS['wx+']] = \"xw+\";\n // Open file for appending. The file is created if it does not exist.\n FLAGS[FLAGS[\"a\"] = O_WRONLY | O_APPEND | O_CREAT] = \"a\";\n // Like 'a' but fails if path exists.\n FLAGS[FLAGS[\"ax\"] = O_WRONLY | O_APPEND | O_CREAT | O_EXCL] = \"ax\";\n FLAGS[FLAGS[\"xa\"] = FLAGS.ax] = \"xa\";\n // Open file for reading and appending. The file is created if it does not exist.\n FLAGS[FLAGS[\"a+\"] = O_RDWR | O_APPEND | O_CREAT] = \"a+\";\n // Like 'a+' but fails if path exists.\n FLAGS[FLAGS[\"ax+\"] = O_RDWR | O_APPEND | O_CREAT | O_EXCL] = \"ax+\";\n FLAGS[FLAGS[\"xa+\"] = FLAGS['ax+']] = \"xa+\";\n})(FLAGS = exports.FLAGS || (exports.FLAGS = {}));\nfunction flagsToNumber(flags) {\n if (typeof flags === 'number')\n return flags;\n if (typeof flags === 'string') {\n var flagsNum = FLAGS[flags];\n if (typeof flagsNum !== 'undefined')\n return flagsNum;\n }\n // throw new TypeError(formatError(ERRSTR_FLAG(flags)));\n throw new errors.TypeError('ERR_INVALID_OPT_VALUE', 'flags', flags);\n}\nexports.flagsToNumber = flagsToNumber;\n// ---------------------------------------- Options\nfunction getOptions(defaults, options) {\n var opts;\n if (!options)\n return defaults;\n else {\n var tipeof = typeof options;\n switch (tipeof) {\n case 'string':\n opts = Object.assign({}, defaults, { encoding: options });\n break;\n case 'object':\n opts = Object.assign({}, defaults, options);\n break;\n default:\n throw TypeError(ERRSTR_OPTS(tipeof));\n }\n }\n if (opts.encoding !== 'buffer')\n (0, encoding_1.assertEncoding)(opts.encoding);\n return opts;\n}\nfunction optsGenerator(defaults) {\n return function (options) { return getOptions(defaults, options); };\n}\nfunction validateCallback(callback) {\n if (typeof callback !== 'function')\n throw TypeError(ERRSTR.CB);\n return callback;\n}\nfunction optsAndCbGenerator(getOpts) {\n return function (options, callback) {\n return typeof options === 'function' ? [getOpts(), options] : [getOpts(options), validateCallback(callback)];\n };\n}\nvar optsDefaults = {\n encoding: 'utf8',\n};\nvar getDefaultOpts = optsGenerator(optsDefaults);\nvar getDefaultOptsAndCb = optsAndCbGenerator(getDefaultOpts);\nvar readFileOptsDefaults = {\n flag: 'r',\n};\nvar getReadFileOptions = optsGenerator(readFileOptsDefaults);\nvar writeFileDefaults = {\n encoding: 'utf8',\n mode: 438 /* MODE.DEFAULT */,\n flag: FLAGS[FLAGS.w],\n};\nvar getWriteFileOptions = optsGenerator(writeFileDefaults);\nvar appendFileDefaults = {\n encoding: 'utf8',\n mode: 438 /* MODE.DEFAULT */,\n flag: FLAGS[FLAGS.a],\n};\nvar getAppendFileOpts = optsGenerator(appendFileDefaults);\nvar getAppendFileOptsAndCb = optsAndCbGenerator(getAppendFileOpts);\nvar realpathDefaults = optsDefaults;\nvar getRealpathOptions = optsGenerator(realpathDefaults);\nvar getRealpathOptsAndCb = optsAndCbGenerator(getRealpathOptions);\nvar mkdirDefaults = {\n mode: 511 /* MODE.DIR */,\n recursive: false,\n};\nvar getMkdirOptions = function (options) {\n if (typeof options === 'number')\n return Object.assign({}, mkdirDefaults, { mode: options });\n return Object.assign({}, mkdirDefaults, options);\n};\nvar rmdirDefaults = {\n recursive: false,\n};\nvar getRmdirOptions = function (options) {\n return Object.assign({}, rmdirDefaults, options);\n};\nvar getRmOpts = optsGenerator(optsDefaults);\nvar getRmOptsAndCb = optsAndCbGenerator(getRmOpts);\nvar readdirDefaults = {\n encoding: 'utf8',\n withFileTypes: false,\n};\nvar getReaddirOptions = optsGenerator(readdirDefaults);\nvar getReaddirOptsAndCb = optsAndCbGenerator(getReaddirOptions);\nvar statDefaults = {\n bigint: false,\n};\nvar getStatOptions = function (options) {\n if (options === void 0) { options = {}; }\n return Object.assign({}, statDefaults, options);\n};\nvar getStatOptsAndCb = function (options, callback) {\n return typeof options === 'function' ? [getStatOptions(), options] : [getStatOptions(options), validateCallback(callback)];\n};\n// ---------------------------------------- Utility functions\nfunction getPathFromURLPosix(url) {\n if (url.hostname !== '') {\n throw new errors.TypeError('ERR_INVALID_FILE_URL_HOST', process_1.default.platform);\n }\n var pathname = url.pathname;\n for (var n = 0; n < pathname.length; n++) {\n if (pathname[n] === '%') {\n var third = pathname.codePointAt(n + 2) | 0x20;\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 return decodeURIComponent(pathname);\n}\nfunction pathToFilename(path) {\n if (typeof path !== 'string' && !buffer_1.Buffer.isBuffer(path)) {\n try {\n if (!(path instanceof require('url').URL))\n throw new TypeError(ERRSTR.PATH_STR);\n }\n catch (err) {\n throw new TypeError(ERRSTR.PATH_STR);\n }\n path = getPathFromURLPosix(path);\n }\n var pathString = String(path);\n nullCheck(pathString);\n // return slash(pathString);\n return pathString;\n}\nexports.pathToFilename = pathToFilename;\nvar resolve = function (filename, base) {\n if (base === void 0) { base = process_1.default.cwd(); }\n return resolveCrossPlatform(base, filename);\n};\nif (isWin) {\n var _resolve_1 = resolve;\n var unixify_1 = require('fs-monkey/lib/correctPath').unixify;\n resolve = function (filename, base) { return unixify_1(_resolve_1(filename, base)); };\n}\nfunction filenameToSteps(filename, base) {\n var fullPath = resolve(filename, base);\n var fullPathSansSlash = fullPath.substring(1);\n if (!fullPathSansSlash)\n return [];\n return fullPathSansSlash.split(sep);\n}\nexports.filenameToSteps = filenameToSteps;\nfunction pathToSteps(path) {\n return filenameToSteps(pathToFilename(path));\n}\nexports.pathToSteps = pathToSteps;\nfunction dataToStr(data, encoding) {\n if (encoding === void 0) { encoding = encoding_1.ENCODING_UTF8; }\n if (buffer_1.Buffer.isBuffer(data))\n return data.toString(encoding);\n else if (data instanceof Uint8Array)\n return (0, buffer_1.bufferFrom)(data).toString(encoding);\n else\n return String(data);\n}\nexports.dataToStr = dataToStr;\nfunction dataToBuffer(data, encoding) {\n if (encoding === void 0) { encoding = encoding_1.ENCODING_UTF8; }\n if (buffer_1.Buffer.isBuffer(data))\n return data;\n else if (data instanceof Uint8Array)\n return (0, buffer_1.bufferFrom)(data);\n else\n return (0, buffer_1.bufferFrom)(String(data), encoding);\n}\nexports.dataToBuffer = dataToBuffer;\nfunction bufferToEncoding(buffer, encoding) {\n if (!encoding || encoding === 'buffer')\n return buffer;\n else\n return buffer.toString(encoding);\n}\nexports.bufferToEncoding = bufferToEncoding;\nfunction nullCheck(path, callback) {\n if (('' + path).indexOf('\\u0000') !== -1) {\n var er = new Error('Path must be a string without null bytes');\n er.code = ENOENT;\n if (typeof callback !== 'function')\n throw er;\n process_1.default.nextTick(callback, er);\n return false;\n }\n return true;\n}\nfunction _modeToNumber(mode, def) {\n if (typeof mode === 'number')\n return mode;\n if (typeof mode === 'string')\n return parseInt(mode, 8);\n if (def)\n return modeToNumber(def);\n return undefined;\n}\nfunction modeToNumber(mode, def) {\n var result = _modeToNumber(mode, def);\n if (typeof result !== 'number' || isNaN(result))\n throw new TypeError(ERRSTR.MODE_INT);\n return result;\n}\nfunction isFd(path) {\n return path >>> 0 === path;\n}\nfunction validateFd(fd) {\n if (!isFd(fd))\n throw TypeError(ERRSTR.FD);\n}\n// converts Date or number to a fractional UNIX timestamp\nfunction toUnixTimestamp(time) {\n // tslint:disable-next-line triple-equals\n if (typeof time === 'string' && +time == time) {\n return +time;\n }\n if (time instanceof Date) {\n return time.getTime() / 1000;\n }\n if (isFinite(time)) {\n if (time < 0) {\n return Date.now() / 1000;\n }\n return time;\n }\n throw new Error('Cannot parse time: ' + time);\n}\nexports.toUnixTimestamp = toUnixTimestamp;\nfunction validateUid(uid) {\n if (typeof uid !== 'number')\n throw TypeError(ERRSTR.UID);\n}\nfunction validateGid(gid) {\n if (typeof gid !== 'number')\n throw TypeError(ERRSTR.GID);\n}\nfunction flattenJSON(nestedJSON) {\n var flatJSON = {};\n function flatten(pathPrefix, node) {\n for (var path in node) {\n var contentOrNode = node[path];\n var joinedPath = join(pathPrefix, path);\n if (typeof contentOrNode === 'string') {\n flatJSON[joinedPath] = contentOrNode;\n }\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 }\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 flatten('', nestedJSON);\n return flatJSON;\n}\n/**\n * `Volume` represents a file system.\n */\nvar Volume = /** @class */ (function () {\n function Volume(props) {\n if (props === void 0) { props = {}; }\n // I-node number counter.\n this.ino = 0;\n // A mapping for i-node numbers to i-nodes (`Node`);\n this.inodes = {};\n // List of released i-node numbers, for reuse.\n this.releasedInos = [];\n // A mapping for file descriptors to `File`s.\n this.fds = {};\n // A list of reusable (opened and closed) file descriptors, that should be\n // used first before creating a new file descriptor.\n this.releasedFds = [];\n // Max number of open files.\n this.maxFiles = 10000;\n // Current number of open files.\n this.openFiles = 0;\n this.promisesApi = (0, promises_1.default)(this);\n this.statWatchers = {};\n this.props = Object.assign({ Node: node_1.Node, Link: node_1.Link, File: node_1.File }, props);\n var root = this.createLink();\n root.setNode(this.createNode(true));\n var self = this; // tslint:disable-line no-this-assignment\n this.StatWatcher = /** @class */ (function (_super) {\n __extends(StatWatcher, _super);\n function StatWatcher() {\n return _super.call(this, self) || this;\n }\n return StatWatcher;\n }(StatWatcher));\n var _ReadStream = FsReadStream;\n this.ReadStream = /** @class */ (function (_super) {\n __extends(class_1, _super);\n function class_1() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return _super.apply(this, __spreadArray([self], args, false)) || this;\n }\n return class_1;\n }(_ReadStream));\n var _WriteStream = FsWriteStream;\n this.WriteStream = /** @class */ (function (_super) {\n __extends(class_2, _super);\n function class_2() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return _super.apply(this, __spreadArray([self], args, false)) || this;\n }\n return class_2;\n }(_WriteStream));\n this.FSWatcher = /** @class */ (function (_super) {\n __extends(FSWatcher, _super);\n function FSWatcher() {\n return _super.call(this, self) || this;\n }\n return FSWatcher;\n }(FSWatcher));\n // root.setChild('.', root);\n // root.getNode().nlink++;\n // root.setChild('..', root);\n // root.getNode().nlink++;\n this.root = root;\n }\n Volume.fromJSON = function (json, cwd) {\n var vol = new Volume();\n vol.fromJSON(json, cwd);\n return vol;\n };\n Volume.fromNestedJSON = function (json, cwd) {\n var vol = new Volume();\n vol.fromNestedJSON(json, cwd);\n return vol;\n };\n Object.defineProperty(Volume.prototype, \"promises\", {\n get: function () {\n if (this.promisesApi === null)\n throw new Error('Promise is not supported in this environment.');\n return this.promisesApi;\n },\n enumerable: false,\n configurable: true\n });\n Volume.prototype.createLink = function (parent, name, isDirectory, perm) {\n if (isDirectory === void 0) { isDirectory = false; }\n if (!parent) {\n return new this.props.Link(this, null, '');\n }\n if (!name) {\n throw new Error('createLink: name cannot be empty');\n }\n return parent.createChild(name, this.createNode(isDirectory, perm));\n };\n Volume.prototype.deleteLink = function (link) {\n var parent = link.parent;\n if (parent) {\n parent.deleteChild(link);\n return true;\n }\n return false;\n };\n Volume.prototype.newInoNumber = function () {\n var releasedFd = this.releasedInos.pop();\n if (releasedFd)\n return releasedFd;\n else {\n this.ino = (this.ino + 1) % 0xffffffff;\n return this.ino;\n }\n };\n Volume.prototype.newFdNumber = function () {\n var releasedFd = this.releasedFds.pop();\n return typeof releasedFd === 'number' ? releasedFd : Volume.fd--;\n };\n Volume.prototype.createNode = function (isDirectory, perm) {\n if (isDirectory === void 0) { isDirectory = false; }\n var node = new this.props.Node(this.newInoNumber(), perm);\n if (isDirectory)\n node.setIsDirectory();\n this.inodes[node.ino] = node;\n return node;\n };\n Volume.prototype.getNode = function (ino) {\n return this.inodes[ino];\n };\n Volume.prototype.deleteNode = function (node) {\n node.del();\n delete this.inodes[node.ino];\n this.releasedInos.push(node.ino);\n };\n // Generates 6 character long random string, used by `mkdtemp`.\n Volume.prototype.genRndStr = function () {\n var str = (Math.random() + 1).toString(36).substring(2, 8);\n if (str.length === 6)\n return str;\n else\n return this.genRndStr();\n };\n // Returns a `Link` (hard link) referenced by path \"split\" into steps.\n Volume.prototype.getLink = function (steps) {\n return this.root.walk(steps);\n };\n // Just link `getLink`, but throws a correct user error, if link to found.\n Volume.prototype.getLinkOrThrow = function (filename, funcName) {\n var steps = filenameToSteps(filename);\n var link = this.getLink(steps);\n if (!link)\n throw createError(ENOENT, funcName, filename);\n return link;\n };\n // Just like `getLink`, but also dereference/resolves symbolic links.\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 while (i < steps.length) {\n var step = steps[i];\n link = link.getChild(step);\n if (!link)\n return null;\n var node = link.getNode();\n if (node.isSymlink()) {\n steps = node.symlink.concat(steps.slice(i + 1));\n link = this.root;\n i = 0;\n continue;\n }\n i++;\n }\n return link;\n };\n // Just like `getLinkOrThrow`, but also dereference/resolves symbolic links.\n Volume.prototype.getResolvedLinkOrThrow = function (filename, funcName) {\n var link = this.getResolvedLink(filename);\n if (!link)\n throw createError(ENOENT, funcName, filename);\n return link;\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 };\n // Just like `getLinkOrThrow`, but also verifies that the link is a directory.\n Volume.prototype.getLinkAsDirOrThrow = function (filename, funcName) {\n var link = this.getLinkOrThrow(filename, funcName);\n if (!link.getNode().isDirectory())\n throw createError(ENOTDIR, funcName, filename);\n return link;\n };\n // Get the immediate parent directory of the link.\n Volume.prototype.getLinkParent = function (steps) {\n return this.root.walk(steps, steps.length - 1);\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)\n throw createError(ENOENT, funcName, sep + steps.join(sep));\n if (!link.getNode().isDirectory())\n throw createError(ENOTDIR, funcName, sep + steps.join(sep));\n return link;\n };\n Volume.prototype.getFileByFd = function (fd) {\n return this.fds[String(fd)];\n };\n Volume.prototype.getFileByFdOrThrow = function (fd, funcName) {\n if (!isFd(fd))\n throw TypeError(ERRSTR.FD);\n var file = this.getFileByFd(fd);\n if (!file)\n throw createError(EBADF, funcName);\n return file;\n };\n /**\n * @todo This is not used anymore. Remove.\n */\n /*\n private getNodeByIdOrCreate(id: TFileId, flags: number, perm: number): Node {\n if (typeof id === 'number') {\n const file = this.getFileByFd(id);\n if (!file) throw Error('File nto found');\n return file.node;\n } else {\n const steps = pathToSteps(id as PathLike);\n let link = this.getLink(steps);\n if (link) return link.getNode();\n \n // Try creating a node if not found.\n if (flags & O_CREAT) {\n const dirLink = this.getLinkParent(steps);\n if (dirLink) {\n const name = steps[steps.length - 1];\n link = this.createLink(dirLink, name, 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 validateCallback(callback);\n (0, setImmediate_1.default)(function () {\n var result;\n try {\n result = method.apply(_this, args);\n }\n catch (err) {\n callback(err);\n return;\n }\n callback(null, result);\n });\n };\n Volume.prototype._toJSON = function (link, json, path) {\n var _a;\n if (link === void 0) { link = this.root; }\n if (json === void 0) { json = {}; }\n var isEmpty = true;\n var children = link.children;\n if (link.getNode().isFile()) {\n children = (_a = {}, _a[link.getName()] = link.parent.getChild(link.getName()), _a);\n link = link.parent;\n }\n for (var name_1 in children) {\n isEmpty = false;\n var child = link.getChild(name_1);\n if (!child) {\n throw new Error('_toJSON: unexpected undefined');\n }\n var node = child.getNode();\n if (node.isFile()) {\n var filename = child.getPath();\n if (path)\n filename = relative(path, filename);\n json[filename] = node.getString();\n }\n else if (node.isDirectory()) {\n this._toJSON(child, json, path);\n }\n }\n var dirPath = link.getPath();\n if (path)\n dirPath = relative(path, dirPath);\n if (dirPath && isEmpty) {\n json[dirPath] = null;\n }\n return json;\n };\n Volume.prototype.toJSON = function (paths, json, isRelative) {\n if (json === void 0) { json = {}; }\n if (isRelative === void 0) { isRelative = false; }\n var links = [];\n if (paths) {\n if (!(paths instanceof Array))\n paths = [paths];\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)\n continue;\n links.push(link);\n }\n }\n else {\n links.push(this.root);\n }\n if (!links.length)\n return json;\n for (var _a = 0, links_1 = links; _a < links_1.length; _a++) {\n var link = links_1[_a];\n this._toJSON(link, json, isRelative ? link.getPath() : '');\n }\n return json;\n };\n Volume.prototype.fromJSON = function (json, cwd) {\n if (cwd === void 0) { cwd = process_1.default.cwd(); }\n for (var filename in json) {\n var data = json[filename];\n filename = resolve(filename, cwd);\n if (typeof data === 'string') {\n var dir = dirname(filename);\n this.mkdirpBase(dir, 511 /* MODE.DIR */);\n this.writeFileSync(filename, data);\n }\n else {\n this.mkdirpBase(filename, 511 /* MODE.DIR */);\n }\n }\n };\n Volume.prototype.fromNestedJSON = function (json, cwd) {\n this.fromJSON(flattenJSON(json), cwd);\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 };\n // Legacy interface\n Volume.prototype.mountSync = function (mountpoint, json) {\n this.fromJSON(json, mountpoint);\n };\n Volume.prototype.openLink = function (link, flagsNum, resolveSymlinks) {\n if (resolveSymlinks === void 0) { resolveSymlinks = true; }\n if (this.openFiles >= this.maxFiles) {\n // Too many open files.\n throw createError(EMFILE, 'open', link.getPath());\n }\n // Resolve symlinks.\n var realLink = link;\n if (resolveSymlinks)\n realLink = this.resolveSymlinks(link);\n if (!realLink)\n throw createError(ENOENT, 'open', link.getPath());\n var node = realLink.getNode();\n // Check whether node is a directory\n if (node.isDirectory()) {\n if ((flagsNum & (O_RDONLY | O_RDWR | O_WRONLY)) !== O_RDONLY)\n throw createError(EISDIR, 'open', link.getPath());\n }\n else {\n if (flagsNum & O_DIRECTORY)\n throw createError(ENOTDIR, 'open', link.getPath());\n }\n // Check node permissions\n if (!(flagsNum & O_WRONLY)) {\n if (!node.canRead()) {\n throw createError(EACCES, 'open', link.getPath());\n }\n }\n if (flagsNum & O_RDWR) {\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)\n file.truncate();\n return file;\n };\n Volume.prototype.openFile = function (filename, flagsNum, modeNum, resolveSymlinks) {\n if (resolveSymlinks === void 0) { resolveSymlinks = true; }\n var steps = filenameToSteps(filename);\n var link = resolveSymlinks ? this.getResolvedLink(steps) : this.getLink(steps);\n if (link && flagsNum & O_EXCL)\n throw createError(EEXIST, 'open', filename);\n // Try creating a new file, if it does not exist.\n if (!link && flagsNum & O_CREAT) {\n // const dirLink: Link = this.getLinkParent(steps);\n var dirLink = this.getResolvedLink(steps.slice(0, steps.length - 1));\n // if(!dirLink) throw createError(ENOENT, 'open', filename);\n if (!dirLink)\n throw createError(ENOENT, 'open', sep + steps.join(sep));\n if (flagsNum & O_CREAT && typeof modeNum === 'number') {\n link = this.createLink(dirLink, steps[steps.length - 1], false, modeNum);\n }\n }\n if (link)\n return this.openLink(link, flagsNum, resolveSymlinks);\n throw createError(ENOENT, 'open', filename);\n };\n Volume.prototype.openBase = function (filename, flagsNum, modeNum, resolveSymlinks) {\n if (resolveSymlinks === void 0) { resolveSymlinks = true; }\n var file = this.openFile(filename, flagsNum, modeNum, resolveSymlinks);\n if (!file)\n throw createError(ENOENT, 'open', filename);\n return file.fd;\n };\n Volume.prototype.openSync = function (path, flags, mode) {\n if (mode === void 0) { mode = 438 /* MODE.DEFAULT */; }\n // Validate (1) mode; (2) path; (3) flags - in that order.\n var modeNum = modeToNumber(mode);\n var fileName = pathToFilename(path);\n var flagsNum = flagsToNumber(flags);\n return this.openBase(fileName, flagsNum, modeNum);\n };\n Volume.prototype.open = function (path, flags, a, b) {\n var mode = a;\n var callback = b;\n if (typeof a === 'function') {\n mode = 438 /* MODE.DEFAULT */;\n callback = a;\n }\n mode = mode || 438 /* MODE.DEFAULT */;\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 Volume.prototype.closeFile = function (file) {\n if (!this.fds[file.fd])\n return;\n this.openFiles--;\n delete this.fds[file.fd];\n this.releasedFds.push(file.fd);\n };\n Volume.prototype.closeSync = function (fd) {\n validateFd(fd);\n var file = this.getFileByFdOrThrow(fd, 'close');\n this.closeFile(file);\n };\n Volume.prototype.close = function (fd, callback) {\n validateFd(fd);\n this.wrapAsync(this.closeSync, [fd], callback);\n };\n Volume.prototype.openFileOrGetById = function (id, flagsNum, modeNum) {\n if (typeof id === 'number') {\n var file = this.fds[id];\n if (!file)\n throw createError(ENOENT);\n return file;\n }\n else {\n return this.openFile(pathToFilename(id), flagsNum, modeNum);\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 Volume.prototype.readSync = function (fd, buffer, offset, length, position) {\n validateFd(fd);\n return this.readBase(fd, buffer, offset, length, position);\n };\n Volume.prototype.read = function (fd, buffer, offset, length, position, callback) {\n var _this = this;\n validateCallback(callback);\n // This `if` branch is from Node.js\n if (length === 0) {\n return process_1.default.nextTick(function () {\n if (callback)\n callback(null, 0, buffer);\n });\n }\n (0, setImmediate_1.default)(function () {\n try {\n var bytes = _this.readBase(fd, buffer, offset, length, position);\n callback(null, bytes, buffer);\n }\n catch (err) {\n callback(err);\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)\n fd = id;\n else {\n var filename = pathToFilename(id);\n var steps = filenameToSteps(filename);\n var link = this.getResolvedLink(steps);\n if (link) {\n var node = link.getNode();\n if (node.isDirectory())\n throw createError(EISDIR, 'open', link.getPath());\n }\n fd = this.openSync(id, flagsNum);\n }\n try {\n result = bufferToEncoding(this.getFileByFdOrThrow(fd).getBuffer(), encoding);\n }\n finally {\n if (!userOwnsFd) {\n this.closeSync(fd);\n }\n }\n return result;\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 Volume.prototype.readFile = function (id, a, b) {\n var _a = optsAndCbGenerator(getReadFileOptions)(a, b), opts = _a[0], callback = _a[1];\n var flagsNum = flagsToNumber(opts.flag);\n this.wrapAsync(this.readFileBase, [id, flagsNum, opts.encoding], callback);\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 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 if (isBuffer) {\n offset = (b || 0) | 0;\n length = c;\n position = d;\n }\n else {\n position = b;\n encoding = c;\n }\n var buf = dataToBuffer(a, encoding);\n if (isBuffer) {\n if (typeof length === 'undefined') {\n length = buf.length;\n }\n }\n else {\n offset = 0;\n length = buf.length;\n }\n return this.writeBase(fd, buf, offset, length, position);\n };\n Volume.prototype.write = function (fd, a, b, c, d, e) {\n var _this = this;\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 if (tipa !== 'string') {\n if (tipb === 'function') {\n callback = b;\n }\n else if (tipc === 'function') {\n offset = b | 0;\n callback = c;\n }\n else if (tipd === 'function') {\n offset = b | 0;\n length = c;\n callback = d;\n }\n else {\n offset = b | 0;\n length = c;\n position = d;\n callback = e;\n }\n }\n else {\n if (tipb === 'function') {\n callback = b;\n }\n else if (tipc === 'function') {\n position = b;\n callback = c;\n }\n else if (tipd === 'function') {\n position = b;\n encoding = c;\n callback = d;\n }\n }\n var buf = dataToBuffer(a, encoding);\n if (tipa !== 'string') {\n if (typeof length === 'undefined')\n length = buf.length;\n }\n else {\n offset = 0;\n length = buf.length;\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 if (tipa !== 'string') {\n cb(null, bytes, buf);\n }\n else {\n cb(null, bytes, a);\n }\n }\n catch (err) {\n cb(err);\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)\n fd = id;\n else {\n fd = this.openBase(pathToFilename(id), flagsNum, modeNum);\n // 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 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)\n position += written;\n }\n }\n finally {\n if (!isUserFd)\n this.closeSync(fd);\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 Volume.prototype.writeFile = function (id, data, a, b) {\n var options = a;\n var callback = b;\n if (typeof a === 'function') {\n options = writeFileDefaults;\n callback = a;\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 Volume.prototype.linkBase = function (filename1, filename2) {\n var steps1 = filenameToSteps(filename1);\n var link1 = this.getLink(steps1);\n if (!link1)\n throw createError(ENOENT, 'link', filename1, filename2);\n var steps2 = filenameToSteps(filename2);\n // Check new link directory exists.\n var dir2 = this.getLinkParent(steps2);\n if (!dir2)\n throw createError(ENOENT, 'link', filename1, filename2);\n var name = steps2[steps2.length - 1];\n // Check if new file already exists.\n if (dir2.getChild(name))\n throw createError(EEXIST, 'link', filename1, filename2);\n var node = link1.getNode();\n node.nlink++;\n dir2.createChild(name, node);\n };\n Volume.prototype.copyFileBase = function (src, dest, flags) {\n var buf = this.readFileSync(src);\n if (flags & COPYFILE_EXCL) {\n if (this.existsSync(dest)) {\n throw createError(EEXIST, 'copyFile', src, dest);\n }\n }\n if (flags & COPYFILE_FICLONE_FORCE) {\n throw createError(ENOSYS, 'copyFile', src, dest);\n }\n this.writeFileBase(dest, buf, FLAGS.w, 438 /* MODE.DEFAULT */);\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 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 if (typeof a === 'function') {\n flags = 0;\n callback = a;\n }\n else {\n flags = a;\n callback = b;\n }\n validateCallback(callback);\n this.wrapAsync(this.copyFileBase, [srcFilename, destFilename, flags], callback);\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 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 Volume.prototype.unlinkBase = function (filename) {\n var steps = filenameToSteps(filename);\n var link = this.getLink(steps);\n if (!link)\n throw createError(ENOENT, 'unlink', filename);\n // TODO: Check if it is file, dir, other...\n if (link.length)\n throw Error('Dir not empty...');\n this.deleteLink(link);\n var node = link.getNode();\n node.nlink--;\n // When all hard links to i-node are deleted, remove the i-node, too.\n if (node.nlink <= 0) {\n this.deleteNode(node);\n }\n };\n Volume.prototype.unlinkSync = function (path) {\n var filename = pathToFilename(path);\n this.unlinkBase(filename);\n };\n Volume.prototype.unlink = function (path, callback) {\n var filename = pathToFilename(path);\n this.wrapAsync(this.unlinkBase, [filename], callback);\n };\n Volume.prototype.symlinkBase = function (targetFilename, pathFilename) {\n var pathSteps = filenameToSteps(pathFilename);\n // Check if directory exists, where we about to create a symlink.\n var dirLink = this.getLinkParent(pathSteps);\n if (!dirLink)\n throw createError(ENOENT, 'symlink', targetFilename, pathFilename);\n var name = pathSteps[pathSteps.length - 1];\n // Check if new file already exists.\n if (dirLink.getChild(name))\n throw createError(EEXIST, 'symlink', targetFilename, pathFilename);\n // Create symlink.\n var symlink = dirLink.createChild(name);\n symlink.getNode().makeSymlink(filenameToSteps(targetFilename));\n return symlink;\n };\n // `type` argument works only on Windows.\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 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 Volume.prototype.realpathBase = function (filename, encoding) {\n var steps = filenameToSteps(filename);\n var realLink = this.getResolvedLink(steps);\n if (!realLink)\n throw createError(ENOENT, 'realpath', filename);\n return (0, encoding_1.strToEncoding)(realLink.getPath() || '/', encoding);\n };\n Volume.prototype.realpathSync = function (path, options) {\n return this.realpathBase(pathToFilename(path), getRealpathOptions(options).encoding);\n };\n Volume.prototype.realpath = function (path, a, b) {\n var _a = getRealpathOptsAndCb(a, b), opts = _a[0], callback = _a[1];\n var pathFilename = pathToFilename(path);\n this.wrapAsync(this.realpathBase, [pathFilename, opts.encoding], callback);\n };\n Volume.prototype.lstatBase = function (filename, bigint, throwIfNoEntry) {\n if (bigint === void 0) { bigint = false; }\n if (throwIfNoEntry === void 0) { throwIfNoEntry = false; }\n var link = this.getLink(filenameToSteps(filename));\n if (link) {\n return Stats_1.default.build(link.getNode(), bigint);\n }\n else if (!throwIfNoEntry) {\n return undefined;\n }\n else {\n throw createError(ENOENT, 'lstat', filename);\n }\n };\n Volume.prototype.lstatSync = function (path, options) {\n var _a = getStatOptions(options), _b = _a.throwIfNoEntry, throwIfNoEntry = _b === void 0 ? true : _b, _c = _a.bigint, bigint = _c === void 0 ? false : _c;\n return this.lstatBase(pathToFilename(path), bigint, throwIfNoEntry);\n };\n Volume.prototype.lstat = function (path, a, b) {\n var _a = getStatOptsAndCb(a, b), _b = _a[0], _c = _b.throwIfNoEntry, throwIfNoEntry = _c === void 0 ? true : _c, _d = _b.bigint, bigint = _d === void 0 ? false : _d, callback = _a[1];\n this.wrapAsync(this.lstatBase, [pathToFilename(path), bigint, throwIfNoEntry], callback);\n };\n Volume.prototype.statBase = function (filename, bigint, throwIfNoEntry) {\n if (bigint === void 0) { bigint = false; }\n if (throwIfNoEntry === void 0) { throwIfNoEntry = true; }\n var link = this.getResolvedLink(filenameToSteps(filename));\n if (link) {\n return Stats_1.default.build(link.getNode(), bigint);\n }\n else if (!throwIfNoEntry) {\n return undefined;\n }\n else {\n throw createError(ENOENT, 'stat', filename);\n }\n };\n Volume.prototype.statSync = function (path, options) {\n var _a = getStatOptions(options), _b = _a.bigint, bigint = _b === void 0 ? true : _b, _c = _a.throwIfNoEntry, throwIfNoEntry = _c === void 0 ? true : _c;\n return this.statBase(pathToFilename(path), bigint, throwIfNoEntry);\n };\n Volume.prototype.stat = function (path, a, b) {\n var _a = getStatOptsAndCb(a, b), _b = _a[0], _c = _b.bigint, bigint = _c === void 0 ? false : _c, _d = _b.throwIfNoEntry, throwIfNoEntry = _d === void 0 ? true : _d, callback = _a[1];\n this.wrapAsync(this.statBase, [pathToFilename(path), bigint, throwIfNoEntry], callback);\n };\n Volume.prototype.fstatBase = function (fd, bigint) {\n if (bigint === void 0) { bigint = false; }\n var file = this.getFileByFd(fd);\n if (!file)\n throw createError(EBADF, 'fstat');\n return Stats_1.default.build(file.node, bigint);\n };\n Volume.prototype.fstatSync = function (fd, options) {\n return this.fstatBase(fd, getStatOptions(options).bigint);\n };\n Volume.prototype.fstat = function (fd, a, b) {\n var _a = getStatOptsAndCb(a, b), opts = _a[0], callback = _a[1];\n this.wrapAsync(this.fstatBase, [fd, opts.bigint], callback);\n };\n Volume.prototype.renameBase = function (oldPathFilename, newPathFilename) {\n var link = this.getLink(filenameToSteps(oldPathFilename));\n if (!link)\n throw createError(ENOENT, 'rename', oldPathFilename, newPathFilename);\n // TODO: Check if it is directory, if non-empty, we cannot move it, right?\n var newPathSteps = filenameToSteps(newPathFilename);\n // Check directory exists for the new location.\n var newPathDirLink = this.getLinkParent(newPathSteps);\n if (!newPathDirLink)\n throw createError(ENOENT, 'rename', oldPathFilename, newPathFilename);\n // 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 var oldLinkParent = link.parent;\n if (oldLinkParent) {\n oldLinkParent.deleteChild(link);\n }\n // Rename should overwrite the new path, if that exists.\n var name = newPathSteps[newPathSteps.length - 1];\n link.name = name;\n link.steps = __spreadArray(__spreadArray([], newPathDirLink.steps, true), [name], false);\n newPathDirLink.setChild(link.getName(), link);\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 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 Volume.prototype.existsBase = function (filename) {\n return !!this.statBase(filename);\n };\n Volume.prototype.existsSync = function (path) {\n try {\n return this.existsBase(pathToFilename(path));\n }\n catch (err) {\n return false;\n }\n };\n Volume.prototype.exists = function (path, callback) {\n var _this = this;\n var filename = pathToFilename(path);\n if (typeof callback !== 'function')\n throw Error(ERRSTR.CB);\n (0, setImmediate_1.default)(function () {\n try {\n callback(_this.existsBase(filename));\n }\n catch (err) {\n callback(false);\n }\n });\n };\n Volume.prototype.accessBase = function (filename, mode) {\n var link = this.getLinkOrThrow(filename, 'access');\n // TODO: Verify permissions\n };\n Volume.prototype.accessSync = function (path, mode) {\n if (mode === void 0) { mode = F_OK; }\n var filename = pathToFilename(path);\n mode = mode | 0;\n this.accessBase(filename, mode);\n };\n Volume.prototype.access = function (path, a, b) {\n var mode = F_OK;\n var callback;\n if (typeof a !== 'function') {\n mode = a | 0; // cast to number\n callback = validateCallback(b);\n }\n else {\n callback = a;\n }\n var filename = pathToFilename(path);\n this.wrapAsync(this.accessBase, [filename, mode], callback);\n };\n Volume.prototype.appendFileSync = function (id, data, options) {\n if (options === void 0) { options = appendFileDefaults; }\n var opts = getAppendFileOpts(options);\n // force append behavior when using a supplied file descriptor\n if (!opts.flag || isFd(id))\n opts.flag = 'a';\n this.writeFileSync(id, data, opts);\n };\n Volume.prototype.appendFile = function (id, data, a, b) {\n var _a = getAppendFileOptsAndCb(a, b), opts = _a[0], callback = _a[1];\n // force append behavior when using a supplied file descriptor\n if (!opts.flag || isFd(id))\n opts.flag = 'a';\n this.writeFile(id, data, opts, callback);\n };\n Volume.prototype.readdirBase = function (filename, options) {\n var steps = filenameToSteps(filename);\n var link = this.getResolvedLink(steps);\n if (!link)\n throw createError(ENOENT, 'readdir', filename);\n var node = link.getNode();\n if (!node.isDirectory())\n throw createError(ENOTDIR, 'scandir', filename);\n if (options.withFileTypes) {\n var list_1 = [];\n for (var name_2 in link.children) {\n var child = link.getChild(name_2);\n if (!child) {\n continue;\n }\n list_1.push(Dirent_1.default.build(child, options.encoding));\n }\n if (!isWin && options.encoding !== 'buffer')\n list_1.sort(function (a, b) {\n if (a.name < b.name)\n return -1;\n if (a.name > b.name)\n return 1;\n return 0;\n });\n return list_1;\n }\n var list = [];\n for (var name_3 in link.children) {\n list.push((0, encoding_1.strToEncoding)(name_3, options.encoding));\n }\n if (!isWin && options.encoding !== 'buffer')\n list.sort();\n return list;\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 Volume.prototype.readdir = function (path, a, b) {\n var _a = getReaddirOptsAndCb(a, b), options = _a[0], callback = _a[1];\n var filename = pathToFilename(path);\n this.wrapAsync(this.readdirBase, [filename, options], callback);\n };\n Volume.prototype.readlinkBase = function (filename, encoding) {\n var link = this.getLinkOrThrow(filename, 'readlink');\n var node = link.getNode();\n if (!node.isSymlink())\n throw createError(EINVAL, 'readlink', filename);\n var str = sep + node.symlink.join(sep);\n return (0, encoding_1.strToEncoding)(str, encoding);\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 Volume.prototype.readlink = function (path, a, b) {\n var _a = getDefaultOptsAndCb(a, b), opts = _a[0], callback = _a[1];\n var filename = pathToFilename(path);\n this.wrapAsync(this.readlinkBase, [filename, opts.encoding], callback);\n };\n Volume.prototype.fsyncBase = function (fd) {\n this.getFileByFdOrThrow(fd, 'fsync');\n };\n Volume.prototype.fsyncSync = function (fd) {\n this.fsyncBase(fd);\n };\n Volume.prototype.fsync = function (fd, callback) {\n this.wrapAsync(this.fsyncBase, [fd], callback);\n };\n Volume.prototype.fdatasyncBase = function (fd) {\n this.getFileByFdOrThrow(fd, 'fdatasync');\n };\n Volume.prototype.fdatasyncSync = function (fd) {\n this.fdatasyncBase(fd);\n };\n Volume.prototype.fdatasync = function (fd, callback) {\n this.wrapAsync(this.fdatasyncBase, [fd], callback);\n };\n Volume.prototype.ftruncateBase = function (fd, len) {\n var file = this.getFileByFdOrThrow(fd, 'ftruncate');\n file.truncate(len);\n };\n Volume.prototype.ftruncateSync = function (fd, len) {\n this.ftruncateBase(fd, len);\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 Volume.prototype.truncateBase = function (path, len) {\n var fd = this.openSync(path, 'r+');\n try {\n this.ftruncateSync(fd, len);\n }\n finally {\n this.closeSync(fd);\n }\n };\n Volume.prototype.truncateSync = function (id, len) {\n if (isFd(id))\n return this.ftruncateSync(id, len);\n this.truncateBase(id, len);\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))\n return this.ftruncate(id, len, callback);\n this.wrapAsync(this.truncateBase, [id, len], callback);\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 Volume.prototype.futimesSync = function (fd, atime, mtime) {\n this.futimesBase(fd, toUnixTimestamp(atime), toUnixTimestamp(mtime));\n };\n Volume.prototype.futimes = function (fd, atime, mtime, callback) {\n this.wrapAsync(this.futimesBase, [fd, toUnixTimestamp(atime), toUnixTimestamp(mtime)], callback);\n };\n Volume.prototype.utimesBase = function (filename, atime, mtime) {\n var fd = this.openSync(filename, 'r');\n try {\n this.futimesBase(fd, atime, mtime);\n }\n finally {\n this.closeSync(fd);\n }\n };\n Volume.prototype.utimesSync = function (path, atime, mtime) {\n this.utimesBase(pathToFilename(path), toUnixTimestamp(atime), toUnixTimestamp(mtime));\n };\n Volume.prototype.utimes = function (path, atime, mtime, callback) {\n this.wrapAsync(this.utimesBase, [pathToFilename(path), toUnixTimestamp(atime), toUnixTimestamp(mtime)], callback);\n };\n Volume.prototype.mkdirBase = function (filename, modeNum) {\n var steps = filenameToSteps(filename);\n // This will throw if user tries to create root dir `fs.mkdirSync('/')`.\n if (!steps.length) {\n throw createError(EEXIST, 'mkdir', filename);\n }\n var dir = this.getLinkParentAsDirOrThrow(filename, 'mkdir');\n // Check path already exists.\n var name = steps[steps.length - 1];\n if (dir.getChild(name))\n 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 Volume.prototype.mkdirpBase = function (filename, modeNum) {\n var fullPath = resolve(filename);\n var fullPathSansSlash = fullPath.substring(1);\n var steps = !fullPathSansSlash ? [] : fullPathSansSlash.split(sep);\n var link = this.root;\n var created = false;\n for (var i = 0; i < steps.length; i++) {\n var step = steps[i];\n if (!link.getNode().isDirectory())\n throw createError(ENOTDIR, 'mkdir', link.getPath());\n var child = link.getChild(step);\n if (child) {\n if (child.getNode().isDirectory())\n link = child;\n else\n throw createError(ENOTDIR, 'mkdir', child.getPath());\n }\n else {\n link = link.createChild(step, this.createNode(true, modeNum));\n created = true;\n }\n }\n return created ? fullPath : undefined;\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)\n return this.mkdirpBase(filename, modeNum);\n this.mkdirBase(filename, modeNum);\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)\n this.wrapAsync(this.mkdirpBase, [filename, modeNum], callback);\n else\n this.wrapAsync(this.mkdirBase, [filename, modeNum], callback);\n };\n // legacy interface\n Volume.prototype.mkdirpSync = function (path, mode) {\n return this.mkdirSync(path, { mode: mode, recursive: true });\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, { mode: mode, recursive: true }, callback);\n };\n Volume.prototype.mkdtempBase = function (prefix, encoding, retry) {\n if (retry === void 0) { retry = 5; }\n var filename = prefix + this.genRndStr();\n try {\n this.mkdirBase(filename, 511 /* MODE.DIR */);\n return (0, encoding_1.strToEncoding)(filename, encoding);\n }\n catch (err) {\n if (err.code === EEXIST) {\n if (retry > 1)\n return this.mkdtempBase(prefix, encoding, retry - 1);\n else\n throw Error('Could not create temp dir.');\n }\n else\n throw err;\n }\n };\n Volume.prototype.mkdtempSync = function (prefix, options) {\n var encoding = getDefaultOpts(options).encoding;\n if (!prefix || typeof prefix !== 'string')\n throw new TypeError('filename prefix is required');\n nullCheck(prefix);\n return this.mkdtempBase(prefix, encoding);\n };\n Volume.prototype.mkdtemp = function (prefix, a, b) {\n var _a = getDefaultOptsAndCb(a, b), encoding = _a[0].encoding, callback = _a[1];\n if (!prefix || typeof prefix !== 'string')\n throw new TypeError('filename prefix is required');\n if (!nullCheck(prefix))\n return;\n this.wrapAsync(this.mkdtempBase, [prefix, encoding], callback);\n };\n Volume.prototype.rmdirBase = function (filename, options) {\n var opts = getRmdirOptions(options);\n var link = this.getLinkAsDirOrThrow(filename, 'rmdir');\n // Check directory is empty.\n if (link.length && !opts.recursive)\n throw createError(ENOTEMPTY, 'rmdir', filename);\n this.deleteLink(link);\n };\n Volume.prototype.rmdirSync = function (path, options) {\n this.rmdirBase(pathToFilename(path), options);\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 Volume.prototype.rmBase = function (filename, options) {\n if (options === void 0) { options = {}; }\n var link = this.getResolvedLink(filename);\n if (!link) {\n // \"stat\" is used to match Node's native error message.\n if (!options.force)\n throw createError(ENOENT, 'stat', filename);\n return;\n }\n if (link.getNode().isDirectory()) {\n if (!options.recursive) {\n throw createError(ERR_FS_EISDIR, 'rm', filename);\n }\n }\n this.deleteLink(link);\n };\n Volume.prototype.rmSync = function (path, options) {\n this.rmBase(pathToFilename(path), options);\n };\n Volume.prototype.rm = function (path, a, b) {\n var _a = getRmOptsAndCb(a, b), opts = _a[0], callback = _a[1];\n this.wrapAsync(this.rmBase, [pathToFilename(path), opts], callback);\n };\n Volume.prototype.fchmodBase = function (fd, modeNum) {\n var file = this.getFileByFdOrThrow(fd, 'fchmod');\n file.chmod(modeNum);\n };\n Volume.prototype.fchmodSync = function (fd, mode) {\n this.fchmodBase(fd, modeToNumber(mode));\n };\n Volume.prototype.fchmod = function (fd, mode, callback) {\n this.wrapAsync(this.fchmodBase, [fd, modeToNumber(mode)], callback);\n };\n Volume.prototype.chmodBase = function (filename, modeNum) {\n var fd = this.openSync(filename, 'r');\n try {\n this.fchmodBase(fd, modeNum);\n }\n finally {\n this.closeSync(fd);\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 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 Volume.prototype.lchmodBase = function (filename, modeNum) {\n var fd = this.openBase(filename, O_RDWR, 0, false);\n try {\n this.fchmodBase(fd, modeNum);\n }\n finally {\n this.closeSync(fd);\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 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 Volume.prototype.fchownBase = function (fd, uid, gid) {\n this.getFileByFdOrThrow(fd, 'fchown').chown(uid, gid);\n };\n Volume.prototype.fchownSync = function (fd, uid, gid) {\n validateUid(uid);\n validateGid(gid);\n this.fchownBase(fd, uid, gid);\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 Volume.prototype.chownBase = function (filename, uid, gid) {\n var link = this.getResolvedLinkOrThrow(filename, 'chown');\n var node = link.getNode();\n node.chown(uid, gid);\n // if(node.isFile() || node.isSymlink()) {\n //\n // } else if(node.isDirectory()) {\n //\n // } else {\n // TODO: What do we do here?\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 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 Volume.prototype.lchownBase = function (filename, uid, gid) {\n this.getLinkOrThrow(filename, 'lchown').getNode().chown(uid, gid);\n };\n Volume.prototype.lchownSync = function (path, uid, gid) {\n validateUid(uid);\n validateGid(gid);\n this.lchownBase(pathToFilename(path), uid, gid);\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 Volume.prototype.watchFile = function (path, a, b) {\n var filename = pathToFilename(path);\n var options = a;\n var listener = b;\n if (typeof options === 'function') {\n listener = a;\n options = null;\n }\n if (typeof listener !== 'function') {\n throw Error('\"watchFile()\" requires a listener function');\n }\n var interval = 5007;\n var persistent = true;\n if (options && typeof options === 'object') {\n if (typeof options.interval === 'number')\n interval = options.interval;\n if (typeof options.persistent === 'boolean')\n persistent = options.persistent;\n }\n var watcher = this.statWatchers[filename];\n if (!watcher) {\n watcher = new this.StatWatcher();\n watcher.start(filename, persistent, interval);\n this.statWatchers[filename] = watcher;\n }\n watcher.addListener('change', listener);\n return watcher;\n };\n Volume.prototype.unwatchFile = function (path, listener) {\n var filename = pathToFilename(path);\n var watcher = this.statWatchers[filename];\n if (!watcher)\n return;\n if (typeof listener === 'function') {\n watcher.removeListener('change', listener);\n }\n else {\n watcher.removeAllListeners('change');\n }\n if (watcher.listenerCount('change') === 0) {\n watcher.stop();\n delete this.statWatchers[filename];\n }\n };\n Volume.prototype.createReadStream = function (path, options) {\n return new this.ReadStream(path, options);\n };\n Volume.prototype.createWriteStream = function (path, options) {\n return new this.WriteStream(path, options);\n };\n // watch(path: PathLike): FSWatcher;\n // watch(path: PathLike, options?: IWatchOptions | string): FSWatcher;\n Volume.prototype.watch = function (path, options, listener) {\n var filename = pathToFilename(path);\n var givenOptions = options;\n if (typeof options === 'function') {\n listener = options;\n givenOptions = null;\n }\n // tslint:disable-next-line prefer-const\n var _a = getDefaultOpts(givenOptions), persistent = _a.persistent, recursive = _a.recursive, encoding = _a.encoding;\n if (persistent === undefined)\n persistent = true;\n if (recursive === undefined)\n recursive = false;\n var watcher = new this.FSWatcher();\n watcher.start(filename, persistent, recursive, encoding);\n if (listener) {\n watcher.addListener('change', listener);\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 Volume.fd = 0x7fffffff;\n return Volume;\n}());\nexports.Volume = Volume;\nfunction emitStop(self) {\n self.emit('stop');\n}\nvar StatWatcher = /** @class */ (function (_super) {\n __extends(StatWatcher, _super);\n function StatWatcher(vol) {\n var _this = _super.call(this) || this;\n _this.onInterval = function () {\n try {\n var stats = _this.vol.statSync(_this.filename);\n if (_this.hasChanged(stats)) {\n _this.emit('change', stats, _this.prev);\n _this.prev = stats;\n }\n }\n finally {\n _this.loop();\n }\n };\n _this.vol = vol;\n return _this;\n }\n StatWatcher.prototype.loop = function () {\n this.timeoutRef = this.setTimeout(this.onInterval, this.interval);\n };\n StatWatcher.prototype.hasChanged = function (stats) {\n // if(!this.prev) return false;\n if (stats.mtimeMs > this.prev.mtimeMs)\n return true;\n if (stats.nlink !== this.prev.nlink)\n return true;\n return false;\n };\n StatWatcher.prototype.start = function (path, persistent, interval) {\n if (persistent === void 0) { persistent = true; }\n if (interval === void 0) { interval = 5007; }\n this.filename = pathToFilename(path);\n this.setTimeout = persistent\n ? setTimeout.bind(typeof globalThis !== 'undefined' ? globalThis : global)\n : setTimeoutUnref_1.default;\n this.interval = interval;\n this.prev = this.vol.statSync(this.filename);\n this.loop();\n };\n StatWatcher.prototype.stop = function () {\n clearTimeout(this.timeoutRef);\n process_1.default.nextTick(emitStop, this);\n };\n return StatWatcher;\n}(events_1.EventEmitter));\nexports.StatWatcher = StatWatcher;\nvar pool;\nfunction allocNewPool(poolSize) {\n pool = (0, buffer_1.bufferAllocUnsafe)(poolSize);\n pool.used = 0;\n}\nutil.inherits(FsReadStream, stream_1.Readable);\nexports.ReadStream = FsReadStream;\nfunction FsReadStream(vol, path, options) {\n if (!(this instanceof FsReadStream))\n return new FsReadStream(vol, path, options);\n this._vol = vol;\n // a little bit bigger buffer and water marks by default\n options = Object.assign({}, getOptions(options, {}));\n if (options.highWaterMark === undefined)\n 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 if (this.start !== undefined) {\n if (typeof this.start !== 'number') {\n throw new TypeError('\"start\" option must be a Number');\n }\n if (this.end === undefined) {\n this.end = Infinity;\n }\n else if (typeof this.end !== 'number') {\n throw new TypeError('\"end\" option must be a Number');\n }\n if (this.start > this.end) {\n throw new Error('\"start\" option must be <= \"end\" option');\n }\n this.pos = this.start;\n }\n if (typeof this.fd !== 'number')\n this.open();\n this.on('end', function () {\n if (this.autoClose) {\n if (this.destroy)\n this.destroy();\n }\n });\n}\nFsReadStream.prototype.open = function () {\n var self = this; // tslint:disable-line no-this-assignment\n this._vol.open(this.path, this.flags, this.mode, function (er, fd) {\n if (er) {\n if (self.autoClose) {\n if (self.destroy)\n self.destroy();\n }\n self.emit('error', er);\n return;\n }\n self.fd = fd;\n self.emit('open', fd);\n // start the flow of data.\n self.read();\n });\n};\nFsReadStream.prototype._read = function (n) {\n if (typeof this.fd !== 'number') {\n return this.once('open', function () {\n this._read(n);\n });\n }\n if (this.destroyed)\n return;\n if (!pool || pool.length - pool.used < kMinPoolSpace) {\n // discard the old pool.\n allocNewPool(this._readableState.highWaterMark);\n }\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 var thisPool = pool;\n var toRead = Math.min(pool.length - pool.used, n);\n var start = pool.used;\n if (this.pos !== undefined)\n toRead = Math.min(this.end - this.pos + 1, toRead);\n // already read everything we were supposed to read!\n // treat as EOF.\n if (toRead <= 0)\n return this.push(null);\n // the actual read.\n var self = this; // tslint:disable-line no-this-assignment\n this._vol.read(this.fd, pool, pool.used, toRead, this.pos, onread);\n // move the pool positions, and internal position for reading.\n if (this.pos !== undefined)\n this.pos += toRead;\n pool.used += toRead;\n function onread(er, bytesRead) {\n if (er) {\n if (self.autoClose && self.destroy) {\n self.destroy();\n }\n self.emit('error', er);\n }\n else {\n var b = null;\n if (bytesRead > 0) {\n self.bytesRead += bytesRead;\n b = thisPool.slice(start, start + bytesRead);\n }\n self.push(b);\n }\n }\n};\nFsReadStream.prototype._destroy = function (err, cb) {\n this.close(function (err2) {\n cb(err || err2);\n });\n};\nFsReadStream.prototype.close = function (cb) {\n var _this = this;\n var _a;\n if (cb)\n this.once('close', cb);\n if (this.closed || typeof this.fd !== 'number') {\n if (typeof this.fd !== 'number') {\n this.once('open', closeOnOpen);\n return;\n }\n return process_1.default.nextTick(function () { return _this.emit('close'); });\n }\n // Since Node 18, there is only a getter for '.closed'.\n // The first branch mimics other setters from Readable.\n // See https://github.com/nodejs/node/blob/v18.0.0/lib/internal/streams/readable.js#L1243\n if (typeof ((_a = this._readableState) === null || _a === void 0 ? void 0 : _a.closed) === 'boolean') {\n this._readableState.closed = true;\n }\n else {\n this.closed = true;\n }\n this._vol.close(this.fd, function (er) {\n if (er)\n _this.emit('error', er);\n else\n _this.emit('close');\n });\n this.fd = null;\n};\n// needed because as it will be called with arguments\n// that does not match this.close() signature\nfunction closeOnOpen(fd) {\n this.close();\n}\nutil.inherits(FsWriteStream, stream_1.Writable);\nexports.WriteStream = FsWriteStream;\nfunction FsWriteStream(vol, path, options) {\n if (!(this instanceof FsWriteStream))\n 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 if (this.start !== undefined) {\n if (typeof this.start !== 'number') {\n throw new TypeError('\"start\" option must be a Number');\n }\n if (this.start < 0) {\n throw new Error('\"start\" must be >= zero');\n }\n this.pos = this.start;\n }\n if (options.encoding)\n this.setDefaultEncoding(options.encoding);\n if (typeof this.fd !== 'number')\n this.open();\n // dispose on finish.\n this.once('finish', function () {\n if (this.autoClose) {\n this.close();\n }\n });\n}\nFsWriteStream.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 this.emit('error', er);\n return;\n }\n this.fd = fd;\n this.emit('open', fd);\n }.bind(this));\n};\nFsWriteStream.prototype._write = function (data, encoding, cb) {\n if (!(data instanceof buffer_1.Buffer || data instanceof Uint8Array))\n return this.emit('error', new Error('Invalid data'));\n if (typeof this.fd !== 'number') {\n return this.once('open', function () {\n this._write(data, encoding, cb);\n });\n }\n var self = this; // tslint:disable-line no-this-assignment\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 return cb(er);\n }\n self.bytesWritten += bytes;\n cb();\n });\n if (this.pos !== undefined)\n this.pos += data.length;\n};\nFsWriteStream.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 var self = this; // tslint:disable-line no-this-assignment\n var len = data.length;\n var chunks = new Array(len);\n var size = 0;\n for (var i = 0; i < len; i++) {\n var chunk = data[i].chunk;\n chunks[i] = chunk;\n size += chunk.length;\n }\n var buf = buffer_1.Buffer.concat(chunks);\n this._vol.write(this.fd, buf, 0, buf.length, this.pos, function (er, bytes) {\n if (er) {\n if (self.destroy)\n self.destroy();\n return cb(er);\n }\n self.bytesWritten += bytes;\n cb();\n });\n if (this.pos !== undefined)\n this.pos += size;\n};\nFsWriteStream.prototype.close = function (cb) {\n var _this = this;\n var _a;\n if (cb)\n this.once('close', cb);\n if (this.closed || typeof this.fd !== 'number') {\n if (typeof this.fd !== 'number') {\n this.once('open', closeOnOpen);\n return;\n }\n return process_1.default.nextTick(function () { return _this.emit('close'); });\n }\n // Since Node 18, there is only a getter for '.closed'.\n // The first branch mimics other setters from Writable.\n // See https://github.com/nodejs/node/blob/v18.0.0/lib/internal/streams/writable.js#L766\n if (typeof ((_a = this._writableState) === null || _a === void 0 ? void 0 : _a.closed) === 'boolean') {\n this._writableState.closed = true;\n }\n else {\n this.closed = true;\n }\n this._vol.close(this.fd, function (er) {\n if (er)\n _this.emit('error', er);\n else\n _this.emit('close');\n });\n this.fd = null;\n};\nFsWriteStream.prototype._destroy = FsReadStream.prototype._destroy;\n// There is no shutdown() for files.\nFsWriteStream.prototype.destroySoon = FsWriteStream.prototype.end;\n// ---------------------------------------- FSWatcher\nvar FSWatcher = /** @class */ (function (_super) {\n __extends(FSWatcher, _super);\n function FSWatcher(vol) {\n var _this = _super.call(this) || this;\n _this._filename = '';\n _this._filenameEncoded = '';\n // _persistent: boolean = true;\n _this._recursive = false;\n _this._encoding = encoding_1.ENCODING_UTF8;\n _this._onNodeChange = function () {\n _this._emit('change');\n };\n _this._onParentChild = function (link) {\n if (link.getName() === _this._getName()) {\n _this._emit('rename');\n }\n };\n _this._emit = function (type) {\n _this.emit('change', type, _this._filenameEncoded);\n };\n _this._persist = function () {\n _this._timer = setTimeout(_this._persist, 1e6);\n };\n _this._vol = vol;\n return _this;\n // 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 FSWatcher.prototype._getName = function () {\n return this._steps[this._steps.length - 1];\n };\n FSWatcher.prototype.start = function (path, persistent, recursive, encoding) {\n if (persistent === void 0) { persistent = true; }\n if (recursive === void 0) { recursive = false; }\n if (encoding === void 0) { encoding = encoding_1.ENCODING_UTF8; }\n this._filename = pathToFilename(path);\n this._steps = filenameToSteps(this._filename);\n this._filenameEncoded = (0, encoding_1.strToEncoding)(this._filename);\n // this._persistent = persistent;\n this._recursive = recursive;\n this._encoding = encoding;\n try {\n this._link = this._vol.getLinkOrThrow(this._filename, 'FSWatcher');\n }\n catch (err) {\n var error = new Error(\"watch \".concat(this._filename, \" \").concat(err.code));\n error.code = err.code;\n error.errno = err.code;\n throw error;\n }\n this._link.getNode().on('change', this._onNodeChange);\n this._link.on('child:add', this._onNodeChange);\n this._link.on('child:delete', this._onNodeChange);\n var parent = this._link.parent;\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 if (persistent)\n this._persist();\n };\n FSWatcher.prototype.close = function () {\n clearTimeout(this._timer);\n this._link.getNode().removeListener('change', this._onNodeChange);\n var parent = this._link.parent;\n if (parent) {\n // parent.removeListener('child:add', this._onParentChild);\n parent.removeListener('child:delete', this._onParentChild);\n }\n };\n return FSWatcher;\n}(events_1.EventEmitter));\nexports.FSWatcher = FSWatcher;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.fsAsyncMethods = exports.fsSyncMethods = exports.fsProps = void 0;\nvar fsProps = ['constants', 'F_OK', 'R_OK', 'W_OK', 'X_OK', 'Stats'];\nexports.fsProps = fsProps;\nvar 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'];\nexports.fsSyncMethods = fsSyncMethods;\nvar 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'];\nexports.fsAsyncMethods = fsAsyncMethods;","\"use strict\";\nvar __assign = (this && this.__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 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fs = exports.createFsFromVolume = exports.vol = exports.Volume = void 0;\nvar Stats_1 = require(\"./Stats\");\nvar Dirent_1 = require(\"./Dirent\");\nvar volume_1 = require(\"./volume\");\nvar _a = require('fs-monkey/lib/util/lists'), fsSyncMethods = _a.fsSyncMethods, fsAsyncMethods = _a.fsAsyncMethods;\nvar constants_1 = require(\"./constants\");\nvar F_OK = constants_1.constants.F_OK, R_OK = constants_1.constants.R_OK, W_OK = constants_1.constants.W_OK, X_OK = constants_1.constants.X_OK;\nexports.Volume = volume_1.Volume;\n// Default volume.\nexports.vol = new volume_1.Volume();\nfunction createFsFromVolume(vol) {\n var fs = { F_OK: F_OK, R_OK: R_OK, W_OK: W_OK, X_OK: X_OK, constants: constants_1.constants, Stats: Stats_1.default, Dirent: Dirent_1.default };\n // Bind FS methods.\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')\n fs[method] = vol[method].bind(vol);\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')\n fs[method] = vol[method].bind(vol);\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}\nexports.createFsFromVolume = createFsFromVolume;\nexports.fs = createFsFromVolume(exports.vol);\nmodule.exports = __assign(__assign({}, module.exports), exports.fs);\nmodule.exports.semantic = 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\nvar pathModule = require('path');\nvar isWindows = process.platform === 'win32';\nvar fs = require('fs');\n\n// JavaScript implementation of realpath, ported from node pre-v6\n\nvar DEBUG = process.env.NODE_DEBUG && /fs/.test(process.env.NODE_DEBUG);\n\nfunction rethrow() {\n // Only enable in debug mode. A backtrace uses ~1000 bytes of heap space and\n // is fairly slow to generate.\n var callback;\n if (DEBUG) {\n var backtrace = new Error;\n callback = debugCallback;\n } else\n callback = missingCallback;\n\n return callback;\n\n function debugCallback(err) {\n if (err) {\n backtrace.message = err.message;\n err = backtrace;\n missingCallback(err);\n }\n }\n\n function missingCallback(err) {\n if (err) {\n if (process.throwDeprecation)\n throw err; // Forgot a callback but don't know where? Use NODE_DEBUG=fs\n else if (!process.noDeprecation) {\n var msg = 'fs: missing callback ' + (err.stack || err.message);\n if (process.traceDeprecation)\n console.trace(msg);\n else\n console.error(msg);\n }\n }\n }\n}\n\nfunction maybeCallback(cb) {\n return typeof cb === 'function' ? cb : rethrow();\n}\n\nvar normalize = pathModule.normalize;\n\n// Regexp that finds the next partion of a (partial) path\n// result is [base_with_slash, base], e.g. ['somedir/', 'somedir']\nif (isWindows) {\n var nextPartRe = /(.*?)(?:[\\/\\\\]+|$)/g;\n} else {\n var nextPartRe = /(.*?)(?:[\\/]+|$)/g;\n}\n\n// Regex to find the device root, including trailing slash. E.g. 'c:\\\\'.\nif (isWindows) {\n var splitRootRe = /^(?:[a-zA-Z]:|[\\\\\\/]{2}[^\\\\\\/]+[\\\\\\/][^\\\\\\/]+)?[\\\\\\/]*/;\n} else {\n var splitRootRe = /^[\\/]*/;\n}\n\nexports.realpathSync = function realpathSync(p, cache) {\n // make p is absolute\n p = pathModule.resolve(p);\n\n if (cache && Object.prototype.hasOwnProperty.call(cache, p)) {\n return cache[p];\n }\n\n var original = p,\n seenLinks = {},\n knownHard = {};\n\n // current character position in p\n var pos;\n // the partial path so far, including a trailing slash if any\n var current;\n // the partial path without a trailing slash (except when pointing at a root)\n var base;\n // the partial path scanned in the previous round, with slash\n var previous;\n\n start();\n\n function start() {\n // Skip over roots\n var m = splitRootRe.exec(p);\n pos = m[0].length;\n current = m[0];\n base = m[0];\n previous = '';\n\n // On windows, check that the root exists. On unix there is no need.\n if (isWindows && !knownHard[base]) {\n fs.lstatSync(base);\n knownHard[base] = true;\n }\n }\n\n // walk down the path, swapping out linked pathparts for their real\n // values\n // NB: p.length changes.\n while (pos < p.length) {\n // find the next part\n nextPartRe.lastIndex = pos;\n var result = nextPartRe.exec(p);\n previous = current;\n current += result[0];\n base = previous + result[1];\n pos = nextPartRe.lastIndex;\n\n // continue if not a symlink\n if (knownHard[base] || (cache && cache[base] === base)) {\n continue;\n }\n\n var resolvedLink;\n if (cache && Object.prototype.hasOwnProperty.call(cache, base)) {\n // some known symbolic link. no need to stat again.\n resolvedLink = cache[base];\n } else {\n var stat = fs.lstatSync(base);\n if (!stat.isSymbolicLink()) {\n knownHard[base] = true;\n if (cache) cache[base] = base;\n continue;\n }\n\n // read the link if it wasn't read before\n // dev/ino always return 0 on windows, so skip the check.\n var linkTarget = null;\n if (!isWindows) {\n var id = stat.dev.toString(32) + ':' + stat.ino.toString(32);\n if (seenLinks.hasOwnProperty(id)) {\n linkTarget = seenLinks[id];\n }\n }\n if (linkTarget === null) {\n fs.statSync(base);\n linkTarget = fs.readlinkSync(base);\n }\n resolvedLink = pathModule.resolve(previous, linkTarget);\n // track this, if given a cache.\n if (cache) cache[base] = resolvedLink;\n if (!isWindows) seenLinks[id] = linkTarget;\n }\n\n // resolve the link, then start over\n p = pathModule.resolve(resolvedLink, p.slice(pos));\n start();\n }\n\n if (cache) cache[original] = p;\n\n return p;\n};\n\n\nexports.realpath = function realpath(p, cache, cb) {\n if (typeof cb !== 'function') {\n cb = maybeCallback(cache);\n cache = null;\n }\n\n // make p is absolute\n p = pathModule.resolve(p);\n\n if (cache && Object.prototype.hasOwnProperty.call(cache, p)) {\n return process.nextTick(cb.bind(null, null, cache[p]));\n }\n\n var original = p,\n seenLinks = {},\n knownHard = {};\n\n // current character position in p\n var pos;\n // the partial path so far, including a trailing slash if any\n var current;\n // the partial path without a trailing slash (except when pointing at a root)\n var base;\n // the partial path scanned in the previous round, with slash\n var previous;\n\n start();\n\n function start() {\n // Skip over roots\n var m = splitRootRe.exec(p);\n pos = m[0].length;\n current = m[0];\n base = m[0];\n previous = '';\n\n // On windows, check that the root exists. On unix there is no need.\n if (isWindows && !knownHard[base]) {\n fs.lstat(base, function(err) {\n if (err) return cb(err);\n knownHard[base] = true;\n LOOP();\n });\n } else {\n process.nextTick(LOOP);\n }\n }\n\n // walk down the path, swapping out linked pathparts for their real\n // values\n function LOOP() {\n // stop if scanned past end of path\n if (pos >= p.length) {\n if (cache) cache[original] = p;\n return cb(null, p);\n }\n\n // find the next part\n nextPartRe.lastIndex = pos;\n var result = nextPartRe.exec(p);\n previous = current;\n current += result[0];\n base = previous + result[1];\n pos = nextPartRe.lastIndex;\n\n // continue if not a symlink\n if (knownHard[base] || (cache && cache[base] === base)) {\n return process.nextTick(LOOP);\n }\n\n if (cache && Object.prototype.hasOwnProperty.call(cache, base)) {\n // known symbolic link. no need to stat again.\n return gotResolvedLink(cache[base]);\n }\n\n return fs.lstat(base, gotStat);\n }\n\n function gotStat(err, stat) {\n if (err) return cb(err);\n\n // if not a symlink, skip to the next path part\n if (!stat.isSymbolicLink()) {\n knownHard[base] = true;\n if (cache) cache[base] = base;\n return process.nextTick(LOOP);\n }\n\n // stat & read the link if not read before\n // call gotTarget as soon as the link target is known\n // dev/ino always return 0 on windows, so skip the check.\n if (!isWindows) {\n var id = stat.dev.toString(32) + ':' + stat.ino.toString(32);\n if (seenLinks.hasOwnProperty(id)) {\n return gotTarget(null, seenLinks[id], base);\n }\n }\n fs.stat(base, function(err) {\n if (err) return cb(err);\n\n fs.readlink(base, function(err, target) {\n if (!isWindows) seenLinks[id] = target;\n gotTarget(err, target);\n });\n });\n }\n\n function gotTarget(err, target, base) {\n if (err) return cb(err);\n\n var resolvedLink = pathModule.resolve(previous, target);\n if (cache) cache[base] = resolvedLink;\n gotResolvedLink(resolvedLink);\n }\n\n function gotResolvedLink(resolvedLink) {\n // resolve the link, then start over\n p = pathModule.resolve(resolvedLink, p.slice(pos));\n start();\n }\n};\n","module.exports = realpath\nrealpath.realpath = realpath\nrealpath.sync = realpathSync\nrealpath.realpathSync = realpathSync\nrealpath.monkeypatch = monkeypatch\nrealpath.unmonkeypatch = unmonkeypatch\n\nvar fs = require('fs')\nvar origRealpath = fs.realpath\nvar origRealpathSync = fs.realpathSync\n\nvar version = process.version\nvar ok = /^v[0-5]\\./.test(version)\nvar old = require('./old.js')\n\nfunction newError (er) {\n return er && er.syscall === 'realpath' && (\n er.code === 'ELOOP' ||\n er.code === 'ENOMEM' ||\n er.code === 'ENAMETOOLONG'\n )\n}\n\nfunction realpath (p, cache, cb) {\n if (ok) {\n return origRealpath(p, cache, cb)\n }\n\n if (typeof cache === 'function') {\n cb = cache\n cache = null\n }\n origRealpath(p, cache, function (er, result) {\n if (newError(er)) {\n old.realpath(p, cache, cb)\n } else {\n cb(er, result)\n }\n })\n}\n\nfunction realpathSync (p, cache) {\n if (ok) {\n return origRealpathSync(p, cache)\n }\n\n try {\n return origRealpathSync(p, cache)\n } catch (er) {\n if (newError(er)) {\n return old.realpathSync(p, cache)\n } else {\n throw er\n }\n }\n}\n\nfunction monkeypatch () {\n fs.realpath = realpath\n fs.realpathSync = realpathSync\n}\n\nfunction unmonkeypatch () {\n fs.realpath = origRealpath\n fs.realpathSync = origRealpathSync\n}\n","module.exports = function (xs, fn) {\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n var x = fn(xs[i], i);\n if (isArray(x)) res.push.apply(res, x);\n else res.push(x);\n }\n return res;\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n","'use strict';\nmodule.exports = balanced;\nfunction balanced(a, b, str) {\n if (a instanceof RegExp) a = maybeMatch(a, str);\n if (b instanceof RegExp) b = maybeMatch(b, str);\n\n var r = range(a, b, str);\n\n return r && {\n start: r[0],\n end: r[1],\n pre: str.slice(0, r[0]),\n body: str.slice(r[0] + a.length, r[1]),\n post: str.slice(r[1] + b.length)\n };\n}\n\nfunction maybeMatch(reg, str) {\n var m = str.match(reg);\n return m ? m[0] : null;\n}\n\nbalanced.range = range;\nfunction range(a, b, str) {\n var begs, beg, left, right, result;\n var ai = str.indexOf(a);\n var bi = str.indexOf(b, ai + 1);\n var i = ai;\n\n if (ai >= 0 && bi > 0) {\n if(a===b) {\n return [ai, bi];\n }\n begs = [];\n left = str.length;\n\n while (i >= 0 && !result) {\n if (i == ai) {\n begs.push(i);\n ai = str.indexOf(a, i + 1);\n } else if (begs.length == 1) {\n result = [ begs.pop(), bi ];\n } else {\n beg = begs.pop();\n if (beg < left) {\n left = beg;\n right = bi;\n }\n\n bi = str.indexOf(b, i + 1);\n }\n\n i = ai < bi && ai >= 0 ? ai : bi;\n }\n\n if (begs.length) {\n result = [ left, right ];\n }\n }\n\n return result;\n}\n","var concatMap = require('concat-map');\nvar balanced = require('balanced-match');\n\nmodule.exports = expandTop;\n\nvar escSlash = '\\0SLASH'+Math.random()+'\\0';\nvar escOpen = '\\0OPEN'+Math.random()+'\\0';\nvar escClose = '\\0CLOSE'+Math.random()+'\\0';\nvar escComma = '\\0COMMA'+Math.random()+'\\0';\nvar escPeriod = '\\0PERIOD'+Math.random()+'\\0';\n\nfunction numeric(str) {\n return parseInt(str, 10) == str\n ? parseInt(str, 10)\n : str.charCodeAt(0);\n}\n\nfunction escapeBraces(str) {\n return str.split('\\\\\\\\').join(escSlash)\n .split('\\\\{').join(escOpen)\n .split('\\\\}').join(escClose)\n .split('\\\\,').join(escComma)\n .split('\\\\.').join(escPeriod);\n}\n\nfunction unescapeBraces(str) {\n return str.split(escSlash).join('\\\\')\n .split(escOpen).join('{')\n .split(escClose).join('}')\n .split(escComma).join(',')\n .split(escPeriod).join('.');\n}\n\n\n// Basically just str.split(\",\"), but handling cases\n// where we have nested braced sections, which should be\n// treated as individual members, like {a,{b,c},d}\nfunction parseCommaParts(str) {\n if (!str)\n return [''];\n\n var parts = [];\n var m = balanced('{', '}', str);\n\n if (!m)\n return str.split(',');\n\n var pre = m.pre;\n var body = m.body;\n var post = m.post;\n var p = pre.split(',');\n\n p[p.length-1] += '{' + body + '}';\n var postParts = parseCommaParts(post);\n if (post.length) {\n p[p.length-1] += postParts.shift();\n p.push.apply(p, postParts);\n }\n\n parts.push.apply(parts, p);\n\n return parts;\n}\n\nfunction expandTop(str) {\n if (!str)\n return [];\n\n // I don't know why Bash 4.3 does this, but it does.\n // Anything starting with {} will have the first two bytes preserved\n // but *only* at the top level, so {},a}b will not expand to anything,\n // but a{},b}c will be expanded to [a}c,abc].\n // One could argue that this is a bug in Bash, but since the goal of\n // this module is to match Bash's rules, we escape a leading {}\n if (str.substr(0, 2) === '{}') {\n str = '\\\\{\\\\}' + str.substr(2);\n }\n\n return expand(escapeBraces(str), true).map(unescapeBraces);\n}\n\nfunction identity(e) {\n return e;\n}\n\nfunction embrace(str) {\n return '{' + str + '}';\n}\nfunction isPadded(el) {\n return /^-?0\\d/.test(el);\n}\n\nfunction lte(i, y) {\n return i <= y;\n}\nfunction gte(i, y) {\n return i >= y;\n}\n\nfunction expand(str, isTop) {\n var expansions = [];\n\n var m = balanced('{', '}', str);\n if (!m || /\\$$/.test(m.pre)) return [str];\n\n var isNumericSequence = /^-?\\d+\\.\\.-?\\d+(?:\\.\\.-?\\d+)?$/.test(m.body);\n var isAlphaSequence = /^[a-zA-Z]\\.\\.[a-zA-Z](?:\\.\\.-?\\d+)?$/.test(m.body);\n var isSequence = isNumericSequence || isAlphaSequence;\n var isOptions = m.body.indexOf(',') >= 0;\n if (!isSequence && !isOptions) {\n // {a},b}\n if (m.post.match(/,.*\\}/)) {\n str = m.pre + '{' + m.body + escClose + m.post;\n return expand(str);\n }\n return [str];\n }\n\n var n;\n if (isSequence) {\n n = m.body.split(/\\.\\./);\n } else {\n n = parseCommaParts(m.body);\n if (n.length === 1) {\n // x{{a,b}}y ==> x{a}y x{b}y\n n = expand(n[0], false).map(embrace);\n if (n.length === 1) {\n var post = m.post.length\n ? expand(m.post, false)\n : [''];\n return post.map(function(p) {\n return m.pre + n[0] + p;\n });\n }\n }\n }\n\n // at this point, n is the parts, and we know it's not a comma set\n // with a single entry.\n\n // no need to expand pre, since it is guaranteed to be free of brace-sets\n var pre = m.pre;\n var post = m.post.length\n ? expand(m.post, false)\n : [''];\n\n var N;\n\n if (isSequence) {\n var x = numeric(n[0]);\n var y = numeric(n[1]);\n var width = Math.max(n[0].length, n[1].length)\n var incr = n.length == 3\n ? Math.abs(numeric(n[2]))\n : 1;\n var test = lte;\n var reverse = y < x;\n if (reverse) {\n incr *= -1;\n test = gte;\n }\n var pad = n.some(isPadded);\n\n N = [];\n\n for (var i = x; test(i, y); i += incr) {\n var c;\n if (isAlphaSequence) {\n c = String.fromCharCode(i);\n if (c === '\\\\')\n c = '';\n } else {\n c = String(i);\n if (pad) {\n var need = width - c.length;\n if (need > 0) {\n var z = new Array(need + 1).join('0');\n if (i < 0)\n c = '-' + z + c.slice(1);\n else\n c = z + c;\n }\n }\n }\n N.push(c);\n }\n } else {\n N = concatMap(n, function(el) { return expand(el, false) });\n }\n\n for (var j = 0; j < N.length; j++) {\n for (var k = 0; k < post.length; k++) {\n var expansion = pre + N[j] + post[k];\n if (!isTop || isSequence || expansion)\n expansions.push(expansion);\n }\n }\n\n return expansions;\n}\n\n","module.exports = minimatch\nminimatch.Minimatch = Minimatch\n\nvar path = (function () { try { return require('path') } catch (e) {}}()) || {\n sep: '/'\n}\nminimatch.sep = path.sep\n\nvar GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {}\nvar expand = require('brace-expansion')\n\nvar plTypes = {\n '!': { open: '(?:(?!(?:', close: '))[^/]*?)'},\n '?': { open: '(?:', close: ')?' },\n '+': { open: '(?:', close: ')+' },\n '*': { open: '(?:', close: ')*' },\n '@': { open: '(?:', close: ')' }\n}\n\n// any single thing other than /\n// don't need to escape / when using new RegExp()\nvar qmark = '[^/]'\n\n// * => any number of characters\nvar star = qmark + '*?'\n\n// ** when dots are allowed. Anything goes, except .. and .\n// not (^ or / followed by one or two dots followed by $ or /),\n// followed by anything, any number of times.\nvar twoStarDot = '(?:(?!(?:\\\\\\/|^)(?:\\\\.{1,2})($|\\\\\\/)).)*?'\n\n// not a ^ or / followed by a dot,\n// followed by anything, any number of times.\nvar twoStarNoDot = '(?:(?!(?:\\\\\\/|^)\\\\.).)*?'\n\n// characters that need to be escaped in RegExp.\nvar reSpecials = charSet('().*{}+?[]^$\\\\!')\n\n// \"abc\" -> { a:true, b:true, c:true }\nfunction charSet (s) {\n return s.split('').reduce(function (set, c) {\n set[c] = true\n return set\n }, {})\n}\n\n// normalizes slashes.\nvar slashSplit = /\\/+/\n\nminimatch.filter = filter\nfunction filter (pattern, options) {\n options = options || {}\n return function (p, i, list) {\n return minimatch(p, pattern, options)\n }\n}\n\nfunction ext (a, b) {\n b = b || {}\n var t = {}\n Object.keys(a).forEach(function (k) {\n t[k] = a[k]\n })\n Object.keys(b).forEach(function (k) {\n t[k] = b[k]\n })\n return t\n}\n\nminimatch.defaults = function (def) {\n if (!def || typeof def !== 'object' || !Object.keys(def).length) {\n return minimatch\n }\n\n var orig = minimatch\n\n var m = function minimatch (p, pattern, options) {\n return orig(p, pattern, ext(def, options))\n }\n\n m.Minimatch = function Minimatch (pattern, options) {\n return new orig.Minimatch(pattern, ext(def, options))\n }\n m.Minimatch.defaults = function defaults (options) {\n return orig.defaults(ext(def, options)).Minimatch\n }\n\n m.filter = function filter (pattern, options) {\n return orig.filter(pattern, ext(def, options))\n }\n\n m.defaults = function defaults (options) {\n return orig.defaults(ext(def, options))\n }\n\n m.makeRe = function makeRe (pattern, options) {\n return orig.makeRe(pattern, ext(def, options))\n }\n\n m.braceExpand = function braceExpand (pattern, options) {\n return orig.braceExpand(pattern, ext(def, options))\n }\n\n m.match = function (list, pattern, options) {\n return orig.match(list, pattern, ext(def, options))\n }\n\n return m\n}\n\nMinimatch.defaults = function (def) {\n return minimatch.defaults(def).Minimatch\n}\n\nfunction minimatch (p, pattern, options) {\n assertValidPattern(pattern)\n\n if (!options) options = {}\n\n // shortcut: comments match nothing.\n if (!options.nocomment && pattern.charAt(0) === '#') {\n return false\n }\n\n return new Minimatch(pattern, options).match(p)\n}\n\nfunction Minimatch (pattern, options) {\n if (!(this instanceof Minimatch)) {\n return new Minimatch(pattern, options)\n }\n\n assertValidPattern(pattern)\n\n if (!options) options = {}\n\n pattern = pattern.trim()\n\n // windows support: need to use /, not \\\n if (!options.allowWindowsEscape && path.sep !== '/') {\n pattern = pattern.split(path.sep).join('/')\n }\n\n this.options = options\n this.set = []\n this.pattern = pattern\n this.regexp = null\n this.negate = false\n this.comment = false\n this.empty = false\n this.partial = !!options.partial\n\n // make the set of regexps etc.\n this.make()\n}\n\nMinimatch.prototype.debug = function () {}\n\nMinimatch.prototype.make = make\nfunction make () {\n var pattern = this.pattern\n var options = this.options\n\n // empty patterns and comments match nothing.\n if (!options.nocomment && pattern.charAt(0) === '#') {\n this.comment = true\n return\n }\n if (!pattern) {\n this.empty = true\n return\n }\n\n // step 1: figure out negation, etc.\n this.parseNegate()\n\n // step 2: expand braces\n var set = this.globSet = this.braceExpand()\n\n if (options.debug) this.debug = function debug() { console.error.apply(console, arguments) }\n\n this.debug(this.pattern, set)\n\n // step 3: now we have a set, so turn each one into a series of path-portion\n // matching patterns.\n // These will be regexps, except in the case of \"**\", which is\n // set to the GLOBSTAR object for globstar behavior,\n // and will not contain any / characters\n set = this.globParts = set.map(function (s) {\n return s.split(slashSplit)\n })\n\n this.debug(this.pattern, set)\n\n // glob --> regexps\n set = set.map(function (s, si, set) {\n return s.map(this.parse, this)\n }, this)\n\n this.debug(this.pattern, set)\n\n // filter out everything that didn't compile properly.\n set = set.filter(function (s) {\n return s.indexOf(false) === -1\n })\n\n this.debug(this.pattern, set)\n\n this.set = set\n}\n\nMinimatch.prototype.parseNegate = parseNegate\nfunction parseNegate () {\n var pattern = this.pattern\n var negate = false\n var options = this.options\n var negateOffset = 0\n\n if (options.nonegate) return\n\n for (var i = 0, l = pattern.length\n ; i < l && pattern.charAt(i) === '!'\n ; i++) {\n negate = !negate\n negateOffset++\n }\n\n if (negateOffset) this.pattern = pattern.substr(negateOffset)\n this.negate = negate\n}\n\n// Brace expansion:\n// a{b,c}d -> abd acd\n// a{b,}c -> abc ac\n// a{0..3}d -> a0d a1d a2d a3d\n// a{b,c{d,e}f}g -> abg acdfg acefg\n// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg\n//\n// Invalid sets are not expanded.\n// a{2..}b -> a{2..}b\n// a{b}c -> a{b}c\nminimatch.braceExpand = function (pattern, options) {\n return braceExpand(pattern, options)\n}\n\nMinimatch.prototype.braceExpand = braceExpand\n\nfunction braceExpand (pattern, options) {\n if (!options) {\n if (this instanceof Minimatch) {\n options = this.options\n } else {\n options = {}\n }\n }\n\n pattern = typeof pattern === 'undefined'\n ? this.pattern : pattern\n\n assertValidPattern(pattern)\n\n // Thanks to Yeting Li <https://github.com/yetingli> for\n // improving this regexp to avoid a ReDOS vulnerability.\n if (options.nobrace || !/\\{(?:(?!\\{).)*\\}/.test(pattern)) {\n // shortcut. no need to expand.\n return [pattern]\n }\n\n return expand(pattern)\n}\n\nvar MAX_PATTERN_LENGTH = 1024 * 64\nvar assertValidPattern = function (pattern) {\n if (typeof pattern !== 'string') {\n throw new TypeError('invalid pattern')\n }\n\n if (pattern.length > MAX_PATTERN_LENGTH) {\n throw new TypeError('pattern is too long')\n }\n}\n\n// parse a component of the expanded set.\n// At this point, no pattern may contain \"/\" in it\n// so we're going to return a 2d array, where each entry is the full\n// pattern, split on '/', and then turned into a regular expression.\n// A regexp is made at the end which joins each array with an\n// escaped /, and another full one which joins each regexp with |.\n//\n// Following the lead of Bash 4.1, note that \"**\" only has special meaning\n// when it is the *only* thing in a path portion. Otherwise, any series\n// of * is equivalent to a single *. Globstar behavior is enabled by\n// default, and can be disabled by setting options.noglobstar.\nMinimatch.prototype.parse = parse\nvar SUBPARSE = {}\nfunction parse (pattern, isSub) {\n assertValidPattern(pattern)\n\n var options = this.options\n\n // shortcuts\n if (pattern === '**') {\n if (!options.noglobstar)\n return GLOBSTAR\n else\n pattern = '*'\n }\n if (pattern === '') return ''\n\n var re = ''\n var hasMagic = !!options.nocase\n var escaping = false\n // ? => one single character\n var patternListStack = []\n var negativeLists = []\n var stateChar\n var inClass = false\n var reClassStart = -1\n var classStart = -1\n // . and .. never match anything that doesn't start with .,\n // even when options.dot is set.\n var patternStart = pattern.charAt(0) === '.' ? '' // anything\n // not (start or / followed by . or .. followed by / or end)\n : options.dot ? '(?!(?:^|\\\\\\/)\\\\.{1,2}(?:$|\\\\\\/))'\n : '(?!\\\\.)'\n var self = this\n\n function clearStateChar () {\n if (stateChar) {\n // we had some state-tracking character\n // that wasn't consumed by this pass.\n switch (stateChar) {\n case '*':\n re += star\n hasMagic = true\n break\n case '?':\n re += qmark\n hasMagic = true\n break\n default:\n re += '\\\\' + stateChar\n break\n }\n self.debug('clearStateChar %j %j', stateChar, re)\n stateChar = false\n }\n }\n\n for (var i = 0, len = pattern.length, c\n ; (i < len) && (c = pattern.charAt(i))\n ; i++) {\n this.debug('%s\\t%s %s %j', pattern, i, re, c)\n\n // skip over any that are escaped.\n if (escaping && reSpecials[c]) {\n re += '\\\\' + c\n escaping = false\n continue\n }\n\n switch (c) {\n /* istanbul ignore next */\n case '/': {\n // completely not allowed, even escaped.\n // Should already be path-split by now.\n return false\n }\n\n case '\\\\':\n clearStateChar()\n escaping = true\n continue\n\n // the various stateChar values\n // for the \"extglob\" stuff.\n case '?':\n case '*':\n case '+':\n case '@':\n case '!':\n this.debug('%s\\t%s %s %j <-- stateChar', pattern, i, re, c)\n\n // all of those are literals inside a class, except that\n // the glob [!a] means [^a] in regexp\n if (inClass) {\n this.debug(' in class')\n if (c === '!' && i === classStart + 1) c = '^'\n re += c\n continue\n }\n\n // if we already have a stateChar, then it means\n // that there was something like ** or +? in there.\n // Handle the stateChar, then proceed with this one.\n self.debug('call clearStateChar %j', stateChar)\n clearStateChar()\n stateChar = c\n // if extglob is disabled, then +(asdf|foo) isn't a thing.\n // just clear the statechar *now*, rather than even diving into\n // the patternList stuff.\n if (options.noext) clearStateChar()\n continue\n\n case '(':\n if (inClass) {\n re += '('\n continue\n }\n\n if (!stateChar) {\n re += '\\\\('\n continue\n }\n\n patternListStack.push({\n type: stateChar,\n start: i - 1,\n reStart: re.length,\n open: plTypes[stateChar].open,\n close: plTypes[stateChar].close\n })\n // negation is (?:(?!js)[^/]*)\n re += stateChar === '!' ? '(?:(?!(?:' : '(?:'\n this.debug('plType %j %j', stateChar, re)\n stateChar = false\n continue\n\n case ')':\n if (inClass || !patternListStack.length) {\n re += '\\\\)'\n continue\n }\n\n clearStateChar()\n hasMagic = true\n var pl = patternListStack.pop()\n // negation is (?:(?!js)[^/]*)\n // The others are (?:<pattern>)<type>\n re += pl.close\n if (pl.type === '!') {\n negativeLists.push(pl)\n }\n pl.reEnd = re.length\n continue\n\n case '|':\n if (inClass || !patternListStack.length || escaping) {\n re += '\\\\|'\n escaping = false\n continue\n }\n\n clearStateChar()\n re += '|'\n continue\n\n // these are mostly the same in regexp and glob\n case '[':\n // swallow any state-tracking char before the [\n clearStateChar()\n\n if (inClass) {\n re += '\\\\' + c\n continue\n }\n\n inClass = true\n classStart = i\n reClassStart = re.length\n re += c\n continue\n\n case ']':\n // a right bracket shall lose its special\n // meaning and represent itself in\n // a bracket expression if it occurs\n // first in the list. -- POSIX.2 2.8.3.2\n if (i === classStart + 1 || !inClass) {\n re += '\\\\' + c\n escaping = false\n continue\n }\n\n // handle the case where we left a class open.\n // \"[z-a]\" is valid, equivalent to \"\\[z-a\\]\"\n // split where the last [ was, make sure we don't have\n // an invalid re. if so, re-walk the contents of the\n // would-be class to re-translate any characters that\n // were passed through as-is\n // TODO: It would probably be faster to determine this\n // without a try/catch and a new RegExp, but it's tricky\n // to do safely. For now, this is safe and works.\n var cs = pattern.substring(classStart + 1, i)\n try {\n RegExp('[' + cs + ']')\n } catch (er) {\n // not a valid class!\n var sp = this.parse(cs, SUBPARSE)\n re = re.substr(0, reClassStart) + '\\\\[' + sp[0] + '\\\\]'\n hasMagic = hasMagic || sp[1]\n inClass = false\n continue\n }\n\n // finish up the class.\n hasMagic = true\n inClass = false\n re += c\n continue\n\n default:\n // swallow any state char that wasn't consumed\n clearStateChar()\n\n if (escaping) {\n // no need\n escaping = false\n } else if (reSpecials[c]\n && !(c === '^' && inClass)) {\n re += '\\\\'\n }\n\n re += c\n\n } // switch\n } // for\n\n // handle the case where we left a class open.\n // \"[abc\" is valid, equivalent to \"\\[abc\"\n if (inClass) {\n // split where the last [ was, and escape it\n // this is a huge pita. We now have to re-walk\n // the contents of the would-be class to re-translate\n // any characters that were passed through as-is\n cs = pattern.substr(classStart + 1)\n sp = this.parse(cs, SUBPARSE)\n re = re.substr(0, reClassStart) + '\\\\[' + sp[0]\n hasMagic = hasMagic || sp[1]\n }\n\n // handle the case where we had a +( thing at the *end*\n // of the pattern.\n // each pattern list stack adds 3 chars, and we need to go through\n // and escape any | chars that were passed through as-is for the regexp.\n // Go through and escape them, taking care not to double-escape any\n // | chars that were already escaped.\n for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) {\n var tail = re.slice(pl.reStart + pl.open.length)\n this.debug('setting tail', re, pl)\n // maybe some even number of \\, then maybe 1 \\, followed by a |\n tail = tail.replace(/((?:\\\\{2}){0,64})(\\\\?)\\|/g, function (_, $1, $2) {\n if (!$2) {\n // the | isn't already escaped, so escape it.\n $2 = '\\\\'\n }\n\n // need to escape all those slashes *again*, without escaping the\n // one that we need for escaping the | character. As it works out,\n // escaping an even number of slashes can be done by simply repeating\n // it exactly after itself. That's why this trick works.\n //\n // I am sorry that you have to see this.\n return $1 + $1 + $2 + '|'\n })\n\n this.debug('tail=%j\\n %s', tail, tail, pl, re)\n var t = pl.type === '*' ? star\n : pl.type === '?' ? qmark\n : '\\\\' + pl.type\n\n hasMagic = true\n re = re.slice(0, pl.reStart) + t + '\\\\(' + tail\n }\n\n // handle trailing things that only matter at the very end.\n clearStateChar()\n if (escaping) {\n // trailing \\\\\n re += '\\\\\\\\'\n }\n\n // only need to apply the nodot start if the re starts with\n // something that could conceivably capture a dot\n var addPatternStart = false\n switch (re.charAt(0)) {\n case '[': case '.': case '(': addPatternStart = true\n }\n\n // Hack to work around lack of negative lookbehind in JS\n // A pattern like: *.!(x).!(y|z) needs to ensure that a name\n // like 'a.xyz.yz' doesn't match. So, the first negative\n // lookahead, has to look ALL the way ahead, to the end of\n // the pattern.\n for (var n = negativeLists.length - 1; n > -1; n--) {\n var nl = negativeLists[n]\n\n var nlBefore = re.slice(0, nl.reStart)\n var nlFirst = re.slice(nl.reStart, nl.reEnd - 8)\n var nlLast = re.slice(nl.reEnd - 8, nl.reEnd)\n var nlAfter = re.slice(nl.reEnd)\n\n nlLast += nlAfter\n\n // Handle nested stuff like *(*.js|!(*.json)), where open parens\n // mean that we should *not* include the ) in the bit that is considered\n // \"after\" the negated section.\n var openParensBefore = nlBefore.split('(').length - 1\n var cleanAfter = nlAfter\n for (i = 0; i < openParensBefore; i++) {\n cleanAfter = cleanAfter.replace(/\\)[+*?]?/, '')\n }\n nlAfter = cleanAfter\n\n var dollar = ''\n if (nlAfter === '' && isSub !== SUBPARSE) {\n dollar = '$'\n }\n var newRe = nlBefore + nlFirst + nlAfter + dollar + nlLast\n re = newRe\n }\n\n // if the re is not \"\" at this point, then we need to make sure\n // it doesn't match against an empty path part.\n // Otherwise a/* will match a/, which it should not.\n if (re !== '' && hasMagic) {\n re = '(?=.)' + re\n }\n\n if (addPatternStart) {\n re = patternStart + re\n }\n\n // parsing just a piece of a larger pattern.\n if (isSub === SUBPARSE) {\n return [re, hasMagic]\n }\n\n // skip the regexp for non-magical patterns\n // unescape anything in it, though, so that it'll be\n // an exact match against a file etc.\n if (!hasMagic) {\n return globUnescape(pattern)\n }\n\n var flags = options.nocase ? 'i' : ''\n try {\n var regExp = new RegExp('^' + re + '$', flags)\n } catch (er) /* istanbul ignore next - should be impossible */ {\n // If it was an invalid regular expression, then it can't match\n // anything. This trick looks for a character after the end of\n // the string, which is of course impossible, except in multi-line\n // mode, but it's not a /m regex.\n return new RegExp('$.')\n }\n\n regExp._glob = pattern\n regExp._src = re\n\n return regExp\n}\n\nminimatch.makeRe = function (pattern, options) {\n return new Minimatch(pattern, options || {}).makeRe()\n}\n\nMinimatch.prototype.makeRe = makeRe\nfunction makeRe () {\n if (this.regexp || this.regexp === false) return this.regexp\n\n // at this point, this.set is a 2d array of partial\n // pattern strings, or \"**\".\n //\n // It's better to use .match(). This function shouldn't\n // be used, really, but it's pretty convenient sometimes,\n // when you just want to work with a regex.\n var set = this.set\n\n if (!set.length) {\n this.regexp = false\n return this.regexp\n }\n var options = this.options\n\n var twoStar = options.noglobstar ? star\n : options.dot ? twoStarDot\n : twoStarNoDot\n var flags = options.nocase ? 'i' : ''\n\n var re = set.map(function (pattern) {\n return pattern.map(function (p) {\n return (p === GLOBSTAR) ? twoStar\n : (typeof p === 'string') ? regExpEscape(p)\n : p._src\n }).join('\\\\\\/')\n }).join('|')\n\n // must match entire pattern\n // ending in a * or ** will make it less strict.\n re = '^(?:' + re + ')$'\n\n // can match anything, as long as it's not this.\n if (this.negate) re = '^(?!' + re + ').*$'\n\n try {\n this.regexp = new RegExp(re, flags)\n } catch (ex) /* istanbul ignore next - should be impossible */ {\n this.regexp = false\n }\n return this.regexp\n}\n\nminimatch.match = function (list, pattern, options) {\n options = options || {}\n var mm = new Minimatch(pattern, options)\n list = list.filter(function (f) {\n return mm.match(f)\n })\n if (mm.options.nonull && !list.length) {\n list.push(pattern)\n }\n return list\n}\n\nMinimatch.prototype.match = function match (f, partial) {\n if (typeof partial === 'undefined') partial = this.partial\n this.debug('match', f, this.pattern)\n // short-circuit in the case of busted things.\n // comments, etc.\n if (this.comment) return false\n if (this.empty) return f === ''\n\n if (f === '/' && partial) return true\n\n var options = this.options\n\n // windows: need to use /, not \\\n if (path.sep !== '/') {\n f = f.split(path.sep).join('/')\n }\n\n // treat the test path as a set of pathparts.\n f = f.split(slashSplit)\n this.debug(this.pattern, 'split', f)\n\n // just ONE of the pattern sets in this.set needs to match\n // in order for it to be valid. If negating, then just one\n // match means that we have failed.\n // Either way, return on the first hit.\n\n var set = this.set\n this.debug(this.pattern, 'set', set)\n\n // Find the basename of the path by looking for the last non-empty segment\n var filename\n var i\n for (i = f.length - 1; i >= 0; i--) {\n filename = f[i]\n if (filename) break\n }\n\n for (i = 0; i < set.length; i++) {\n var pattern = set[i]\n var file = f\n if (options.matchBase && pattern.length === 1) {\n file = [filename]\n }\n var hit = this.matchOne(file, pattern, partial)\n if (hit) {\n if (options.flipNegate) return true\n return !this.negate\n }\n }\n\n // didn't get any hits. this is success if it's a negative\n // pattern, failure otherwise.\n if (options.flipNegate) return false\n return this.negate\n}\n\n// set partial to true to test if, for example,\n// \"/a/b\" matches the start of \"/*/b/*/d\"\n// Partial means, if you run out of file before you run\n// out of pattern, then that's fine, as long as all\n// the parts match.\nMinimatch.prototype.matchOne = function (file, pattern, partial) {\n var options = this.options\n\n this.debug('matchOne',\n { 'this': this, file: file, pattern: pattern })\n\n this.debug('matchOne', file.length, pattern.length)\n\n for (var fi = 0,\n pi = 0,\n fl = file.length,\n pl = pattern.length\n ; (fi < fl) && (pi < pl)\n ; fi++, pi++) {\n this.debug('matchOne loop')\n var p = pattern[pi]\n var f = file[fi]\n\n this.debug(pattern, p, f)\n\n // should be impossible.\n // some invalid regexp stuff in the set.\n /* istanbul ignore if */\n if (p === false) return false\n\n if (p === GLOBSTAR) {\n this.debug('GLOBSTAR', [pattern, p, f])\n\n // \"**\"\n // a/**/b/**/c would match the following:\n // a/b/x/y/z/c\n // a/x/y/z/b/c\n // a/b/x/b/x/c\n // a/b/c\n // To do this, take the rest of the pattern after\n // the **, and see if it would match the file remainder.\n // If so, return success.\n // If not, the ** \"swallows\" a segment, and try again.\n // This is recursively awful.\n //\n // a/**/b/**/c matching a/b/x/y/z/c\n // - a matches a\n // - doublestar\n // - matchOne(b/x/y/z/c, b/**/c)\n // - b matches b\n // - doublestar\n // - matchOne(x/y/z/c, c) -> no\n // - matchOne(y/z/c, c) -> no\n // - matchOne(z/c, c) -> no\n // - matchOne(c, c) yes, hit\n var fr = fi\n var pr = pi + 1\n if (pr === pl) {\n this.debug('** at the end')\n // a ** at the end will just swallow the rest.\n // We have found a match.\n // however, it will not swallow /.x, unless\n // options.dot is set.\n // . and .. are *never* matched by **, for explosively\n // exponential reasons.\n for (; fi < fl; fi++) {\n if (file[fi] === '.' || file[fi] === '..' ||\n (!options.dot && file[fi].charAt(0) === '.')) return false\n }\n return true\n }\n\n // ok, let's see if we can swallow whatever we can.\n while (fr < fl) {\n var swallowee = file[fr]\n\n this.debug('\\nglobstar while', file, fr, pattern, pr, swallowee)\n\n // XXX remove this slice. Just pass the start index.\n if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {\n this.debug('globstar found match!', fr, fl, swallowee)\n // found a match.\n return true\n } else {\n // can't swallow \".\" or \"..\" ever.\n // can only swallow \".foo\" when explicitly asked.\n if (swallowee === '.' || swallowee === '..' ||\n (!options.dot && swallowee.charAt(0) === '.')) {\n this.debug('dot detected!', file, fr, pattern, pr)\n break\n }\n\n // ** swallows a segment, and continue.\n this.debug('globstar swallow a segment, and continue')\n fr++\n }\n }\n\n // no match was found.\n // However, in partial mode, we can't say this is necessarily over.\n // If there's more *pattern* left, then\n /* istanbul ignore if */\n if (partial) {\n // ran out of file\n this.debug('\\n>>> no match, partial?', file, fr, pattern, pr)\n if (fr === fl) return true\n }\n return false\n }\n\n // something other than **\n // non-magic patterns just have to match exactly\n // patterns with magic have been turned into regexps.\n var hit\n if (typeof p === 'string') {\n hit = f === p\n this.debug('string match', p, f, hit)\n } else {\n hit = f.match(p)\n this.debug('pattern match', p, f, hit)\n }\n\n if (!hit) return false\n }\n\n // Note: ending in / means that we'll get a final \"\"\n // at the end of the pattern. This can only match a\n // corresponding \"\" at the end of the file.\n // If the file ends in /, then it can only match a\n // a pattern that ends in /, unless the pattern just\n // doesn't have any more for it. But, a/b/ should *not*\n // match \"a/b/*\", even though \"\" matches against the\n // [^/]*? pattern, except in partial mode, where it might\n // simply not be reached yet.\n // However, a/b/ should still satisfy a/*\n\n // now either we fell off the end of the pattern, or we're done.\n if (fi === fl && pi === pl) {\n // ran out of pattern and filename at the same time.\n // an exact hit!\n return true\n } else if (fi === fl) {\n // ran out of file, but still had pattern left.\n // this is ok if we're doing the match as part of\n // a glob fs traversal.\n return partial\n } else /* istanbul ignore else */ if (pi === pl) {\n // ran out of pattern, still have file left.\n // this is only acceptable if we're on the very last\n // empty segment of a file with a trailing slash.\n // a/* should match a/b/\n return (fi === fl - 1) && (file[fi] === '')\n }\n\n // should be unreachable.\n /* istanbul ignore next */\n throw new Error('wtf?')\n}\n\n// replace stuff like \\* with *\nfunction globUnescape (s) {\n return s.replace(/\\\\(.)/g, '$1')\n}\n\nfunction regExpEscape (s) {\n return s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&')\n}\n","'use strict';\n\nfunction posix(path) {\n\treturn path.charAt(0) === '/';\n}\n\nfunction win32(path) {\n\t// https://github.com/nodejs/node/blob/b3fcc245fb25539909ef1d5eaa01dbf92e168633/lib/path.js#L56\n\tvar splitDeviceRe = /^([a-zA-Z]:|[\\\\\\/]{2}[^\\\\\\/]+[\\\\\\/]+[^\\\\\\/]+)?([\\\\\\/])?([\\s\\S]*?)$/;\n\tvar result = splitDeviceRe.exec(path);\n\tvar device = result[1] || '';\n\tvar isUnc = Boolean(device && device.charAt(1) !== ':');\n\n\t// UNC paths are always absolute\n\treturn Boolean(result[2] || isUnc);\n}\n\nmodule.exports = process.platform === 'win32' ? win32 : posix;\nmodule.exports.posix = posix;\nmodule.exports.win32 = win32;\n","exports.setopts = setopts\nexports.ownProp = ownProp\nexports.makeAbs = makeAbs\nexports.finish = finish\nexports.mark = mark\nexports.isIgnored = isIgnored\nexports.childrenIgnored = childrenIgnored\n\nfunction ownProp (obj, field) {\n return Object.prototype.hasOwnProperty.call(obj, field)\n}\n\nvar fs = require(\"fs\")\nvar path = require(\"path\")\nvar minimatch = require(\"minimatch\")\nvar isAbsolute = require(\"path-is-absolute\")\nvar Minimatch = minimatch.Minimatch\n\nfunction alphasort (a, b) {\n return a.localeCompare(b, 'en')\n}\n\nfunction setupIgnores (self, options) {\n self.ignore = options.ignore || []\n\n if (!Array.isArray(self.ignore))\n self.ignore = [self.ignore]\n\n if (self.ignore.length) {\n self.ignore = self.ignore.map(ignoreMap)\n }\n}\n\n// ignore patterns are always in dot:true mode.\nfunction ignoreMap (pattern) {\n var gmatcher = null\n if (pattern.slice(-3) === '/**') {\n var gpattern = pattern.replace(/(\\/\\*\\*)+$/, '')\n gmatcher = new Minimatch(gpattern, { dot: true })\n }\n\n return {\n matcher: new Minimatch(pattern, { dot: true }),\n gmatcher: gmatcher\n }\n}\n\nfunction setopts (self, pattern, options) {\n if (!options)\n options = {}\n\n // base-matching: just use globstar for that.\n if (options.matchBase && -1 === pattern.indexOf(\"/\")) {\n if (options.noglobstar) {\n throw new Error(\"base matching requires globstar\")\n }\n pattern = \"**/\" + pattern\n }\n\n self.silent = !!options.silent\n self.pattern = pattern\n self.strict = options.strict !== false\n self.realpath = !!options.realpath\n self.realpathCache = options.realpathCache || Object.create(null)\n self.follow = !!options.follow\n self.dot = !!options.dot\n self.mark = !!options.mark\n self.nodir = !!options.nodir\n if (self.nodir)\n self.mark = true\n self.sync = !!options.sync\n self.nounique = !!options.nounique\n self.nonull = !!options.nonull\n self.nosort = !!options.nosort\n self.nocase = !!options.nocase\n self.stat = !!options.stat\n self.noprocess = !!options.noprocess\n self.absolute = !!options.absolute\n self.fs = options.fs || fs\n\n self.maxLength = options.maxLength || Infinity\n self.cache = options.cache || Object.create(null)\n self.statCache = options.statCache || Object.create(null)\n self.symlinks = options.symlinks || Object.create(null)\n\n setupIgnores(self, options)\n\n self.changedCwd = false\n var cwd = process.cwd()\n if (!ownProp(options, \"cwd\"))\n self.cwd = cwd\n else {\n self.cwd = path.resolve(options.cwd)\n self.changedCwd = self.cwd !== cwd\n }\n\n self.root = options.root || path.resolve(self.cwd, \"/\")\n self.root = path.resolve(self.root)\n if (process.platform === \"win32\")\n self.root = self.root.replace(/\\\\/g, \"/\")\n\n // TODO: is an absolute `cwd` supposed to be resolved against `root`?\n // e.g. { cwd: '/test', root: __dirname } === path.join(__dirname, '/test')\n self.cwdAbs = isAbsolute(self.cwd) ? self.cwd : makeAbs(self, self.cwd)\n if (process.platform === \"win32\")\n self.cwdAbs = self.cwdAbs.replace(/\\\\/g, \"/\")\n self.nomount = !!options.nomount\n\n // disable comments and negation in Minimatch.\n // Note that they are not supported in Glob itself anyway.\n options.nonegate = true\n options.nocomment = true\n // always treat \\ in patterns as escapes, not path separators\n options.allowWindowsEscape = false\n\n self.minimatch = new Minimatch(pattern, options)\n self.options = self.minimatch.options\n}\n\nfunction finish (self) {\n var nou = self.nounique\n var all = nou ? [] : Object.create(null)\n\n for (var i = 0, l = self.matches.length; i < l; i ++) {\n var matches = self.matches[i]\n if (!matches || Object.keys(matches).length === 0) {\n if (self.nonull) {\n // do like the shell, and spit out the literal glob\n var literal = self.minimatch.globSet[i]\n if (nou)\n all.push(literal)\n else\n all[literal] = true\n }\n } else {\n // had matches\n var m = Object.keys(matches)\n if (nou)\n all.push.apply(all, m)\n else\n m.forEach(function (m) {\n all[m] = true\n })\n }\n }\n\n if (!nou)\n all = Object.keys(all)\n\n if (!self.nosort)\n all = all.sort(alphasort)\n\n // at *some* point we statted all of these\n if (self.mark) {\n for (var i = 0; i < all.length; i++) {\n all[i] = self._mark(all[i])\n }\n if (self.nodir) {\n all = all.filter(function (e) {\n var notDir = !(/\\/$/.test(e))\n var c = self.cache[e] || self.cache[makeAbs(self, e)]\n if (notDir && c)\n notDir = c !== 'DIR' && !Array.isArray(c)\n return notDir\n })\n }\n }\n\n if (self.ignore.length)\n all = all.filter(function(m) {\n return !isIgnored(self, m)\n })\n\n self.found = all\n}\n\nfunction mark (self, p) {\n var abs = makeAbs(self, p)\n var c = self.cache[abs]\n var m = p\n if (c) {\n var isDir = c === 'DIR' || Array.isArray(c)\n var slash = p.slice(-1) === '/'\n\n if (isDir && !slash)\n m += '/'\n else if (!isDir && slash)\n m = m.slice(0, -1)\n\n if (m !== p) {\n var mabs = makeAbs(self, m)\n self.statCache[mabs] = self.statCache[abs]\n self.cache[mabs] = self.cache[abs]\n }\n }\n\n return m\n}\n\n// lotta situps...\nfunction makeAbs (self, f) {\n var abs = f\n if (f.charAt(0) === '/') {\n abs = path.join(self.root, f)\n } else if (isAbsolute(f) || f === '') {\n abs = f\n } else if (self.changedCwd) {\n abs = path.resolve(self.cwd, f)\n } else {\n abs = path.resolve(f)\n }\n\n if (process.platform === 'win32')\n abs = abs.replace(/\\\\/g, '/')\n\n return abs\n}\n\n\n// Return true, if pattern ends with globstar '**', for the accompanying parent directory.\n// Ex:- If node_modules/** is the pattern, add 'node_modules' to ignore list along with it's contents\nfunction isIgnored (self, path) {\n if (!self.ignore.length)\n return false\n\n return self.ignore.some(function(item) {\n return item.matcher.match(path) || !!(item.gmatcher && item.gmatcher.match(path))\n })\n}\n\nfunction childrenIgnored (self, path) {\n if (!self.ignore.length)\n return false\n\n return self.ignore.some(function(item) {\n return !!(item.gmatcher && item.gmatcher.match(path))\n })\n}\n","module.exports = globSync\nglobSync.GlobSync = GlobSync\n\nvar rp = require('fs.realpath')\nvar minimatch = require('minimatch')\nvar Minimatch = minimatch.Minimatch\nvar Glob = require('./glob.js').Glob\nvar util = require('util')\nvar path = require('path')\nvar assert = require('assert')\nvar isAbsolute = require('path-is-absolute')\nvar common = require('./common.js')\nvar setopts = common.setopts\nvar ownProp = common.ownProp\nvar childrenIgnored = common.childrenIgnored\nvar isIgnored = common.isIgnored\n\nfunction globSync (pattern, options) {\n if (typeof options === 'function' || arguments.length === 3)\n throw new TypeError('callback provided to sync glob\\n'+\n 'See: https://github.com/isaacs/node-glob/issues/167')\n\n return new GlobSync(pattern, options).found\n}\n\nfunction GlobSync (pattern, options) {\n if (!pattern)\n throw new Error('must provide pattern')\n\n if (typeof options === 'function' || arguments.length === 3)\n throw new TypeError('callback provided to sync glob\\n'+\n 'See: https://github.com/isaacs/node-glob/issues/167')\n\n if (!(this instanceof GlobSync))\n return new GlobSync(pattern, options)\n\n setopts(this, pattern, options)\n\n if (this.noprocess)\n return this\n\n var n = this.minimatch.set.length\n this.matches = new Array(n)\n for (var i = 0; i < n; i ++) {\n this._process(this.minimatch.set[i], i, false)\n }\n this._finish()\n}\n\nGlobSync.prototype._finish = function () {\n assert.ok(this instanceof GlobSync)\n if (this.realpath) {\n var self = this\n this.matches.forEach(function (matchset, index) {\n var set = self.matches[index] = Object.create(null)\n for (var p in matchset) {\n try {\n p = self._makeAbs(p)\n var real = rp.realpathSync(p, self.realpathCache)\n set[real] = true\n } catch (er) {\n if (er.syscall === 'stat')\n set[self._makeAbs(p)] = true\n else\n throw er\n }\n }\n })\n }\n common.finish(this)\n}\n\n\nGlobSync.prototype._process = function (pattern, index, inGlobStar) {\n assert.ok(this instanceof GlobSync)\n\n // Get the first [n] parts of pattern that are all strings.\n var n = 0\n while (typeof pattern[n] === 'string') {\n n ++\n }\n // now n is the index of the first one that is *not* a string.\n\n // See if there's anything else\n var prefix\n switch (n) {\n // if not, then this is rather simple\n case pattern.length:\n this._processSimple(pattern.join('/'), index)\n return\n\n case 0:\n // pattern *starts* with some non-trivial item.\n // going to readdir(cwd), but not include the prefix in matches.\n prefix = null\n break\n\n default:\n // pattern has some string bits in the front.\n // whatever it starts with, whether that's 'absolute' like /foo/bar,\n // or 'relative' like '../baz'\n prefix = pattern.slice(0, n).join('/')\n break\n }\n\n var remain = pattern.slice(n)\n\n // get the list of entries.\n var read\n if (prefix === null)\n read = '.'\n else if (isAbsolute(prefix) ||\n isAbsolute(pattern.map(function (p) {\n return typeof p === 'string' ? p : '[*]'\n }).join('/'))) {\n if (!prefix || !isAbsolute(prefix))\n prefix = '/' + prefix\n read = prefix\n } else\n read = prefix\n\n var abs = this._makeAbs(read)\n\n //if ignored, skip processing\n if (childrenIgnored(this, read))\n return\n\n var isGlobStar = remain[0] === minimatch.GLOBSTAR\n if (isGlobStar)\n this._processGlobStar(prefix, read, abs, remain, index, inGlobStar)\n else\n this._processReaddir(prefix, read, abs, remain, index, inGlobStar)\n}\n\n\nGlobSync.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar) {\n var entries = this._readdir(abs, inGlobStar)\n\n // if the abs isn't a dir, then nothing can match!\n if (!entries)\n return\n\n // It will only match dot entries if it starts with a dot, or if\n // dot is set. Stuff like @(.foo|.bar) isn't allowed.\n var pn = remain[0]\n var negate = !!this.minimatch.negate\n var rawGlob = pn._glob\n var dotOk = this.dot || rawGlob.charAt(0) === '.'\n\n var matchedEntries = []\n for (var i = 0; i < entries.length; i++) {\n var e = entries[i]\n if (e.charAt(0) !== '.' || dotOk) {\n var m\n if (negate && !prefix) {\n m = !e.match(pn)\n } else {\n m = e.match(pn)\n }\n if (m)\n matchedEntries.push(e)\n }\n }\n\n var len = matchedEntries.length\n // If there are no matched entries, then nothing matches.\n if (len === 0)\n return\n\n // if this is the last remaining pattern bit, then no need for\n // an additional stat *unless* the user has specified mark or\n // stat explicitly. We know they exist, since readdir returned\n // them.\n\n if (remain.length === 1 && !this.mark && !this.stat) {\n if (!this.matches[index])\n this.matches[index] = Object.create(null)\n\n for (var i = 0; i < len; i ++) {\n var e = matchedEntries[i]\n if (prefix) {\n if (prefix.slice(-1) !== '/')\n e = prefix + '/' + e\n else\n e = prefix + e\n }\n\n if (e.charAt(0) === '/' && !this.nomount) {\n e = path.join(this.root, e)\n }\n this._emitMatch(index, e)\n }\n // This was the last one, and no stats were needed\n return\n }\n\n // now test all matched entries as stand-ins for that part\n // of the pattern.\n remain.shift()\n for (var i = 0; i < len; i ++) {\n var e = matchedEntries[i]\n var newPattern\n if (prefix)\n newPattern = [prefix, e]\n else\n newPattern = [e]\n this._process(newPattern.concat(remain), index, inGlobStar)\n }\n}\n\n\nGlobSync.prototype._emitMatch = function (index, e) {\n if (isIgnored(this, e))\n return\n\n var abs = this._makeAbs(e)\n\n if (this.mark)\n e = this._mark(e)\n\n if (this.absolute) {\n e = abs\n }\n\n if (this.matches[index][e])\n return\n\n if (this.nodir) {\n var c = this.cache[abs]\n if (c === 'DIR' || Array.isArray(c))\n return\n }\n\n this.matches[index][e] = true\n\n if (this.stat)\n this._stat(e)\n}\n\n\nGlobSync.prototype._readdirInGlobStar = function (abs) {\n // follow all symlinked directories forever\n // just proceed as if this is a non-globstar situation\n if (this.follow)\n return this._readdir(abs, false)\n\n var entries\n var lstat\n var stat\n try {\n lstat = this.fs.lstatSync(abs)\n } catch (er) {\n if (er.code === 'ENOENT') {\n // lstat failed, doesn't exist\n return null\n }\n }\n\n var isSym = lstat && lstat.isSymbolicLink()\n this.symlinks[abs] = isSym\n\n // If it's not a symlink or a dir, then it's definitely a regular file.\n // don't bother doing a readdir in that case.\n if (!isSym && lstat && !lstat.isDirectory())\n this.cache[abs] = 'FILE'\n else\n entries = this._readdir(abs, false)\n\n return entries\n}\n\nGlobSync.prototype._readdir = function (abs, inGlobStar) {\n var entries\n\n if (inGlobStar && !ownProp(this.symlinks, abs))\n return this._readdirInGlobStar(abs)\n\n if (ownProp(this.cache, abs)) {\n var c = this.cache[abs]\n if (!c || c === 'FILE')\n return null\n\n if (Array.isArray(c))\n return c\n }\n\n try {\n return this._readdirEntries(abs, this.fs.readdirSync(abs))\n } catch (er) {\n this._readdirError(abs, er)\n return null\n }\n}\n\nGlobSync.prototype._readdirEntries = function (abs, entries) {\n // if we haven't asked to stat everything, then just\n // assume that everything in there exists, so we can avoid\n // having to stat it a second time.\n if (!this.mark && !this.stat) {\n for (var i = 0; i < entries.length; i ++) {\n var e = entries[i]\n if (abs === '/')\n e = abs + e\n else\n e = abs + '/' + e\n this.cache[e] = true\n }\n }\n\n this.cache[abs] = entries\n\n // mark and cache dir-ness\n return entries\n}\n\nGlobSync.prototype._readdirError = function (f, er) {\n // handle errors, and cache the information\n switch (er.code) {\n case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205\n case 'ENOTDIR': // totally normal. means it *does* exist.\n var abs = this._makeAbs(f)\n this.cache[abs] = 'FILE'\n if (abs === this.cwdAbs) {\n var error = new Error(er.code + ' invalid cwd ' + this.cwd)\n error.path = this.cwd\n error.code = er.code\n throw error\n }\n break\n\n case 'ENOENT': // not terribly unusual\n case 'ELOOP':\n case 'ENAMETOOLONG':\n case 'UNKNOWN':\n this.cache[this._makeAbs(f)] = false\n break\n\n default: // some unusual error. Treat as failure.\n this.cache[this._makeAbs(f)] = false\n if (this.strict)\n throw er\n if (!this.silent)\n console.error('glob error', er)\n break\n }\n}\n\nGlobSync.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar) {\n\n var entries = this._readdir(abs, inGlobStar)\n\n // no entries means not a dir, so it can never have matches\n // foo.txt/** doesn't match foo.txt\n if (!entries)\n return\n\n // test without the globstar, and with every child both below\n // and replacing the globstar.\n var remainWithoutGlobStar = remain.slice(1)\n var gspref = prefix ? [ prefix ] : []\n var noGlobStar = gspref.concat(remainWithoutGlobStar)\n\n // the noGlobStar pattern exits the inGlobStar state\n this._process(noGlobStar, index, false)\n\n var len = entries.length\n var isSym = this.symlinks[abs]\n\n // If it's a symlink, and we're in a globstar, then stop\n if (isSym && inGlobStar)\n return\n\n for (var i = 0; i < len; i++) {\n var e = entries[i]\n if (e.charAt(0) === '.' && !this.dot)\n continue\n\n // these two cases enter the inGlobStar state\n var instead = gspref.concat(entries[i], remainWithoutGlobStar)\n this._process(instead, index, true)\n\n var below = gspref.concat(entries[i], remain)\n this._process(below, index, true)\n }\n}\n\nGlobSync.prototype._processSimple = function (prefix, index) {\n // XXX review this. Shouldn't it be doing the mounting etc\n // before doing stat? kinda weird?\n var exists = this._stat(prefix)\n\n if (!this.matches[index])\n this.matches[index] = Object.create(null)\n\n // If it doesn't exist, then just mark the lack of results\n if (!exists)\n return\n\n if (prefix && isAbsolute(prefix) && !this.nomount) {\n var trail = /[\\/\\\\]$/.test(prefix)\n if (prefix.charAt(0) === '/') {\n prefix = path.join(this.root, prefix)\n } else {\n prefix = path.resolve(this.root, prefix)\n if (trail)\n prefix += '/'\n }\n }\n\n if (process.platform === 'win32')\n prefix = prefix.replace(/\\\\/g, '/')\n\n // Mark this as a match\n this._emitMatch(index, prefix)\n}\n\n// Returns either 'DIR', 'FILE', or false\nGlobSync.prototype._stat = function (f) {\n var abs = this._makeAbs(f)\n var needDir = f.slice(-1) === '/'\n\n if (f.length > this.maxLength)\n return false\n\n if (!this.stat && ownProp(this.cache, abs)) {\n var c = this.cache[abs]\n\n if (Array.isArray(c))\n c = 'DIR'\n\n // It exists, but maybe not how we need it\n if (!needDir || c === 'DIR')\n return c\n\n if (needDir && c === 'FILE')\n return false\n\n // otherwise we have to stat, because maybe c=true\n // if we know it exists, but not what it is.\n }\n\n var exists\n var stat = this.statCache[abs]\n if (!stat) {\n var lstat\n try {\n lstat = this.fs.lstatSync(abs)\n } catch (er) {\n if (er && (er.code === 'ENOENT' || er.code === 'ENOTDIR')) {\n this.statCache[abs] = false\n return false\n }\n }\n\n if (lstat && lstat.isSymbolicLink()) {\n try {\n stat = this.fs.statSync(abs)\n } catch (er) {\n stat = lstat\n }\n } else {\n stat = lstat\n }\n }\n\n this.statCache[abs] = stat\n\n var c = true\n if (stat)\n c = stat.isDirectory() ? 'DIR' : 'FILE'\n\n this.cache[abs] = this.cache[abs] || c\n\n if (needDir && c === 'FILE')\n return false\n\n return c\n}\n\nGlobSync.prototype._mark = function (p) {\n return common.mark(this, p)\n}\n\nGlobSync.prototype._makeAbs = function (f) {\n return common.makeAbs(this, f)\n}\n","// Returns a wrapper function that returns a wrapped callback\n// The wrapper function should do some stuff, and return a\n// presumably different callback function.\n// This makes sure that own properties are retained, so that\n// decorations and such are not lost along the way.\nmodule.exports = wrappy\nfunction wrappy (fn, cb) {\n if (fn && cb) return wrappy(fn)(cb)\n\n if (typeof fn !== 'function')\n throw new TypeError('need wrapper function')\n\n Object.keys(fn).forEach(function (k) {\n wrapper[k] = fn[k]\n })\n\n return wrapper\n\n function wrapper() {\n var args = new Array(arguments.length)\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i]\n }\n var ret = fn.apply(this, args)\n var cb = args[args.length-1]\n if (typeof ret === 'function' && ret !== cb) {\n Object.keys(cb).forEach(function (k) {\n ret[k] = cb[k]\n })\n }\n return ret\n }\n}\n","var wrappy = require('wrappy')\nmodule.exports = wrappy(once)\nmodule.exports.strict = wrappy(onceStrict)\n\nonce.proto = once(function () {\n Object.defineProperty(Function.prototype, 'once', {\n value: function () {\n return once(this)\n },\n configurable: true\n })\n\n Object.defineProperty(Function.prototype, 'onceStrict', {\n value: function () {\n return onceStrict(this)\n },\n configurable: true\n })\n})\n\nfunction once (fn) {\n var f = function () {\n if (f.called) return f.value\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n f.called = false\n return f\n}\n\nfunction onceStrict (fn) {\n var f = function () {\n if (f.called)\n throw new Error(f.onceError)\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n var name = fn.name || 'Function wrapped with `once`'\n f.onceError = name + \" shouldn't be called more than once\"\n f.called = false\n return f\n}\n","var wrappy = require('wrappy')\nvar reqs = Object.create(null)\nvar once = require('once')\n\nmodule.exports = wrappy(inflight)\n\nfunction inflight (key, cb) {\n if (reqs[key]) {\n reqs[key].push(cb)\n return null\n } else {\n reqs[key] = [cb]\n return makeres(key)\n }\n}\n\nfunction makeres (key) {\n return once(function RES () {\n var cbs = reqs[key]\n var len = cbs.length\n var args = slice(arguments)\n\n // XXX It's somewhat ambiguous whether a new callback added in this\n // pass should be queued for later execution if something in the\n // list of callbacks throws, or if it should just be discarded.\n // However, it's such an edge case that it hardly matters, and either\n // choice is likely as surprising as the other.\n // As it happens, we do go ahead and schedule it for later execution.\n try {\n for (var i = 0; i < len; i++) {\n cbs[i].apply(null, args)\n }\n } finally {\n if (cbs.length > len) {\n // added more in the interim.\n // de-zalgo, just in case, but don't call again.\n cbs.splice(0, len)\n process.nextTick(function () {\n RES.apply(null, args)\n })\n } else {\n delete reqs[key]\n }\n }\n })\n}\n\nfunction slice (args) {\n var length = args.length\n var array = []\n\n for (var i = 0; i < length; i++) array[i] = args[i]\n return array\n}\n","// Approach:\n//\n// 1. Get the minimatch set\n// 2. For each pattern in the set, PROCESS(pattern, false)\n// 3. Store matches per-set, then uniq them\n//\n// PROCESS(pattern, inGlobStar)\n// Get the first [n] items from pattern that are all strings\n// Join these together. This is PREFIX.\n// If there is no more remaining, then stat(PREFIX) and\n// add to matches if it succeeds. END.\n//\n// If inGlobStar and PREFIX is symlink and points to dir\n// set ENTRIES = []\n// else readdir(PREFIX) as ENTRIES\n// If fail, END\n//\n// with ENTRIES\n// If pattern[n] is GLOBSTAR\n// // handle the case where the globstar match is empty\n// // by pruning it out, and testing the resulting pattern\n// PROCESS(pattern[0..n] + pattern[n+1 .. $], false)\n// // handle other cases.\n// for ENTRY in ENTRIES (not dotfiles)\n// // attach globstar + tail onto the entry\n// // Mark that this entry is a globstar match\n// PROCESS(pattern[0..n] + ENTRY + pattern[n .. $], true)\n//\n// else // not globstar\n// for ENTRY in ENTRIES (not dotfiles, unless pattern[n] is dot)\n// Test ENTRY against pattern[n]\n// If fails, continue\n// If passes, PROCESS(pattern[0..n] + item + pattern[n+1 .. $])\n//\n// Caveat:\n// Cache all stats and readdirs results to minimize syscall. Since all\n// we ever care about is existence and directory-ness, we can just keep\n// `true` for files, and [children,...] for directories, or `false` for\n// things that don't exist.\n\nmodule.exports = glob\n\nvar rp = require('fs.realpath')\nvar minimatch = require('minimatch')\nvar Minimatch = minimatch.Minimatch\nvar inherits = require('inherits')\nvar EE = require('events').EventEmitter\nvar path = require('path')\nvar assert = require('assert')\nvar isAbsolute = require('path-is-absolute')\nvar globSync = require('./sync.js')\nvar common = require('./common.js')\nvar setopts = common.setopts\nvar ownProp = common.ownProp\nvar inflight = require('inflight')\nvar util = require('util')\nvar childrenIgnored = common.childrenIgnored\nvar isIgnored = common.isIgnored\n\nvar once = require('once')\n\nfunction glob (pattern, options, cb) {\n if (typeof options === 'function') cb = options, options = {}\n if (!options) options = {}\n\n if (options.sync) {\n if (cb)\n throw new TypeError('callback provided to sync glob')\n return globSync(pattern, options)\n }\n\n return new Glob(pattern, options, cb)\n}\n\nglob.sync = globSync\nvar GlobSync = glob.GlobSync = globSync.GlobSync\n\n// old api surface\nglob.glob = glob\n\nfunction extend (origin, add) {\n if (add === null || typeof add !== 'object') {\n return origin\n }\n\n var keys = Object.keys(add)\n var i = keys.length\n while (i--) {\n origin[keys[i]] = add[keys[i]]\n }\n return origin\n}\n\nglob.hasMagic = function (pattern, options_) {\n var options = extend({}, options_)\n options.noprocess = true\n\n var g = new Glob(pattern, options)\n var set = g.minimatch.set\n\n if (!pattern)\n return false\n\n if (set.length > 1)\n return true\n\n for (var j = 0; j < set[0].length; j++) {\n if (typeof set[0][j] !== 'string')\n return true\n }\n\n return false\n}\n\nglob.Glob = Glob\ninherits(Glob, EE)\nfunction Glob (pattern, options, cb) {\n if (typeof options === 'function') {\n cb = options\n options = null\n }\n\n if (options && options.sync) {\n if (cb)\n throw new TypeError('callback provided to sync glob')\n return new GlobSync(pattern, options)\n }\n\n if (!(this instanceof Glob))\n return new Glob(pattern, options, cb)\n\n setopts(this, pattern, options)\n this._didRealPath = false\n\n // process each pattern in the minimatch set\n var n = this.minimatch.set.length\n\n // The matches are stored as {<filename>: true,...} so that\n // duplicates are automagically pruned.\n // Later, we do an Object.keys() on these.\n // Keep them as a list so we can fill in when nonull is set.\n this.matches = new Array(n)\n\n if (typeof cb === 'function') {\n cb = once(cb)\n this.on('error', cb)\n this.on('end', function (matches) {\n cb(null, matches)\n })\n }\n\n var self = this\n this._processing = 0\n\n this._emitQueue = []\n this._processQueue = []\n this.paused = false\n\n if (this.noprocess)\n return this\n\n if (n === 0)\n return done()\n\n var sync = true\n for (var i = 0; i < n; i ++) {\n this._process(this.minimatch.set[i], i, false, done)\n }\n sync = false\n\n function done () {\n --self._processing\n if (self._processing <= 0) {\n if (sync) {\n process.nextTick(function () {\n self._finish()\n })\n } else {\n self._finish()\n }\n }\n }\n}\n\nGlob.prototype._finish = function () {\n assert(this instanceof Glob)\n if (this.aborted)\n return\n\n if (this.realpath && !this._didRealpath)\n return this._realpath()\n\n common.finish(this)\n this.emit('end', this.found)\n}\n\nGlob.prototype._realpath = function () {\n if (this._didRealpath)\n return\n\n this._didRealpath = true\n\n var n = this.matches.length\n if (n === 0)\n return this._finish()\n\n var self = this\n for (var i = 0; i < this.matches.length; i++)\n this._realpathSet(i, next)\n\n function next () {\n if (--n === 0)\n self._finish()\n }\n}\n\nGlob.prototype._realpathSet = function (index, cb) {\n var matchset = this.matches[index]\n if (!matchset)\n return cb()\n\n var found = Object.keys(matchset)\n var self = this\n var n = found.length\n\n if (n === 0)\n return cb()\n\n var set = this.matches[index] = Object.create(null)\n found.forEach(function (p, i) {\n // If there's a problem with the stat, then it means that\n // one or more of the links in the realpath couldn't be\n // resolved. just return the abs value in that case.\n p = self._makeAbs(p)\n rp.realpath(p, self.realpathCache, function (er, real) {\n if (!er)\n set[real] = true\n else if (er.syscall === 'stat')\n set[p] = true\n else\n self.emit('error', er) // srsly wtf right here\n\n if (--n === 0) {\n self.matches[index] = set\n cb()\n }\n })\n })\n}\n\nGlob.prototype._mark = function (p) {\n return common.mark(this, p)\n}\n\nGlob.prototype._makeAbs = function (f) {\n return common.makeAbs(this, f)\n}\n\nGlob.prototype.abort = function () {\n this.aborted = true\n this.emit('abort')\n}\n\nGlob.prototype.pause = function () {\n if (!this.paused) {\n this.paused = true\n this.emit('pause')\n }\n}\n\nGlob.prototype.resume = function () {\n if (this.paused) {\n this.emit('resume')\n this.paused = false\n if (this._emitQueue.length) {\n var eq = this._emitQueue.slice(0)\n this._emitQueue.length = 0\n for (var i = 0; i < eq.length; i ++) {\n var e = eq[i]\n this._emitMatch(e[0], e[1])\n }\n }\n if (this._processQueue.length) {\n var pq = this._processQueue.slice(0)\n this._processQueue.length = 0\n for (var i = 0; i < pq.length; i ++) {\n var p = pq[i]\n this._processing--\n this._process(p[0], p[1], p[2], p[3])\n }\n }\n }\n}\n\nGlob.prototype._process = function (pattern, index, inGlobStar, cb) {\n assert(this instanceof Glob)\n assert(typeof cb === 'function')\n\n if (this.aborted)\n return\n\n this._processing++\n if (this.paused) {\n this._processQueue.push([pattern, index, inGlobStar, cb])\n return\n }\n\n //console.error('PROCESS %d', this._processing, pattern)\n\n // Get the first [n] parts of pattern that are all strings.\n var n = 0\n while (typeof pattern[n] === 'string') {\n n ++\n }\n // now n is the index of the first one that is *not* a string.\n\n // see if there's anything else\n var prefix\n switch (n) {\n // if not, then this is rather simple\n case pattern.length:\n this._processSimple(pattern.join('/'), index, cb)\n return\n\n case 0:\n // pattern *starts* with some non-trivial item.\n // going to readdir(cwd), but not include the prefix in matches.\n prefix = null\n break\n\n default:\n // pattern has some string bits in the front.\n // whatever it starts with, whether that's 'absolute' like /foo/bar,\n // or 'relative' like '../baz'\n prefix = pattern.slice(0, n).join('/')\n break\n }\n\n var remain = pattern.slice(n)\n\n // get the list of entries.\n var read\n if (prefix === null)\n read = '.'\n else if (isAbsolute(prefix) ||\n isAbsolute(pattern.map(function (p) {\n return typeof p === 'string' ? p : '[*]'\n }).join('/'))) {\n if (!prefix || !isAbsolute(prefix))\n prefix = '/' + prefix\n read = prefix\n } else\n read = prefix\n\n var abs = this._makeAbs(read)\n\n //if ignored, skip _processing\n if (childrenIgnored(this, read))\n return cb()\n\n var isGlobStar = remain[0] === minimatch.GLOBSTAR\n if (isGlobStar)\n this._processGlobStar(prefix, read, abs, remain, index, inGlobStar, cb)\n else\n this._processReaddir(prefix, read, abs, remain, index, inGlobStar, cb)\n}\n\nGlob.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar, cb) {\n var self = this\n this._readdir(abs, inGlobStar, function (er, entries) {\n return self._processReaddir2(prefix, read, abs, remain, index, inGlobStar, entries, cb)\n })\n}\n\nGlob.prototype._processReaddir2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) {\n\n // if the abs isn't a dir, then nothing can match!\n if (!entries)\n return cb()\n\n // It will only match dot entries if it starts with a dot, or if\n // dot is set. Stuff like @(.foo|.bar) isn't allowed.\n var pn = remain[0]\n var negate = !!this.minimatch.negate\n var rawGlob = pn._glob\n var dotOk = this.dot || rawGlob.charAt(0) === '.'\n\n var matchedEntries = []\n for (var i = 0; i < entries.length; i++) {\n var e = entries[i]\n if (e.charAt(0) !== '.' || dotOk) {\n var m\n if (negate && !prefix) {\n m = !e.match(pn)\n } else {\n m = e.match(pn)\n }\n if (m)\n matchedEntries.push(e)\n }\n }\n\n //console.error('prd2', prefix, entries, remain[0]._glob, matchedEntries)\n\n var len = matchedEntries.length\n // If there are no matched entries, then nothing matches.\n if (len === 0)\n return cb()\n\n // if this is the last remaining pattern bit, then no need for\n // an additional stat *unless* the user has specified mark or\n // stat explicitly. We know they exist, since readdir returned\n // them.\n\n if (remain.length === 1 && !this.mark && !this.stat) {\n if (!this.matches[index])\n this.matches[index] = Object.create(null)\n\n for (var i = 0; i < len; i ++) {\n var e = matchedEntries[i]\n if (prefix) {\n if (prefix !== '/')\n e = prefix + '/' + e\n else\n e = prefix + e\n }\n\n if (e.charAt(0) === '/' && !this.nomount) {\n e = path.join(this.root, e)\n }\n this._emitMatch(index, e)\n }\n // This was the last one, and no stats were needed\n return cb()\n }\n\n // now test all matched entries as stand-ins for that part\n // of the pattern.\n remain.shift()\n for (var i = 0; i < len; i ++) {\n var e = matchedEntries[i]\n var newPattern\n if (prefix) {\n if (prefix !== '/')\n e = prefix + '/' + e\n else\n e = prefix + e\n }\n this._process([e].concat(remain), index, inGlobStar, cb)\n }\n cb()\n}\n\nGlob.prototype._emitMatch = function (index, e) {\n if (this.aborted)\n return\n\n if (isIgnored(this, e))\n return\n\n if (this.paused) {\n this._emitQueue.push([index, e])\n return\n }\n\n var abs = isAbsolute(e) ? e : this._makeAbs(e)\n\n if (this.mark)\n e = this._mark(e)\n\n if (this.absolute)\n e = abs\n\n if (this.matches[index][e])\n return\n\n if (this.nodir) {\n var c = this.cache[abs]\n if (c === 'DIR' || Array.isArray(c))\n return\n }\n\n this.matches[index][e] = true\n\n var st = this.statCache[abs]\n if (st)\n this.emit('stat', e, st)\n\n this.emit('match', e)\n}\n\nGlob.prototype._readdirInGlobStar = function (abs, cb) {\n if (this.aborted)\n return\n\n // follow all symlinked directories forever\n // just proceed as if this is a non-globstar situation\n if (this.follow)\n return this._readdir(abs, false, cb)\n\n var lstatkey = 'lstat\\0' + abs\n var self = this\n var lstatcb = inflight(lstatkey, lstatcb_)\n\n if (lstatcb)\n self.fs.lstat(abs, lstatcb)\n\n function lstatcb_ (er, lstat) {\n if (er && er.code === 'ENOENT')\n return cb()\n\n var isSym = lstat && lstat.isSymbolicLink()\n self.symlinks[abs] = isSym\n\n // If it's not a symlink or a dir, then it's definitely a regular file.\n // don't bother doing a readdir in that case.\n if (!isSym && lstat && !lstat.isDirectory()) {\n self.cache[abs] = 'FILE'\n cb()\n } else\n self._readdir(abs, false, cb)\n }\n}\n\nGlob.prototype._readdir = function (abs, inGlobStar, cb) {\n if (this.aborted)\n return\n\n cb = inflight('readdir\\0'+abs+'\\0'+inGlobStar, cb)\n if (!cb)\n return\n\n //console.error('RD %j %j', +inGlobStar, abs)\n if (inGlobStar && !ownProp(this.symlinks, abs))\n return this._readdirInGlobStar(abs, cb)\n\n if (ownProp(this.cache, abs)) {\n var c = this.cache[abs]\n if (!c || c === 'FILE')\n return cb()\n\n if (Array.isArray(c))\n return cb(null, c)\n }\n\n var self = this\n self.fs.readdir(abs, readdirCb(this, abs, cb))\n}\n\nfunction readdirCb (self, abs, cb) {\n return function (er, entries) {\n if (er)\n self._readdirError(abs, er, cb)\n else\n self._readdirEntries(abs, entries, cb)\n }\n}\n\nGlob.prototype._readdirEntries = function (abs, entries, cb) {\n if (this.aborted)\n return\n\n // if we haven't asked to stat everything, then just\n // assume that everything in there exists, so we can avoid\n // having to stat it a second time.\n if (!this.mark && !this.stat) {\n for (var i = 0; i < entries.length; i ++) {\n var e = entries[i]\n if (abs === '/')\n e = abs + e\n else\n e = abs + '/' + e\n this.cache[e] = true\n }\n }\n\n this.cache[abs] = entries\n return cb(null, entries)\n}\n\nGlob.prototype._readdirError = function (f, er, cb) {\n if (this.aborted)\n return\n\n // handle errors, and cache the information\n switch (er.code) {\n case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205\n case 'ENOTDIR': // totally normal. means it *does* exist.\n var abs = this._makeAbs(f)\n this.cache[abs] = 'FILE'\n if (abs === this.cwdAbs) {\n var error = new Error(er.code + ' invalid cwd ' + this.cwd)\n error.path = this.cwd\n error.code = er.code\n this.emit('error', error)\n this.abort()\n }\n break\n\n case 'ENOENT': // not terribly unusual\n case 'ELOOP':\n case 'ENAMETOOLONG':\n case 'UNKNOWN':\n this.cache[this._makeAbs(f)] = false\n break\n\n default: // some unusual error. Treat as failure.\n this.cache[this._makeAbs(f)] = false\n if (this.strict) {\n this.emit('error', er)\n // If the error is handled, then we abort\n // if not, we threw out of here\n this.abort()\n }\n if (!this.silent)\n console.error('glob error', er)\n break\n }\n\n return cb()\n}\n\nGlob.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar, cb) {\n var self = this\n this._readdir(abs, inGlobStar, function (er, entries) {\n self._processGlobStar2(prefix, read, abs, remain, index, inGlobStar, entries, cb)\n })\n}\n\n\nGlob.prototype._processGlobStar2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) {\n //console.error('pgs2', prefix, remain[0], entries)\n\n // no entries means not a dir, so it can never have matches\n // foo.txt/** doesn't match foo.txt\n if (!entries)\n return cb()\n\n // test without the globstar, and with every child both below\n // and replacing the globstar.\n var remainWithoutGlobStar = remain.slice(1)\n var gspref = prefix ? [ prefix ] : []\n var noGlobStar = gspref.concat(remainWithoutGlobStar)\n\n // the noGlobStar pattern exits the inGlobStar state\n this._process(noGlobStar, index, false, cb)\n\n var isSym = this.symlinks[abs]\n var len = entries.length\n\n // If it's a symlink, and we're in a globstar, then stop\n if (isSym && inGlobStar)\n return cb()\n\n for (var i = 0; i < len; i++) {\n var e = entries[i]\n if (e.charAt(0) === '.' && !this.dot)\n continue\n\n // these two cases enter the inGlobStar state\n var instead = gspref.concat(entries[i], remainWithoutGlobStar)\n this._process(instead, index, true, cb)\n\n var below = gspref.concat(entries[i], remain)\n this._process(below, index, true, cb)\n }\n\n cb()\n}\n\nGlob.prototype._processSimple = function (prefix, index, cb) {\n // XXX review this. Shouldn't it be doing the mounting etc\n // before doing stat? kinda weird?\n var self = this\n this._stat(prefix, function (er, exists) {\n self._processSimple2(prefix, index, er, exists, cb)\n })\n}\nGlob.prototype._processSimple2 = function (prefix, index, er, exists, cb) {\n\n //console.error('ps2', prefix, exists)\n\n if (!this.matches[index])\n this.matches[index] = Object.create(null)\n\n // If it doesn't exist, then just mark the lack of results\n if (!exists)\n return cb()\n\n if (prefix && isAbsolute(prefix) && !this.nomount) {\n var trail = /[\\/\\\\]$/.test(prefix)\n if (prefix.charAt(0) === '/') {\n prefix = path.join(this.root, prefix)\n } else {\n prefix = path.resolve(this.root, prefix)\n if (trail)\n prefix += '/'\n }\n }\n\n if (process.platform === 'win32')\n prefix = prefix.replace(/\\\\/g, '/')\n\n // Mark this as a match\n this._emitMatch(index, prefix)\n cb()\n}\n\n// Returns either 'DIR', 'FILE', or false\nGlob.prototype._stat = function (f, cb) {\n var abs = this._makeAbs(f)\n var needDir = f.slice(-1) === '/'\n\n if (f.length > this.maxLength)\n return cb()\n\n if (!this.stat && ownProp(this.cache, abs)) {\n var c = this.cache[abs]\n\n if (Array.isArray(c))\n c = 'DIR'\n\n // It exists, but maybe not how we need it\n if (!needDir || c === 'DIR')\n return cb(null, c)\n\n if (needDir && c === 'FILE')\n return cb()\n\n // otherwise we have to stat, because maybe c=true\n // if we know it exists, but not what it is.\n }\n\n var exists\n var stat = this.statCache[abs]\n if (stat !== undefined) {\n if (stat === false)\n return cb(null, stat)\n else {\n var type = stat.isDirectory() ? 'DIR' : 'FILE'\n if (needDir && type === 'FILE')\n return cb()\n else\n return cb(null, type, stat)\n }\n }\n\n var self = this\n var statcb = inflight('stat\\0' + abs, lstatcb_)\n if (statcb)\n self.fs.lstat(abs, statcb)\n\n function lstatcb_ (er, lstat) {\n if (lstat && lstat.isSymbolicLink()) {\n // If it's a symlink, then treat it as the target, unless\n // the target does not exist, then treat it as a file.\n return self.fs.stat(abs, function (er, stat) {\n if (er)\n self._stat2(f, abs, null, lstat, cb)\n else\n self._stat2(f, abs, er, stat, cb)\n })\n } else {\n self._stat2(f, abs, er, lstat, cb)\n }\n }\n}\n\nGlob.prototype._stat2 = function (f, abs, er, stat, cb) {\n if (er && (er.code === 'ENOENT' || er.code === 'ENOTDIR')) {\n this.statCache[abs] = false\n return cb()\n }\n\n var needDir = f.slice(-1) === '/'\n this.statCache[abs] = stat\n\n if (abs.slice(-1) === '/' && stat && !stat.isDirectory())\n return cb(null, false, stat)\n\n var c = true\n if (stat)\n c = stat.isDirectory() ? 'DIR' : 'FILE'\n this.cache[abs] = this.cache[abs] || c\n\n if (needDir && c === 'FILE')\n return cb()\n\n return cb(null, c, stat)\n}\n","const assert = require(\"assert\")\nconst path = require(\"path\")\nconst fs = require(\"fs\")\nlet glob = undefined\ntry {\n glob = require(\"glob\")\n} catch (_err) {\n // treat glob as optional.\n}\n\nconst defaultGlobOpts = {\n nosort: true,\n silent: true\n}\n\n// for EMFILE handling\nlet timeout = 0\n\nconst isWindows = (process.platform === \"win32\")\n\nconst defaults = options => {\n const methods = [\n 'unlink',\n 'chmod',\n 'stat',\n 'lstat',\n 'rmdir',\n 'readdir'\n ]\n methods.forEach(m => {\n options[m] = options[m] || fs[m]\n m = m + 'Sync'\n options[m] = options[m] || fs[m]\n })\n\n options.maxBusyTries = options.maxBusyTries || 3\n options.emfileWait = options.emfileWait || 1000\n if (options.glob === false) {\n options.disableGlob = true\n }\n if (options.disableGlob !== true && glob === undefined) {\n throw Error('glob dependency not found, set `options.disableGlob = true` if intentional')\n }\n options.disableGlob = options.disableGlob || false\n options.glob = options.glob || defaultGlobOpts\n}\n\nconst rimraf = (p, options, cb) => {\n if (typeof options === 'function') {\n cb = options\n options = {}\n }\n\n assert(p, 'rimraf: missing path')\n assert.equal(typeof p, 'string', 'rimraf: path should be a string')\n assert.equal(typeof cb, 'function', 'rimraf: callback function required')\n assert(options, 'rimraf: invalid options argument provided')\n assert.equal(typeof options, 'object', 'rimraf: options should be object')\n\n defaults(options)\n\n let busyTries = 0\n let errState = null\n let n = 0\n\n const next = (er) => {\n errState = errState || er\n if (--n === 0)\n cb(errState)\n }\n\n const afterGlob = (er, results) => {\n if (er)\n return cb(er)\n\n n = results.length\n if (n === 0)\n return cb()\n\n results.forEach(p => {\n const CB = (er) => {\n if (er) {\n if ((er.code === \"EBUSY\" || er.code === \"ENOTEMPTY\" || er.code === \"EPERM\") &&\n busyTries < options.maxBusyTries) {\n busyTries ++\n // try again, with the same exact callback as this one.\n return setTimeout(() => rimraf_(p, options, CB), busyTries * 100)\n }\n\n // this one won't happen if graceful-fs is used.\n if (er.code === \"EMFILE\" && timeout < options.emfileWait) {\n return setTimeout(() => rimraf_(p, options, CB), timeout ++)\n }\n\n // already gone\n if (er.code === \"ENOENT\") er = null\n }\n\n timeout = 0\n next(er)\n }\n rimraf_(p, options, CB)\n })\n }\n\n if (options.disableGlob || !glob.hasMagic(p))\n return afterGlob(null, [p])\n\n options.lstat(p, (er, stat) => {\n if (!er)\n return afterGlob(null, [p])\n\n glob(p, options.glob, afterGlob)\n })\n\n}\n\n// Two possible strategies.\n// 1. Assume it's a file. unlink it, then do the dir stuff on EPERM or EISDIR\n// 2. Assume it's a directory. readdir, then do the file stuff on ENOTDIR\n//\n// Both result in an extra syscall when you guess wrong. However, there\n// are likely far more normal files in the world than directories. This\n// is based on the assumption that a the average number of files per\n// directory is >= 1.\n//\n// If anyone ever complains about this, then I guess the strategy could\n// be made configurable somehow. But until then, YAGNI.\nconst rimraf_ = (p, options, cb) => {\n assert(p)\n assert(options)\n assert(typeof cb === 'function')\n\n // sunos lets the root user unlink directories, which is... weird.\n // so we have to lstat here and make sure it's not a dir.\n options.lstat(p, (er, st) => {\n if (er && er.code === \"ENOENT\")\n return cb(null)\n\n // Windows can EPERM on stat. Life is suffering.\n if (er && er.code === \"EPERM\" && isWindows)\n fixWinEPERM(p, options, er, cb)\n\n if (st && st.isDirectory())\n return rmdir(p, options, er, cb)\n\n options.unlink(p, er => {\n if (er) {\n if (er.code === \"ENOENT\")\n return cb(null)\n if (er.code === \"EPERM\")\n return (isWindows)\n ? fixWinEPERM(p, options, er, cb)\n : rmdir(p, options, er, cb)\n if (er.code === \"EISDIR\")\n return rmdir(p, options, er, cb)\n }\n return cb(er)\n })\n })\n}\n\nconst fixWinEPERM = (p, options, er, cb) => {\n assert(p)\n assert(options)\n assert(typeof cb === 'function')\n\n options.chmod(p, 0o666, er2 => {\n if (er2)\n cb(er2.code === \"ENOENT\" ? null : er)\n else\n options.stat(p, (er3, stats) => {\n if (er3)\n cb(er3.code === \"ENOENT\" ? null : er)\n else if (stats.isDirectory())\n rmdir(p, options, er, cb)\n else\n options.unlink(p, cb)\n })\n })\n}\n\nconst fixWinEPERMSync = (p, options, er) => {\n assert(p)\n assert(options)\n\n try {\n options.chmodSync(p, 0o666)\n } catch (er2) {\n if (er2.code === \"ENOENT\")\n return\n else\n throw er\n }\n\n let stats\n try {\n stats = options.statSync(p)\n } catch (er3) {\n if (er3.code === \"ENOENT\")\n return\n else\n throw er\n }\n\n if (stats.isDirectory())\n rmdirSync(p, options, er)\n else\n options.unlinkSync(p)\n}\n\nconst rmdir = (p, options, originalEr, cb) => {\n assert(p)\n assert(options)\n assert(typeof cb === 'function')\n\n // try to rmdir first, and only readdir on ENOTEMPTY or EEXIST (SunOS)\n // if we guessed wrong, and it's not a directory, then\n // raise the original error.\n options.rmdir(p, er => {\n if (er && (er.code === \"ENOTEMPTY\" || er.code === \"EEXIST\" || er.code === \"EPERM\"))\n rmkids(p, options, cb)\n else if (er && er.code === \"ENOTDIR\")\n cb(originalEr)\n else\n cb(er)\n })\n}\n\nconst rmkids = (p, options, cb) => {\n assert(p)\n assert(options)\n assert(typeof cb === 'function')\n\n options.readdir(p, (er, files) => {\n if (er)\n return cb(er)\n let n = files.length\n if (n === 0)\n return options.rmdir(p, cb)\n let errState\n files.forEach(f => {\n rimraf(path.join(p, f), options, er => {\n if (errState)\n return\n if (er)\n return cb(errState = er)\n if (--n === 0)\n options.rmdir(p, cb)\n })\n })\n })\n}\n\n// this looks simpler, and is strictly *faster*, but will\n// tie up the JavaScript thread and fail on excessively\n// deep directory trees.\nconst rimrafSync = (p, options) => {\n options = options || {}\n defaults(options)\n\n assert(p, 'rimraf: missing path')\n assert.equal(typeof p, 'string', 'rimraf: path should be a string')\n assert(options, 'rimraf: missing options')\n assert.equal(typeof options, 'object', 'rimraf: options should be object')\n\n let results\n\n if (options.disableGlob || !glob.hasMagic(p)) {\n results = [p]\n } else {\n try {\n options.lstatSync(p)\n results = [p]\n } catch (er) {\n results = glob.sync(p, options.glob)\n }\n }\n\n if (!results.length)\n return\n\n for (let i = 0; i < results.length; i++) {\n const p = results[i]\n\n let st\n try {\n st = options.lstatSync(p)\n } catch (er) {\n if (er.code === \"ENOENT\")\n return\n\n // Windows can EPERM on stat. Life is suffering.\n if (er.code === \"EPERM\" && isWindows)\n fixWinEPERMSync(p, options, er)\n }\n\n try {\n // sunos lets the root user unlink directories, which is... weird.\n if (st && st.isDirectory())\n rmdirSync(p, options, null)\n else\n options.unlinkSync(p)\n } catch (er) {\n if (er.code === \"ENOENT\")\n return\n if (er.code === \"EPERM\")\n return isWindows ? fixWinEPERMSync(p, options, er) : rmdirSync(p, options, er)\n if (er.code !== \"EISDIR\")\n throw er\n\n rmdirSync(p, options, er)\n }\n }\n}\n\nconst rmdirSync = (p, options, originalEr) => {\n assert(p)\n assert(options)\n\n try {\n options.rmdirSync(p)\n } catch (er) {\n if (er.code === \"ENOENT\")\n return\n if (er.code === \"ENOTDIR\")\n throw originalEr\n if (er.code === \"ENOTEMPTY\" || er.code === \"EEXIST\" || er.code === \"EPERM\")\n rmkidsSync(p, options)\n }\n}\n\nconst rmkidsSync = (p, options) => {\n assert(p)\n assert(options)\n options.readdirSync(p).forEach(f => rimrafSync(path.join(p, f), options))\n\n // We only end up here once we got ENOTEMPTY at least once, and\n // at this point, we are guaranteed to have removed all the kids.\n // So, we know that it won't be ENOENT or ENOTDIR or anything else.\n // try really hard to delete stuff on windows, because it has a\n // PROFOUNDLY annoying habit of not closing handles promptly when\n // files are deleted, resulting in spurious ENOTEMPTY errors.\n const retries = isWindows ? 100 : 1\n let i = 0\n do {\n let threw = true\n try {\n const ret = options.rmdirSync(p, options)\n threw = false\n return ret\n } finally {\n if (++i < retries && threw)\n continue\n }\n } while (true)\n}\n\nmodule.exports = rimraf\nrimraf.sync = rimrafSync\n","'use strict';\n\nconst FS = require('fs');\nconst PATH = require('path');\nconst constants = {\n DIRECTORY: 'directory',\n FILE: 'file'\n}\n\nfunction safeReadDirSync (path) {\n let dirData = {};\n try {\n dirData = FS.readdirSync(path);\n } catch(ex) {\n if (ex.code == \"EACCES\" || ex.code == \"EPERM\") {\n //User does not have permissions, ignore directory\n return null;\n }\n else throw ex;\n }\n return dirData;\n}\n\n/**\n * Normalizes windows style paths by replacing double backslahes with single forward slahes (unix style).\n * @param {string} path\n * @return {string}\n */\nfunction normalizePath(path) {\n return path.replace(/\\\\/g, '/');\n}\n\n/**\n * Tests if the supplied parameter is of type RegExp\n * @param {any} regExp\n * @return {Boolean}\n */\nfunction isRegExp(regExp) {\n return typeof regExp === \"object\" && regExp.constructor == RegExp;\n}\n\n/**\n * Collects the files and folders for a directory path into an Object, subject\n * to the options supplied, and invoking optional\n * @param {String} path\n * @param {Object} options\n * @param {function} onEachFile\n * @param {function} onEachDirectory\n * @return {Object}\n */\nfunction directoryTree (path, options, onEachFile, onEachDirectory, currentDepth = 0) {\n options = options || {};\n\n if (options.depth !== undefined && options.attributes && options.attributes.indexOf('size') !== -1) {\n throw new Error('usage of size attribute with depth option is prohibited');\n }\n\n const name = PATH.basename(path);\n path = options.normalizePath ? normalizePath(path) : path;\n const item = { path, name };\n let stats;\n let lstat;\n\n try {\n stats = FS.statSync(path);\n lstat = FS.lstatSync(path);\n }\n catch (e) { return null }\n\n // Skip if it matches the exclude regex\n if (options.exclude) {\n const excludes = isRegExp(options.exclude) ? [options.exclude] : options.exclude;\n if (excludes.some((exclusion) => exclusion.test(path))) {\n return null;\n }\n }\n\n if (lstat.isSymbolicLink()) {\n item.isSymbolicLink = true;\n // Skip if symbolic links should not be followed\n if (options.followSymlinks === false)\n return null;\n // Initialize the symbolic links array to avoid infinite loops\n if (!options.symlinks)\n options = { ...options, symlinks: [] };\n // Skip if a cyclic symbolic link has been found\n if (options.symlinks.find(ino => ino === lstat.ino)) {\n return null;\n } else {\n options.symlinks.push(lstat.ino);\n }\n }\n\n if (stats.isFile()) {\n\n const ext = PATH.extname(path).toLowerCase();\n\n // Skip if it does not match the extension regex\n if (options.extensions && !options.extensions.test(ext))\n return null;\n\n\n if (options.attributes) {\n options.attributes.forEach((attribute) => {\n switch (attribute) {\n case 'extension':\n item.extension = ext;\n break;\n case 'type':\n item.type = constants.FILE;\n break;\n default:\n item[attribute] = stats[attribute];\n break;\n }\n });\n }\n\n if (onEachFile) {\n onEachFile(item, path, stats);\n }\n }\n else if (stats.isDirectory()) {\n let dirData = safeReadDirSync(path);\n if (dirData === null) return null;\n\n if (options.depth === undefined || options.depth > currentDepth) {\n item.children = dirData\n .map(child => directoryTree(PATH.join(path, child), options, onEachFile, onEachDirectory, currentDepth + 1))\n .filter(e => !!e);\n }\n\n if (options.attributes) {\n options.attributes.forEach((attribute) => {\n switch (attribute) {\n case 'size':\n item.size = item.children.reduce((prev, cur) => prev + cur.size, 0);\n break;\n case 'type':\n item.type = constants.DIRECTORY;\n break;\n case 'extension':\n break;\n default:\n item[attribute] = stats[attribute];\n break;\n }\n \n });\n }\n\n if (onEachDirectory) {\n onEachDirectory(item, path, stats);\n }\n } else {\n return null; // Or set item.size = 0 for devices, FIFO and sockets ?\n }\n return item;\n}\n\nmodule.exports = directoryTree;\n","import pathParser from 'path'\n\nimport { createPluginCache } from './utils'\n\nimport type { FileManager, EmittedFile, File } from './managers/fileManager'\nimport type { PluginContext, KubbPlugin, PluginFactoryOptions } from './types'\n\ntype KubbPluginFactory<T extends PluginFactoryOptions = PluginFactoryOptions> = (\n options: T['options']\n) => T['nested'] extends true ? Array<KubbPlugin<T>> : KubbPlugin<T>\n\nexport function createPlugin<T extends PluginFactoryOptions = PluginFactoryOptions>(factory: KubbPluginFactory<T>) {\n return (options: T['options']) => {\n const plugin = factory(options)\n if (Array.isArray(plugin)) {\n throw new Error('Not implemented')\n }\n\n // default transform\n if (!plugin.transform) {\n plugin.transform = function transform(code) {\n return code\n }\n }\n\n return plugin\n }\n}\n\ntype Options = {\n config: PluginContext['config']\n fileManager: FileManager\n resolveId: PluginContext['resolveId']\n load: PluginContext['load']\n}\n\n// not publicly exported\nexport type CorePluginOptions = PluginFactoryOptions<Options, false, PluginContext>\n\nexport const name = 'core' as const\n\nconst isEmittedFile = (result: EmittedFile | File): result is EmittedFile => {\n return !!(result as any).id\n}\n\nexport const definePlugin = createPlugin<CorePluginOptions>((options) => {\n const { fileManager, resolveId, load } = options\n const indexFiles: File[] = []\n\n const api: PluginContext = {\n get config() {\n return options.config\n },\n fileManager,\n async addFile(file, options) {\n if (isEmittedFile(file)) {\n const resolvedId = await resolveId({ fileName: file.id, directory: file.importer, options: file.options })\n const path = resolvedId || file.importer || file.id\n\n return fileManager.add({\n path,\n fileName: file.name || file.id,\n source: file.source || '',\n })\n }\n\n if (options?.root) {\n indexFiles.push(file)\n }\n\n return fileManager.addOrAppend(file)\n },\n resolveId,\n load,\n cache: createPluginCache(Object.create(null)),\n }\n\n return {\n name,\n api,\n resolveId(fileName, directory) {\n if (!directory) {\n return null\n }\n return pathParser.resolve(directory, fileName)\n },\n }\n})\n","import type { MaybePromise } from '../types'\n\nexport const isPromise = <T>(result: MaybePromise<T>): result is Promise<T> => {\n return typeof (result as any)?.then === 'function'\n}\n","/* eslint-disable consistent-return */\nimport { promises as fs } from 'fs'\nimport pathParser from 'path'\n\nimport rimraf from 'rimraf'\n\n\nconst safeWriteFileToPath = async (path: string, data: any) => {\n // resolve the full path and get just the directory, ignoring the file and extension\n const passedPath = pathParser.dirname(pathParser.resolve(path))\n // make the directory, recursively. Theoretically, if every directory in the path exists, this won't do anything.\n await fs.mkdir(passedPath, { recursive: true })\n // write the file to the newly created directory\n return fs.writeFile(pathParser.resolve(path), data, { encoding: 'utf-8' })\n}\n\nexport const write = async (data: string, path: string) => {\n \n\n try {\n await fs.stat(path)\n const oldContent = await fs.readFile(path, { encoding: 'utf-8' })\n if (oldContent?.toString() === data) {\n return\n }\n } catch (_err) {\n return safeWriteFileToPath(path, data)\n }\n\n return safeWriteFileToPath(path, data)\n}\n\nexport const clean = async (path: string) => {\n return new Promise((resolve, reject) => {\n rimraf(path, (err) => {\n if (err) {\n reject(err)\n } else {\n resolve(true)\n }\n })\n })\n}\n","/* eslint-disable no-param-reassign */\n/* eslint-disable consistent-return */\n\nexport interface Cache<TCache = any> {\n delete(id: string): boolean\n get<T = TCache>(id: string): T\n has(id: string): boolean\n set<T = TCache>(id: string, value: T): void\n}\n\nexport function createPluginCache(cache: any): Cache {\n return {\n delete(id: string) {\n return delete cache[id]\n },\n get(id: string) {\n const item = cache[id]\n if (!item) return\n item[0] = 0\n return item[1]\n },\n has(id: string) {\n const item = cache[id]\n if (!item) return false\n item[0] = 0\n return true\n },\n set(id: string, value: any) {\n cache[id] = [0, value]\n },\n }\n}\n","import pathParser from 'path'\nimport { promises as fs } from 'fs'\n\n// TODO check for a better way or resolving the relative path\nexport const getRelativePath = (root?: string | null, file?: string | null) => {\n if (!root || !file) {\n throw new Error('Root and file should be filled in when retrieving the relativePath')\n }\n const newPath = pathParser.relative(root, file).replace('../', '').replace('.ts', '').trimEnd()\n\n return `./${newPath}`\n}\n\nexport type PathMode = 'file' | 'directory'\n\nexport const getPathMode = (path: string | undefined | null): PathMode | undefined => {\n if (!path) {\n return undefined\n }\n return pathParser.extname(path) ? 'file' : 'directory'\n}\n\nexport const read = async (path: string) => {\n try {\n return fs.readFile(path)\n } catch (err) {\n console.error(err)\n throw err\n }\n}\n","import EventEmitter from './index.js'\n\nexport { EventEmitter }\nexport default EventEmitter\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","import type EventEmitter from 'eventemitter3'\nimport type { File, Status, UUID } from './types'\n\nconst keys = {\n getFileKey: () => `file`,\n getStatusChangeKey: () => `status-change`,\n getStatusChangeByIdKey: (id: string) => `${id}-status-change`,\n getSuccessKey: () => `success`,\n getRemoveKey: (id: string) => `${id}remove`,\n} as const\n\ntype VoidFunction = () => void\n\nexport const getFileManagerEvents = (emitter: EventEmitter) => {\n return {\n /**\n * Emiter\n */\n emitFile: (id: UUID, file: File): void => {\n emitter.emit(keys.getFileKey(), id, file)\n },\n emitStatusChange: (file: File): void => {\n emitter.emit(keys.getStatusChangeKey(), file)\n },\n emitStatusChangeById: (id: UUID, status: Status): void => {\n emitter.emit(keys.getStatusChangeByIdKey(id), status)\n },\n emitSuccess: (): void => {\n emitter.emit(keys.getSuccessKey())\n },\n emitRemove: (id: UUID, file: File): void => {\n emitter.emit(keys.getRemoveKey(id), file)\n },\n /**\n * Listeners\n */\n\n onAdd: (callback: (id: UUID, file: File) => void): VoidFunction => {\n emitter.on(keys.getFileKey(), callback)\n return () => emitter.removeListener(keys.getFileKey(), callback)\n },\n onStatusChange: (callback: (file: File) => void): VoidFunction => {\n emitter.on(keys.getStatusChangeKey(), callback)\n return () => emitter.removeListener(keys.getStatusChangeKey(), callback)\n },\n onStatusChangeById: (id: UUID, callback: (status: Status) => void): VoidFunction => {\n emitter.on(keys.getStatusChangeByIdKey(id), callback)\n return () => emitter.removeListener(keys.getStatusChangeByIdKey(id), callback)\n },\n onSuccess: (callback: () => void): VoidFunction => {\n emitter.on(keys.getSuccessKey(), callback)\n return () => emitter.removeListener(keys.getSuccessKey(), callback)\n },\n onRemove: (id: UUID, callback: (file: File) => void): VoidFunction => {\n emitter.on(keys.getRemoveKey(id), callback)\n return () => emitter.removeListener(keys.getRemoveKey(id), callback)\n },\n }\n}\n","import EventEmitter from 'eventemitter3'\nimport { v4 as uuidv4 } from 'uuid'\n\nimport { getFileManagerEvents } from './events'\n\nimport { write, read } from '../../utils'\n\nimport type { CacheStore, UUID, Status, File } from './types'\n\nexport class FileManager {\n private cache: Map<CacheStore['id'], CacheStore> = new Map()\n\n emitter = new EventEmitter()\n\n events = getFileManagerEvents(this.emitter)\n\n constructor() {\n this.events.onStatusChange(() => {\n if (this.getCountByStatus('removed') === this.cache.size) {\n // all files are been resolved and written to the file system\n this.events.emitSuccess()\n }\n })\n }\n\n private getCache(id: UUID) {\n return this.cache.get(id)\n }\n\n private getCacheByPath(path: string | undefined): CacheStore | undefined {\n let cache\n\n this.cache.forEach((item) => {\n if (item.file.path === path) {\n cache = item\n }\n })\n return cache as CacheStore\n }\n\n private getCountByStatus(status: Status) {\n let count = 0\n\n this.cache.forEach((item) => {\n if (item.status === status) {\n count++\n }\n })\n return count\n }\n\n get files() {\n const files: File[] = []\n this.cache.forEach((item) => {\n files.push(item.file)\n })\n\n return files\n }\n\n add(file: File) {\n const cacheItem = { id: uuidv4(), file, status: 'new' as Status }\n\n this.cache.set(cacheItem.id, cacheItem)\n this.events.emitFile(cacheItem.id, file)\n\n return new Promise<File>((resolve) => {\n const unsubscribe = this.events.onRemove(cacheItem.id, (file) => {\n resolve(file)\n unsubscribe()\n })\n })\n }\n\n addOrAppend(file: File) {\n const previousCache = this.getCacheByPath(file.path)\n\n if (previousCache) {\n this.remove(previousCache.id)\n return this.add({\n ...file,\n source: `${previousCache.file.source}\\n${file.source}`,\n })\n }\n return this.add(file)\n }\n\n setStatus(id: UUID, status: Status) {\n const cacheItem = this.getCache(id)\n if (!cacheItem) {\n return\n }\n\n cacheItem.status = status\n this.cache.set(id, cacheItem)\n this.events.emitStatusChange(cacheItem.file)\n this.events.emitStatusChangeById(id, status)\n }\n\n get(id: UUID) {\n const cacheItem = this.getCache(id)\n return cacheItem?.file\n }\n\n remove(id: UUID) {\n const cacheItem = this.getCache(id)\n if (!cacheItem) {\n return\n }\n\n this.setStatus(id, 'removed')\n this.events.emitRemove(id, cacheItem.file)\n }\n\n async write(...params: Parameters<typeof write>) {\n return write(...params)\n }\n\n async read(...params: Parameters<typeof read>) {\n return read(...params)\n }\n}\n","import dirTree from 'directory-tree'\n\nimport type { DirectoryTree, DirectoryTreeOptions } from 'directory-tree'\n\nexport class TreeNode<T = unknown> {\n public data: T\n\n public parent?: TreeNode<T>\n\n public children: Array<TreeNode<T>>\n\n constructor(data: T, parent?: TreeNode<T>) {\n this.data = data\n this.parent = parent\n return this\n }\n\n addChild(data: T) {\n const child = new TreeNode(data, this)\n if (!this.children) {\n this.children = []\n }\n this.children.push(child)\n return child\n }\n\n find(data: T) {\n if (data === this.data) {\n return this\n }\n\n if (this.children) {\n for (let i = 0, { length } = this.children, target: any = null; i < length; i++) {\n target = this.children[i].find(data)\n if (target) {\n return target\n }\n }\n }\n\n return null\n }\n\n leaves() {\n if (!this.children || this.children.length === 0) {\n // this is a leaf\n return [this]\n }\n\n // if not a leaf, return all children's leaves recursively\n const leaves = []\n if (this.children) {\n for (let i = 0, { length } = this.children; i < length; i++) {\n // eslint-disable-next-line prefer-spread\n leaves.push.apply(leaves, this.children[i].leaves())\n }\n }\n return leaves\n }\n\n root() {\n if (!this.parent) {\n return this\n }\n return this.parent.root()\n }\n\n forEach(callback: (treeNode: TreeNode<T>) => void) {\n if (typeof callback !== 'function') {\n throw new TypeError('forEach() callback must be a function')\n }\n\n // run this node through function\n callback(this)\n\n // do the same for all children\n if (this.children) {\n for (let i = 0, { length } = this.children; i < length; i++) {\n this.children[i].forEach(callback)\n }\n }\n\n return this\n }\n\n public static build(path: string, options: DirectoryTreeOptions = {}) {\n const filteredTree = dirTree(path, { extensions: options?.extensions, exclude: options.exclude })\n\n if (!filteredTree) {\n return\n }\n\n const treeNode = new TreeNode({ name: filteredTree.name, path: filteredTree.path, type: filteredTree.type })\n\n const recurse = (node: typeof treeNode, item: DirectoryTree) => {\n const subNode = node.addChild({ name: item.name, path: item.path, type: item.type })\n\n if (item.children?.length) {\n item.children?.forEach((child) => {\n recurse(subNode, child)\n })\n }\n }\n\n filteredTree.children?.forEach((child) => recurse(treeNode, child))\n\n return treeNode\n }\n}\n","/* eslint-disable no-await-in-loop */\n/* eslint-disable no-restricted-syntax */\n\nimport { definePlugin } from '../../plugin'\nimport { FileManager } from '../fileManager'\n\nimport type { Argument0, Strategy } from './types'\nimport type { KubbConfig, KubbPlugin, PluginLifecycleHooks, PluginLifecycle, MaybePromise, ResolveIdParams } from '../../types'\nimport type { Logger } from '../../build'\nimport type { CorePluginOptions } from '../../plugin'\n\n// inspired by: https://github.com/rollup/rollup/blob/master/src/utils/PluginDriver.ts#\n\n// This will make sure no input hook is omitted\nconst hookNames: {\n [P in PluginLifecycleHooks]: 1\n} = {\n validate: 1,\n buildStart: 1,\n resolveId: 1,\n load: 1,\n transform: 1,\n writeFile: 1,\n buildEnd: 1,\n}\nexport const hooks = Object.keys(hookNames) as [PluginLifecycleHooks]\n\nexport class PluginManager {\n public plugins: KubbPlugin[]\n\n public readonly fileManager: FileManager\n\n private readonly logger?: Logger\n\n private readonly config: KubbConfig\n\n public readonly core: KubbPlugin<CorePluginOptions>\n\n constructor(config: KubbConfig, options: { logger?: Logger }) {\n this.logger = options.logger\n this.config = config\n\n this.fileManager = new FileManager()\n this.core = definePlugin({\n config,\n fileManager: this.fileManager,\n load: this.load,\n resolveId: this.resolveId,\n }) as KubbPlugin<CorePluginOptions> & {\n api: CorePluginOptions['api']\n }\n this.plugins = [this.core, ...(config.plugins || [])]\n }\n\n resolveId = (params: ResolveIdParams) => {\n if (params.pluginName) {\n return this.hookForPlugin(params.pluginName, 'resolveId', [params.fileName, params.directory, params.options])\n }\n return this.hookFirst('resolveId', [params.fileName, params.directory, params.options])\n }\n\n load = async (id: string) => {\n return this.hookFirst('load', [id])\n }\n\n // run only hook for a specific plugin name\n hookForPlugin<H extends PluginLifecycleHooks>(\n pluginName: string,\n hookName: H,\n parameters: Parameters<PluginLifecycle[H]>,\n skipped?: ReadonlySet<KubbPlugin> | null\n ): Promise<ReturnType<PluginLifecycle[H]> | null> {\n let promise: Promise<ReturnType<PluginLifecycle[H]> | null> = Promise.resolve(null)\n for (const plugin of this.getSortedPlugins(hookName, pluginName)) {\n if (skipped && skipped.has(plugin)) continue\n promise = promise.then((result) => {\n if (result != null) return result\n return this.run('hookFirst', hookName, parameters, plugin) as any\n })\n }\n return promise\n }\n\n // chains, first non-null result stops and returns\n hookFirst<H extends PluginLifecycleHooks>(\n hookName: H,\n parameters: Parameters<PluginLifecycle[H]>,\n skipped?: ReadonlySet<KubbPlugin> | null\n ): Promise<ReturnType<PluginLifecycle[H]> | null> {\n let promise: Promise<ReturnType<PluginLifecycle[H]> | null> = Promise.resolve(null)\n for (const plugin of this.getSortedPlugins(hookName)) {\n if (skipped && skipped.has(plugin)) continue\n promise = promise.then((result) => {\n if (result != null) return result\n return this.run('hookFirst', hookName, parameters, plugin) as any\n })\n }\n return promise\n }\n\n // parallel\n async hookParallel<H extends PluginLifecycleHooks, TOuput = void>(hookName: H, parameters?: Parameters<PluginLifecycle[H]> | undefined) {\n const parallelPromises: Promise<TOuput>[] = []\n\n for (const plugin of this.getSortedPlugins(hookName)) {\n if ((plugin[hookName] as { sequential?: boolean })?.sequential) {\n await Promise.all(parallelPromises)\n parallelPromises.length = 0\n await this.run('hookParallel', hookName, parameters, plugin)\n } else {\n const promise: Promise<TOuput> = this.run('hookParallel', hookName, parameters, plugin)\n\n parallelPromises.push(promise)\n }\n }\n return Promise.all(parallelPromises)\n }\n\n // chains, reduces returned value, handling the reduced value as the first hook argument\n hookReduceArg0<H extends PluginLifecycleHooks>(\n hookName: H,\n [argument0, ...rest]: Parameters<PluginLifecycle[H]>,\n reduce: (reduction: Argument0<H>, result: ReturnType<PluginLifecycle[H]>, plugin: KubbPlugin) => MaybePromise<Argument0<H> | null>\n ): Promise<Argument0<H>> {\n let promise = Promise.resolve(argument0)\n for (const plugin of this.getSortedPlugins(hookName)) {\n promise = promise.then((argument0) =>\n this.run('hookReduceArg0', hookName, [argument0, ...rest] as Parameters<PluginLifecycle[H]>, plugin).then((result) =>\n reduce.call(this.core.api, argument0, result, plugin)\n )\n )\n }\n return promise\n }\n\n // chains\n\n hookSeq<H extends PluginLifecycleHooks>(hookName: H, parameters?: Parameters<PluginLifecycle[H]>) {\n let promise: Promise<void> = Promise.resolve()\n for (const plugin of this.getSortedPlugins(hookName)) {\n promise = promise.then(() => this.run('hookSeq', hookName, parameters, plugin))\n }\n return promise.then(noReturn)\n }\n\n private getSortedPlugins(hookName: keyof PluginLifecycle, pluginName?: string): KubbPlugin[] {\n const plugins = [...this.plugins]\n\n if (pluginName) {\n const pluginsByPluginName = plugins.filter((item) => item.name === pluginName && item[hookName])\n if (pluginsByPluginName.length === 0) {\n // fallback on the core plugin when there is no match\n if (this.config.logLevel === 'warn' && this.logger?.spinner) {\n this.logger.spinner.info(`Plugin hook with ${hookName} not found for plugin ${pluginName}`)\n }\n return [this.core]\n }\n return pluginsByPluginName\n }\n\n return plugins\n }\n\n /**\n * Run an async plugin hook and return the result.\n * @param hookName Name of the plugin hook. Must be either in `PluginHooks` or `OutputPluginValueHooks`.\n * @param args Arguments passed to the plugin hook.\n * @param plugin The actual pluginObject to run.\n */\n // Implementation signature\n private run<H extends PluginLifecycleHooks, TResult = void>(\n strategy: Strategy,\n hookName: H,\n parameters: unknown[] | undefined,\n plugin: KubbPlugin\n ): Promise<TResult> {\n const hook = plugin[hookName]!\n\n return Promise.resolve()\n .then(() => {\n if (typeof hook !== 'function') {\n return hook\n }\n\n if (this.config.logLevel === 'info' && this.logger?.spinner) {\n this.logger.spinner.text = `[${strategy}] ${hookName}: Excecuting task for plugin ${plugin.name} \\n`\n }\n\n const hookResult = (hook as any).apply(this.core.api, parameters)\n\n if (!hookResult?.then) {\n // short circuit for non-thenables and non-Promises\n if (this.config.logLevel === 'info' && this.logger?.spinner) {\n this.logger.spinner.succeed(`[${strategy}] ${hookName}: Excecuting task for plugin ${plugin.name} \\n`)\n }\n return hookResult\n }\n\n return Promise.resolve(hookResult).then((result) => {\n // action was fulfilled\n if (this.config.logLevel === 'info' && this.logger?.spinner) {\n this.logger.spinner.succeed(`[${strategy}] ${hookName}: Excecuting task for plugin ${plugin.name} \\n`)\n }\n return result\n })\n })\n .catch((e: Error) => this.catcher<H>(e, plugin, hookName))\n }\n\n /**\n * Run a sync plugin hook and return the result.\n * @param hookName Name of the plugin hook. Must be in `PluginHooks`.\n * @param args Arguments passed to the plugin hook.\n * @param plugin The acutal plugin\n * @param replaceContext When passed, the plugin context can be overridden.\n */\n private runSync<H extends PluginLifecycleHooks>(hookName: H, parameters: Parameters<PluginLifecycle[H]>, plugin: KubbPlugin): ReturnType<PluginLifecycle[H]> {\n const hook = plugin[hookName]!\n\n // const context = this.pluginContexts.get(plugin)!;\n\n try {\n // eslint-disable-next-line @typescript-eslint/ban-types\n return (hook as Function).apply(this.core.api, parameters)\n } catch (error: any) {\n return error\n }\n }\n\n private catcher<H extends PluginLifecycleHooks>(e: Error, plugin: KubbPlugin, hookName: H) {\n const text = `${e.message} (plugin: ${plugin.name}, hook: ${hookName})\\n`\n\n if (this.logger?.spinner) {\n this.logger.spinner.fail(text)\n throw e\n }\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nfunction noReturn() {}\n","import type { KubbPlugin } from '../../types'\n\nexport class ValidationPluginError extends Error {}\n\nexport const validatePlugins = (plugins: KubbPlugin[], dependedPluginNames: string | string[]): true => {\n let pluginNames: string[] = []\n if (typeof dependedPluginNames === 'string') {\n pluginNames = [dependedPluginNames]\n } else {\n pluginNames = dependedPluginNames\n }\n\n pluginNames.forEach((pluginName) => {\n const exists = plugins.some((plugin) => plugin.name === pluginName)\n if (!exists) {\n throw new ValidationPluginError(`This plugin depends on the ${pluginName} plugin.`)\n }\n })\n\n return true\n}\n","import { PluginManager } from './managers/pluginManager'\nimport { clean } from './utils/write'\n\nimport type { FileManager } from './managers/fileManager'\nimport type { PluginContext, TransformResult, LogLevel, KubbPlugin } from './types'\n\ntype BuildOutput = {\n fileManager: FileManager\n}\n\n// Same type as ora\ntype Spinner = {\n start: (text?: string) => Spinner\n succeed: (text: string) => Spinner\n fail: (text?: string) => Spinner\n stopAndPersist: (options: { text: string }) => Spinner\n render: () => Spinner\n text: string\n info: (text: string) => Spinner\n}\n\nexport type Logger = {\n log: (message: string, logLevel: LogLevel) => void\n spinner?: Spinner\n}\ntype BuildOptions = {\n config: PluginContext['config']\n mode: 'development' | 'production'\n logger?: Logger\n}\n\nasync function transformReducer(this: PluginContext, _previousCode: string, result: TransformResult, _plugin: KubbPlugin) {\n if (result === null) {\n return null\n }\n return result\n}\n\nasync function buildImplementation(options: BuildOptions, done: (output: BuildOutput) => void) {\n const { config, logger } = options\n\n if (config.output.clean) {\n await clean(config.output.path)\n }\n\n const pluginManager = new PluginManager(config, { logger })\n const { plugins, fileManager } = pluginManager\n\n try {\n await pluginManager.hookParallel<'validate', true>('validate', [plugins])\n } catch (e: any) {\n return\n }\n\n fileManager.events.onSuccess(async () => {\n await pluginManager.hookParallel('buildEnd')\n setTimeout(() => {\n done({ fileManager })\n }, 1000)\n })\n\n fileManager.events.onAdd(async (id, file) => {\n const { path } = file\n let { source: code } = file\n\n const loadedResult = await pluginManager.hookFirst('load', [path])\n if (loadedResult) {\n code = loadedResult\n }\n\n if (code) {\n const transformedCode = await pluginManager.hookReduceArg0('transform', [code, path], transformReducer)\n\n if (typeof config.input === 'object') {\n await pluginManager.hookParallel('writeFile', [transformedCode, path])\n }\n\n fileManager.setStatus(id, 'success')\n fileManager.remove(id)\n }\n })\n\n await pluginManager.hookParallel('buildStart', [config])\n}\n\nexport type KubbBuild = (options: BuildOptions) => Promise<BuildOutput>\n\nexport function build(options: BuildOptions): Promise<BuildOutput> {\n return new Promise((resolve, reject) => {\n try {\n buildImplementation(options, resolve)\n } catch (e) {\n reject(e)\n }\n })\n}\n","import type { MaybePromise, KubbUserConfig, CLIOptions } from './types'\n\n/**\n * Type helper to make it easier to use kubb.config.ts\n * accepts a direct {@link KubbConfig} object, or a function that returns it.\n * The function receives a {@link ConfigEnv} object that exposes two properties:\n */\nexport const defineConfig = (\n options:\n | MaybePromise<KubbUserConfig>\n | ((\n /** The options derived from the CLI flags */\n cliOptions: CLIOptions\n ) => MaybePromise<KubbUserConfig>)\n) => options\n","/**\n * Abstract class that contains the building blocks for plugins to create their own Generator\n * @link idea based on https://github.com/colinhacks/zod/blob/master/src/types.ts#L137\n */\nexport abstract class Generator<TOptions extends object = object> {\n private _options: TOptions = {} as TOptions\n\n constructor(options: TOptions = {} as TOptions) {\n if (options) {\n this._options = {\n ...this._options,\n ...options,\n }\n }\n return this\n }\n\n get options() {\n return this._options\n }\n\n abstract build(...params: unknown[]): unknown\n}\n","import { Generator } from './Generator'\n/**\n * Abstract class that contains the building blocks for plugins to create their own SchemaGenerator\n */\nexport abstract class SchemaGenerator<TOptions extends object, TInput, TOutput> extends Generator<TOptions> {\n abstract build(schema: TInput, name: string, description?: string): TOutput\n}\n","/* eslint-disable @typescript-eslint/no-empty-interface */\nimport { build } from './build'\n\nexport * from './config'\nexport * from './build'\nexport { CorePluginOptions, createPlugin } from './plugin'\nexport * from './utils'\nexport * from './types'\nexport * from './managers'\nexport * from './generators'\nexport default build\n"]}