{"_id":"@agustriadji/upload-files","_rev":"37-5b4f21c34d02d5ce7a593f95f2798d3b","time":{"0.0.2":"2020-05-05T10:05:17.224Z","created":"2020-05-05T10:20:47.577Z","0.0.1":"2020-05-05T10:20:47.709Z","modified":"2022-04-04T12:08:55.634Z","0.0.3":"2020-06-16T09:07:28.952Z","0.0.4":"2020-08-12T07:29:05.962Z"},"name":"@agustriadji/upload-files","dist-tags":{"latest":"0.0.4"},"versions":{"0.0.1":{"name":"@agustriadji/upload-files","version":"0.0.1","description":"module upload file HRMS","main":"index.js","dependencies":{"axios":"^0.19.2","dotenv":"^8.2.0","eslint":"^6.8.0","form-data":"^3.0.0","multer":"^1.4.2"},"devDependencies":{"chai":"^4.2.0","chai-http":"^4.3.0","dotenv":"^8.2.0","eslint":"^6.8.0","eslint-config-airbnb-base":"^14.0.0","eslint-config-prettier":"^6.10.0","eslint-plugin-import":"^2.20.1","eslint-plugin-prettier":"^3.1.2","js-beautify":"^1.10.3","mkdirp":"^1.0.4","mocha":"^7.1.0","prettier":"1.19.1","standard-version":"^7.1.0"},"scripts":{"test":"node index.js","preinstall":"mkdir config","install":"cp lib/.env ../../../.env.example && cp -r lib/config ../../../config && mkdir tmp","dev":"npm i && index.js","lint":"eslint .","release":"standard-version","start":"node index.js","format":"npx prettier --write \"**/*.js\""},"repository":{"type":"git","url":"git+https://github.com/agustriadji/moduleUploadHRMS.git"},"author":{"name":"agustriadji"},"license":"ISC","bugs":{"url":"https://github.com/agustriadji/moduleUploadHRMS/issues"},"homepage":"https://github.com/agustriadji/moduleUploadHRMS/blob/master/README.md","keywords":["hrms","upload","hrms"],"directories":{"lib":"lib"},"gitHead":"271abd61a1bdcf5fea3ff2650274d3fc080d6b44","_id":"@agustriadji/upload-files@0.0.1","_nodeVersion":"12.16.1","_npmVersion":"6.14.4","dist":{"integrity":"sha512-UjuFEttDFCwvdYxHLqQz4IlLZBHMQ5YIZJJdqkiCMNJOwMaAJzdP06tVZJZEjhUvo72tdAS3yiOSKaKek8KIEg==","shasum":"efd32c1db51995359bf6e403fefb20f0f8a5f015","tarball":"https://registry.npmjs.org/@agustriadji/upload-files/-/upload-files-0.0.1.tgz","fileCount":8,"unpackedSize":20189,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJesT4ACRA9TVsSAnZWagAA8jsP/0P3Z5Vensgpe6HgUUc4\nNJH+cReSpbdpDpbuH3nj704FpmYm8EggpAsA4CtYRH6Wcbdol29qrc4lgrd+\nAL4IR2qs9pPL+YHjHT5osGoxvc+bBEhAGS41V0WF659ZFidNdBPV9s86bDrr\neNA0Jer3qN8/hq3PBBAiWmCyi+5T4f9rLgtiSN79BXPqDvqozXenHv5CUEQY\nNy1KwAKfFl5y2E9XU/h9xw8psHn3KtNR7mgS0knoYZq6AbW5tP7QkRv3AK8+\nj9qqJWA9/l5wLiKwhdVK407m36LEtJwpBQl9Z8/v8KuAkLWh9DTJFf1ki0Mr\ngVcxdyMFxAwhAHvOGv/Xgj2eRSbp3z54weWd+s4DU1UfL34gHNK11IyTTkfQ\n7qWX4M+fiyqE/S0guymHjxaT+xfLuRyiXd4XJjQLO+bK6HPefMun3Rw6LgXX\nAIcqrIlcSOm9c0GpAzpVnb5zPBOhuwJlqM4SWOot/1HQ2KMBZIgMoo7j9UjI\nmb3mJhXpr+a+zRHyThJo+9dDzlaN7kPTkkpzSN/BNP+otqp3cV0/47DKwJvI\nP+cVFG6+JtDwAel8SHgu1LzotIUW0+k3HCDJGNrXobS7zD/1kL38rjLbdGKh\nxbY0lk/TIGZH6F9Kvn3gGkack9RJqeAjrp5vEK6CQfo/+/YA6EjR+0bSCXIV\n1Zvg\r\n=Z/45\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDjo4+54uddorsLcSOBB1Bcevq8FS6GgJNWYdxqFfXB9QIhAJoC94TaElse3Qd6m4zpJwBQ+oLbKKbJqjuKRtQ4bSRa"}]},"maintainers":[{"name":"agustriadji","email":"agus.triadji@gmail.com"}],"_npmUser":{"name":"agustriadji","email":"agus.triadji@gmail.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/upload-files_0.0.1_1588674047611_0.3331221476534938"},"_hasShrinkwrap":false},"0.0.3":{"name":"@agustriadji/upload-files","version":"0.0.3","description":"module upload file HRMS","main":"index.js","dependencies":{"axios":"^0.19.2","dotenv":"^8.2.0","eslint":"^6.8.0","form-data":"^3.0.0","multer":"^1.4.2"},"devDependencies":{"chai":"^4.2.0","chai-http":"^4.3.0","dotenv":"^8.2.0","eslint":"^6.8.0","eslint-config-airbnb-base":"^14.0.0","eslint-config-prettier":"^6.10.0","eslint-plugin-import":"^2.20.1","eslint-plugin-prettier":"^3.1.2","js-beautify":"^1.10.3","mkdirp":"^1.0.4","mocha":"^7.1.0","prettier":"1.19.1","standard-version":"^7.1.0"},"scripts":{"test":"node index.js","preinstall":"mkdir config","install":"cp lib/.env ../../../.env.example && cp -r lib/config ../../../config && mkdir ../../../tmp","dev":"npm i && index.js","lint":"eslint .","release":"standard-version","start":"node index.js","format":"npx prettier --write \"**/*.js\""},"repository":{"type":"git","url":"git+https://github.com/agustriadji/moduleUploadHRMS.git"},"author":{"name":"agustriadji"},"license":"ISC","bugs":{"url":"https://github.com/agustriadji/moduleUploadHRMS/issues"},"homepage":"https://github.com/agustriadji/moduleUploadHRMS/blob/master/README.md","keywords":["hrms","upload","hrms"],"directories":{"lib":"lib"},"gitHead":"02f7ab5eacfd65a3e883b110827dabd1db3e9225","_id":"@agustriadji/upload-files@0.0.3","_nodeVersion":"12.16.1","_npmVersion":"6.14.4","dist":{"integrity":"sha512-WkLwEZWF54TPxmMLQdbK2qgoWGiq/x5e2UMmknhX4LayVuNkx0QQDb3KToGltNE140TULmRNTfOJBFYOAbCJGg==","shasum":"8c25a3bdf236960d844121d28466bcfe9f939cfb","tarball":"https://registry.npmjs.org/@agustriadji/upload-files/-/upload-files-0.0.3.tgz","fileCount":8,"unpackedSize":21124,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe6IvRCRA9TVsSAnZWagAArskQAIZNdmUaPmAQ11I7zbTH\nuUaO3cKQOeL3/9fWkkdy7oCiKRFs3g6JuLP7ChyTP3zRGFZojMw5sHaNjm5y\n0LDYiHQQ+LFwv2ES+DIILQ3SXJfWphPDykI43/IPoxS3ofl2R9JsSrtLC8b3\n0rT5Qrzljn+iv3glIaRZTn5nju77zD63aosl5y04hf+bPSDeS8czle7NoJTU\noC3UHYWCU2mmFB7bNFCZpf2nZQiMiy/cGOC82rXxIdAjER8nHJhpKw4Ai2Uc\nboNDb/hHxIZNrGVCgcqarGVX53YGODDFeHSVYXiSpf8RrjKBNs5hHtq8PGyJ\nltq5bbaikVjmKkuKc96zHVZHitaBkIdggLGU+3/RAX6Z5iK3tdP+a1RZyoZZ\nlkc2Bh92vKS6hqKySTkRRjnYw0mo0Ou7ysTCMipivkBcZ3Fay+8LBUy75PIt\n4U4aIrUVqdGMPxAHhL/NRvaCNMpjkuqj8K4k/CdBHXqKorVgGwBXCj+jjnOG\nLG3Mkj6fwluMgnGWKBGXyfy32RweEPuXsPB+8lwvIThfjFyK5wL0SG94YXAM\n7HuKrn++WNqVnE0ZBay0oqSuAz4GB+wnWm820RbpnnnKJiJaZzYKE3MfCIkV\nttqbsRjStV71izdu0Zi4qcvKjPIriC98vNo8YFtP2pMqfsIP/PrssQy6iUsH\nN7VM\r\n=t+N+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDvYHMAb0C0g38lyOwrDZKrFxOUIjZIt3QXX2SlEYIcOAiEAow4qzQNRfDUTqFdDtxDUyNUTWn7/zk1CknEosWnKkOg="}]},"maintainers":[{"name":"agustriadji","email":"agus.triadji@gmail.com"}],"_npmUser":{"name":"agustriadji","email":"agus.triadji@gmail.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/upload-files_0.0.3_1592298448841_0.9941030912684039"},"_hasShrinkwrap":false},"0.0.4":{"name":"@agustriadji/upload-files","version":"0.0.4","description":"module upload file HRMS","main":"index.js","dependencies":{"axios":"^0.19.2","dotenv":"^8.2.0","eslint":"^6.8.0","form-data":"^3.0.0","multer":"^1.4.2"},"devDependencies":{"chai":"^4.2.0","chai-http":"^4.3.0","dotenv":"^8.2.0","eslint":"^6.8.0","eslint-config-airbnb-base":"^14.0.0","eslint-config-prettier":"^6.10.0","eslint-plugin-import":"^2.20.1","eslint-plugin-prettier":"^3.1.2","js-beautify":"^1.10.3","mkdirp":"^1.0.4","mocha":"^7.1.0","prettier":"1.19.1","standard-version":"^7.1.0"},"scripts":{"test":"node index.js","preinstall":"mkdir config","install":"cp lib/.env ../../../.env.example && cp -r lib/config ../../../config","dev":"npm i && index.js","lint":"eslint .","release":"standard-version","start":"node index.js","format":"npx prettier --write \"**/*.js\""},"repository":{"type":"git","url":"git+https://github.com/agustriadji/moduleUploadHRMS.git"},"author":{"name":"agustriadji"},"license":"ISC","bugs":{"url":"https://github.com/agustriadji/moduleUploadHRMS/issues"},"homepage":"https://github.com/agustriadji/moduleUploadHRMS/blob/master/README.md","keywords":["hrms","upload","hrms"],"directories":{"lib":"lib"},"gitHead":"d6f075aca933f729a0184826e62dcbc233e6fae7","_id":"@agustriadji/upload-files@0.0.4","_nodeVersion":"12.16.1","_npmVersion":"6.14.4","dist":{"integrity":"sha512-5se2CUA76zZJxuEZnzu12a9DaCNoX+DPZCUqYG9qLn8dHS73VgdHTGWq9UPriCk6zApR2x/sjCrd7LtJftzDxQ==","shasum":"bde2ce3cf44fe9d184bc1b4f16a32e52ff6bc4bf","tarball":"https://registry.npmjs.org/@agustriadji/upload-files/-/upload-files-0.0.4.tgz","fileCount":8,"unpackedSize":21102,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfM5pCCRA9TVsSAnZWagAAauIP/i9PMGYDUK9OUPqsUvyr\n6bU3MBi0dNrnjde0WD/umxxwl/qtFwr4HFDVYnmVQjDFkcK/HOV25865FOdj\nHv7AQ91OBjAEMHB/Ldk4K+I6wplD9eVEJJuhz7BDbSnqp/iARWe5gOX62kol\nExEvXNK6TVNfUYH5crQr+FOquDCsxWY55xwWjXexJBEeXfa+rYHarWtKIJNM\nr9QWMtbF+2QFQtVo9xObBGHmF3qIvXoM36Ro8/nFSU7vvwPpDxmsIqUJHGfV\n3yTw/O7PDpdeGcYYllMj0z3SXrvhJMtNdbCQewzC4Da1Eg1/ctNU+mZRIg6i\nxcxXATUP9Fm8xH6umB/PyxIozmz3JP1Zg/3tQENLClvBjFaZO3HwvXmoEj1S\nMQLSkgNmaNlIK3xJ7015UnkVUdA6+Py+n2oakyODF1NGMi8d1t1XVlHaG8tM\nSGCqEhFhNiKKi4nuQ9zHxtRJEmBxUUDaSFgZYVbjgsoFH7+52B2ZqlXBxoOM\nYpUMRqs+ENjcykYX0iWz9qKWB+BuJAK8nY01Xz8mrw5FS3tFgFOtnq9+BDnj\nGUwC/bkWu+Cexxju8wnCD8h53Yr171BWFYjNEGEvThvkOMcZ4ESAZGsBItbu\nAbcKtu4CgABabhQ3JGZp1w2W1QzQefYtyT3wbb/184k4FKz9/8xj0sbY8TpR\n0CNn\r\n=RT2z\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHfdsZcHvXbmZWipNagpOjRc9d0Hwh1EBsDJlVvA291rAiAuVkLXAWGUPLZNFZKC1UDPu4XBkvJw2fH4cdsqiPYfEA=="}]},"maintainers":[{"name":"agustriadji","email":"agus.triadji@gmail.com"}],"_npmUser":{"name":"agustriadji","email":"agus.triadji@gmail.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/upload-files_0.0.4_1597217345845_0.06037315177167146"},"_hasShrinkwrap":false}},"maintainers":[{"name":"agustriadji","email":"agus.triadji@gmail.com"}],"description":"module upload file HRMS","homepage":"https://github.com/agustriadji/moduleUploadHRMS/blob/master/README.md","keywords":["hrms","upload","hrms"],"repository":{"type":"git","url":"git+https://github.com/agustriadji/moduleUploadHRMS.git"},"author":{"name":"agustriadji"},"bugs":{"url":"https://github.com/agustriadji/moduleUploadHRMS/issues"},"license":"ISC","readme":"# NOTED\r\n\r\n- `npm install @agustriadji/upload-files --save`\r\n- setting file *.env* , *config/upload.js* dan *app/middleware/upload.js*.\r\n\r\n# Config File Uplaod\r\n\r\n1.  .env\r\n    \r\n    FILE_MANAGER_URL dan FILE_MANAGER_PORT : atur url dan port untuk dihubungkan pada service file-manager pada server 12.\r\n\r\n2.  .config/upload.js\r\n    \r\n    Disini mengatur filter file seperti :\r\n    -   **urlStore**    : API Address untuk request upload.\r\n    -   **urlGet**      : API Address untuk request view file / download file.\r\n    -   **fileSize**    : Nilai Maksimum dari filesize yang diperbolehkan, satuan (byte).\r\n    -   **prefixFile**  : Nama prefix file.\r\n    -   **filePath**    : Pengaturan path upload yang akan disimpan pada servis file-manager.\r\n    -   **fileExt**     : Filter extension yang diperbolehkan.\r\n    -   **limits**      : Pengaturan pembatasan request terkait attack ddos.\r\n    -   **fileTmp**     : Pengaturan path temporary yang akan dipakai sementara.\r\n    -   **error**       : Pengaturan pesan gagal untuk middleware upload.\r\n\r\n# Setup Middleware Upload\r\n\r\n-   Buat file upload.js pada dir *app/middleware/upload.js*\r\n\r\n    ```const libUpload = require('@agustriadji/upload-files');\r\n    module.exports = {\r\n        files_upload: libUpload.files_upload,\r\n        multer_err: libUpload.multer_err,\r\n        sendToFileManager: libUpload.sendToFileManager,\r\n        getFileManager: libUpload.getFileManager,\r\n    };```\r\n\r\n-   Buat file *app/middleware/index.js* untuk daftarkan file upload.js\r\n    \r\n    ```\r\n    module.exports = {\r\n        upload: require('./upload'),\r\n    };\r\n    ```\r\n\r\n# Setup Middleware Upload Pada RoutesAPI\r\n\r\n```\r\nconst middle = require('../../middleware');\r\nconst middleUpload = middle.upload;\r\n```\r\n\r\nfieldname 'file' yang digunakan untuk mengirim file upload.\r\n\r\n```\r\nconst upload = middleUpload.files_upload.single('file');\r\napp.route(YOUR_API)\r\n.post(middle.permission, (req, res) => {\r\n    upload(req, res, (err) => {\r\n        if (err instanceof middleUpload.multer_err) { // Handle Unknown Error\r\n            const msg = {\r\n                header: {\r\n                    message: err.message,\r\n                    status: 500,\r\n                },\r\n                data: { code: err.code },\r\n            };\r\n            return res.status(500).json(msg);\r\n        }\r\n        if (err) { return res.status(500).json(err); }\r\n        controller.create(req, (result) => {\r\n            result.header.access = req.param.access.data.access;\r\n            res.status(result.header.status).json(result);\r\n        });\r\n    });\r\n});\r\n```\r\n\r\n# Setup SendToFileManager untuk handle upload, replace , delete Pada Controller\r\n\r\n```\r\nconst { sendToFileManager } = require('@agustriadji/upload-files');\r\nsendToFileManager(data, (err, value) => {\r\n    if (err) return next(true, value);\r\n    return next(null, data);\r\n});\r\n```\r\n\r\nsendToFileManager memiliki 2 param :\r\n-   param pertama type object dengan attribute name\r\n    \r\n    `{ filename: String, path: String, action:String }`.\r\n\r\n-   param kedua berupa callback(error, result)\r\n    \r\n    error type String dan result type Object.\r\n\r\n**Penggunaan sendToFileManager**\r\n\r\n-   **UPLOAD**\r\n    \r\n    param pertama = `{ filename: String, path: String, action:String }`.\r\n\r\n-   **REPLACE**\r\n    \r\n    param pertama = `{ currentFilename: String, filename: String, path: String, action:'replace' }`,\r\n    \r\n    **currentFilename** = filename yang disimpan pada DB, \r\n    tujuannya tidak merubah nama file hanya merubah data file dengan ext yang sama.\r\n    \r\n    **filename** = filename yang diterima oleh request client.\r\n    \r\n    **path** = nilai yang di ambil dari *config/upload.js* **(filePath)**\r\n\r\n-   **DELETE**\r\n    \r\n    param pertama = `{ filename: String, path: String, action:'delete' }`,\r\n    \r\n    **filename** = filename yang telah diambil dari DB.\r\n    \r\n    **path** = nilai yang di ambil dari *config/upload.js* **(filePath)**\r\n\r\n# Setup getFileManager untuk download pada Controller\r\n\r\n```\r\ngetFileManager(data, (value) => {\r\n    if (value.status !== 200)\r\n        return next(buildRes.error.data_notFound, null);\r\n    const paths = './tmp/${data.filename}';\r\n    return next(null, paths);\r\n});\r\n```\r\n\r\ngetFileManager memiliki 2 param :\r\n-   param pertama type object dengan attribute name\r\n    \r\n    `{ filename: String, path: String}`.\r\n\r\n-   param kedua berupa callback(error, result)\r\n    \r\n    error type Object dan result type Object.\r\n\r\n**Penggunaan getFileManager**\r\n\r\n-   **DOWNLOAD**\r\n\r\n    param pertama = `{ filename: String, path: String }`,\r\n    \r\n    **filename** = data filename yang telah diambil dari DB.\r\n    \r\n    **path** = data path yang telah diambil dari DB.\r\n\r\n-   **VIEW**\r\n\r\n    param pertama = `{ filename: String, path: String }`,\r\n    \r\n    **filename** = data filename yang telah diambil dari DB.\r\n    \r\n    **path** = data path yang telah diambil dari DB.\r\n","readmeFilename":"README.md"}