UNPKG

@lskjs/upload

Version:

LSK module for uploading files.

186 lines 15.4 kB
// import multer from 'multer'; // import fs from 'fs'; // import nodepath from 'path'; // import random from 'lodash/random'; // import get from 'lodash/get'; // import aws from 'aws-sdk'; // import multerS3 from 'multer-s3'; // import Api from '@lskjs/server-api'; // export default class UploadApi extends Api { // getFileType(file) { // if (file && file.originalname) { // const res = file.originalname.match(/\.([0-9a-z]+)(?:[\?#]|$)/i); //eslint-disable-line // if (res && res[1]) { // return res[1]; // } // } // return null; // } // // @TODO real file name // // const getFileName = (file) => { // // return file.originalname; // // }; // createDir(targetDir) { // if (!fs.existsSync(targetDir)) { // targetDir.split('/').forEach((dir, index, splits) => { // const parent = splits.slice(0, index).join('/'); // const dirPath = nodepath.resolve(parent, dir); // if (!fs.existsSync(dirPath)) { // fs.mkdirSync(dirPath); // } // }); // } // } // getFilePath(req, file) { // const { e403 } = this.app.errors; // const { config } = this; // let { path = 'storage' } = config; // if (req.user && req.user._id) { // path += `/${req.user._id}`; // } else if (config.allowGuest) { // path += '/general'; // } else { // throw e403('Guest can not upload files'); // } // let fileName; // if (config.allowSetFilename) { // fileName = file.originalname; // } else { // fileName = `${Date.now()}_${random(0, 1000)}.${this.getFileType(file)}`; // } // const { prefix = '' } = config; // const path2 = `${path}/${prefix}${fileName}`; // // console.log({ path2 }); // return path2; // } // getS3Storage() { // return multerS3({ // s3: this.s3, // bucket: this.config.s3.bucket, // contentType: multerS3.AUTO_CONTENT_TYPE, // acl: 'public-read', // key3: (req, file, cb) => { // const filename = nodepath.parse(file.originalname); // // console.log({ req, file }); // // console.log(`avatar_${req.user._id}.${filename.ext}`); // cb(null, `avatar_${req.user._id}.${filename.ext}`); // }, // key: async (req, file, cb) => { // let filename; // try { // // console.log('req, file', file); // filename = this.getFilePath(req, file); // // console.log('filename', filename); // filename = filename.replace(/\//g, '__'); // // console.log('filename2', filename); // } catch (err) { // return cb(err); // } // return cb(null, filename); // }, // }); // } // getDiskStorage() { // // const config = this.app.config.upload; // const storage = multer.diskStorage({ // destination: (req, file, cb) => { // // console.log('destination'); // let path; // let dirname; // try { // path = this.getFilePath(req, file); // dirname = path.split('/').slice(0, -1).join('/'); // this.createDir(dirname); // } catch (err) { // return cb(err); // } // return cb(null, dirname); // }, // filename: (req, file, cb) => { // let path; // let filename; // try { // path = this.getFilePath(req, file); // [filename] = path.split('/').reverse(); // } catch (err) { // return cb(err); // } // // console.log('filename', filename); // // this.createDir(filename); // return cb(null, filename); // }, // }); // return storage; // } // getMulter() { // const { e400 } = this.app.errors; // const config = this.app.config.upload; // const fileFilter = (req, file, cb) => { // if (Array.isArray(config.mimetypes)) { // if (config.mimetypes.indexOf(file.mimetype) === -1) { // return cb(e400('You are not allowed to upload files with this extension')); // } // } // return cb(null, true); // }; // const limits = {}; // if (config.maxSize) { // const fileSize = parseFloat(config.maxSize) * 1024 * 1024; // limits.fileSize = fileSize; // } // // console.log('getMulter', { // // storage: this.storage, // // limits, // // fileFilter, // // }); // return multer({ // storage: this.storage, // limits, // fileFilter, // }); // } // getApi() { // const config = this.app.config.upload; // function processFile(file) { // if (config.s3) { // return { // name: file.fieldname, // url: file.location, // path: file.location, // relative: `/${file.key}`, // mimetype: file.contentType, // filename: file.originalname, // }; // } // return { // name: file.fieldname, // url: `${config.url}/${file.path}`, // path: `/${file.path}`, // relative: `/${file.path}`, // mimetype: file.mimetype, // filename: file.originalname, // }; // } // const api = this.app.asyncRouter(); // api.post('/many', this.multer.any(), async (req) => { // const { files = [] } = req; // return files.map(processFile); // }); // // const upload = multer(); // // api.post('/', this.multer.single('file'), async (req) => { // api.post('/', this.multer.single('file'), async (req) => { // const { file } = req; // if (!file) { // throw '!file'; // } // return processFile(file); // }); // return api; // } // async run() { // this.app.app.use('/api/module/upload', this.getApi()); // } // } "use strict"; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9VcGxvYWRBcGkuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaW1wb3J0IG11bHRlciBmcm9tICdtdWx0ZXInO1xuLy8gaW1wb3J0IGZzIGZyb20gJ2ZzJztcbi8vIGltcG9ydCBub2RlcGF0aCBmcm9tICdwYXRoJztcbi8vIGltcG9ydCByYW5kb20gZnJvbSAnbG9kYXNoL3JhbmRvbSc7XG4vLyBpbXBvcnQgZ2V0IGZyb20gJ2xvZGFzaC9nZXQnO1xuLy8gaW1wb3J0IGF3cyBmcm9tICdhd3Mtc2RrJztcbi8vIGltcG9ydCBtdWx0ZXJTMyBmcm9tICdtdWx0ZXItczMnO1xuLy8gaW1wb3J0IEFwaSBmcm9tICdAbHNranMvc2VydmVyLWFwaSc7XG5cbi8vIGV4cG9ydCBkZWZhdWx0IGNsYXNzIFVwbG9hZEFwaSBleHRlbmRzIEFwaSB7XG4vLyAgIGdldEZpbGVUeXBlKGZpbGUpIHtcbi8vICAgICBpZiAoZmlsZSAmJiBmaWxlLm9yaWdpbmFsbmFtZSkge1xuLy8gICAgICAgY29uc3QgcmVzID0gZmlsZS5vcmlnaW5hbG5hbWUubWF0Y2goL1xcLihbMC05YS16XSspKD86W1xcPyNdfCQpL2kpOyAgLy9lc2xpbnQtZGlzYWJsZS1saW5lXG4vLyAgICAgICBpZiAocmVzICYmIHJlc1sxXSkge1xuLy8gICAgICAgICByZXR1cm4gcmVzWzFdO1xuLy8gICAgICAgfVxuLy8gICAgIH1cbi8vICAgICByZXR1cm4gbnVsbDtcbi8vICAgfVxuLy8gICAvLyBAVE9ETyByZWFsIGZpbGUgbmFtZVxuLy8gICAvLyBjb25zdCBnZXRGaWxlTmFtZSA9IChmaWxlKSA9PiB7XG4vLyAgIC8vICAgcmV0dXJuIGZpbGUub3JpZ2luYWxuYW1lO1xuLy8gICAvLyB9O1xuXG4vLyAgIGNyZWF0ZURpcih0YXJnZXREaXIpIHtcbi8vICAgICBpZiAoIWZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuLy8gICAgICAgdGFyZ2V0RGlyLnNwbGl0KCcvJykuZm9yRWFjaCgoZGlyLCBpbmRleCwgc3BsaXRzKSA9PiB7XG4vLyAgICAgICAgIGNvbnN0IHBhcmVudCA9IHNwbGl0cy5zbGljZSgwLCBpbmRleCkuam9pbignLycpO1xuLy8gICAgICAgICBjb25zdCBkaXJQYXRoID0gbm9kZXBhdGgucmVzb2x2ZShwYXJlbnQsIGRpcik7XG4vLyAgICAgICAgIGlmICghZnMuZXhpc3RzU3luYyhkaXJQYXRoKSkge1xuLy8gICAgICAgICAgIGZzLm1rZGlyU3luYyhkaXJQYXRoKTtcbi8vICAgICAgICAgfVxuLy8gICAgICAgfSk7XG4vLyAgICAgfVxuLy8gICB9XG5cbi8vICAgZ2V0RmlsZVBhdGgocmVxLCBmaWxlKSB7XG4vLyAgICAgY29uc3QgeyBlNDAzIH0gPSB0aGlzLmFwcC5lcnJvcnM7XG4vLyAgICAgY29uc3QgeyBjb25maWcgfSA9IHRoaXM7XG4vLyAgICAgbGV0IHsgcGF0aCA9ICdzdG9yYWdlJyB9ID0gY29uZmlnO1xuXG4vLyAgICAgaWYgKHJlcS51c2VyICYmIHJlcS51c2VyLl9pZCkge1xuLy8gICAgICAgcGF0aCArPSBgLyR7cmVxLnVzZXIuX2lkfWA7XG4vLyAgICAgfSBlbHNlIGlmIChjb25maWcuYWxsb3dHdWVzdCkge1xuLy8gICAgICAgcGF0aCArPSAnL2dlbmVyYWwnO1xuLy8gICAgIH0gZWxzZSB7XG4vLyAgICAgICB0aHJvdyBlNDAzKCdHdWVzdCBjYW4gbm90IHVwbG9hZCBmaWxlcycpO1xuLy8gICAgIH1cblxuLy8gICAgIGxldCBmaWxlTmFtZTtcbi8vICAgICBpZiAoY29uZmlnLmFsbG93U2V0RmlsZW5hbWUpIHtcbi8vICAgICAgIGZpbGVOYW1lID0gZmlsZS5vcmlnaW5hbG5hbWU7XG4vLyAgICAgfSBlbHNlIHtcbi8vICAgICAgIGZpbGVOYW1lID0gYCR7RGF0ZS5ub3coKX1fJHtyYW5kb20oMCwgMTAwMCl9LiR7dGhpcy5nZXRGaWxlVHlwZShmaWxlKX1gO1xuLy8gICAgIH1cbi8vICAgICBjb25zdCB7IHByZWZpeCA9ICcnIH0gPSBjb25maWc7XG4vLyAgICAgY29uc3QgcGF0aDIgPSBgJHtwYXRofS8ke3ByZWZpeH0ke2ZpbGVOYW1lfWA7XG4vLyAgICAgLy8gY29uc29sZS5sb2coeyBwYXRoMiB9KTtcblxuLy8gICAgIHJldHVybiBwYXRoMjtcbi8vICAgfVxuXG4vLyAgIGdldFMzU3RvcmFnZSgpIHtcbi8vICAgICByZXR1cm4gbXVsdGVyUzMoe1xuLy8gICAgICAgczM6IHRoaXMuczMsXG4vLyAgICAgICBidWNrZXQ6IHRoaXMuY29uZmlnLnMzLmJ1Y2tldCxcbi8vICAgICAgIGNvbnRlbnRUeXBlOiBtdWx0ZXJTMy5BVVRPX0NPTlRFTlRfVFlQRSxcbi8vICAgICAgIGFjbDogJ3B1YmxpYy1yZWFkJyxcbi8vICAgICAgIGtleTM6IChyZXEsIGZpbGUsIGNiKSA9PiB7XG4vLyAgICAgICAgIGNvbnN0IGZpbGVuYW1lID0gbm9kZXBhdGgucGFyc2UoZmlsZS5vcmlnaW5hbG5hbWUpO1xuLy8gICAgICAgICAvLyBjb25zb2xlLmxvZyh7IHJlcSwgZmlsZSB9KTtcbi8vICAgICAgICAgLy8gY29uc29sZS5sb2coYGF2YXRhcl8ke3JlcS51c2VyLl9pZH0uJHtmaWxlbmFtZS5leHR9YCk7XG4vLyAgICAgICAgIGNiKG51bGwsIGBhdmF0YXJfJHtyZXEudXNlci5faWR9LiR7ZmlsZW5hbWUuZXh0fWApO1xuLy8gICAgICAgfSxcbi8vICAgICAgIGtleTogYXN5bmMgKHJlcSwgZmlsZSwgY2IpID0+IHtcbi8vICAgICAgICAgbGV0IGZpbGVuYW1lO1xuLy8gICAgICAgICB0cnkge1xuLy8gICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdyZXEsIGZpbGUnLCBmaWxlKTtcbi8vICAgICAgICAgICBmaWxlbmFtZSA9IHRoaXMuZ2V0RmlsZVBhdGgocmVxLCBmaWxlKTtcbi8vICAgICAgICAgICAvLyBjb25zb2xlLmxvZygnZmlsZW5hbWUnLCBmaWxlbmFtZSk7XG4vLyAgICAgICAgICAgZmlsZW5hbWUgPSBmaWxlbmFtZS5yZXBsYWNlKC9cXC8vZywgJ19fJyk7XG4vLyAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ2ZpbGVuYW1lMicsIGZpbGVuYW1lKTtcbi8vICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4vLyAgICAgICAgICAgcmV0dXJuIGNiKGVycik7XG4vLyAgICAgICAgIH1cbi8vICAgICAgICAgcmV0dXJuIGNiKG51bGwsIGZpbGVuYW1lKTtcbi8vICAgICAgIH0sXG4vLyAgICAgfSk7XG4vLyAgIH1cblxuLy8gICBnZXREaXNrU3RvcmFnZSgpIHtcbi8vICAgICAvLyBjb25zdCBjb25maWcgPSB0aGlzLmFwcC5jb25maWcudXBsb2FkO1xuLy8gICAgIGNvbnN0IHN0b3JhZ2UgPSBtdWx0ZXIuZGlza1N0b3JhZ2Uoe1xuLy8gICAgICAgZGVzdGluYXRpb246IChyZXEsIGZpbGUsIGNiKSA9PiB7XG4vLyAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdkZXN0aW5hdGlvbicpO1xuLy8gICAgICAgICBsZXQgcGF0aDtcbi8vICAgICAgICAgbGV0IGRpcm5hbWU7XG4vLyAgICAgICAgIHRyeSB7XG4vLyAgICAgICAgICAgcGF0aCA9IHRoaXMuZ2V0RmlsZVBhdGgocmVxLCBmaWxlKTtcbi8vICAgICAgICAgICBkaXJuYW1lID0gcGF0aC5zcGxpdCgnLycpLnNsaWNlKDAsIC0xKS5qb2luKCcvJyk7XG4vLyAgICAgICAgICAgdGhpcy5jcmVhdGVEaXIoZGlybmFtZSk7XG4vLyAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuLy8gICAgICAgICAgIHJldHVybiBjYihlcnIpO1xuLy8gICAgICAgICB9XG4vLyAgICAgICAgIHJldHVybiBjYihudWxsLCBkaXJuYW1lKTtcbi8vICAgICAgIH0sXG4vLyAgICAgICBmaWxlbmFtZTogKHJlcSwgZmlsZSwgY2IpID0+IHtcbi8vICAgICAgICAgbGV0IHBhdGg7XG4vLyAgICAgICAgIGxldCBmaWxlbmFtZTtcbi8vICAgICAgICAgdHJ5IHtcbi8vICAgICAgICAgICBwYXRoID0gdGhpcy5nZXRGaWxlUGF0aChyZXEsIGZpbGUpO1xuLy8gICAgICAgICAgIFtmaWxlbmFtZV0gPSBwYXRoLnNwbGl0KCcvJykucmV2ZXJzZSgpO1xuLy8gICAgICAgICB9IGNhdGNoIChlcnIpIHtcbi8vICAgICAgICAgICByZXR1cm4gY2IoZXJyKTtcbi8vICAgICAgICAgfVxuLy8gICAgICAgICAvLyBjb25zb2xlLmxvZygnZmlsZW5hbWUnLCBmaWxlbmFtZSk7XG4vLyAgICAgICAgIC8vIHRoaXMuY3JlYXRlRGlyKGZpbGVuYW1lKTtcbi8vICAgICAgICAgcmV0dXJuIGNiKG51bGwsIGZpbGVuYW1lKTtcbi8vICAgICAgIH0sXG4vLyAgICAgfSk7XG4vLyAgICAgcmV0dXJuIHN0b3JhZ2U7XG4vLyAgIH1cblxuLy8gICBnZXRNdWx0ZXIoKSB7XG4vLyAgICAgY29uc3QgeyBlNDAwIH0gPSB0aGlzLmFwcC5lcnJvcnM7XG4vLyAgICAgY29uc3QgY29uZmlnID0gdGhpcy5hcHAuY29uZmlnLnVwbG9hZDtcbi8vICAgICBjb25zdCBmaWxlRmlsdGVyID0gKHJlcSwgZmlsZSwgY2IpID0+IHtcbi8vICAgICAgIGlmIChBcnJheS5pc0FycmF5KGNvbmZpZy5taW1ldHlwZXMpKSB7XG4vLyAgICAgICAgIGlmIChjb25maWcubWltZXR5cGVzLmluZGV4T2YoZmlsZS5taW1ldHlwZSkgPT09IC0xKSB7XG4vLyAgICAgICAgICAgcmV0dXJuIGNiKGU0MDAoJ1lvdSBhcmUgbm90IGFsbG93ZWQgdG8gdXBsb2FkIGZpbGVzIHdpdGggdGhpcyBleHRlbnNpb24nKSk7XG4vLyAgICAgICAgIH1cbi8vICAgICAgIH1cbi8vICAgICAgIHJldHVybiBjYihudWxsLCB0cnVlKTtcbi8vICAgICB9O1xuXG4vLyAgICAgY29uc3QgbGltaXRzID0ge307XG4vLyAgICAgaWYgKGNvbmZpZy5tYXhTaXplKSB7XG4vLyAgICAgICBjb25zdCBmaWxlU2l6ZSA9IHBhcnNlRmxvYXQoY29uZmlnLm1heFNpemUpICogMTAyNCAqIDEwMjQ7XG4vLyAgICAgICBsaW1pdHMuZmlsZVNpemUgPSBmaWxlU2l6ZTtcbi8vICAgICB9XG4vLyAgICAgLy8gY29uc29sZS5sb2coJ2dldE11bHRlcicsIHtcbi8vICAgICAvLyAgIHN0b3JhZ2U6IHRoaXMuc3RvcmFnZSxcbi8vICAgICAvLyAgIGxpbWl0cyxcbi8vICAgICAvLyAgIGZpbGVGaWx0ZXIsXG4vLyAgICAgLy8gfSk7XG4vLyAgICAgcmV0dXJuIG11bHRlcih7XG4vLyAgICAgICBzdG9yYWdlOiB0aGlzLnN0b3JhZ2UsXG4vLyAgICAgICBsaW1pdHMsXG4vLyAgICAgICBmaWxlRmlsdGVyLFxuLy8gICAgIH0pO1xuLy8gICB9XG5cbi8vICAgZ2V0QXBpKCkge1xuLy8gICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuYXBwLmNvbmZpZy51cGxvYWQ7XG4vLyAgICAgZnVuY3Rpb24gcHJvY2Vzc0ZpbGUoZmlsZSkge1xuLy8gICAgICAgaWYgKGNvbmZpZy5zMykge1xuLy8gICAgICAgICByZXR1cm4ge1xuLy8gICAgICAgICAgIG5hbWU6IGZpbGUuZmllbGRuYW1lLFxuLy8gICAgICAgICAgIHVybDogZmlsZS5sb2NhdGlvbixcbi8vICAgICAgICAgICBwYXRoOiBmaWxlLmxvY2F0aW9uLFxuLy8gICAgICAgICAgIHJlbGF0aXZlOiBgLyR7ZmlsZS5rZXl9YCxcbi8vICAgICAgICAgICBtaW1ldHlwZTogZmlsZS5jb250ZW50VHlwZSxcbi8vICAgICAgICAgICBmaWxlbmFtZTogZmlsZS5vcmlnaW5hbG5hbWUsXG4vLyAgICAgICAgIH07XG4vLyAgICAgICB9XG5cbi8vICAgICAgIHJldHVybiB7XG4vLyAgICAgICAgIG5hbWU6IGZpbGUuZmllbGRuYW1lLFxuLy8gICAgICAgICB1cmw6IGAke2NvbmZpZy51cmx9LyR7ZmlsZS5wYXRofWAsXG4vLyAgICAgICAgIHBhdGg6IGAvJHtmaWxlLnBhdGh9YCxcbi8vICAgICAgICAgcmVsYXRpdmU6IGAvJHtmaWxlLnBhdGh9YCxcbi8vICAgICAgICAgbWltZXR5cGU6IGZpbGUubWltZXR5cGUsXG4vLyAgICAgICAgIGZpbGVuYW1lOiBmaWxlLm9yaWdpbmFsbmFtZSxcbi8vICAgICAgIH07XG4vLyAgICAgfVxuXG4vLyAgICAgY29uc3QgYXBpID0gdGhpcy5hcHAuYXN5bmNSb3V0ZXIoKTtcbi8vICAgICBhcGkucG9zdCgnL21hbnknLCB0aGlzLm11bHRlci5hbnkoKSwgYXN5bmMgKHJlcSkgPT4ge1xuLy8gICAgICAgY29uc3QgeyBmaWxlcyA9IFtdIH0gPSByZXE7XG4vLyAgICAgICByZXR1cm4gZmlsZXMubWFwKHByb2Nlc3NGaWxlKTtcbi8vICAgICB9KTtcblxuLy8gICAgIC8vIGNvbnN0IHVwbG9hZCA9IG11bHRlcigpO1xuLy8gICAgIC8vIGFwaS5wb3N0KCcvJywgdGhpcy5tdWx0ZXIuc2luZ2xlKCdmaWxlJyksIGFzeW5jIChyZXEpID0+IHtcbi8vICAgICBhcGkucG9zdCgnLycsIHRoaXMubXVsdGVyLnNpbmdsZSgnZmlsZScpLCBhc3luYyAocmVxKSA9PiB7XG4vLyAgICAgICBjb25zdCB7IGZpbGUgfSA9IHJlcTtcbi8vICAgICAgIGlmICghZmlsZSkge1xuLy8gICAgICAgICB0aHJvdyAnIWZpbGUnO1xuLy8gICAgICAgfVxuLy8gICAgICAgcmV0dXJuIHByb2Nlc3NGaWxlKGZpbGUpO1xuLy8gICAgIH0pO1xuLy8gICAgIHJldHVybiBhcGk7XG4vLyAgIH1cblxuLy8gICBhc3luYyBydW4oKSB7XG4vLyAgICAgdGhpcy5hcHAuYXBwLnVzZSgnL2FwaS9tb2R1bGUvdXBsb2FkJywgdGhpcy5nZXRBcGkoKSk7XG4vLyAgIH1cbi8vIH1cbiJdfQ== //# sourceMappingURL=UploadApi.js.map