{"ast":null,"code":"'use strict';\n\nvar _asyncToGenerator = require(\"D:/Development/Work/CENOS/cenos-ui/node_modules/@babel/runtime/helpers/asyncToGenerator\").default;\n\nconst path = require('path');\n\nconst {\n  constants: fsConstants\n} = require('fs');\n\nconst pEvent = require('p-event');\n\nconst CpFileError = require('./cp-file-error');\n\nconst fs = require('./fs');\n\nconst ProgressEmitter = require('./progress-emitter');\n\nconst cpFileAsync = /*#__PURE__*/function () {\n  var _ref = _asyncToGenerator(function* (source, destination, options, progressEmitter) {\n    let readError;\n    const stat = yield fs.stat(source);\n    progressEmitter.size = stat.size;\n    const read = yield fs.createReadStream(source);\n    yield fs.makeDir(path.dirname(destination));\n    const write = fs.createWriteStream(destination, {\n      flags: options.overwrite ? 'w' : 'wx'\n    });\n    read.on('data', () => {\n      progressEmitter.written = write.bytesWritten;\n    });\n    read.once('error', error => {\n      readError = new CpFileError(`Cannot read from \\`${source}\\`: ${error.message}`, error);\n      write.end();\n    });\n    let updateStats = false;\n\n    try {\n      const writePromise = pEvent(write, 'close');\n      read.pipe(write);\n      yield writePromise;\n      progressEmitter.written = progressEmitter.size;\n      updateStats = true;\n    } catch (error) {\n      if (options.overwrite || error.code !== 'EEXIST') {\n        throw new CpFileError(`Cannot write to \\`${destination}\\`: ${error.message}`, error);\n      }\n    }\n\n    if (readError) {\n      throw readError;\n    }\n\n    if (updateStats) {\n      const stats = yield fs.lstat(source);\n      return Promise.all([fs.utimes(destination, stats.atime, stats.mtime), fs.chmod(destination, stats.mode), fs.chown(destination, stats.uid, stats.gid)]);\n    }\n  });\n\n  return function cpFileAsync(_x, _x2, _x3, _x4) {\n    return _ref.apply(this, arguments);\n  };\n}();\n\nconst cpFile = (source, destination, options) => {\n  if (!source || !destination) {\n    return Promise.reject(new CpFileError('`source` and `destination` required'));\n  }\n\n  options = {\n    overwrite: true,\n    ...options\n  };\n  const progressEmitter = new ProgressEmitter(path.resolve(source), path.resolve(destination));\n  const promise = cpFileAsync(source, destination, options, progressEmitter);\n\n  promise.on = (...args) => {\n    progressEmitter.on(...args);\n    return promise;\n  };\n\n  return promise;\n};\n\nmodule.exports = cpFile;\n\nconst checkSourceIsFile = (stat, source) => {\n  if (stat.isDirectory()) {\n    throw Object.assign(new CpFileError(`EISDIR: illegal operation on a directory '${source}'`), {\n      errno: -21,\n      code: 'EISDIR',\n      source\n    });\n  }\n};\n\nconst fixupAttributes = (destination, stat) => {\n  fs.chmodSync(destination, stat.mode);\n  fs.chownSync(destination, stat.uid, stat.gid);\n};\n\nmodule.exports.sync = (source, destination, options) => {\n  if (!source || !destination) {\n    throw new CpFileError('`source` and `destination` required');\n  }\n\n  options = {\n    overwrite: true,\n    ...options\n  };\n  const stat = fs.statSync(source);\n  checkSourceIsFile(stat, source);\n  fs.makeDirSync(path.dirname(destination));\n  const flags = options.overwrite ? null : fsConstants.COPYFILE_EXCL;\n\n  try {\n    fs.copyFileSync(source, destination, flags);\n  } catch (error) {\n    if (!options.overwrite && error.code === 'EEXIST') {\n      return;\n    }\n\n    throw error;\n  }\n\n  fs.utimesSync(destination, stat.atime, stat.mtime);\n  fixupAttributes(destination, stat);\n};","map":{"version":3,"sources":["D:/Development/Work/CENOS/cenos-ui/node_modules/cp-file/index.js"],"names":["path","require","constants","fsConstants","pEvent","CpFileError","fs","ProgressEmitter","cpFileAsync","source","destination","options","progressEmitter","readError","stat","size","read","createReadStream","makeDir","dirname","write","createWriteStream","flags","overwrite","on","written","bytesWritten","once","error","message","end","updateStats","writePromise","pipe","code","stats","lstat","Promise","all","utimes","atime","mtime","chmod","mode","chown","uid","gid","cpFile","reject","resolve","promise","args","module","exports","checkSourceIsFile","isDirectory","Object","assign","errno","fixupAttributes","chmodSync","chownSync","sync","statSync","makeDirSync","COPYFILE_EXCL","copyFileSync","utimesSync"],"mappings":"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","sourcesContent":["'use strict';\nconst path = require('path');\nconst {constants: fsConstants} = require('fs');\nconst pEvent = require('p-event');\nconst CpFileError = require('./cp-file-error');\nconst fs = require('./fs');\nconst ProgressEmitter = require('./progress-emitter');\n\nconst cpFileAsync = async (source, destination, options, progressEmitter) => {\n\tlet readError;\n\tconst stat = await fs.stat(source);\n\tprogressEmitter.size = stat.size;\n\n\tconst read = await fs.createReadStream(source);\n\tawait fs.makeDir(path.dirname(destination));\n\tconst write = fs.createWriteStream(destination, {flags: options.overwrite ? 'w' : 'wx'});\n\tread.on('data', () => {\n\t\tprogressEmitter.written = write.bytesWritten;\n\t});\n\tread.once('error', error => {\n\t\treadError = new CpFileError(`Cannot read from \\`${source}\\`: ${error.message}`, error);\n\t\twrite.end();\n\t});\n\n\tlet updateStats = false;\n\ttry {\n\t\tconst writePromise = pEvent(write, 'close');\n\t\tread.pipe(write);\n\t\tawait writePromise;\n\t\tprogressEmitter.written = progressEmitter.size;\n\t\tupdateStats = true;\n\t} catch (error) {\n\t\tif (options.overwrite || error.code !== 'EEXIST') {\n\t\t\tthrow new CpFileError(`Cannot write to \\`${destination}\\`: ${error.message}`, error);\n\t\t}\n\t}\n\n\tif (readError) {\n\t\tthrow readError;\n\t}\n\n\tif (updateStats) {\n\t\tconst stats = await fs.lstat(source);\n\n\t\treturn Promise.all([\n\t\t\tfs.utimes(destination, stats.atime, stats.mtime),\n\t\t\tfs.chmod(destination, stats.mode),\n\t\t\tfs.chown(destination, stats.uid, stats.gid)\n\t\t]);\n\t}\n};\n\nconst cpFile = (source, destination, options) => {\n\tif (!source || !destination) {\n\t\treturn Promise.reject(new CpFileError('`source` and `destination` required'));\n\t}\n\n\toptions = {\n\t\toverwrite: true,\n\t\t...options\n\t};\n\n\tconst progressEmitter = new ProgressEmitter(path.resolve(source), path.resolve(destination));\n\tconst promise = cpFileAsync(source, destination, options, progressEmitter);\n\tpromise.on = (...args) => {\n\t\tprogressEmitter.on(...args);\n\t\treturn promise;\n\t};\n\n\treturn promise;\n};\n\nmodule.exports = cpFile;\n\nconst checkSourceIsFile = (stat, source) => {\n\tif (stat.isDirectory()) {\n\t\tthrow Object.assign(new CpFileError(`EISDIR: illegal operation on a directory '${source}'`), {\n\t\t\terrno: -21,\n\t\t\tcode: 'EISDIR',\n\t\t\tsource\n\t\t});\n\t}\n};\n\nconst fixupAttributes = (destination, stat) => {\n\tfs.chmodSync(destination, stat.mode);\n\tfs.chownSync(destination, stat.uid, stat.gid);\n};\n\nmodule.exports.sync = (source, destination, options) => {\n\tif (!source || !destination) {\n\t\tthrow new CpFileError('`source` and `destination` required');\n\t}\n\n\toptions = {\n\t\toverwrite: true,\n\t\t...options\n\t};\n\n\tconst stat = fs.statSync(source);\n\tcheckSourceIsFile(stat, source);\n\tfs.makeDirSync(path.dirname(destination));\n\n\tconst flags = options.overwrite ? null : fsConstants.COPYFILE_EXCL;\n\ttry {\n\t\tfs.copyFileSync(source, destination, flags);\n\t} catch (error) {\n\t\tif (!options.overwrite && error.code === 'EEXIST') {\n\t\t\treturn;\n\t\t}\n\n\t\tthrow error;\n\t}\n\n\tfs.utimesSync(destination, stat.atime, stat.mtime);\n\tfixupAttributes(destination, stat);\n};\n"]},"metadata":{},"sourceType":"script"}