{"ast":null,"code":"\"use strict\";\n\nconst crypto = require(\"crypto\");\n\nconst pathUtil = require(\"path\");\n\nconst fs = require(\"./utils/fs\");\n\nconst validate = require(\"./utils/validate\");\n\nconst supportedChecksumAlgorithms = [\"md5\", \"sha1\", \"sha256\", \"sha512\"];\nconst symlinkOptions = [\"report\", \"follow\"];\n\nconst validateInput = (methodName, path, options) => {\n  const methodSignature = `${methodName}(path, [options])`;\n  validate.argument(methodSignature, \"path\", path, [\"string\"]);\n  validate.options(methodSignature, \"options\", options, {\n    checksum: [\"string\"],\n    mode: [\"boolean\"],\n    times: [\"boolean\"],\n    absolutePath: [\"boolean\"],\n    symlinks: [\"string\"]\n  });\n\n  if (options && options.checksum !== undefined && supportedChecksumAlgorithms.indexOf(options.checksum) === -1) {\n    throw new Error(`Argument \"options.checksum\" passed to ${methodSignature} must have one of values: ${supportedChecksumAlgorithms.join(\", \")}`);\n  }\n\n  if (options && options.symlinks !== undefined && symlinkOptions.indexOf(options.symlinks) === -1) {\n    throw new Error(`Argument \"options.symlinks\" passed to ${methodSignature} must have one of values: ${symlinkOptions.join(\", \")}`);\n  }\n};\n\nconst createInspectObj = (path, options, stat) => {\n  const obj = {};\n  obj.name = pathUtil.basename(path);\n\n  if (stat.isFile()) {\n    obj.type = \"file\";\n    obj.size = stat.size;\n  } else if (stat.isDirectory()) {\n    obj.type = \"dir\";\n  } else if (stat.isSymbolicLink()) {\n    obj.type = \"symlink\";\n  } else {\n    obj.type = \"other\";\n  }\n\n  if (options.mode) {\n    obj.mode = stat.mode;\n  }\n\n  if (options.times) {\n    obj.accessTime = stat.atime;\n    obj.modifyTime = stat.mtime;\n    obj.changeTime = stat.ctime;\n  }\n\n  if (options.absolutePath) {\n    obj.absolutePath = path;\n  }\n\n  return obj;\n}; // ---------------------------------------------------------\n// Sync\n// ---------------------------------------------------------\n\n\nconst fileChecksum = (path, algo) => {\n  const hash = crypto.createHash(algo);\n  const data = fs.readFileSync(path);\n  hash.update(data);\n  return hash.digest(\"hex\");\n};\n\nconst addExtraFieldsSync = (path, inspectObj, options) => {\n  if (inspectObj.type === \"file\" && options.checksum) {\n    inspectObj[options.checksum] = fileChecksum(path, options.checksum);\n  } else if (inspectObj.type === \"symlink\") {\n    inspectObj.pointsAt = fs.readlinkSync(path);\n  }\n};\n\nconst inspectSync = (path, options) => {\n  let statOperation = fs.lstatSync;\n  let stat;\n  const opts = options || {};\n\n  if (opts.symlinks === \"follow\") {\n    statOperation = fs.statSync;\n  }\n\n  try {\n    stat = statOperation(path);\n  } catch (err) {\n    // Detection if path exists\n    if (err.code === \"ENOENT\") {\n      // Doesn't exist. Return undefined instead of throwing.\n      return undefined;\n    }\n\n    throw err;\n  }\n\n  const inspectObj = createInspectObj(path, opts, stat);\n  addExtraFieldsSync(path, inspectObj, opts);\n  return inspectObj;\n}; // ---------------------------------------------------------\n// Async\n// ---------------------------------------------------------\n\n\nconst fileChecksumAsync = (path, algo) => {\n  return new Promise((resolve, reject) => {\n    const hash = crypto.createHash(algo);\n    const s = fs.createReadStream(path);\n    s.on(\"data\", data => {\n      hash.update(data);\n    });\n    s.on(\"end\", () => {\n      resolve(hash.digest(\"hex\"));\n    });\n    s.on(\"error\", reject);\n  });\n};\n\nconst addExtraFieldsAsync = (path, inspectObj, options) => {\n  if (inspectObj.type === \"file\" && options.checksum) {\n    return fileChecksumAsync(path, options.checksum).then(checksum => {\n      inspectObj[options.checksum] = checksum;\n      return inspectObj;\n    });\n  } else if (inspectObj.type === \"symlink\") {\n    return fs.readlink(path).then(linkPath => {\n      inspectObj.pointsAt = linkPath;\n      return inspectObj;\n    });\n  }\n\n  return Promise.resolve(inspectObj);\n};\n\nconst inspectAsync = (path, options) => {\n  return new Promise((resolve, reject) => {\n    let statOperation = fs.lstat;\n    const opts = options || {};\n\n    if (opts.symlinks === \"follow\") {\n      statOperation = fs.stat;\n    }\n\n    statOperation(path).then(stat => {\n      const inspectObj = createInspectObj(path, opts, stat);\n      addExtraFieldsAsync(path, inspectObj, opts).then(resolve, reject);\n    }).catch(err => {\n      // Detection if path exists\n      if (err.code === \"ENOENT\") {\n        // Doesn't exist. Return undefined instead of throwing.\n        resolve(undefined);\n      } else {\n        reject(err);\n      }\n    });\n  });\n}; // ---------------------------------------------------------\n// API\n// ---------------------------------------------------------\n\n\nexports.supportedChecksumAlgorithms = supportedChecksumAlgorithms;\nexports.symlinkOptions = symlinkOptions;\nexports.validateInput = validateInput;\nexports.sync = inspectSync;\nexports.async = inspectAsync;","map":{"version":3,"sources":["D:/Development/Work/CENOS/cenos-ui/node_modules/fs-jetpack/lib/inspect.js"],"names":["crypto","require","pathUtil","fs","validate","supportedChecksumAlgorithms","symlinkOptions","validateInput","methodName","path","options","methodSignature","argument","checksum","mode","times","absolutePath","symlinks","undefined","indexOf","Error","join","createInspectObj","stat","obj","name","basename","isFile","type","size","isDirectory","isSymbolicLink","accessTime","atime","modifyTime","mtime","changeTime","ctime","fileChecksum","algo","hash","createHash","data","readFileSync","update","digest","addExtraFieldsSync","inspectObj","pointsAt","readlinkSync","inspectSync","statOperation","lstatSync","opts","statSync","err","code","fileChecksumAsync","Promise","resolve","reject","s","createReadStream","on","addExtraFieldsAsync","then","readlink","linkPath","inspectAsync","lstat","catch","exports","sync","async"],"mappings":"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","sourcesContent":["\"use strict\";\n\nconst crypto = require(\"crypto\");\nconst pathUtil = require(\"path\");\nconst fs = require(\"./utils/fs\");\nconst validate = require(\"./utils/validate\");\n\nconst supportedChecksumAlgorithms = [\"md5\", \"sha1\", \"sha256\", \"sha512\"];\n\nconst symlinkOptions = [\"report\", \"follow\"];\n\nconst validateInput = (methodName, path, options) => {\n  const methodSignature = `${methodName}(path, [options])`;\n  validate.argument(methodSignature, \"path\", path, [\"string\"]);\n  validate.options(methodSignature, \"options\", options, {\n    checksum: [\"string\"],\n    mode: [\"boolean\"],\n    times: [\"boolean\"],\n    absolutePath: [\"boolean\"],\n    symlinks: [\"string\"]\n  });\n\n  if (\n    options &&\n    options.checksum !== undefined &&\n    supportedChecksumAlgorithms.indexOf(options.checksum) === -1\n  ) {\n    throw new Error(\n      `Argument \"options.checksum\" passed to ${methodSignature} must have one of values: ${supportedChecksumAlgorithms.join(\n        \", \"\n      )}`\n    );\n  }\n\n  if (\n    options &&\n    options.symlinks !== undefined &&\n    symlinkOptions.indexOf(options.symlinks) === -1\n  ) {\n    throw new Error(\n      `Argument \"options.symlinks\" passed to ${methodSignature} must have one of values: ${symlinkOptions.join(\n        \", \"\n      )}`\n    );\n  }\n};\n\nconst createInspectObj = (path, options, stat) => {\n  const obj = {};\n\n  obj.name = pathUtil.basename(path);\n\n  if (stat.isFile()) {\n    obj.type = \"file\";\n    obj.size = stat.size;\n  } else if (stat.isDirectory()) {\n    obj.type = \"dir\";\n  } else if (stat.isSymbolicLink()) {\n    obj.type = \"symlink\";\n  } else {\n    obj.type = \"other\";\n  }\n\n  if (options.mode) {\n    obj.mode = stat.mode;\n  }\n\n  if (options.times) {\n    obj.accessTime = stat.atime;\n    obj.modifyTime = stat.mtime;\n    obj.changeTime = stat.ctime;\n  }\n\n  if (options.absolutePath) {\n    obj.absolutePath = path;\n  }\n\n  return obj;\n};\n\n// ---------------------------------------------------------\n// Sync\n// ---------------------------------------------------------\n\nconst fileChecksum = (path, algo) => {\n  const hash = crypto.createHash(algo);\n  const data = fs.readFileSync(path);\n  hash.update(data);\n  return hash.digest(\"hex\");\n};\n\nconst addExtraFieldsSync = (path, inspectObj, options) => {\n  if (inspectObj.type === \"file\" && options.checksum) {\n    inspectObj[options.checksum] = fileChecksum(path, options.checksum);\n  } else if (inspectObj.type === \"symlink\") {\n    inspectObj.pointsAt = fs.readlinkSync(path);\n  }\n};\n\nconst inspectSync = (path, options) => {\n  let statOperation = fs.lstatSync;\n  let stat;\n  const opts = options || {};\n\n  if (opts.symlinks === \"follow\") {\n    statOperation = fs.statSync;\n  }\n\n  try {\n    stat = statOperation(path);\n  } catch (err) {\n    // Detection if path exists\n    if (err.code === \"ENOENT\") {\n      // Doesn't exist. Return undefined instead of throwing.\n      return undefined;\n    }\n    throw err;\n  }\n\n  const inspectObj = createInspectObj(path, opts, stat);\n  addExtraFieldsSync(path, inspectObj, opts);\n\n  return inspectObj;\n};\n\n// ---------------------------------------------------------\n// Async\n// ---------------------------------------------------------\n\nconst fileChecksumAsync = (path, algo) => {\n  return new Promise((resolve, reject) => {\n    const hash = crypto.createHash(algo);\n    const s = fs.createReadStream(path);\n    s.on(\"data\", data => {\n      hash.update(data);\n    });\n    s.on(\"end\", () => {\n      resolve(hash.digest(\"hex\"));\n    });\n    s.on(\"error\", reject);\n  });\n};\n\nconst addExtraFieldsAsync = (path, inspectObj, options) => {\n  if (inspectObj.type === \"file\" && options.checksum) {\n    return fileChecksumAsync(path, options.checksum).then(checksum => {\n      inspectObj[options.checksum] = checksum;\n      return inspectObj;\n    });\n  } else if (inspectObj.type === \"symlink\") {\n    return fs.readlink(path).then(linkPath => {\n      inspectObj.pointsAt = linkPath;\n      return inspectObj;\n    });\n  }\n  return Promise.resolve(inspectObj);\n};\n\nconst inspectAsync = (path, options) => {\n  return new Promise((resolve, reject) => {\n    let statOperation = fs.lstat;\n    const opts = options || {};\n\n    if (opts.symlinks === \"follow\") {\n      statOperation = fs.stat;\n    }\n\n    statOperation(path)\n      .then(stat => {\n        const inspectObj = createInspectObj(path, opts, stat);\n        addExtraFieldsAsync(path, inspectObj, opts).then(resolve, reject);\n      })\n      .catch(err => {\n        // Detection if path exists\n        if (err.code === \"ENOENT\") {\n          // Doesn't exist. Return undefined instead of throwing.\n          resolve(undefined);\n        } else {\n          reject(err);\n        }\n      });\n  });\n};\n\n// ---------------------------------------------------------\n// API\n// ---------------------------------------------------------\n\nexports.supportedChecksumAlgorithms = supportedChecksumAlgorithms;\nexports.symlinkOptions = symlinkOptions;\nexports.validateInput = validateInput;\nexports.sync = inspectSync;\nexports.async = inspectAsync;\n"]},"metadata":{},"sourceType":"script"}