summaryrefslogtreecommitdiff
path: root/app/node_modules/okservices/oks3
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2021-02-23 18:08:38 +0100
committerJules Laplace <julescarbon@gmail.com>2021-02-23 18:08:38 +0100
commit19516de0a43ac5f2b0afc9891bbef09d229ce4e6 (patch)
tree224a5ecb4e3f6130c4a1c6b3b125421ee2d9a6a7 /app/node_modules/okservices/oks3
parent542ebb603ecd8a60fc1daf50404cbc24a92e1d74 (diff)
allow arbitrary file upload for pdf
Diffstat (limited to 'app/node_modules/okservices/oks3')
-rw-r--r--app/node_modules/okservices/oks3/index.js34
-rw-r--r--app/node_modules/okservices/oks3/package-lock.json274
-rw-r--r--app/node_modules/okservices/oks3/upload.js1
3 files changed, 308 insertions, 1 deletions
diff --git a/app/node_modules/okservices/oks3/index.js b/app/node_modules/okservices/oks3/index.js
index cc40b71..41ee3dc 100644
--- a/app/node_modules/okservices/oks3/index.js
+++ b/app/node_modules/okservices/oks3/index.js
@@ -16,6 +16,7 @@ function OKS3(options) {
if (!options.s3)
throw new Error('S3 configuration not provided to OKS3');
+ if (!options.s3.file) options.s3.file = {}
if (!options.s3.image) options.s3.image = {}
if (!options.s3.audio) options.s3.audio = {}
if (!options.s3.video) options.s3.video = {}
@@ -23,6 +24,8 @@ function OKS3(options) {
// Make sure maxbytes property is there - it can be a number,
// or zero/undefined (for no maximum upload size)
if (options.s3.maxbytes) {
+ if (! ('maxbytes' in options.s3.file))
+ options.s3.file.maxbytes = options.s3.maxbytes
if (! ('maxbytes' in options.s3.image))
options.s3.image.maxbytes = options.s3.maxbytes
if (! ('maxbytes' in options.s3.video))
@@ -30,6 +33,8 @@ function OKS3(options) {
if (! ('maxbytes' in options.s3.audio))
options.s3.audio.maxbytes = options.s3.maxbytes
}
+ if (typeof options.s3.file.allowed !== "boolean")
+ options.s3.file.allowed = true
if (typeof options.s3.image.allowed !== "boolean")
options.s3.image.allowed = true
if (typeof options.s3.video.allowed !== "boolean")
@@ -130,7 +135,34 @@ function OKS3(options) {
});
});
-
+
+
+ router.post('/file', mult.single('file'), function(req, res) {
+ d.run(function () {
+
+ if (! options.s3.image.allowed) {
+ return res.status(500).json({ error: "File uploading not permitted" })
+ }
+
+ upload.put({
+ file: req.file,
+ preserveFilename: options.s3.video.preserveFilename,
+ dirname: options.s3.dirname,
+ types: {
+ 'application/pdf': 'pdf',
+ 'text/plain': 'txt',
+ 'text/html': 'html',
+ },
+ unacceptable: function(err){
+ res.json({ error: err })
+ },
+ success: function(url){
+ res.json({ url: url })
+ }
+ })
+
+ });
+ });
function preserveFilename (stream, cb){
cb(null, stream.filename)
}
diff --git a/app/node_modules/okservices/oks3/package-lock.json b/app/node_modules/okservices/oks3/package-lock.json
new file mode 100644
index 0000000..f6774bc
--- /dev/null
+++ b/app/node_modules/okservices/oks3/package-lock.json
@@ -0,0 +1,274 @@
+{
+ "name": "oks3",
+ "version": "1.0.0",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "append-field": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/append-field/-/append-field-0.1.0.tgz",
+ "integrity": "sha1-bdxY+gg8e8VF08WZWygwzCNm1Eo="
+ },
+ "busboy": {
+ "version": "0.2.13",
+ "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.13.tgz",
+ "integrity": "sha1-kPxPajln2BVhb8l2v6jlau0MWLY=",
+ "requires": {
+ "dicer": "0.2.5",
+ "readable-stream": "1.1.x"
+ }
+ },
+ "core-util-is": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
+ },
+ "dicer": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz",
+ "integrity": "sha1-WZbAhrszIYyBLAkL3cCc0S+stw8=",
+ "requires": {
+ "readable-stream": "1.1.x",
+ "streamsearch": "0.1.2"
+ }
+ },
+ "ee-first": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
+ },
+ "inherits": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+ "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE="
+ },
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
+ },
+ "knox": {
+ "version": "0.9.2",
+ "resolved": "https://registry.npmjs.org/knox/-/knox-0.9.2.tgz",
+ "integrity": "sha1-NzZZNmniTwJP2vcjtqHcSv2DmnE=",
+ "requires": {
+ "debug": "^1.0.2",
+ "mime": "*",
+ "once": "^1.3.0",
+ "stream-counter": "^1.0.0",
+ "xml2js": "^0.4.4"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-1.0.4.tgz",
+ "integrity": "sha1-W5wla9VLbsAigxdvqKDt5tFUy/g=",
+ "requires": {
+ "ms": "0.6.2"
+ }
+ },
+ "ms": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-0.6.2.tgz",
+ "integrity": "sha1-2JwhJMb9wTU9Zai3e/GqxLGTcIw="
+ },
+ "sax": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz",
+ "integrity": "sha1-e45lYZCyKOgaZq6nSEgNgozS03o="
+ },
+ "stream-counter": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/stream-counter/-/stream-counter-1.0.0.tgz",
+ "integrity": "sha1-kc8lac5NxQYf6816yyY5SloRR1E="
+ },
+ "xml2js": {
+ "version": "0.4.17",
+ "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.17.tgz",
+ "integrity": "sha1-F76T6q4/O3eTWceVtBlwWogX6Gg=",
+ "requires": {
+ "sax": ">=0.6.0",
+ "xmlbuilder": "^4.1.0"
+ }
+ }
+ }
+ },
+ "media-typer": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
+ },
+ "mime": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz",
+ "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM="
+ },
+ "mime-db": {
+ "version": "1.22.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.22.0.tgz",
+ "integrity": "sha1-qyOmNy3J2G09yRIb0OvTgQWhkEo="
+ },
+ "mime-types": {
+ "version": "2.1.10",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.10.tgz",
+ "integrity": "sha1-uTx8tDYuFtQQcqflRTj7TUMHCDc=",
+ "requires": {
+ "mime-db": "~1.22.0"
+ }
+ },
+ "minimist": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
+ },
+ "multer": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/multer/-/multer-1.2.0.tgz",
+ "integrity": "sha1-W+GkUln7BNJ1PTPHwqHK9SJHBaI=",
+ "requires": {
+ "append-field": "^0.1.0",
+ "busboy": "^0.2.11",
+ "concat-stream": "^1.5.0",
+ "mkdirp": "^0.5.1",
+ "object-assign": "^3.0.0",
+ "on-finished": "^2.3.0",
+ "type-is": "^1.6.4",
+ "xtend": "^4.0.0"
+ },
+ "dependencies": {
+ "concat-stream": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.1.tgz",
+ "integrity": "sha1-87gKz54fSOOHXAaItBtsMWAu6hw=",
+ "requires": {
+ "inherits": "~2.0.1",
+ "readable-stream": "~2.0.0",
+ "typedarray": "~0.0.5"
+ }
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "requires": {
+ "minimist": "0.0.8"
+ }
+ },
+ "readable-stream": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz",
+ "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=",
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~1.0.6",
+ "string_decoder": "~0.10.x",
+ "util-deprecate": "~1.0.1"
+ }
+ }
+ }
+ },
+ "node-uuid": {
+ "version": "1.4.7",
+ "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz",
+ "integrity": "sha1-baWhdmjEs91ZYjvaEc9/pMH2Cm8="
+ },
+ "object-assign": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz",
+ "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I="
+ },
+ "on-finished": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
+ "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
+ "requires": {
+ "ee-first": "1.1.1"
+ }
+ },
+ "once": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz",
+ "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=",
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "process-nextick-args": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
+ "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M="
+ },
+ "readable-stream": {
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz",
+ "integrity": "sha1-9u73ZPUUyJ4rniMUanW6EGdW0j4=",
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ },
+ "streamsearch": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz",
+ "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo="
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
+ },
+ "type-is": {
+ "version": "1.6.12",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.12.tgz",
+ "integrity": "sha1-A1Kp37//BA/maMwVPMlYKcNUFz4=",
+ "requires": {
+ "media-typer": "0.3.0",
+ "mime-types": "~2.1.10"
+ }
+ },
+ "typedarray": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+ },
+ "xmlbuilder": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-4.2.1.tgz",
+ "integrity": "sha1-qlijBBoGb5DqoWwvU4n/GfP0YaU=",
+ "requires": {
+ "lodash": "^4.0.0"
+ },
+ "dependencies": {
+ "lodash": {
+ "version": "4.15.0",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.15.0.tgz",
+ "integrity": "sha1-MWI5HY8BQKoiz49rPDTWt/Y9Oqk="
+ }
+ }
+ },
+ "xtend": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
+ "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68="
+ }
+ }
+}
diff --git a/app/node_modules/okservices/oks3/upload.js b/app/node_modules/okservices/oks3/upload.js
index 3602cfc..681b14b 100644
--- a/app/node_modules/okservices/oks3/upload.js
+++ b/app/node_modules/okservices/oks3/upload.js
@@ -9,6 +9,7 @@ var acceptableuploadTypes = {
'image/jpeg': 'jpg',
'image/jpg': 'jpg',
'image/png': 'png',
+ 'application/pdf': 'pdf',
}
module.exports = {}