{"ast":null,"code":"\"use strict\";\n\nconst util = require(\"util\");\n\nconst pathUtil = require(\"path\");\n\nconst append = require(\"./append\");\n\nconst dir = require(\"./dir\");\n\nconst file = require(\"./file\");\n\nconst find = require(\"./find\");\n\nconst inspect = require(\"./inspect\");\n\nconst inspectTree = require(\"./inspect_tree\");\n\nconst copy = require(\"./copy\");\n\nconst exists = require(\"./exists\");\n\nconst list = require(\"./list\");\n\nconst move = require(\"./move\");\n\nconst read = require(\"./read\");\n\nconst remove = require(\"./remove\");\n\nconst rename = require(\"./rename\");\n\nconst symlink = require(\"./symlink\");\n\nconst streams = require(\"./streams\");\n\nconst tmpDir = require(\"./tmp_dir\");\n\nconst write = require(\"./write\"); // The Jetpack Context object.\n// It provides the public API, and resolves all paths regarding to\n// passed cwdPath, or default process.cwd() if cwdPath was not specified.\n\n\nconst jetpackContext = cwdPath => {\n  const getCwdPath = () => {\n    return cwdPath || process.cwd();\n  };\n\n  const cwd = function () {\n    // return current CWD if no arguments specified...\n    if (arguments.length === 0) {\n      return getCwdPath();\n    } // ...create new CWD context otherwise\n\n\n    const args = Array.prototype.slice.call(arguments);\n    const pathParts = [getCwdPath()].concat(args);\n    return jetpackContext(pathUtil.resolve.apply(null, pathParts));\n  }; // resolves path to inner CWD path of this jetpack instance\n\n\n  const resolvePath = path => {\n    return pathUtil.resolve(getCwdPath(), path);\n  };\n\n  const getPath = function () {\n    // add CWD base path as first element of arguments array\n    Array.prototype.unshift.call(arguments, getCwdPath());\n    return pathUtil.resolve.apply(null, arguments);\n  };\n\n  const normalizeOptions = options => {\n    const opts = options || {};\n    opts.cwd = getCwdPath();\n    return opts;\n  }; // API\n\n\n  const api = {\n    cwd,\n    path: getPath,\n    append: (path, data, options) => {\n      append.validateInput(\"append\", path, data, options);\n      append.sync(resolvePath(path), data, options);\n    },\n    appendAsync: (path, data, options) => {\n      append.validateInput(\"appendAsync\", path, data, options);\n      return append.async(resolvePath(path), data, options);\n    },\n    copy: (from, to, options) => {\n      copy.validateInput(\"copy\", from, to, options);\n      copy.sync(resolvePath(from), resolvePath(to), options);\n    },\n    copyAsync: (from, to, options) => {\n      copy.validateInput(\"copyAsync\", from, to, options);\n      return copy.async(resolvePath(from), resolvePath(to), options);\n    },\n    createWriteStream: (path, options) => {\n      return streams.createWriteStream(resolvePath(path), options);\n    },\n    createReadStream: (path, options) => {\n      return streams.createReadStream(resolvePath(path), options);\n    },\n    dir: (path, criteria) => {\n      dir.validateInput(\"dir\", path, criteria);\n      const normalizedPath = resolvePath(path);\n      dir.sync(normalizedPath, criteria);\n      return cwd(normalizedPath);\n    },\n    dirAsync: (path, criteria) => {\n      dir.validateInput(\"dirAsync\", path, criteria);\n      return new Promise((resolve, reject) => {\n        const normalizedPath = resolvePath(path);\n        dir.async(normalizedPath, criteria).then(() => {\n          resolve(cwd(normalizedPath));\n        }, reject);\n      });\n    },\n    exists: path => {\n      exists.validateInput(\"exists\", path);\n      return exists.sync(resolvePath(path));\n    },\n    existsAsync: path => {\n      exists.validateInput(\"existsAsync\", path);\n      return exists.async(resolvePath(path));\n    },\n    file: (path, criteria) => {\n      file.validateInput(\"file\", path, criteria);\n      file.sync(resolvePath(path), criteria);\n      return api;\n    },\n    fileAsync: (path, criteria) => {\n      file.validateInput(\"fileAsync\", path, criteria);\n      return new Promise((resolve, reject) => {\n        file.async(resolvePath(path), criteria).then(() => {\n          resolve(api);\n        }, reject);\n      });\n    },\n    find: (startPath, options) => {\n      // startPath is optional parameter, if not specified move rest of params\n      // to proper places and default startPath to CWD.\n      if (typeof options === \"undefined\" && typeof startPath === \"object\") {\n        options = startPath;\n        startPath = \".\";\n      }\n\n      find.validateInput(\"find\", startPath, options);\n      return find.sync(resolvePath(startPath), normalizeOptions(options));\n    },\n    findAsync: (startPath, options) => {\n      // startPath is optional parameter, if not specified move rest of params\n      // to proper places and default startPath to CWD.\n      if (typeof options === \"undefined\" && typeof startPath === \"object\") {\n        options = startPath;\n        startPath = \".\";\n      }\n\n      find.validateInput(\"findAsync\", startPath, options);\n      return find.async(resolvePath(startPath), normalizeOptions(options));\n    },\n    inspect: (path, fieldsToInclude) => {\n      inspect.validateInput(\"inspect\", path, fieldsToInclude);\n      return inspect.sync(resolvePath(path), fieldsToInclude);\n    },\n    inspectAsync: (path, fieldsToInclude) => {\n      inspect.validateInput(\"inspectAsync\", path, fieldsToInclude);\n      return inspect.async(resolvePath(path), fieldsToInclude);\n    },\n    inspectTree: (path, options) => {\n      inspectTree.validateInput(\"inspectTree\", path, options);\n      return inspectTree.sync(resolvePath(path), options);\n    },\n    inspectTreeAsync: (path, options) => {\n      inspectTree.validateInput(\"inspectTreeAsync\", path, options);\n      return inspectTree.async(resolvePath(path), options);\n    },\n    list: path => {\n      list.validateInput(\"list\", path);\n      return list.sync(resolvePath(path || \".\"));\n    },\n    listAsync: path => {\n      list.validateInput(\"listAsync\", path);\n      return list.async(resolvePath(path || \".\"));\n    },\n    move: (from, to, options) => {\n      move.validateInput(\"move\", from, to, options);\n      move.sync(resolvePath(from), resolvePath(to), options);\n    },\n    moveAsync: (from, to, options) => {\n      move.validateInput(\"moveAsync\", from, to, options);\n      return move.async(resolvePath(from), resolvePath(to), options);\n    },\n    read: (path, returnAs) => {\n      read.validateInput(\"read\", path, returnAs);\n      return read.sync(resolvePath(path), returnAs);\n    },\n    readAsync: (path, returnAs) => {\n      read.validateInput(\"readAsync\", path, returnAs);\n      return read.async(resolvePath(path), returnAs);\n    },\n    remove: path => {\n      remove.validateInput(\"remove\", path); // If path not specified defaults to CWD\n\n      remove.sync(resolvePath(path || \".\"));\n    },\n    removeAsync: path => {\n      remove.validateInput(\"removeAsync\", path); // If path not specified defaults to CWD\n\n      return remove.async(resolvePath(path || \".\"));\n    },\n    rename: (path, newName, options) => {\n      rename.validateInput(\"rename\", path, newName, options);\n      rename.sync(resolvePath(path), newName, options);\n    },\n    renameAsync: (path, newName, options) => {\n      rename.validateInput(\"renameAsync\", path, newName, options);\n      return rename.async(resolvePath(path), newName, options);\n    },\n    symlink: (symlinkValue, path) => {\n      symlink.validateInput(\"symlink\", symlinkValue, path);\n      symlink.sync(symlinkValue, resolvePath(path));\n    },\n    symlinkAsync: (symlinkValue, path) => {\n      symlink.validateInput(\"symlinkAsync\", symlinkValue, path);\n      return symlink.async(symlinkValue, resolvePath(path));\n    },\n    tmpDir: options => {\n      tmpDir.validateInput(\"tmpDir\", options);\n      const pathOfCreatedDirectory = tmpDir.sync(getCwdPath(), options);\n      return cwd(pathOfCreatedDirectory);\n    },\n    tmpDirAsync: options => {\n      tmpDir.validateInput(\"tmpDirAsync\", options);\n      return new Promise((resolve, reject) => {\n        tmpDir.async(getCwdPath(), options).then(pathOfCreatedDirectory => {\n          resolve(cwd(pathOfCreatedDirectory));\n        }, reject);\n      });\n    },\n    write: (path, data, options) => {\n      write.validateInput(\"write\", path, data, options);\n      write.sync(resolvePath(path), data, options);\n    },\n    writeAsync: (path, data, options) => {\n      write.validateInput(\"writeAsync\", path, data, options);\n      return write.async(resolvePath(path), data, options);\n    }\n  };\n\n  if (util.inspect.custom !== undefined) {\n    // Without this console.log(jetpack) throws obscure error. Details:\n    // https://github.com/szwacz/fs-jetpack/issues/29\n    // https://nodejs.org/api/util.html#util_custom_inspection_functions_on_objects\n    api[util.inspect.custom] = () => {\n      return `[fs-jetpack CWD: ${getCwdPath()}]`;\n    };\n  }\n\n  return api;\n};\n\nmodule.exports = jetpackContext;","map":{"version":3,"sources":["D:/Development/Work/CENOS/cenos-ui/node_modules/fs-jetpack/lib/jetpack.js"],"names":["util","require","pathUtil","append","dir","file","find","inspect","inspectTree","copy","exists","list","move","read","remove","rename","symlink","streams","tmpDir","write","jetpackContext","cwdPath","getCwdPath","process","cwd","arguments","length","args","Array","prototype","slice","call","pathParts","concat","resolve","apply","resolvePath","path","getPath","unshift","normalizeOptions","options","opts","api","data","validateInput","sync","appendAsync","async","from","to","copyAsync","createWriteStream","createReadStream","criteria","normalizedPath","dirAsync","Promise","reject","then","existsAsync","fileAsync","startPath","findAsync","fieldsToInclude","inspectAsync","inspectTreeAsync","listAsync","moveAsync","returnAs","readAsync","removeAsync","newName","renameAsync","symlinkValue","symlinkAsync","pathOfCreatedDirectory","tmpDirAsync","writeAsync","custom","undefined","module","exports"],"mappings":"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","sourcesContent":["\"use strict\";\n\nconst util = require(\"util\");\nconst pathUtil = require(\"path\");\nconst append = require(\"./append\");\nconst dir = require(\"./dir\");\nconst file = require(\"./file\");\nconst find = require(\"./find\");\nconst inspect = require(\"./inspect\");\nconst inspectTree = require(\"./inspect_tree\");\nconst copy = require(\"./copy\");\nconst exists = require(\"./exists\");\nconst list = require(\"./list\");\nconst move = require(\"./move\");\nconst read = require(\"./read\");\nconst remove = require(\"./remove\");\nconst rename = require(\"./rename\");\nconst symlink = require(\"./symlink\");\nconst streams = require(\"./streams\");\nconst tmpDir = require(\"./tmp_dir\");\nconst write = require(\"./write\");\n\n// The Jetpack Context object.\n// It provides the public API, and resolves all paths regarding to\n// passed cwdPath, or default process.cwd() if cwdPath was not specified.\nconst jetpackContext = cwdPath => {\n  const getCwdPath = () => {\n    return cwdPath || process.cwd();\n  };\n\n  const cwd = function() {\n    // return current CWD if no arguments specified...\n    if (arguments.length === 0) {\n      return getCwdPath();\n    }\n\n    // ...create new CWD context otherwise\n    const args = Array.prototype.slice.call(arguments);\n    const pathParts = [getCwdPath()].concat(args);\n    return jetpackContext(pathUtil.resolve.apply(null, pathParts));\n  };\n\n  // resolves path to inner CWD path of this jetpack instance\n  const resolvePath = path => {\n    return pathUtil.resolve(getCwdPath(), path);\n  };\n\n  const getPath = function() {\n    // add CWD base path as first element of arguments array\n    Array.prototype.unshift.call(arguments, getCwdPath());\n    return pathUtil.resolve.apply(null, arguments);\n  };\n\n  const normalizeOptions = options => {\n    const opts = options || {};\n    opts.cwd = getCwdPath();\n    return opts;\n  };\n\n  // API\n\n  const api = {\n    cwd,\n    path: getPath,\n\n    append: (path, data, options) => {\n      append.validateInput(\"append\", path, data, options);\n      append.sync(resolvePath(path), data, options);\n    },\n    appendAsync: (path, data, options) => {\n      append.validateInput(\"appendAsync\", path, data, options);\n      return append.async(resolvePath(path), data, options);\n    },\n\n    copy: (from, to, options) => {\n      copy.validateInput(\"copy\", from, to, options);\n      copy.sync(resolvePath(from), resolvePath(to), options);\n    },\n    copyAsync: (from, to, options) => {\n      copy.validateInput(\"copyAsync\", from, to, options);\n      return copy.async(resolvePath(from), resolvePath(to), options);\n    },\n\n    createWriteStream: (path, options) => {\n      return streams.createWriteStream(resolvePath(path), options);\n    },\n    createReadStream: (path, options) => {\n      return streams.createReadStream(resolvePath(path), options);\n    },\n\n    dir: (path, criteria) => {\n      dir.validateInput(\"dir\", path, criteria);\n      const normalizedPath = resolvePath(path);\n      dir.sync(normalizedPath, criteria);\n      return cwd(normalizedPath);\n    },\n    dirAsync: (path, criteria) => {\n      dir.validateInput(\"dirAsync\", path, criteria);\n      return new Promise((resolve, reject) => {\n        const normalizedPath = resolvePath(path);\n        dir.async(normalizedPath, criteria).then(() => {\n          resolve(cwd(normalizedPath));\n        }, reject);\n      });\n    },\n\n    exists: path => {\n      exists.validateInput(\"exists\", path);\n      return exists.sync(resolvePath(path));\n    },\n    existsAsync: path => {\n      exists.validateInput(\"existsAsync\", path);\n      return exists.async(resolvePath(path));\n    },\n\n    file: (path, criteria) => {\n      file.validateInput(\"file\", path, criteria);\n      file.sync(resolvePath(path), criteria);\n      return api;\n    },\n    fileAsync: (path, criteria) => {\n      file.validateInput(\"fileAsync\", path, criteria);\n      return new Promise((resolve, reject) => {\n        file.async(resolvePath(path), criteria).then(() => {\n          resolve(api);\n        }, reject);\n      });\n    },\n\n    find: (startPath, options) => {\n      // startPath is optional parameter, if not specified move rest of params\n      // to proper places and default startPath to CWD.\n      if (typeof options === \"undefined\" && typeof startPath === \"object\") {\n        options = startPath;\n        startPath = \".\";\n      }\n      find.validateInput(\"find\", startPath, options);\n      return find.sync(resolvePath(startPath), normalizeOptions(options));\n    },\n    findAsync: (startPath, options) => {\n      // startPath is optional parameter, if not specified move rest of params\n      // to proper places and default startPath to CWD.\n      if (typeof options === \"undefined\" && typeof startPath === \"object\") {\n        options = startPath;\n        startPath = \".\";\n      }\n      find.validateInput(\"findAsync\", startPath, options);\n      return find.async(resolvePath(startPath), normalizeOptions(options));\n    },\n\n    inspect: (path, fieldsToInclude) => {\n      inspect.validateInput(\"inspect\", path, fieldsToInclude);\n      return inspect.sync(resolvePath(path), fieldsToInclude);\n    },\n    inspectAsync: (path, fieldsToInclude) => {\n      inspect.validateInput(\"inspectAsync\", path, fieldsToInclude);\n      return inspect.async(resolvePath(path), fieldsToInclude);\n    },\n\n    inspectTree: (path, options) => {\n      inspectTree.validateInput(\"inspectTree\", path, options);\n      return inspectTree.sync(resolvePath(path), options);\n    },\n    inspectTreeAsync: (path, options) => {\n      inspectTree.validateInput(\"inspectTreeAsync\", path, options);\n      return inspectTree.async(resolvePath(path), options);\n    },\n\n    list: path => {\n      list.validateInput(\"list\", path);\n      return list.sync(resolvePath(path || \".\"));\n    },\n    listAsync: path => {\n      list.validateInput(\"listAsync\", path);\n      return list.async(resolvePath(path || \".\"));\n    },\n\n    move: (from, to, options) => {\n      move.validateInput(\"move\", from, to, options);\n      move.sync(resolvePath(from), resolvePath(to), options);\n    },\n    moveAsync: (from, to, options) => {\n      move.validateInput(\"moveAsync\", from, to, options);\n      return move.async(resolvePath(from), resolvePath(to), options);\n    },\n\n    read: (path, returnAs) => {\n      read.validateInput(\"read\", path, returnAs);\n      return read.sync(resolvePath(path), returnAs);\n    },\n    readAsync: (path, returnAs) => {\n      read.validateInput(\"readAsync\", path, returnAs);\n      return read.async(resolvePath(path), returnAs);\n    },\n\n    remove: path => {\n      remove.validateInput(\"remove\", path);\n      // If path not specified defaults to CWD\n      remove.sync(resolvePath(path || \".\"));\n    },\n    removeAsync: path => {\n      remove.validateInput(\"removeAsync\", path);\n      // If path not specified defaults to CWD\n      return remove.async(resolvePath(path || \".\"));\n    },\n\n    rename: (path, newName, options) => {\n      rename.validateInput(\"rename\", path, newName, options);\n      rename.sync(resolvePath(path), newName, options);\n    },\n    renameAsync: (path, newName, options) => {\n      rename.validateInput(\"renameAsync\", path, newName, options);\n      return rename.async(resolvePath(path), newName, options);\n    },\n\n    symlink: (symlinkValue, path) => {\n      symlink.validateInput(\"symlink\", symlinkValue, path);\n      symlink.sync(symlinkValue, resolvePath(path));\n    },\n    symlinkAsync: (symlinkValue, path) => {\n      symlink.validateInput(\"symlinkAsync\", symlinkValue, path);\n      return symlink.async(symlinkValue, resolvePath(path));\n    },\n\n    tmpDir: options => {\n      tmpDir.validateInput(\"tmpDir\", options);\n      const pathOfCreatedDirectory = tmpDir.sync(getCwdPath(), options);\n      return cwd(pathOfCreatedDirectory);\n    },\n    tmpDirAsync: options => {\n      tmpDir.validateInput(\"tmpDirAsync\", options);\n      return new Promise((resolve, reject) => {\n        tmpDir.async(getCwdPath(), options).then(pathOfCreatedDirectory => {\n          resolve(cwd(pathOfCreatedDirectory));\n        }, reject);\n      });\n    },\n\n    write: (path, data, options) => {\n      write.validateInput(\"write\", path, data, options);\n      write.sync(resolvePath(path), data, options);\n    },\n    writeAsync: (path, data, options) => {\n      write.validateInput(\"writeAsync\", path, data, options);\n      return write.async(resolvePath(path), data, options);\n    }\n  };\n\n  if (util.inspect.custom !== undefined) {\n    // Without this console.log(jetpack) throws obscure error. Details:\n    // https://github.com/szwacz/fs-jetpack/issues/29\n    // https://nodejs.org/api/util.html#util_custom_inspection_functions_on_objects\n    api[util.inspect.custom] = () => {\n      return `[fs-jetpack CWD: ${getCwdPath()}]`;\n    };\n  }\n\n  return api;\n};\n\nmodule.exports = jetpackContext;\n"]},"metadata":{},"sourceType":"script"}