New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@meteor-it/fs

Package Overview
Dependencies
Maintainers
2
Versions
43
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@meteor-it/fs - npm Package Compare versions

Comparing version 1.2.4 to 1.2.6

125

index.js

@@ -1,4 +0,9 @@

import fsNative from 'fs';
import path from 'path';
import { asyncEach } from '@meteor-it/utils';
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const fs_1 = __importDefault(require("fs"));
const path_1 = __importDefault(require("path"));
const utils_1 = require("@meteor-it/utils");
/**

@@ -24,5 +29,6 @@ * Returns true if path is a valid data url

*/
export async function readDir(dir) {
return await fsNative.promises.readdir(dir);
async function readDir(dir) {
return await fs_1.default.promises.readdir(dir);
}
exports.readDir = readDir;
/**

@@ -32,27 +38,31 @@ * Read file or parse data url

*/
export async function readFile(file) {
async function readFile(file) {
if (isDataUrl(file))
return parseDataUrl(file).data;
return await fsNative.promises.readFile(file);
return await fs_1.default.promises.readFile(file);
}
export async function stat(file) {
return await fsNative.promises.stat(file);
exports.readFile = readFile;
async function stat(file) {
return await fs_1.default.promises.stat(file);
}
export async function open(file, mode, access) {
return await fsNative.promises.open(file, mode, access);
exports.stat = stat;
async function open(file, mode, access) {
return await fs_1.default.promises.open(file, mode, access);
}
export async function read(fd, buffer, offset, length, position) {
return await fsNative.promises.read(fd, buffer, offset, length, position);
exports.open = open;
async function read(fd, buffer, offset, length, position) {
return await fs_1.default.promises.read(fd, buffer, offset, length, position);
}
export async function copy(from, to, options) {
from = path.resolve(from);
to = path.resolve(to);
exports.read = read;
async function copy(from, to, options) {
from = path_1.default.resolve(from);
to = path_1.default.resolve(to);
if ((await isDirectory(from))) {
const dirStruct = (await walkDirStruct(from)).map(e => e.replace(from, to));
try {
await asyncEach(dirStruct, dir => mkdir(dir, true));
await utils_1.asyncEach(dirStruct, dir => mkdir(dir, true));
}
catch (e) { }
try {
await asyncEach(await walkDir(from), f => options && options.filter && !options.filter(f) && Promise.resolve(true) || copy(f, f.replace(from, to)));
await utils_1.asyncEach(await walkDir(from), f => options && options.filter && !options.filter(f) && Promise.resolve(true) || copy(f, f.replace(from, to)));
}

@@ -65,6 +75,7 @@ catch (e) {

}
await fsNative.promises.copyFile(from, to);
await fs_1.default.promises.copyFile(from, to);
}
export async function mkdir(pathStr, recursive = false) {
pathStr = path.resolve(pathStr);
exports.copy = copy;
async function mkdir(pathStr, recursive = false) {
pathStr = path_1.default.resolve(pathStr);
if (recursive) {

@@ -78,3 +89,3 @@ // TODO: there is recursive option in new versions of node.js,

if (e.code === 'ENOENT') {
await mkdir(path.dirname(pathStr), true);
await mkdir(path_1.default.dirname(pathStr), true);
return await mkdir(pathStr);

@@ -92,10 +103,11 @@ }

else {
return await fsNative.promises.mkdir(pathStr);
return await fs_1.default.promises.mkdir(pathStr);
}
}
exports.mkdir = mkdir;
async function unlinkDirectoryStructure(pathStr) {
pathStr = path.resolve(pathStr);
pathStr = path_1.default.resolve(pathStr);
const dirs = await readDir(pathStr);
await asyncEach(dirs, async (dir) => {
const dirPath = path.resolve(pathStr, dir);
await utils_1.asyncEach(dirs, async (dir) => {
const dirPath = path_1.default.resolve(pathStr, dir);
await unlinkDirectoryStructure(dirPath);

@@ -105,4 +117,4 @@ await unlink(dirPath);

}
export async function unlink(pathStr, recursive = false, options) {
pathStr = path.resolve(pathStr);
async function unlink(pathStr, recursive = false, options) {
pathStr = path_1.default.resolve(pathStr);
if (recursive) {

@@ -115,13 +127,15 @@ // Empty all dirs

if (await isDirectory(pathStr)) {
return await fsNative.promises.rmdir(pathStr);
return await fs_1.default.promises.rmdir(pathStr);
}
await fsNative.promises.unlink(pathStr);
await fs_1.default.promises.unlink(pathStr);
}
}
exports.unlink = unlink;
/**
* Write text to file
*/
export async function writeFile(filename, text) {
return await fsNative.promises.writeFile(filename, text);
async function writeFile(filename, text) {
return await fs_1.default.promises.writeFile(filename, text);
}
exports.writeFile = writeFile;
/**

@@ -132,3 +146,3 @@ * Walk directory

*/
export async function walkDir(dir, options, cb) {
async function walkDir(dir, options, cb) {
if (!await exists(dir)) {

@@ -143,8 +157,8 @@ throw new Error('No such file or directory: ' + dir);

cb = (file) => {
returnValue.push(path.resolve(dir, file));
returnValue.push(path_1.default.resolve(dir, file));
};
}
let dirList = [];
await asyncEach(await readDir(dir), async (file) => {
let pathStr = dir + path.sep + file;
await utils_1.asyncEach(await readDir(dir), async (file) => {
let pathStr = dir + path_1.default.sep + file;
if (await isFile(pathStr)) {

@@ -159,4 +173,4 @@ if (options && options.filter && !options.filter(pathStr))

});
await asyncEach(dirList, async (dirLevelDown) => {
await walkDir(dir + path.sep + dirLevelDown, options, cb);
await utils_1.asyncEach(dirList, async (dirLevelDown) => {
await walkDir(dir + path_1.default.sep + dirLevelDown, options, cb);
});

@@ -168,3 +182,4 @@ if (shouldReturn) {

}
export async function walkDirStruct(dir, options, cb) {
exports.walkDir = walkDir;
async function walkDirStruct(dir, options, cb) {
if (!await exists(dir)) {

@@ -183,4 +198,4 @@ throw new Error('No such file or directory: ' + dir);

let dirList = [];
await asyncEach(await readDir(dir), async (file) => {
let pathStr = path.resolve(dir, file);
await utils_1.asyncEach(await readDir(dir), async (file) => {
let pathStr = path_1.default.resolve(dir, file);
if (await isDirectory(pathStr)) {

@@ -190,4 +205,4 @@ dirList.push(pathStr);

});
await asyncEach(dirList, async (dirLevelDown) => {
const dirPath = path.resolve(dir, dirLevelDown);
await utils_1.asyncEach(dirList, async (dirLevelDown) => {
const dirPath = path_1.default.resolve(dir, dirLevelDown);
await walkDirStruct(dirPath, options, cb);

@@ -203,8 +218,9 @@ if (options && options.filter && !options.filter(dirPath))

}
exports.walkDirStruct = walkDirStruct;
/**
* Check if file exists
*/
export async function exists(file) {
async function exists(file) {
try {
let result = await fsNative.promises.access(file, fsNative.constants.F_OK);
let result = await fs_1.default.promises.access(file, fs_1.default.constants.F_OK);
return result === undefined;

@@ -217,2 +233,3 @@ }

}
exports.exists = exists;
/**

@@ -222,24 +239,28 @@ * Is path a file

*/
export async function isFile(path) {
async function isFile(path) {
return (await stat(path)).isFile();
}
exports.isFile = isFile;
/**
* Is path a directory
*/
export async function isDirectory(path) {
async function isDirectory(path) {
return (await stat(path)).isDirectory();
}
exports.isDirectory = isDirectory;
/**
* Wrapper to fs function
*/
export function getReadStream(path, options = {}) {
return fsNative.createReadStream(path, options);
function getReadStream(path, options = {}) {
return fs_1.default.createReadStream(path, options);
}
exports.getReadStream = getReadStream;
/**
* Wrapper to fs function
*/
export function getWriteStream(path, options = {}) {
return fsNative.createWriteStream(path, options);
function getWriteStream(path, options = {}) {
return fs_1.default.createWriteStream(path, options);
}
exports.getWriteStream = getWriteStream;
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInhyZXN0L25vZGVfbW9kdWxlcy9AbWV0ZW9yLWl0L2ZzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sUUFBbUIsTUFBTSxJQUFJLENBQUM7QUFDckMsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQ3hCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUc3Qzs7O0dBR0c7QUFDSCxTQUFTLFNBQVMsQ0FBQyxJQUFZO0lBQzlCLE9BQU8sc0JBQXNCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUE7QUFDeEQsQ0FBQztBQU1EOzs7R0FHRztBQUNILFNBQVMsWUFBWSxDQUFDLElBQVk7SUFDakMsT0FBTztRQUNOLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RDLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUM7S0FDOUQsQ0FBQTtBQUNGLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsT0FBTyxDQUFDLEdBQVc7SUFDeEMsT0FBTyxNQUFNLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzdDLENBQUM7QUFDRDs7O0dBR0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLFFBQVEsQ0FBQyxJQUFZO0lBQzFDLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQztRQUNsQixPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDaEMsT0FBTyxNQUFNLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FB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RUFBRSxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNFLE9BQU8sTUFBTSxLQUFLLFNBQVMsQ0FBQztLQUM1QjtJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1gscURBQXFEO1FBQ3JELE9BQU8sS0FBSyxDQUFDO0tBQ2I7QUFDRixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxNQUFNLENBQUMsSUFBWTtJQUN4QyxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztBQUNwQyxDQUFDO0FBQ0Q7O0dBRUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLFdBQVcsQ0FBQyxJQUFZO0lBQzdDLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQ3pDLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQUMsSUFBWSxFQUFFLE9BQU8sR0FBRyxFQUFFO0lBQ3ZELE9BQU8sUUFBUSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNqRCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUFDLElBQVksRUFBRSxPQUFPLEdBQUcsRUFBRTtJQUN4RCxPQUFPLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDbEQsQ0FBQyIsImZpbGUiOiJ4cmVzdC9ub2RlX21vZHVsZXMvQG1ldGVvci1pdC9mcy9pbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmc05hdGl2ZSwgeyBTdGF0cyB9IGZyb20gJ2ZzJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgYXN5bmNFYWNoIH0gZnJvbSAnQG1ldGVvci1pdC91dGlscyc7XG5cbnR5cGUgRmlsZUhhbmRsZSA9IGZzTmF0aXZlLnByb21pc2VzLkZpbGVIYW5kbGU7XG4vKipcbiAqIFJldHVybnMgdHJ1ZSBpZiBwYXRoIGlzIGEgdmFsaWQgZGF0YSB1cmxcbiAqIEBwYXJhbSBwYXRoIHBhdGhcbiAqL1xuZnVuY3Rpb24gaXNEYXRhVXJsKHBhdGg6IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRyZXR1cm4gL15kYXRhOi4rXFwvLis7YmFzZTY0LC8udGVzdChwYXRoLnN1YnN0cigwLCAyNjgpKVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElQYXJzZWREYXRhVXJsIHtcblx0bWltZTogc3RyaW5nLFxuXHRkYXRhOiBCdWZmZXJcbn1cbi8qKlxuICogUmV0dXJucyBtaW1lIGFuZCBkYXRhIG9mIGRhdGF1cmxcbiAqIEBwYXJhbSBwYXRoIERhdGEgdXJsXG4gKi9cbmZ1bmN0aW9uIHBhcnNlRGF0YVVybChwYXRoOiBzdHJpbmcpOiBJUGFyc2VkRGF0YVVybCB7XG5cdHJldHVybiB7XG5cdFx0bWltZTogcGF0aC5zbGljZSg1LCBwYXRoLmluZGV4T2YoJzsnKSksXG5cdFx0ZGF0YTogQnVmZmVyLmZyb20ocGF0aC5zbGljZShwYXRoLmluZGV4T2YoJywnKSArIDEpLCAnYmFzZTY0Jylcblx0fVxufVxuXG4vKipcbiAqIEdldCBhbGwgZmlsZXMgaW4gZGlyZWN0b3J5XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWFkRGlyKGRpcjogc3RyaW5nKSB7XG5cdHJldHVybiBhd2FpdCBmc05hdGl2ZS5wcm9taXNlcy5yZWFkZGlyKGRpcik7XG59XG4vKipcbiAqIFJlYWQgZmlsZSBvciBwYXJzZSBkYXRhIHVybFxuICogQHBhcmFtIGZpbGUgUGF0aCB0byBmaWxlIHRvIHJlYWRcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlYWRGaWxlKGZpbGU6IHN0cmluZyk6IFByb21pc2U8QnVmZmVyPiB7XG5cdGlmIChpc0RhdGFVcmwoZmlsZSkpXG5cdFx0cmV0dXJuIHBhcnNlRGF0YVVybChmaWxlKS5kYXRhO1xuXHRyZXR1cm4gYXdhaXQgZnNOYXRpdmUucHJvbWlzZXMucmVhZEZpbGUoZmlsZSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzdGF0KGZpbGU6IHN0cmluZyk6IFByb21pc2U8U3RhdHM+IHtcblx0cmV0dXJuIGF3YWl0IGZzTmF0aXZlLnByb21pc2VzLnN0YXQoZmlsZSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBvcGVuKGZpbGU6IHN0cmluZywgbW9kZTogc3RyaW5nLCBhY2Nlc3M6IHN0cmluZyk6IFByb21pc2U8RmlsZUhhbmRsZT4ge1xuXHRyZXR1cm4gYXdhaXQgZnNOYXRpdmUucHJvbWlzZXMub3BlbihmaWxlLCBtb2RlLCBhY2Nlc3MpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVhZChmZDogRmlsZUhhbmRsZSwgYnVmZmVyOiBCdWZmZXIsIG9mZnNldDogbnVtYmVyLCBsZW5ndGg6IG51bWJlciwgcG9zaXRpb246IG51bWJlcikge1xuXHRyZXR1cm4gYXdhaXQgZnNOYXRpdmUucHJvbWlzZXMucmVhZChmZCwgYnVmZmVyLCBvZmZzZXQsIGxlbmd0aCwgcG9zaXRpb24pO1xufVxuXG50eXBlIElXYWxrT3B0aW9ucyA9IHtcblx0ZmlsdGVyPzogKG5hbWU6IHN0cmluZykgPT4gYm9vbGVhbjtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNvcHkoZnJvbTogc3RyaW5nLCB0bzogc3RyaW5nLCBvcHRpb25zPzogSVdhbGtPcHRpb25zKSB7XG5cdGZyb20gPSBwYXRoLnJlc29sdmUoZnJvbSk7XG5cdHRvID0gcGF0aC5yZXNvbHZlKHRvKTtcblx0aWYgKChhd2FpdCBpc0RpcmVjdG9yeShmcm9tKSkpIHtcblx0XHRjb25zdCBkaXJTdHJ1Y3QgPSAoYXdhaXQgd2Fsa0RpclN0cnVjdChmcm9tKSkubWFwKGUgPT4gZS5yZXBsYWNlKGZyb20sIHRvKSk7XG5cdFx0dHJ5IHtcblx0XHRcdGF3YWl0IGFzeW5jRWFjaChkaXJTdHJ1Y3QsIGRpciA9PiBta2RpcihkaXIsIHRydWUpKTtcblx0XHR9IGNhdGNoIChlKSB7IH1cblx0XHR0cnkge1xuXHRcdFx0YXdhaXQgYXN5bmNFYWNoKGF3YWl0IHdhbGtEaXIoZnJvbSksIGYgPT4gb3B0aW9ucyAmJiBvcHRpb25zLmZpbHRlciAmJiAhb3B0aW9ucy5maWx0ZXIoZikgJiYgUHJvbWlzZS5yZXNvbHZlKHRydWUpIGFzIGFueSBhcyBQcm9taXNlPHZvaWQ+IHx8IGNvcHkoZiwgZi5yZXBsYWNlKGZyb20sIHRvKSkpO1xuXHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdGlmIChlLmNvZGUgIT09ICdFTk9FTlQnKSB0aHJvdyBlO1xuXHRcdH1cblx0XHRyZXR1cm47XG5cdH1cblx0YXdhaXQgZnNOYXRpdmUucHJvbWlzZXMuY29weUZpbGUoZnJvbSwgdG8pO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbWtkaXIocGF0aFN0cjogc3RyaW5nLCByZWN1cnNpdmU6IGJvb2xlYW4gPSBmYWxzZSk6IFByb21pc2U8dm9pZD4ge1xuXHRwYXRoU3RyID0gcGF0aC5yZXNvbHZlKHBhdGhTdHIpO1xuXHRpZiAocmVjdXJzaXZlKSB7XG5cdFx0Ly8gVE9ETzogdGhlcmUgaXMgcmVjdXJzaXZlIG9wdGlvbiBpbiBuZXcgdmVyc2lvbnMgb2Ygbm9kZS5qcyxcblx0XHQvLyBjaGVjayBmb3IgYXZhaWxhYmlsaXR5IG9mIHRoZW1cblx0XHR0cnkge1xuXHRcdFx0cmV0dXJuIGF3YWl0IG1rZGlyKHBhdGhTdHIpO1xuXHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdGlmIChlLmNvZGUgPT09ICdFTk9FTlQnKSB7XG5cdFx0XHRcdGF3YWl0IG1rZGlyKHBhdGguZGlybmFtZShwYXRoU3RyKSwgdHJ1ZSk7XG5cdFx0XHRcdHJldHVybiBhd2FpdCBta2RpcihwYXRoU3RyKTtcblx0XHRcdH0gZWxzZSBpZiAoIShhd2FpdCBleGlzdHMocGF0aFN0cikpKSB7XG5cdFx0XHRcdHRocm93IGU7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHQvLyBTdWNjZXNzXG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHR9XG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIGF3YWl0IGZzTmF0aXZlLnByb21pc2VzLm1rZGlyKHBhdGhTdHIpO1xuXHR9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVubGlua0RpcmVjdG9yeVN0cnVjdHVyZShwYXRoU3RyOiBzdHJpbmcpIHtcblx0cGF0aFN0ciA9IHBhdGgucmVzb2x2ZShwYXRoU3RyKTtcblx0Y29uc3QgZGlycyA9IGF3YWl0IHJlYWREaXIocGF0aFN0cik7XG5cdGF3YWl0IGFzeW5jRWFjaChkaXJzLCBhc3luYyBkaXIgPT4ge1xuXHRcdGNvbnN0IGRpclBhdGggPSBwYXRoLnJlc29sdmUocGF0aFN0ciwgZGlyKTtcblx0XHRhd2FpdCB1bmxpbmtEaXJlY3RvcnlTdHJ1Y3R1cmUoZGlyUGF0aCk7XG5cdFx0YXdhaXQgdW5saW5rKGRpclBhdGgpO1xuXHR9KTtcbn1cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB1bmxpbmsocGF0aFN0cjogc3RyaW5nLCByZWN1cnNpdmU6IGJvb2xlYW4gPSBmYWxzZSwgb3B0aW9ucz86IElXYWxrT3B0aW9ucykge1xuXHRwYXRoU3RyID0gcGF0aC5yZXNvbHZlKHBhdGhTdHIpO1xuXHRpZiAocmVjdXJzaXZlKSB7XG5cdFx0Ly8gRW1wdHkgYWxsIGRpcnNcblx0XHRhd2FpdCB3YWxrRGlyKHBhdGhTdHIsIG9wdGlvbnMpLnRoZW4oZmlsZXMgPT4gUHJvbWlzZS5hbGwoZmlsZXMubWFwKChuKSA9PiB1bmxpbmsobikpKSk7XG5cdFx0YXdhaXQgdW5saW5rRGlyZWN0b3J5U3RydWN0dXJlKHBhdGhTdHIpO1xuXHR9IGVsc2Uge1xuXHRcdGlmIChhd2FpdCBpc0RpcmVjdG9yeShwYXRoU3RyKSkge1xuXHRcdFx0cmV0dXJuIGF3YWl0IGZzTmF0aXZlLnByb21pc2VzLnJtZGlyKHBhdGhTdHIpO1xuXHRcdH1cblx0XHRhd2FpdCBmc05hdGl2ZS5wcm9taXNlcy51bmxpbmsocGF0aFN0cik7XG5cdH1cbn1cblxuLyoqXG4gKiBXcml0ZSB0ZXh0IHRvIGZpbGVcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdyaXRlRmlsZShmaWxlbmFtZTogc3RyaW5nLCB0ZXh0OiBzdHJpbmcgfCBCdWZmZXIpIHtcblx0cmV0dXJuIGF3YWl0IGZzTmF0aXZlLnByb21pc2VzLndyaXRlRmlsZShmaWxlbmFtZSwgdGV4dCk7XG59XG5cbi8qKlxuICogV2FsayBkaXJlY3RvcnlcbiAqIEBwYXJhbSBkaXIgRGlyZWN0b3J5IHRvIHdhbGtcbiAqIEBwYXJhbSBjYiBJZiBwcm92aWRlZCwgZm91bmQgZmlsZXMgd2lsbCByZXR1cm5lZCByZWFsdGltZS4gSWYgbm90IC0gZnVuY3Rpb24gd2lsbCByZXR1cm4gYWxsIGZvdW5kIGZpbGVzXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB3YWxrRGlyKGRpcjogc3RyaW5nLCBvcHRpb25zPzogSVdhbGtPcHRpb25zLCBjYj86IChmaWxlOiBzdHJpbmcpID0+IHZvaWQpOiBQcm9taXNlPHN0cmluZ1tdIHwgbnVsbD4ge1xuXHRpZiAoIWF3YWl0IGV4aXN0cyhkaXIpKSB7IHRocm93IG5ldyBFcnJvcignTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeTogJyArIGRpcik7IH1cblx0bGV0IHJldHVyblZhbHVlOiBzdHJpbmdbXTtcblx0bGV0IHNob3VsZFJldHVybiA9IGZhbHNlO1xuXHRpZiAoIWNiKSB7XG5cdFx0cmV0dXJuVmFsdWUgPSBbXTtcblx0XHRzaG91bGRSZXR1cm4gPSB0cnVlO1xuXHRcdGNiID0gKGZpbGU6IHN0cmluZykgPT4ge1xuXHRcdFx0cmV0dXJuVmFsdWUucHVzaChwYXRoLnJlc29sdmUoZGlyLCBmaWxlKSk7XG5cdFx0fTtcblx0fVxuXHRsZXQgZGlyTGlzdDogc3RyaW5nW10gPSBbXTtcblx0YXdhaXQgYXN5bmNFYWNoKGF3YWl0IHJlYWREaXIoZGlyKSwgYXN5bmMgKGZpbGU6IHN0cmluZykgPT4ge1xuXHRcdGxldCBwYXRoU3RyID0gZGlyICsgcGF0aC5zZXAgKyBmaWxlO1xuXHRcdGlmIChhd2FpdCBpc0ZpbGUocGF0aFN0cikpIHtcblx0XHRcdGlmIChvcHRpb25zICYmIG9wdGlvbnMuZmlsdGVyICYmICFvcHRpb25zLmZpbHRlcihwYXRoU3RyKSkgcmV0dXJuO1xuXHRcdFx0Y2IocGF0aFN0cik7XG5cdFx0fSBlbHNlIGlmIChhd2FpdCBpc0RpcmVjdG9yeShwYXRoU3RyKSkge1xuXHRcdFx0ZGlyTGlzdC5wdXNoKGZpbGUpO1xuXHRcdH1cblx0fSk7XG5cdGF3YWl0IGFzeW5jRWFjaChkaXJMaXN0LCBhc3luYyAoZGlyTGV2ZWxEb3duOiBzdHJpbmcpID0+IHtcblx0XHRhd2FpdCB3YWxrRGlyKGRpciArIHBhdGguc2VwICsgZGlyTGV2ZWxEb3duLCBvcHRpb25zLCBjYik7XG5cdH0pO1xuXHRpZiAoc2hvdWxkUmV0dXJuKSB7XG5cdFx0cmV0dXJuIHJldHVyblZhbHVlLnNvcnQoKTtcblx0fVxuXHRyZXR1cm4gbnVsbDtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdhbGtEaXJTdHJ1Y3QoZGlyOiBzdHJpbmcsIG9wdGlvbnM/OiBJV2Fsa09wdGlvbnMsIGNiPzogKGRpcjogc3RyaW5nKSA9PiB2b2lkKTogUHJvbWlzZTxzdHJpbmdbXSB8IG51bGw+IHtcblx0aWYgKCFhd2FpdCBleGlzdHMoZGlyKSkgeyB0aHJvdyBuZXcgRXJyb3IoJ05vIHN1Y2ggZmlsZSBvciBkaXJlY3Rvcnk6ICcgKyBkaXIpOyB9XG5cdGxldCByZXR1cm5WYWx1ZTogc3RyaW5nW107XG5cdGxldCBzaG91bGRSZXR1cm4gPSBmYWxzZTtcblx0aWYgKCFjYikge1xuXHRcdHJldHVyblZhbHVlID0gW107XG5cdFx0c2hvdWxkUmV0dXJuID0gdHJ1ZTtcblx0XHRjYiA9IChkaXI6IHN0cmluZykgPT4ge1xuXHRcdFx0cmV0dXJuVmFsdWUucHVzaChkaXIpO1xuXHRcdH07XG5cdH1cblx0bGV0IGRpckxpc3Q6IHN0cmluZ1tdID0gW107XG5cdGF3YWl0IGFzeW5jRWFjaChhd2FpdCByZWFkRGlyKGRpciksIGFzeW5jIChmaWxlOiBzdHJpbmcpID0+IHtcblx0XHRsZXQgcGF0aFN0ciA9IHBhdGgucmVzb2x2ZShkaXIsIGZpbGUpO1xuXHRcdGlmIChhd2FpdCBpc0RpcmVjdG9yeShwYXRoU3RyKSkge1xuXHRcdFx0ZGlyTGlzdC5wdXNoKHBhdGhTdHIpO1xuXHRcdH1cblx0fSk7XG5cdGF3YWl0IGFzeW5jRWFjaChkaXJMaXN0LCBhc3luYyAoZGlyTGV2ZWxEb3duOiBzdHJpbmcpID0+IHtcblx0XHRjb25zdCBkaXJQYXRoID0gcGF0aC5yZXNvbHZlKGRpciwgZGlyTGV2ZWxEb3duKTtcblx0XHRhd2FpdCB3YWxrRGlyU3RydWN0KGRpclBhdGgsIG9wdGlvbnMsIGNiKTtcblx0XHRpZiAob3B0aW9ucyAmJiBvcHRpb25zLmZpbHRlciAmJiAhb3B0aW9ucy5maWx0ZXIoZGlyUGF0aCkpIHJldHVybjtcblx0XHRjYihkaXJQYXRoKTtcblx0fSk7XG5cdGlmIChzaG91bGRSZXR1cm4pIHtcblx0XHRyZXR1cm4gcmV0dXJuVmFsdWUuc29ydCgpO1xuXHR9XG5cdHJldHVybiBudWxsO1xufVxuXG4vKipcbiAqIENoZWNrIGlmIGZpbGUgZXhpc3RzXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBleGlzdHMoZmlsZTogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG5cdHRyeSB7XG5cdFx0bGV0IHJlc3VsdCA9IGF3YWl0IGZzTmF0aXZlLnByb21pc2VzLmFjY2VzcyhmaWxlLCBmc05hdGl2ZS5jb25zdGFudHMuRl9PSyk7XG5cdFx0cmV0dXJuIHJlc3VsdCA9PT0gdW5kZWZpbmVkO1xuXHR9IGNhdGNoIChlKSB7XG5cdFx0Ly8gQmVjYXVzZSBvbmx5IFwiZXJyXCIgZmllbGQgaXMgcmV0dXJuZWQgaWYgbm90IGV4aXN0c1xuXHRcdHJldHVybiBmYWxzZTtcblx0fVxufVxuXG4vKipcbiAqIElzIHBhdGggYSBmaWxlXG4gKiBAcGFyYW0gcGF0aCBwYXRoIHRvIHRlc3RcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGlzRmlsZShwYXRoOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcblx0cmV0dXJuIChhd2FpdCBzdGF0KHBhdGgpKS5pc0ZpbGUoKTtcbn1cbi8qKlxuICogSXMgcGF0aCBhIGRpcmVjdG9yeVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaXNEaXJlY3RvcnkocGF0aDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG5cdHJldHVybiAoYXdhaXQgc3RhdChwYXRoKSkuaXNEaXJlY3RvcnkoKTtcbn1cblxuLyoqXG4gKiBXcmFwcGVyIHRvIGZzIGZ1bmN0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZWFkU3RyZWFtKHBhdGg6IHN0cmluZywgb3B0aW9ucyA9IHt9KSB7XG5cdHJldHVybiBmc05hdGl2ZS5jcmVhdGVSZWFkU3RyZWFtKHBhdGgsIG9wdGlvbnMpO1xufVxuXG4vKipcbiAqIFdyYXBwZXIgdG8gZnMgZnVuY3Rpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFdyaXRlU3RyZWFtKHBhdGg6IHN0cmluZywgb3B0aW9ucyA9IHt9KSB7XG5cdHJldHVybiBmc05hdGl2ZS5jcmVhdGVXcml0ZVN0cmVhbShwYXRoLCBvcHRpb25zKTtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInhwcmVzcy9ub2RlX21vZHVsZXMvQG1ldGVvci1pdC9mcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDRDQUFxQztBQUNyQyxnREFBd0I7QUFDeEIsNENBQTZDO0FBRzdDOzs7R0FHRztBQUNILFNBQVMsU0FBUyxDQUFDLElBQVk7SUFDOUIsT0FBTyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQTtBQUN4RCxDQUFDO0FBTUQ7OztHQUdHO0FBQ0gsU0FBUyxZQUFZLENBQUMsSUFBWTtJQUNqQyxPQUFPO1FBQ04sSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQztLQUM5RCxDQUFBO0FBQ0YsQ0FBQztBQUVEOztHQUVHO0FBQ0ksS0FBSyxVQUFVLE9BQU8sQ0FBQyxHQUFXO0lBQ3hDLE9BQU8sTUFBTSxZQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUM3QyxDQUFDO0FBRkQsMEJBRUM7QUFDRDs7O0dBR0c7QUFDSSxLQUFLLFVBQVUsUUFBUSxDQUFDLElBQVk7SUFDMUMsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDO1FBQ2xCLE9BQU8sWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNoQyxPQUFPLE1BQU0sWUFBUSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDL0MsQ0FBQztBQUpELDRCQUlDO0FBRU0sS0FBSyxVQUFVLElBQUksQ0FBQyxJQUFZO0lBQ3RDLE9BQU8s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LE9BQU8sTUFBTSxLQUFLLFNBQVMsQ0FBQztLQUM1QjtJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1gscURBQXFEO1FBQ3JELE9BQU8sS0FBSyxDQUFDO0tBQ2I7QUFDRixDQUFDO0FBUkQsd0JBUUM7QUFFRDs7O0dBR0c7QUFDSSxLQUFLLFVBQVUsTUFBTSxDQUFDLElBQVk7SUFDeEMsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7QUFDcEMsQ0FBQztBQUZELHdCQUVDO0FBQ0Q7O0dBRUc7QUFDSSxLQUFLLFVBQVUsV0FBVyxDQUFDLElBQVk7SUFDN0MsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7QUFDekMsQ0FBQztBQUZELGtDQUVDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixhQUFhLENBQUMsSUFBWSxFQUFFLE9BQU8sR0FBRyxFQUFFO0lBQ3ZELE9BQU8sWUFBUSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNqRCxDQUFDO0FBRkQsc0NBRUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLGNBQWMsQ0FBQyxJQUFZLEVBQUUsT0FBTyxHQUFHLEVBQUU7SUFDeEQsT0FBTyxZQUFRLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2xELENBQUM7QUFGRCx3Q0FFQyIsImZpbGUiOiJ4cHJlc3Mvbm9kZV9tb2R1bGVzL0BtZXRlb3ItaXQvZnMvaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZnNOYXRpdmUsIHsgU3RhdHMgfSBmcm9tICdmcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IGFzeW5jRWFjaCB9IGZyb20gJ0BtZXRlb3ItaXQvdXRpbHMnO1xuXG50eXBlIEZpbGVIYW5kbGUgPSBmc05hdGl2ZS5wcm9taXNlcy5GaWxlSGFuZGxlO1xuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgcGF0aCBpcyBhIHZhbGlkIGRhdGEgdXJsXG4gKiBAcGFyYW0gcGF0aCBwYXRoXG4gKi9cbmZ1bmN0aW9uIGlzRGF0YVVybChwYXRoOiBzdHJpbmcpOiBib29sZWFuIHtcblx0cmV0dXJuIC9eZGF0YTouK1xcLy4rO2Jhc2U2NCwvLnRlc3QocGF0aC5zdWJzdHIoMCwgMjY4KSlcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUGFyc2VkRGF0YVVybCB7XG5cdG1pbWU6IHN0cmluZyxcblx0ZGF0YTogQnVmZmVyXG59XG4vKipcbiAqIFJldHVybnMgbWltZSBhbmQgZGF0YSBvZiBkYXRhdXJsXG4gKiBAcGFyYW0gcGF0aCBEYXRhIHVybFxuICovXG5mdW5jdGlvbiBwYXJzZURhdGFVcmwocGF0aDogc3RyaW5nKTogSVBhcnNlZERhdGFVcmwge1xuXHRyZXR1cm4ge1xuXHRcdG1pbWU6IHBhdGguc2xpY2UoNSwgcGF0aC5pbmRleE9mKCc7JykpLFxuXHRcdGRhdGE6IEJ1ZmZlci5mcm9tKHBhdGguc2xpY2UocGF0aC5pbmRleE9mKCcsJykgKyAxKSwgJ2Jhc2U2NCcpXG5cdH1cbn1cblxuLyoqXG4gKiBHZXQgYWxsIGZpbGVzIGluIGRpcmVjdG9yeVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVhZERpcihkaXI6IHN0cmluZykge1xuXHRyZXR1cm4gYXdhaXQgZnNOYXRpdmUucHJvbWlzZXMucmVhZGRpcihkaXIpO1xufVxuLyoqXG4gKiBSZWFkIGZpbGUgb3IgcGFyc2UgZGF0YSB1cmxcbiAqIEBwYXJhbSBmaWxlIFBhdGggdG8gZmlsZSB0byByZWFkXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWFkRmlsZShmaWxlOiBzdHJpbmcpOiBQcm9taXNlPEJ1ZmZlcj4ge1xuXHRpZiAoaXNEYXRhVXJsKGZpbGUpKVxuXHRcdHJldHVybiBwYXJzZURhdGFVcmwoZmlsZSkuZGF0YTtcblx0cmV0dXJuIGF3YWl0IGZzTmF0aXZlLnByb21pc2VzLnJlYWRGaWxlKGZpbGUpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc3RhdChmaWxlOiBzdHJpbmcpOiBQcm9taXNlPFN0YXRzPiB7XG5cdHJldHVybiBhd2FpdCBmc05hdGl2ZS5wcm9taXNlcy5zdGF0KGZpbGUpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gb3BlbihmaWxlOiBzdHJpbmcsIG1vZGU6IHN0cmluZywgYWNjZXNzOiBzdHJpbmcpOiBQcm9taXNlPEZpbGVIYW5kbGU+IHtcblx0cmV0dXJuIGF3YWl0IGZzTmF0aXZlLnByb21pc2VzLm9wZW4oZmlsZSwgbW9kZSwgYWNjZXNzKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlYWQoZmQ6IEZpbGVIYW5kbGUsIGJ1ZmZlcjogQnVmZmVyLCBvZmZzZXQ6IG51bWJlciwgbGVuZ3RoOiBudW1iZXIsIHBvc2l0aW9uOiBudW1iZXIpIHtcblx0cmV0dXJuIGF3YWl0IGZzTmF0aXZlLnByb21pc2VzLnJlYWQoZmQsIGJ1ZmZlciwgb2Zmc2V0LCBsZW5ndGgsIHBvc2l0aW9uKTtcbn1cblxudHlwZSBJV2Fsa09wdGlvbnMgPSB7XG5cdGZpbHRlcj86IChuYW1lOiBzdHJpbmcpID0+IGJvb2xlYW47XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjb3B5KGZyb206IHN0cmluZywgdG86IHN0cmluZywgb3B0aW9ucz86IElXYWxrT3B0aW9ucykge1xuXHRmcm9tID0gcGF0aC5yZXNvbHZlKGZyb20pO1xuXHR0byA9IHBhdGgucmVzb2x2ZSh0byk7XG5cdGlmICgoYXdhaXQgaXNEaXJlY3RvcnkoZnJvbSkpKSB7XG5cdFx0Y29uc3QgZGlyU3RydWN0ID0gKGF3YWl0IHdhbGtEaXJTdHJ1Y3QoZnJvbSkpLm1hcChlID0+IGUucmVwbGFjZShmcm9tLCB0bykpO1xuXHRcdHRyeSB7XG5cdFx0XHRhd2FpdCBhc3luY0VhY2goZGlyU3RydWN0LCBkaXIgPT4gbWtkaXIoZGlyLCB0cnVlKSk7XG5cdFx0fSBjYXRjaCAoZSkgeyB9XG5cdFx0dHJ5IHtcblx0XHRcdGF3YWl0IGFzeW5jRWFjaChhd2FpdCB3YWxrRGlyKGZyb20pLCBmID0+IG9wdGlvbnMgJiYgb3B0aW9ucy5maWx0ZXIgJiYgIW9wdGlvbnMuZmlsdGVyKGYpICYmIFByb21pc2UucmVzb2x2ZSh0cnVlKSBhcyBhbnkgYXMgUHJvbWlzZTx2b2lkPiB8fCBjb3B5KGYsIGYucmVwbGFjZShmcm9tLCB0bykpKTtcblx0XHR9IGNhdGNoIChlKSB7XG5cdFx0XHRpZiAoZS5jb2RlICE9PSAnRU5PRU5UJykgdGhyb3cgZTtcblx0XHR9XG5cdFx0cmV0dXJuO1xuXHR9XG5cdGF3YWl0IGZzTmF0aXZlLnByb21pc2VzLmNvcHlGaWxlKGZyb20sIHRvKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG1rZGlyKHBhdGhTdHI6IHN0cmluZywgcmVjdXJzaXZlOiBib29sZWFuID0gZmFsc2UpOiBQcm9taXNlPHZvaWQ+IHtcblx0cGF0aFN0ciA9IHBhdGgucmVzb2x2ZShwYXRoU3RyKTtcblx0aWYgKHJlY3Vyc2l2ZSkge1xuXHRcdC8vIFRPRE86IHRoZXJlIGlzIHJlY3Vyc2l2ZSBvcHRpb24gaW4gbmV3IHZlcnNpb25zIG9mIG5vZGUuanMsXG5cdFx0Ly8gY2hlY2sgZm9yIGF2YWlsYWJpbGl0eSBvZiB0aGVtXG5cdFx0dHJ5IHtcblx0XHRcdHJldHVybiBhd2FpdCBta2RpcihwYXRoU3RyKTtcblx0XHR9IGNhdGNoIChlKSB7XG5cdFx0XHRpZiAoZS5jb2RlID09PSAnRU5PRU5UJykge1xuXHRcdFx0XHRhd2FpdCBta2RpcihwYXRoLmRpcm5hbWUocGF0aFN0ciksIHRydWUpO1xuXHRcdFx0XHRyZXR1cm4gYXdhaXQgbWtkaXIocGF0aFN0cik7XG5cdFx0XHR9IGVsc2UgaWYgKCEoYXdhaXQgZXhpc3RzKHBhdGhTdHIpKSkge1xuXHRcdFx0XHR0aHJvdyBlO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Ly8gU3VjY2Vzc1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0fVxuXHR9IGVsc2Uge1xuXHRcdHJldHVybiBhd2FpdCBmc05hdGl2ZS5wcm9taXNlcy5ta2RpcihwYXRoU3RyKTtcblx0fVxufVxuXG5hc3luYyBmdW5jdGlvbiB1bmxpbmtEaXJlY3RvcnlTdHJ1Y3R1cmUocGF0aFN0cjogc3RyaW5nKSB7XG5cdHBhdGhTdHIgPSBwYXRoLnJlc29sdmUocGF0aFN0cik7XG5cdGNvbnN0IGRpcnMgPSBhd2FpdCByZWFkRGlyKHBhdGhTdHIpO1xuXHRhd2FpdCBhc3luY0VhY2goZGlycywgYXN5bmMgZGlyID0+IHtcblx0XHRjb25zdCBkaXJQYXRoID0gcGF0aC5yZXNvbHZlKHBhdGhTdHIsIGRpcik7XG5cdFx0YXdhaXQgdW5saW5rRGlyZWN0b3J5U3RydWN0dXJlKGRpclBhdGgpO1xuXHRcdGF3YWl0IHVubGluayhkaXJQYXRoKTtcblx0fSk7XG59XG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdW5saW5rKHBhdGhTdHI6IHN0cmluZywgcmVjdXJzaXZlOiBib29sZWFuID0gZmFsc2UsIG9wdGlvbnM/OiBJV2Fsa09wdGlvbnMpIHtcblx0cGF0aFN0ciA9IHBhdGgucmVzb2x2ZShwYXRoU3RyKTtcblx0aWYgKHJlY3Vyc2l2ZSkge1xuXHRcdC8vIEVtcHR5IGFsbCBkaXJzXG5cdFx0YXdhaXQgd2Fsa0RpcihwYXRoU3RyLCBvcHRpb25zKS50aGVuKGZpbGVzID0+IFByb21pc2UuYWxsKGZpbGVzLm1hcCgobikgPT4gdW5saW5rKG4pKSkpO1xuXHRcdGF3YWl0IHVubGlua0RpcmVjdG9yeVN0cnVjdHVyZShwYXRoU3RyKTtcblx0fSBlbHNlIHtcblx0XHRpZiAoYXdhaXQgaXNEaXJlY3RvcnkocGF0aFN0cikpIHtcblx0XHRcdHJldHVybiBhd2FpdCBmc05hdGl2ZS5wcm9taXNlcy5ybWRpcihwYXRoU3RyKTtcblx0XHR9XG5cdFx0YXdhaXQgZnNOYXRpdmUucHJvbWlzZXMudW5saW5rKHBhdGhTdHIpO1xuXHR9XG59XG5cbi8qKlxuICogV3JpdGUgdGV4dCB0byBmaWxlXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB3cml0ZUZpbGUoZmlsZW5hbWU6IHN0cmluZywgdGV4dDogc3RyaW5nIHwgQnVmZmVyKSB7XG5cdHJldHVybiBhd2FpdCBmc05hdGl2ZS5wcm9taXNlcy53cml0ZUZpbGUoZmlsZW5hbWUsIHRleHQpO1xufVxuXG4vKipcbiAqIFdhbGsgZGlyZWN0b3J5XG4gKiBAcGFyYW0gZGlyIERpcmVjdG9yeSB0byB3YWxrXG4gKiBAcGFyYW0gY2IgSWYgcHJvdmlkZWQsIGZvdW5kIGZpbGVzIHdpbGwgcmV0dXJuZWQgcmVhbHRpbWUuIElmIG5vdCAtIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIGFsbCBmb3VuZCBmaWxlc1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gd2Fsa0RpcihkaXI6IHN0cmluZywgb3B0aW9ucz86IElXYWxrT3B0aW9ucywgY2I/OiAoZmlsZTogc3RyaW5nKSA9PiB2b2lkKTogUHJvbWlzZTxzdHJpbmdbXSB8IG51bGw+IHtcblx0aWYgKCFhd2FpdCBleGlzdHMoZGlyKSkgeyB0aHJvdyBuZXcgRXJyb3IoJ05vIHN1Y2ggZmlsZSBvciBkaXJlY3Rvcnk6ICcgKyBkaXIpOyB9XG5cdGxldCByZXR1cm5WYWx1ZTogc3RyaW5nW107XG5cdGxldCBzaG91bGRSZXR1cm4gPSBmYWxzZTtcblx0aWYgKCFjYikge1xuXHRcdHJldHVyblZhbHVlID0gW107XG5cdFx0c2hvdWxkUmV0dXJuID0gdHJ1ZTtcblx0XHRjYiA9IChmaWxlOiBzdHJpbmcpID0+IHtcblx0XHRcdHJldHVyblZhbHVlLnB1c2gocGF0aC5yZXNvbHZlKGRpciwgZmlsZSkpO1xuXHRcdH07XG5cdH1cblx0bGV0IGRpckxpc3Q6IHN0cmluZ1tdID0gW107XG5cdGF3YWl0IGFzeW5jRWFjaChhd2FpdCByZWFkRGlyKGRpciksIGFzeW5jIChmaWxlOiBzdHJpbmcpID0+IHtcblx0XHRsZXQgcGF0aFN0ciA9IGRpciArIHBhdGguc2VwICsgZmlsZTtcblx0XHRpZiAoYXdhaXQgaXNGaWxlKHBhdGhTdHIpKSB7XG5cdFx0XHRpZiAob3B0aW9ucyAmJiBvcHRpb25zLmZpbHRlciAmJiAhb3B0aW9ucy5maWx0ZXIocGF0aFN0cikpIHJldHVybjtcblx0XHRcdGNiKHBhdGhTdHIpO1xuXHRcdH0gZWxzZSBpZiAoYXdhaXQgaXNEaXJlY3RvcnkocGF0aFN0cikpIHtcblx0XHRcdGRpckxpc3QucHVzaChmaWxlKTtcblx0XHR9XG5cdH0pO1xuXHRhd2FpdCBhc3luY0VhY2goZGlyTGlzdCwgYXN5bmMgKGRpckxldmVsRG93bjogc3RyaW5nKSA9PiB7XG5cdFx0YXdhaXQgd2Fsa0RpcihkaXIgKyBwYXRoLnNlcCArIGRpckxldmVsRG93biwgb3B0aW9ucywgY2IpO1xuXHR9KTtcblx0aWYgKHNob3VsZFJldHVybikge1xuXHRcdHJldHVybiByZXR1cm5WYWx1ZS5zb3J0KCk7XG5cdH1cblx0cmV0dXJuIG51bGw7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB3YWxrRGlyU3RydWN0KGRpcjogc3RyaW5nLCBvcHRpb25zPzogSVdhbGtPcHRpb25zLCBjYj86IChkaXI6IHN0cmluZykgPT4gdm9pZCk6IFByb21pc2U8c3RyaW5nW10gfCBudWxsPiB7XG5cdGlmICghYXdhaXQgZXhpc3RzKGRpcikpIHsgdGhyb3cgbmV3IEVycm9yKCdObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5OiAnICsgZGlyKTsgfVxuXHRsZXQgcmV0dXJuVmFsdWU6IHN0cmluZ1tdO1xuXHRsZXQgc2hvdWxkUmV0dXJuID0gZmFsc2U7XG5cdGlmICghY2IpIHtcblx0XHRyZXR1cm5WYWx1ZSA9IFtdO1xuXHRcdHNob3VsZFJldHVybiA9IHRydWU7XG5cdFx0Y2IgPSAoZGlyOiBzdHJpbmcpID0+IHtcblx0XHRcdHJldHVyblZhbHVlLnB1c2goZGlyKTtcblx0XHR9O1xuXHR9XG5cdGxldCBkaXJMaXN0OiBzdHJpbmdbXSA9IFtdO1xuXHRhd2FpdCBhc3luY0VhY2goYXdhaXQgcmVhZERpcihkaXIpLCBhc3luYyAoZmlsZTogc3RyaW5nKSA9PiB7XG5cdFx0bGV0IHBhdGhTdHIgPSBwYXRoLnJlc29sdmUoZGlyLCBmaWxlKTtcblx0XHRpZiAoYXdhaXQgaXNEaXJlY3RvcnkocGF0aFN0cikpIHtcblx0XHRcdGRpckxpc3QucHVzaChwYXRoU3RyKTtcblx0XHR9XG5cdH0pO1xuXHRhd2FpdCBhc3luY0VhY2goZGlyTGlzdCwgYXN5bmMgKGRpckxldmVsRG93bjogc3RyaW5nKSA9PiB7XG5cdFx0Y29uc3QgZGlyUGF0aCA9IHBhdGgucmVzb2x2ZShkaXIsIGRpckxldmVsRG93bik7XG5cdFx0YXdhaXQgd2Fsa0RpclN0cnVjdChkaXJQYXRoLCBvcHRpb25zLCBjYik7XG5cdFx0aWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5maWx0ZXIgJiYgIW9wdGlvbnMuZmlsdGVyKGRpclBhdGgpKSByZXR1cm47XG5cdFx0Y2IoZGlyUGF0aCk7XG5cdH0pO1xuXHRpZiAoc2hvdWxkUmV0dXJuKSB7XG5cdFx0cmV0dXJuIHJldHVyblZhbHVlLnNvcnQoKTtcblx0fVxuXHRyZXR1cm4gbnVsbDtcbn1cblxuLyoqXG4gKiBDaGVjayBpZiBmaWxlIGV4aXN0c1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZXhpc3RzKGZpbGU6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuXHR0cnkge1xuXHRcdGxldCByZXN1bHQgPSBhd2FpdCBmc05hdGl2ZS5wcm9taXNlcy5hY2Nlc3MoZmlsZSwgZnNOYXRpdmUuY29uc3RhbnRzLkZfT0spO1xuXHRcdHJldHVybiByZXN1bHQgPT09IHVuZGVmaW5lZDtcblx0fSBjYXRjaCAoZSkge1xuXHRcdC8vIEJlY2F1c2Ugb25seSBcImVyclwiIGZpZWxkIGlzIHJldHVybmVkIGlmIG5vdCBleGlzdHNcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cbn1cblxuLyoqXG4gKiBJcyBwYXRoIGEgZmlsZVxuICogQHBhcmFtIHBhdGggcGF0aCB0byB0ZXN0XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpc0ZpbGUocGF0aDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG5cdHJldHVybiAoYXdhaXQgc3RhdChwYXRoKSkuaXNGaWxlKCk7XG59XG4vKipcbiAqIElzIHBhdGggYSBkaXJlY3RvcnlcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGlzRGlyZWN0b3J5KHBhdGg6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuXHRyZXR1cm4gKGF3YWl0IHN0YXQocGF0aCkpLmlzRGlyZWN0b3J5KCk7XG59XG5cbi8qKlxuICogV3JhcHBlciB0byBmcyBmdW5jdGlvblxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVhZFN0cmVhbShwYXRoOiBzdHJpbmcsIG9wdGlvbnMgPSB7fSkge1xuXHRyZXR1cm4gZnNOYXRpdmUuY3JlYXRlUmVhZFN0cmVhbShwYXRoLCBvcHRpb25zKTtcbn1cblxuLyoqXG4gKiBXcmFwcGVyIHRvIGZzIGZ1bmN0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRXcml0ZVN0cmVhbShwYXRoOiBzdHJpbmcsIG9wdGlvbnMgPSB7fSkge1xuXHRyZXR1cm4gZnNOYXRpdmUuY3JlYXRlV3JpdGVTdHJlYW0ocGF0aCwgb3B0aW9ucyk7XG59XG4iXX0=
{
"name": "@meteor-it/fs",
"version": "1.2.4",
"version": "1.2.6",
"description": "Wrappers for native fs module",

@@ -14,3 +14,3 @@ "module": "index.mjs",

"dependencies": {
"@meteor-it/utils": "^1.3.17"
"@meteor-it/utils": "^1.3.19"
},

@@ -21,3 +21,3 @@ "sideEffects": false,

},
"gitHead": "0e43397d67a69c7e26d790f7edadb1e75e547a7d"
"gitHead": "db571851dc50018d77598a58dda3d008c096c39d"
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc