diff options
| -rw-r--r-- | .gitignore | 2 | ||||
| -rw-r--r-- | index.ts | 1 | ||||
| -rw-r--r-- | package.json | 2 | ||||
| -rw-r--r-- | src/services/index.ts | 2 | ||||
| -rw-r--r-- | src/services/uploads.service.ts | 13 | ||||
| -rw-r--r-- | src/types.ts | 3 | ||||
| -rw-r--r-- | yarn.lock | 101 | 
7 files changed, 116 insertions, 8 deletions
| @@ -1,4 +1,6 @@  /node_modules  /.idea  /tmp +/uploads  .env +yarn-error.log @@ -1,5 +1,6 @@  import mongoose from 'mongoose';  import Promise from 'bluebird'; +import './src/types';  import app from './src/app';  mongoose.Promise = Promise; diff --git a/package.json b/package.json index a6f7b90..5701420 100644 --- a/package.json +++ b/package.json @@ -20,8 +20,10 @@      "@types/mongoose": "^5.10.3",      "bluebird": "^3.7.2",      "cors": "^2.8.5", +    "feathers-blob": "^2.3.0",      "feathers-hooks-common": "^5.0.5",      "feathers-mongoose": "^8.3.1", +    "fs-blob-store": "^6.0.0",      "moment": "^2.29.1",      "mongoose": "^5.12.0",      "ts-node": "^9.1.1", diff --git a/src/services/index.ts b/src/services/index.ts index 5ecbc15..2c3430c 100644 --- a/src/services/index.ts +++ b/src/services/index.ts @@ -4,6 +4,7 @@ import Contractors from './contractors.service';  import Waybills from './waybills.service';  import Tranfers from './transfers.service';  import Spreadsheets from './spreadsheets.service'; +import Uploads from './uploads.service';  export default (app: Application): void => {    app.configure(Products); @@ -11,6 +12,7 @@ export default (app: Application): void => {    app.configure(Waybills);    app.configure(Tranfers);    app.configure(Spreadsheets); +  app.configure(Uploads);    app.get('/ping', (req, res) => res.send('pong'));  }; diff --git a/src/services/uploads.service.ts b/src/services/uploads.service.ts new file mode 100644 index 0000000..520079f --- /dev/null +++ b/src/services/uploads.service.ts @@ -0,0 +1,13 @@ +import { Application } from '@feathersjs/express'; +import blobService from 'feathers-blob'; +import fs from 'fs-blob-store'; +import Bluebird from 'bluebird'; +import _ from 'lodash'; + +const blobStorage = fs('./uploads'); + +const uploads = blobService({ Model: blobStorage }); + +export default (app: Application): void => { +  app.use('/uploads', uploads) +}; diff --git a/src/types.ts b/src/types.ts new file mode 100644 index 0000000..745d7f2 --- /dev/null +++ b/src/types.ts @@ -0,0 +1,3 @@ +declare module 'fs-blob-store'; +declare module 'feathers-blob'; + @@ -46,7 +46,7 @@    resolved "https://registry.yarnpkg.com/@feathersjs/commons/-/commons-4.5.11.tgz#4c9d04e6996b823981b714312f7915c4469f0ffd"    integrity sha512-it/9lc0OER36+2zidopWo6Z4xRqNImQ+qegyQdHEuIDpEsYLXAv6MVHuDccaW2x2UmW5pce75UB7DhQ8yh8J/Q== -"@feathersjs/errors@^4.4.3", "@feathersjs/errors@^4.5.11": +"@feathersjs/errors@^4.3.0", "@feathersjs/errors@^4.4.3", "@feathersjs/errors@^4.5.11":    version "4.5.11"    resolved "https://registry.yarnpkg.com/@feathersjs/errors/-/errors-4.5.11.tgz#419b4dd9b557fe7a87978363175cbd5e06f8b3b9"    integrity sha512-KzkUqmaV7/SGK6SM/ILXjMI/EHOGKQE4GgDHCsB4+mcIwb8IZboeHL6IkYjh6MvwjKNDyS728McZvcflDGn/fA== @@ -491,6 +491,16 @@ concat-map@0.0.1:    resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"    integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= +concat-stream@^2.0.0: +  version "2.0.0" +  resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-2.0.0.tgz#414cf5af790a48c60ab9be4527d56d5e41133cb1" +  integrity sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A== +  dependencies: +    buffer-from "^1.0.0" +    inherits "^2.0.3" +    readable-stream "^3.0.2" +    typedarray "^0.0.6" +  content-disposition@0.5.3:    version "0.5.3"    resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" @@ -552,6 +562,13 @@ create-require@^1.1.0:    resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333"    integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== +dauria@^2.0.0: +  version "2.0.0" +  resolved "https://registry.yarnpkg.com/dauria/-/dauria-2.0.0.tgz#cf53b1a5c548b95e73810e8a25d7c12e80767234" +  integrity sha512-op2q+AZnMW/PFyggVWNLKzDkv+5tUiWbbkXWauwrbmp9jIGXVPtVen6w4jPhM1LmN3R/dvqHkrLhzO3SRH0uHg== +  dependencies: +    iconv-lite "~0.4.13" +  dayjs@^1.8.34:    version "1.10.4"    resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.10.4.tgz#8e544a9b8683f61783f570980a8a80eaf54ab1e2" @@ -571,7 +588,7 @@ debug@3.1.0, debug@~3.1.0:    dependencies:      ms "2.0.0" -debug@^4.3.1: +debug@^4.0.0, debug@^4.3.1:    version "4.3.1"    resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee"    integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== @@ -612,6 +629,16 @@ duplexer2@~0.1.4:    dependencies:      readable-stream "^2.0.2" +duplexify@^4.1.1: +  version "4.1.1" +  resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-4.1.1.tgz#7027dc374f157b122a8ae08c2d3ea4d2d953aa61" +  integrity sha512-DY3xVEmVHTv1wSzKNbwoU6nVjzI369Y6sPoqfYr0/xlx3IdX2n94xIszTcjPO8W8ZIv0Wb0PXNcjuZyT4wiICA== +  dependencies: +    end-of-stream "^1.4.1" +    inherits "^2.0.3" +    readable-stream "^3.1.1" +    stream-shift "^1.0.0" +  ee-first@1.1.1:    version "1.1.1"    resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" @@ -622,7 +649,7 @@ encodeurl@~1.0.2:    resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"    integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= -end-of-stream@^1.4.1: +end-of-stream@^1.4.1, end-of-stream@^1.4.4:    version "1.4.4"    resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"    integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== @@ -758,6 +785,19 @@ fast-json-stable-stringify@^2.0.0:    resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"    integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== +feathers-blob@^2.3.0: +  version "2.3.0" +  resolved "https://registry.yarnpkg.com/feathers-blob/-/feathers-blob-2.3.0.tgz#def16d02dd2be9fa62256b335e93140d468e154a" +  integrity sha512-KlQ65FMIAlYfxuE8XSAEqM5isdr7V7AKWM+Kp3HHdAkRvVpvjSDDDE7twKiy/PfYuBewdDINMto5LQ91/XPu5Q== +  dependencies: +    "@feathersjs/errors" "^4.3.0" +    concat-stream "^2.0.0" +    dauria "^2.0.0" +    debug "^4.0.0" +    from2 "^2.1.1" +    mime-types "^2.1.10" +    uberproto "^2.0.0" +  feathers-hooks-common@^5.0.5:    version "5.0.5"    resolved "https://registry.yarnpkg.com/feathers-hooks-common/-/feathers-hooks-common-5.0.5.tgz#27f18b5aeccab62c42af78928a1eb168f1cfab35" @@ -806,6 +846,24 @@ fresh@0.5.2:    resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"    integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= +from2@^2.1.1: +  version "2.3.0" +  resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" +  integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= +  dependencies: +    inherits "^2.0.1" +    readable-stream "^2.0.0" + +fs-blob-store@^6.0.0: +  version "6.0.0" +  resolved "https://registry.yarnpkg.com/fs-blob-store/-/fs-blob-store-6.0.0.tgz#30b467f6f26d2a1d68720a9cede224605972ff14" +  integrity sha512-oMdboCaw6kTRXi5lKfjpw7DO7maC+gwFmaef3DsYQTYHtOoTmCo13ZGH1GoqFaD81RW5qbaT9YKlP+OA4dzbdA== +  dependencies: +    duplexify "^4.1.1" +    end-of-stream "^1.4.4" +    lru-cache "^6.0.0" +    mkdirp-classic "^0.5.3" +  fs-constants@^1.0.0:    version "1.0.0"    resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" @@ -882,7 +940,7 @@ http-errors@~1.7.2:      statuses ">= 1.5.0 < 2"      toidentifier "1.0.0" -iconv-lite@0.4.24: +iconv-lite@0.4.24, iconv-lite@~0.4.13:    version "0.4.24"    resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"    integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== @@ -912,7 +970,7 @@ inflight@^1.0.4:      once "^1.3.0"      wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.0, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.0, inherits@~2.0.3:    version "2.0.4"    resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"    integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -1046,6 +1104,13 @@ lodash@^4.17.20:    resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"    integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== +lru-cache@^6.0.0: +  version "6.0.0" +  resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" +  integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== +  dependencies: +    yallist "^4.0.0" +  make-error@^1.1.1:    version "1.3.6"    resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" @@ -1076,7 +1141,7 @@ mime-db@1.46.0:    resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.46.0.tgz#6267748a7f799594de3cbc8cde91def349661cee"    integrity sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ== -mime-types@~2.1.24: +mime-types@^2.1.10, mime-types@~2.1.24:    version "2.1.29"    resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.29.tgz#1d4ab77da64b91f5f72489df29236563754bb1b2"    integrity sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ== @@ -1100,6 +1165,11 @@ minimist@^1.2.5:    resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"    integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== +mkdirp-classic@^0.5.3: +  version "0.5.3" +  resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" +  integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== +  "mkdirp@>=0.5 0":    version "0.5.5"    resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" @@ -1309,7 +1379,7 @@ readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.0.5, readable      string_decoder "~1.1.1"      util-deprecate "~1.0.1" -readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: +readable-stream@^3.0.2, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0:    version "3.6.0"    resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"    integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== @@ -1522,6 +1592,11 @@ sparse-bitfield@^3.0.3:    resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"    integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= +stream-shift@^1.0.0: +  version "1.0.1" +  resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" +  integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== +  string_decoder@^1.1.1:    version "1.3.0"    resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" @@ -1594,12 +1669,17 @@ type-is@~1.6.17, type-is@~1.6.18:      media-typer "0.3.0"      mime-types "~2.1.24" +typedarray@^0.0.6: +  version "0.0.6" +  resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" +  integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= +  typescript@^4.2.3:    version "4.2.3"    resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.2.3.tgz#39062d8019912d43726298f09493d598048c1ce3"    integrity sha512-qOcYwxaByStAWrBf4x0fibwZvMRG+r4cQoTjbPtUlrWjBHbmCAww1i448U0GJ+3cNNEtebDteo/cHOR3xJ4wEw== -uberproto@^2.0.6: +uberproto@^2.0.0, uberproto@^2.0.6:    version "2.0.6"    resolved "https://registry.yarnpkg.com/uberproto/-/uberproto-2.0.6.tgz#709274d183bce6fb734dfd3880d2086ed72b69e5"    integrity sha512-68H97HffZoFaa3HFtpstahWorN9dSp5uTU6jo3GjIQ6JkJBR3hC2Nx/e/HFOoYHdUyT/Z1MRWfxN1EiQJZUyCQ== @@ -1672,6 +1752,11 @@ xmlhttprequest-ssl@~1.5.4:    resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e"    integrity sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4= +yallist@^4.0.0: +  version "4.0.0" +  resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" +  integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== +  yeast@0.1.2:    version "0.1.2"    resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" | 
