{"_id":"@dynalon/tus-js-client","_rev":"8-56865c7cedd8af240ec26497baa54fa6","name":"@dynalon/tus-js-client","dist-tags":{"latest":"1.8.7"},"versions":{"1.8.0":{"name":"@dynalon/tus-js-client","version":"1.8.0","description":"A pure JavaScript client for the tus resumable upload protocol","main":"lib.es5/index.js","jsnext:main":"lib/index.js","browser":{"./lib/node/request.js":"./lib/browser/request.js","./lib/node/base64.js":"./lib/browser/base64.js","./lib/node/storage.js":"./lib/browser/storage.js","./lib/node/source.js":"./lib/browser/source.js","./lib/node/fingerprint.js":"./lib/browser/fingerprint.js","./lib.es5/node/request.js":"./lib.es5/browser/request.js","./lib.es5/node/storage.js":"./lib.es5/browser/storage.js","./lib.es5/node/source.js":"./lib.es5/browser/source.js","./lib.es5/node/fingerprint.js":"./lib.es5/browser/fingerprint.js"},"repository":{"type":"git","url":"git+https://github.com/Dynalon/tus-js-client.git"},"keywords":["tus","resumable","upload","protocol","progress","file","browser"],"license":"MIT","bugs":{"url":"https://github.com/tus/tus-js-client/issues"},"homepage":"https://github.com/tus/tus-js-client","devDependencies":{"axios":"^0.18.0","babel-cli":"^6.26.0","babel-preset-es2015":"^6.24.1","babelify":"^7.3.0","browserify":"^12.0.0","browserstack":"^1.5.2","browserstack-runner":"git://github.com/Acconut/browserstack-runner.git#fix_etxtbsy","derequire":"^2.0.6","eslint":"^4.19.1","eslint-plugin-react":"^7.11.1","exorcist":"^0.4.0","jasmine":"^2.5.2","jasmine-ajax":"^3.2.0","jasmine-core":"^2.4.1","puppeteer":"^1.19.0","synchronous-promise":"^2.0.5","temp":"^0.8.3","uglify-js":"^2.6.0","watchify":"^3.11.1"},"dependencies":{"buffer-from":"^0.1.1","combine-errors":"^3.0.3","extend":"^3.0.2","js-base64":"^2.4.9","lodash.throttle":"^4.1.1","proper-lockfile":"^2.0.1","spark-md5":"^3.0.0","url-parse":"^1.4.3"},"scripts":{"build":"mkdir -p dist && browserify lib/index.js -t [ babelify ] -s tus -d | exorcist ./dist/tus.js.map | derequire > dist/tus.js","watch":"watchify lib/index.js -t babelify -o dist/tus.js -s tus -v -d","test":"./bin/test","puppeteer-test":"node bin/puppeteer-jasmine.js","browserstack-test":"node bin/browserstack-jasmine.js","node-test":"cd test; jasmine","minify":"uglifyjs ./dist/tus.js -o ./dist/tus.min.js --in-source-map ./dist/tus.js.map --source-map ./dist/tus.min.js.map --source-map-url tus.min.js.map","dist":"npm run build && npm run minify","lint":"eslint lib demos test bin","transpile":"babel -d lib.es5/ lib/","yalc":"npm run build && npm run transpile && yalc publish"},"gitHead":"6a4bec291b79ae902ae068cebe37829459c547c7","_id":"@dynalon/tus-js-client@1.8.0","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-cB4IZPpH3diNiVdGA8Yqk9Qi+4PXtYTmS1h8na+OLI9WbK+5HQztPMu/BQ/rqmaThSJ0XprBRc1yFn/DLkUSgQ==","shasum":"0566656fa07eafeefdcccc8ff6a64554f4959080","tarball":"https://registry.npmjs.org/@dynalon/tus-js-client/-/tus-js-client-1.8.0.tgz","fileCount":129,"unpackedSize":11723317,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd4P5PCRA9TVsSAnZWagAAYqgP/27r5dcbBUipH7/M9rmt\nkPwcxowsylH+bOrv767uYlcZgenRg/8xLexaFln6sN5ucGNITZPpmkmmVix5\nKGcSVntlDqvH+OaHrrqMmqiCGldFHCB3JpkOwTxejUOHjbYyThAX3uOTGt9o\ngOlw58G4QmhlRssBKrsWucuWuzfznz1exqI+v8sbPbOlwObbPACef2BvDc5J\no+3zjAszMTtiQkJpyHKiGT0NcEicUfKxChKybsReZxpH9k4QthDw1sc7nUGv\nELPBVydrI6rmUg4KKVYOeHqA5HBJLrwJqC0jfGLGfEk9ex7a7mzXi/k6JFa0\njRkqPht0ufnuD1xSOd/vH7wDdijXid8bzA5tTL9AY8j8Ae9HIpLBKMKys076\nI6Iip/5Fg6+lW51M1rFlC1PQ0IOMsVQwYVQ9jZSU3DVAm5YpwTJqYL5HeKla\n+SFqYbHwcUqIbz553A8h4FYVLIR//yfec9Ihm8CisCnTfqK5VSnD8fQBQjxp\nW0byYANZATX6vYcrV/HWM6iKq8mqiqWWwTM17FbPfGptZp6P6PorTEVSMz60\n01D+UJaI7Z6smrrqZ+P08Afh/gzIUkgwt0/OlgjO1S8LGWJCwU72SXz2/pOG\nwGQiQSO+Nh16r/muOKKBNfc9t8MF4aRA6RVlaiV0g3mO7Sb7G3A3YRI0rYNl\nKGy4\r\n=yg2D\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH01DHlO2Dh9mjOzPKsg67YMkU/mRVXVBI72+HoQ4BgpAiEAkaXWgmIjDkJN+80QCWEBvykVGCcvg39/TP/mF7emXL0="}]},"maintainers":[{"name":"dynalon","email":"timo@latecrew.de"}],"_npmUser":{"name":"dynalon","email":"timo@latecrew.de"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tus-js-client_1.8.0_1575026254620_0.5294438542852198"},"_hasShrinkwrap":false},"1.8.1":{"name":"@dynalon/tus-js-client","version":"1.8.1","description":"A pure JavaScript client for the tus resumable upload protocol","main":"lib.es5/index.js","jsnext:main":"lib/index.js","types":"lib/index.d.ts","browser":{"./lib/node/request.js":"./lib/browser/request.js","./lib/node/base64.js":"./lib/browser/base64.js","./lib/node/storage.js":"./lib/browser/storage.js","./lib/node/source.js":"./lib/browser/source.js","./lib/node/fingerprint.js":"./lib/browser/fingerprint.js","./lib.es5/node/request.js":"./lib.es5/browser/request.js","./lib.es5/node/storage.js":"./lib.es5/browser/storage.js","./lib.es5/node/source.js":"./lib.es5/browser/source.js","./lib.es5/node/fingerprint.js":"./lib.es5/browser/fingerprint.js"},"repository":{"type":"git","url":"git+https://github.com/Dynalon/tus-js-client.git"},"keywords":["tus","resumable","upload","protocol","progress","file","browser"],"license":"MIT","bugs":{"url":"https://github.com/tus/tus-js-client/issues"},"homepage":"https://github.com/tus/tus-js-client","devDependencies":{"axios":"^0.18.0","babel-cli":"^6.26.0","babel-preset-es2015":"^6.24.1","babelify":"^7.3.0","browserify":"^12.0.0","browserstack":"^1.5.2","browserstack-runner":"git://github.com/Acconut/browserstack-runner.git#fix_etxtbsy","derequire":"^2.0.6","eslint":"^4.19.1","eslint-plugin-react":"^7.11.1","exorcist":"^0.4.0","jasmine":"^2.5.2","jasmine-ajax":"^3.2.0","jasmine-core":"^2.4.1","puppeteer":"^1.19.0","synchronous-promise":"^2.0.5","temp":"^0.8.3","uglify-js":"^2.6.0","watchify":"^3.11.1"},"dependencies":{"buffer-from":"^0.1.1","combine-errors":"^3.0.3","extend":"^3.0.2","js-base64":"^2.4.9","lodash.throttle":"^4.1.1","proper-lockfile":"^2.0.1","spark-md5":"^3.0.0","url-parse":"^1.4.3"},"scripts":{"build":"mkdir -p dist && browserify lib/index.js -t [ babelify ] -s tus -d | exorcist ./dist/tus.js.map | derequire > dist/tus.js","watch":"watchify lib/index.js -t babelify -o dist/tus.js -s tus -v -d","test":"./bin/test","puppeteer-test":"node bin/puppeteer-jasmine.js","browserstack-test":"node bin/browserstack-jasmine.js","node-test":"cd test; jasmine","minify":"uglifyjs ./dist/tus.js -o ./dist/tus.min.js --in-source-map ./dist/tus.js.map --source-map ./dist/tus.min.js.map --source-map-url tus.min.js.map","dist":"npm run build && npm run minify","lint":"eslint lib demos test bin","transpile":"babel -d lib.es5/ lib/"},"gitHead":"d70b992ae19d41689655c798133739d1e7876df5","_id":"@dynalon/tus-js-client@1.8.1","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-6Mpa7PmcOlKRM0zESMaKxEtnbBZiLEmBtVCZpQGIyvA2sW2Jn3MBwOxmD+xUUogYGb7Kohka8uHQYJU4q6ZNuQ==","shasum":"2d6d9ef2c2a072b26d5e61583c25b7a1c76efd14","tarball":"https://registry.npmjs.org/@dynalon/tus-js-client/-/tus-js-client-1.8.1.tgz","fileCount":130,"unpackedSize":11724604,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd4P9PCRA9TVsSAnZWagAAFtMP/3GemivQCnDFgtk8B9xR\nSiLNm9eSi7j8xfgrczEyDedO2dGLJ0znOWN9H3TIG1MHKT42Znpp1C2PtCXu\n8DrGSeTIS+2da1qMAAJRhVzPvcnAe05tyLIZIss0zes+ViEyuQucOmvtH11o\nO4uiI8ngGK/2eYhEWgLA1/Td+f/99B4NfItEGDcBVbjdwNaXK0AhLMGeWB+G\nn603PTlg8WehmcpubSL3vKTtsXDK5D32Qn/SgWi5LlD5v/xV/zu5yee0j/oZ\nxIaou842Fm8vfiJHRJh0EBIlULeM6exc/Gzsw5nzZ8yWJ8zkSwu+XDNsQCSq\npDq4me4YshP0uWZOOmTcLAZeWJ0zJpRcToPBtULvsOmB8cCLcF3IazPLD1aS\n/6FXcR7AOl+/KT1PWOg10YOGvrrwUWFq81mxpP0e7a9T805ZlSkq/QMlXesn\na0LTLqLYj+wdE7tLq3nzMWJ6EvkIIchh97r3fPK3NNkT+kdBbTPB6tUkcb0y\nYRzr/K6K6xdbQ7vaP1Zj+tI2vLJ4gKCmrv2I9aiDEVJa7WBl8FWFgEUxP58t\nyFjRHw3XQOkNSVwTXCWo4LQUW6tgq5od7sqydirDD/UQGpr91r64/r55+hTK\nRS+SCy01lI4IIuEmKMWghOhv0D57hn/bjIvt0dlcPTWeUEnwY3hLWsUm999+\nIuHU\r\n=YxCe\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICdLwMb87Hr6w++uc/rS7kdj0F+6nTiDrQ4TfhkVCHxXAiEA3kZ6WkwucN42KGASLmYZ0DEheOfWhy6P/PEzchhBwWs="}]},"maintainers":[{"name":"dynalon","email":"timo@latecrew.de"}],"_npmUser":{"name":"dynalon","email":"timo@latecrew.de"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tus-js-client_1.8.1_1575026510408_0.49685952720849746"},"_hasShrinkwrap":false},"1.8.2":{"name":"@dynalon/tus-js-client","version":"1.8.2","description":"A pure JavaScript client for the tus resumable upload protocol","main":"lib.es5/index.js","jsnext:main":"lib/index.js","types":"lib/index.d.ts","browser":{"./lib/node/request.js":"./lib/browser/request.js","./lib/node/base64.js":"./lib/browser/base64.js","./lib/node/storage.js":"./lib/browser/storage.js","./lib/node/source.js":"./lib/browser/source.js","./lib/node/fingerprint.js":"./lib/browser/fingerprint.js","./lib.es5/node/request.js":"./lib.es5/browser/request.js","./lib.es5/node/storage.js":"./lib.es5/browser/storage.js","./lib.es5/node/source.js":"./lib.es5/browser/source.js","./lib.es5/node/fingerprint.js":"./lib.es5/browser/fingerprint.js"},"repository":{"type":"git","url":"git+https://github.com/Dynalon/tus-js-client.git"},"keywords":["tus","resumable","upload","protocol","progress","file","browser"],"license":"MIT","bugs":{"url":"https://github.com/tus/tus-js-client/issues"},"homepage":"https://github.com/tus/tus-js-client","devDependencies":{"axios":"^0.18.0","babel-cli":"^6.26.0","babel-preset-es2015":"^6.24.1","babelify":"^7.3.0","browserify":"^12.0.0","browserstack":"^1.5.2","browserstack-runner":"git://github.com/Acconut/browserstack-runner.git#fix_etxtbsy","derequire":"^2.0.6","eslint":"^4.19.1","eslint-plugin-react":"^7.11.1","exorcist":"^0.4.0","jasmine":"^2.5.2","jasmine-ajax":"^3.2.0","jasmine-core":"^2.4.1","puppeteer":"^1.19.0","synchronous-promise":"^2.0.5","temp":"^0.8.3","uglify-js":"^2.6.0","watchify":"^3.11.1"},"dependencies":{"buffer-from":"^0.1.1","combine-errors":"^3.0.3","extend":"^3.0.2","js-base64":"^2.4.9","lodash.throttle":"^4.1.1","proper-lockfile":"^2.0.1","spark-md5":"^3.0.0","url-parse":"^1.4.3"},"scripts":{"build":"mkdir -p dist && browserify lib/index.js -t [ babelify ] -s tus -d | exorcist ./dist/tus.js.map | derequire > dist/tus.js","watch":"watchify lib/index.js -t babelify -o dist/tus.js -s tus -v -d","test":"./bin/test","puppeteer-test":"node bin/puppeteer-jasmine.js","browserstack-test":"node bin/browserstack-jasmine.js","node-test":"cd test; jasmine","minify":"uglifyjs ./dist/tus.js -o ./dist/tus.min.js --in-source-map ./dist/tus.js.map --source-map ./dist/tus.min.js.map --source-map-url tus.min.js.map","dist":"npm run build && npm run minify","lint":"eslint lib demos test bin","transpile":"babel -d lib.es5/ lib/"},"gitHead":"2f67e9066ece4766bcbd879e155b5fbb5c14e4bf","_id":"@dynalon/tus-js-client@1.8.2","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-Zix1JxcqHJmFPwMFrD+uLCnupMhrCN2i2b+Jf9v8Cuy5u96zhYfLqEOjkOTwnYgeC65YhOefecBkizD7XFZfUA==","shasum":"daca1f91124dfeb53a7f7699ab02bf93646f8b8d","tarball":"https://registry.npmjs.org/@dynalon/tus-js-client/-/tus-js-client-1.8.2.tgz","fileCount":130,"unpackedSize":11725865,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd4SKjCRA9TVsSAnZWagAAW1wP/18yWm5OX3owW++9TqSA\nxx82IQbQtGC0gmxZ1F41h1BRM+qt3i177k+elx2DuHvQokCdU3Y+0SKwYCj6\nnz8Z86ic9UuAB/JuZffsvfsSp3xESA/xTCmuJ3TipNnwZMIpFz3jHFm++BD4\nI8Bw4/saXoAnefCh5i4u0mn6TDqPasLuAtFL8/Jo1Od0Risvutf1INW9dTAt\n54p3jUkXpGnwhUsgOHmJRpNpL0MIJ7vWgo2cMzoeVM8w0dsxFEcqXfOgJPpR\nZrW17693TIk0H0Xzl9E4GM67ItKdpzMLWSTv3PnWc5n3PobHzb9bboAX04RM\nWMrnZV+CuEBBeEXZWrKIFpOHyqoOvZoBRIKCBiCgw9SIZRbNn9EpOrxLtpJC\nn6saOoD1ax+5F/4cnuRqP6ngeV8h+g1Tqki8HOz7v1rvIfsSIR5CRKxv28vY\n+azKzJrJgNuxiM+YyhZ2nGFNC33UzDVOHOVMoIQ1wJN3EMWIrdXCnNOs1kCq\nBmZJLYWsjyJVojyYOFtpbHTnCjokKsDZA0QLh3GG+FxiWHvdRjQX1QhX7cmz\nhvcmuFxhJ2iewcQgWW0djUPxyy53JNb8D1tcq45+6Ts6Pv9BuxmN4s4NzA+o\ngeZ1aEQS5zWyVEXdDzIdwXqoAmxS0/EgLCMzjvYkLgdB5sRo8njAXZrnQ1I2\nruI+\r\n=fyxT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBVKHp41gDvuQidqOSimJGhLdKGc58o1ilVPg/p66BMfAiEA2sX8GUGQu0qX4MIAkFMmjHV73F5W/3dvqKU0NJBJS9A="}]},"maintainers":[{"name":"dynalon","email":"timo@latecrew.de"}],"_npmUser":{"name":"dynalon","email":"timo@latecrew.de"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tus-js-client_1.8.2_1575035554160_0.7835443531627786"},"_hasShrinkwrap":false},"1.8.3":{"name":"@dynalon/tus-js-client","version":"1.8.3","description":"A pure JavaScript client for the tus resumable upload protocol","main":"lib.es5/index.js","jsnext:main":"lib/index.js","types":"lib/index.d.ts","browser":{"./lib/node/request.js":"./lib/browser/request.js","./lib/node/base64.js":"./lib/browser/base64.js","./lib/node/storage.js":"./lib/browser/storage.js","./lib/node/source.js":"./lib/browser/source.js","./lib/node/fingerprint.js":"./lib/browser/fingerprint.js","./lib.es5/node/request.js":"./lib.es5/browser/request.js","./lib.es5/node/storage.js":"./lib.es5/browser/storage.js","./lib.es5/node/source.js":"./lib.es5/browser/source.js","./lib.es5/node/fingerprint.js":"./lib.es5/browser/fingerprint.js"},"repository":{"type":"git","url":"git+https://github.com/Dynalon/tus-js-client.git"},"keywords":["tus","resumable","upload","protocol","progress","file","browser"],"license":"MIT","bugs":{"url":"https://github.com/tus/tus-js-client/issues"},"homepage":"https://github.com/tus/tus-js-client","devDependencies":{"axios":"^0.18.0","babel-cli":"^6.26.0","babel-preset-es2015":"^6.24.1","babelify":"^7.3.0","browserify":"^12.0.0","browserstack":"^1.5.2","browserstack-runner":"git://github.com/Acconut/browserstack-runner.git#fix_etxtbsy","derequire":"^2.0.6","eslint":"^4.19.1","eslint-plugin-react":"^7.11.1","exorcist":"^0.4.0","jasmine":"^2.5.2","jasmine-ajax":"^3.2.0","jasmine-core":"^2.4.1","puppeteer":"^1.19.0","synchronous-promise":"^2.0.5","temp":"^0.8.3","uglify-js":"^2.6.0","watchify":"^3.11.1"},"dependencies":{"buffer-from":"^0.1.1","combine-errors":"^3.0.3","extend":"^3.0.2","js-base64":"^2.4.9","lodash.throttle":"^4.1.1","proper-lockfile":"^2.0.1","spark-md5":"^3.0.0","url-parse":"^1.4.3"},"scripts":{"build":"mkdir -p dist && browserify lib/index.js -t [ babelify ] -s tus -d | exorcist ./dist/tus.js.map | derequire > dist/tus.js","watch":"watchify lib/index.js -t babelify -o dist/tus.js -s tus -v -d","test":"./bin/test","puppeteer-test":"node bin/puppeteer-jasmine.js","browserstack-test":"node bin/browserstack-jasmine.js","node-test":"cd test; jasmine","minify":"uglifyjs ./dist/tus.js -o ./dist/tus.min.js --in-source-map ./dist/tus.js.map --source-map ./dist/tus.min.js.map --source-map-url tus.min.js.map","dist":"npm run build && npm run minify","lint":"eslint lib demos test bin","transpile":"babel -d lib.es5/ lib/","yalc":"npm run build && npm run transpile && yalc publish"},"gitHead":"99464902fefb3a2731ac714b5cdc862ad4add8e1","_id":"@dynalon/tus-js-client@1.8.3","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-fAtqif/ml/4Eywjyp+wibt1UWEGYUR2L7ouWfKuKnQ2/gophvHr8CUM+ALFPV3w0PQ4XUXa8laYsMB5+Bjhaaw==","shasum":"59d3cc93555961cfea27ef1ffec94f518b0865b9","tarball":"https://registry.npmjs.org/@dynalon/tus-js-client/-/tus-js-client-1.8.3.tgz","fileCount":130,"unpackedSize":11727683,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd8OaeCRA9TVsSAnZWagAAjq0P/3l9QPKVTVVMEAY2B9B2\nXxz+luGKUxsfb2iucfb+0JD3MEz4GKF0HPFtbuJYoypF7qg8wbFWRIEsFhJO\nhBcuF0lUO26g4LsO0kUnwce4pdHCN9jb3Q8ZNX1ZmP8C/ach8/GeTsUDfsCW\nGgNViJXl2EIDCjqNRc+mkdpIwy1E8vD8Wczr6mOLqDbhZYPTvcIbQxFCJLOK\nrlNaAOYyZ8gC08UpR1swNkAbFjunitqh2vE25DDIsodIJKXKauDZ4oXQ7mff\nJt2Xlj2WGmQrWZ4IEqmOQTkSFdh+BFg0sC9ZouwUxy55Jw9qnbu89EfrvvFH\njlaRJ3uKqSbSEtbNqm0qeGuiXyLPkEja5anq0XAC+hFBvp5U+YS+OnPQwVnr\nuhivD2EbByNV9WWoVP+/kvDl724SrpX8/fwTqHmDWrBeACSh6/iB7IEIn8b7\nT4oqn4A2NLdIwWcEwwZZJbCfBE/37jjutUvVazNlwBjISzHv48BH3ctz7Lcp\nBMK8YLd8l1WTXJ1crYEclkHWOa4NRm1T7yCBydHNBxSA7WraTdLVtZhHqjbH\nE+dPzAmBHe1psW/G6zO72hgVeTSm7y4tS/903TIQkstbRV161MeQwtaiDa6R\nLsC6ASrvOght9qE2WxripoYxy+9HKQADxUVgWnAg6kEr5RsFQWx7I7NLuSuM\nWZbh\r\n=ArBL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDtzOfmO6h6UnKrHBCjB3XtK7yxJjA9R4fomEUCuuG/vAIgBGUDyL8MHAlbksB/IW8MzmJqCte7cWh17usO3BAYvNc="}]},"maintainers":[{"name":"dynalon","email":"timo@latecrew.de"}],"_npmUser":{"name":"dynalon","email":"timo@latecrew.de"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tus-js-client_1.8.3_1576068765194_0.668784021337637"},"_hasShrinkwrap":false},"1.8.4":{"name":"@dynalon/tus-js-client","version":"1.8.4","description":"A pure JavaScript client for the tus resumable upload protocol","main":"lib.es5/index.js","jsnext:main":"lib/index.js","types":"lib/index.d.ts","browser":{"./lib/node/request.js":"./lib/browser/request.js","./lib/node/base64.js":"./lib/browser/base64.js","./lib/node/storage.js":"./lib/browser/storage.js","./lib/node/source.js":"./lib/browser/source.js","./lib/node/fingerprint.js":"./lib/browser/fingerprint.js","./lib.es5/node/request.js":"./lib.es5/browser/request.js","./lib.es5/node/storage.js":"./lib.es5/browser/storage.js","./lib.es5/node/source.js":"./lib.es5/browser/source.js","./lib.es5/node/fingerprint.js":"./lib.es5/browser/fingerprint.js"},"repository":{"type":"git","url":"git+https://github.com/Dynalon/tus-js-client.git"},"keywords":["tus","resumable","upload","protocol","progress","file","browser"],"license":"MIT","bugs":{"url":"https://github.com/tus/tus-js-client/issues"},"homepage":"https://github.com/tus/tus-js-client","devDependencies":{"axios":"^0.18.0","babel-cli":"^6.26.0","babel-preset-es2015":"^6.24.1","babelify":"^7.3.0","browserify":"^12.0.0","browserstack":"^1.5.2","browserstack-runner":"git://github.com/Acconut/browserstack-runner.git#fix_etxtbsy","derequire":"^2.0.6","eslint":"^4.19.1","eslint-plugin-react":"^7.11.1","exorcist":"^0.4.0","jasmine":"^2.5.2","jasmine-ajax":"^3.2.0","jasmine-core":"^2.4.1","puppeteer":"^1.19.0","synchronous-promise":"^2.0.5","temp":"^0.8.3","uglify-js":"^2.6.0","watchify":"^3.11.1"},"dependencies":{"buffer-from":"^0.1.1","combine-errors":"^3.0.3","extend":"^3.0.2","js-base64":"^2.4.9","lodash.throttle":"^4.1.1","proper-lockfile":"^2.0.1","spark-md5":"^3.0.0","url-parse":"^1.4.3"},"scripts":{"build":"mkdir -p dist && browserify lib/index.js -t [ babelify ] -s tus -d | exorcist ./dist/tus.js.map | derequire > dist/tus.js","watch":"watchify lib/index.js -t babelify -o dist/tus.js -s tus -v -d","test":"./bin/test","puppeteer-test":"node bin/puppeteer-jasmine.js","browserstack-test":"node bin/browserstack-jasmine.js","node-test":"cd test; jasmine","minify":"uglifyjs ./dist/tus.js -o ./dist/tus.min.js --in-source-map ./dist/tus.js.map --source-map ./dist/tus.min.js.map --source-map-url tus.min.js.map","dist":"npm run build && npm run minify","lint":"eslint lib demos test bin","transpile":"babel -d lib.es5/ lib/","yalc":"npm run build && npm run transpile && yalc publish"},"gitHead":"b16e36da86ae3a10994b60474aa6c19156c77249","_id":"@dynalon/tus-js-client@1.8.4","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-iSbCQ6QbG2VQ0u2RFm4QPTOCuljJwCJNjcuQY7fLoHPDw3CcXOK871e8bM8Cn4pMWmcEfI/0cEzyczZM6MhDZA==","shasum":"c72a1791ea3ee348a5ddbc9b692cdcbfad4f77d7","tarball":"https://registry.npmjs.org/@dynalon/tus-js-client/-/tus-js-client-1.8.4.tgz","fileCount":130,"unpackedSize":11727925,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd8PExCRA9TVsSAnZWagAAnCEQAKHwBExa4qAajFRbdoc8\nSdLd5CEsLTRKZrlDnXCQzpXgDLGaStv5Tho4WdpSqJr6m2fgWUMq+dxSDsVr\n9OeP7NuAXXuHW0BVhXhh4ob6ikha+QD903RVrj16xgdOI+Fe7as1LBr6ICoA\nQhlC2GbBvn5RgRDvDX3JDAquVlR/6HfESM0wNSb4cCTMSDDbWHE+HrJzF61o\nq6crVVzfqeskmp4E8pyH3AJZvSeu8ILrkY3fNYT9QyJAONGdcccuHTcjV4A+\nGVbinb+f4t/qbD6A9FWUYX6aOYKk4InP6Ld3jkSpR4hmedCAcVWboDl9I223\nmF+jIPX8Wfa5v/7uBiZr0hE5fzLR4lhuBblqYDytsr4NJMXIcb/+1wXoEJwv\nhveIWKA80LqY8c6bT4cIov+iPIF6+cOJmpCY056L17tP+PuBCJi4Vn1ogh4b\nM8owSVPhJN9ebiqY/0tRUGNv0ILQB1XT/UVhOvbBrB3OFwkDyOq/VuGmWbbi\nuAlYInvqM4LzpmxB4unc1l2/2JnL58AfKsjnFmB6ooM7rJlPf7/cus5fr+Y9\n5rrIjZytj8vPPMBPuxaixQdiKAh+05oDpim9+0+kPlGryBkw5x1CT6PaqzmH\nMfokBwSd7Za6f1aEDZJK1axtKpm2HED7R79c7ISBNEfAf8Kkq6Za5BfCCa5g\nWf77\r\n=CaAB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBAVOlCKecAHYnzeOTiM0LOCSi4lCbFEZnCC0phoW+FyAiA4fLJd0D6oPNSYxg1mj3jRjRuZpxi5wRwMrvjfTwOPlA=="}]},"maintainers":[{"name":"dynalon","email":"timo@latecrew.de"}],"_npmUser":{"name":"dynalon","email":"timo@latecrew.de"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tus-js-client_1.8.4_1576071472665_0.6335463162660182"},"_hasShrinkwrap":false},"1.8.5":{"name":"@dynalon/tus-js-client","version":"1.8.5","description":"A pure JavaScript client for the tus resumable upload protocol","main":"lib.es5/index.js","jsnext:main":"lib/index.js","types":"lib/index.d.ts","browser":{"./lib/node/request.js":"./lib/browser/request.js","./lib/node/base64.js":"./lib/browser/base64.js","./lib/node/storage.js":"./lib/browser/storage.js","./lib/node/source.js":"./lib/browser/source.js","./lib/node/fingerprint.js":"./lib/browser/fingerprint.js","./lib.es5/node/request.js":"./lib.es5/browser/request.js","./lib.es5/node/storage.js":"./lib.es5/browser/storage.js","./lib.es5/node/source.js":"./lib.es5/browser/source.js","./lib.es5/node/fingerprint.js":"./lib.es5/browser/fingerprint.js"},"repository":{"type":"git","url":"git+https://github.com/Dynalon/tus-js-client.git"},"keywords":["tus","resumable","upload","protocol","progress","file","browser"],"license":"MIT","bugs":{"url":"https://github.com/tus/tus-js-client/issues"},"homepage":"https://github.com/tus/tus-js-client","devDependencies":{"axios":"^0.18.0","babel-cli":"^6.26.0","babel-preset-es2015":"^6.24.1","babelify":"^7.3.0","browserify":"^12.0.0","browserstack":"^1.5.2","browserstack-runner":"git://github.com/Acconut/browserstack-runner.git#fix_etxtbsy","derequire":"^2.0.6","eslint":"^4.19.1","eslint-plugin-react":"^7.11.1","exorcist":"^0.4.0","jasmine":"^2.5.2","jasmine-ajax":"^3.2.0","jasmine-core":"^2.4.1","puppeteer":"^1.19.0","synchronous-promise":"^2.0.5","temp":"^0.8.3","uglify-js":"^2.6.0","watchify":"^3.11.1"},"dependencies":{"buffer-from":"^0.1.1","combine-errors":"^3.0.3","extend":"^3.0.2","js-base64":"^2.4.9","lodash.throttle":"^4.1.1","proper-lockfile":"^2.0.1","spark-md5":"^3.0.0","url-parse":"^1.4.3"},"scripts":{"build":"mkdir -p dist && browserify lib/index.js -t [ babelify ] -s tus -d | exorcist ./dist/tus.js.map | derequire > dist/tus.js","watch":"watchify lib/index.js -t babelify -o dist/tus.js -s tus -v -d","test":"./bin/test","puppeteer-test":"node bin/puppeteer-jasmine.js","browserstack-test":"node bin/browserstack-jasmine.js","node-test":"cd test; jasmine","minify":"uglifyjs ./dist/tus.js -o ./dist/tus.min.js --in-source-map ./dist/tus.js.map --source-map ./dist/tus.min.js.map --source-map-url tus.min.js.map","dist":"npm run build && npm run minify","lint":"eslint lib demos test bin","transpile":"babel -d lib.es5/ lib/","yalc":"npm run build && npm run transpile && yalc publish"},"gitHead":"b34bb79c466dce5b7b7b4892c1ecd7c47864f944","_id":"@dynalon/tus-js-client@1.8.5","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-etsoR7FVE+GqxW1KHK8XkQVLGoWF6rXiowEF4sZwl0FgKinkR9LuBEfrG+G2rJtHL6si/N1DPr+6mh1Q/6WlNw==","shasum":"4e7bf7e1c3252fdf7fe07e563808cca5ba207e2d","tarball":"https://registry.npmjs.org/@dynalon/tus-js-client/-/tus-js-client-1.8.5.tgz","fileCount":130,"unpackedSize":11727553,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd8PkNCRA9TVsSAnZWagAAsDYP/0YcC6PShgiQ+QH/4ewJ\n8qeT8zSDpMOZwFhQ4omAlkflRKcHNhGhEbnfxpMnLwoX3490sWvUFWTCy0ig\npwxaBEYGFojUcrvMC6NzmsYO9wbYzhhoNbp4b3d2eyHvcMvk+E2ebkpg1ez/\nDx3G6+0Xe0HAhzOggQC6wTLuM7YGmLhp0eYQ2uyiA2SSRtU8Lkww73vHW8hd\nxfybw8cFP5s9bmPGs0/EOw83KhUPoLxLK7Ii5F1JzAGeoWd2z0S92IFrq52U\nYXv9zJGJvApS7XAtvOWaLd/YhrKS/+m4d0P55MRMP/nnIidLx+YzYVoM1C4U\ns5pPuZhc7gBzayGScaVbTVPTtz8OxhsrriN4W/Waek1Yfy441t9NH4rFzQfd\nfRaWo45/ivIZkd/lWy+LdobsulMB7gDg1q14YVHEb6rZNtLg+16N3qlXAif/\n8xpo9i6NAxNzbgUvxcGOCZWDXq62J3GqZys6GFS3d71nnPOySE3WsibIniIO\nW3PZx50t3GQaB34dARK5XJv0MKjNuiqsRjCFGJP3jLG83hQOaqWCuAOezC7u\nKAADbbV3ZY1XERCbkS6tOlF9j7tbmOXgCbOU4g19fBOnkTOuevbMuoz4wpmY\n0hi1xBYOz+HlcszX/ts3RU2WxiJKlm8ZQubFDUbwGz7rbDNJ+i93xDxMBBax\ngevu\r\n=Clc/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDhCgkO36Pl4BFu9RAEo15mCYjIziBBEAUIAVKHnFTIKgIhAPDlpFmKhE7YVgEQDoXzuUzDeCdqNeL5ivxU3nroLaci"}]},"maintainers":[{"name":"dynalon","email":"timo@latecrew.de"}],"_npmUser":{"name":"dynalon","email":"timo@latecrew.de"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tus-js-client_1.8.5_1576073484112_0.49307953811832994"},"_hasShrinkwrap":false},"1.8.6":{"name":"@dynalon/tus-js-client","version":"1.8.6","description":"A pure JavaScript client for the tus resumable upload protocol","main":"lib.es5/index.js","jsnext:main":"lib/index.js","types":"lib/index.d.ts","browser":{"./lib/node/request.js":"./lib/browser/request.js","./lib/node/base64.js":"./lib/browser/base64.js","./lib/node/storage.js":"./lib/browser/storage.js","./lib/node/source.js":"./lib/browser/source.js","./lib/node/fingerprint.js":"./lib/browser/fingerprint.js","./lib.es5/node/request.js":"./lib.es5/browser/request.js","./lib.es5/node/storage.js":"./lib.es5/browser/storage.js","./lib.es5/node/source.js":"./lib.es5/browser/source.js","./lib.es5/node/fingerprint.js":"./lib.es5/browser/fingerprint.js"},"repository":{"type":"git","url":"git+https://github.com/Dynalon/tus-js-client.git"},"keywords":["tus","resumable","upload","protocol","progress","file","browser"],"license":"MIT","bugs":{"url":"https://github.com/tus/tus-js-client/issues"},"homepage":"https://github.com/tus/tus-js-client","devDependencies":{"axios":"^0.18.0","babel-cli":"^6.26.0","babel-preset-es2015":"^6.24.1","babelify":"^7.3.0","browserify":"^12.0.0","browserstack":"^1.5.2","browserstack-runner":"git://github.com/Acconut/browserstack-runner.git#fix_etxtbsy","derequire":"^2.0.6","eslint":"^4.19.1","eslint-plugin-react":"^7.11.1","exorcist":"^0.4.0","jasmine":"^2.5.2","jasmine-ajax":"^3.2.0","jasmine-core":"^2.4.1","puppeteer":"^1.19.0","synchronous-promise":"^2.0.5","temp":"^0.8.3","uglify-js":"^2.6.0","watchify":"^3.11.1"},"dependencies":{"buffer-from":"^0.1.1","combine-errors":"^3.0.3","extend":"^3.0.2","js-base64":"^2.4.9","lodash.throttle":"^4.1.1","proper-lockfile":"^2.0.1","spark-md5":"^3.0.0","url-parse":"^1.4.3"},"scripts":{"build":"mkdir -p dist && browserify lib/index.js -t [ babelify ] -s tus -d | exorcist ./dist/tus.js.map | derequire > dist/tus.js","watch":"watchify lib/index.js -t babelify -o dist/tus.js -s tus -v -d","test":"./bin/test","puppeteer-test":"node bin/puppeteer-jasmine.js","browserstack-test":"node bin/browserstack-jasmine.js","node-test":"cd test; jasmine","minify":"uglifyjs ./dist/tus.js -o ./dist/tus.min.js --in-source-map ./dist/tus.js.map --source-map ./dist/tus.min.js.map --source-map-url tus.min.js.map","dist":"npm run build && npm run minify","lint":"eslint lib demos test bin","transpile":"babel -d lib.es5/ lib/","yalc":"npm run build && npm run transpile && yalc publish"},"gitHead":"18b8096a959dce5493118727adf8f1f47381a823","_id":"@dynalon/tus-js-client@1.8.6","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-F3m8ZT1jFkq93ytpBxwMg1P7HcFJyNQAY1KoTDgYjEFwUlOk5iZqjEODNAzAPR1tsXJKkVdg8wsHjF8WvTxUCQ==","shasum":"d5816fdf11d6f500303ddae52b824694d8747065","tarball":"https://registry.npmjs.org/@dynalon/tus-js-client/-/tus-js-client-1.8.6.tgz","fileCount":130,"unpackedSize":11729383,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd8f5KCRA9TVsSAnZWagAAT5sQAJ3AIDgl16y1PWyDQ2B0\n+C6qszSjota9zvIbcSjxAtsjYpst/4SxYDIuljybl/pt3+BvZOUoV1m6czaA\ne5h+uYALEKAN0j0mVHxvX9Lwo+8/mM4nDA/48NpJnkaMarsxAFkvjs2Jwcoz\n9U57iqTdS0t4jLZgRy4Z7aON5Q7U3bJYOaf3lglScAOqGCrh/JdcRwd9ml0N\neQF75RDS4f2dZOPtRbewvhFwtWdwHed7zi6nesGGu7zlsrpFOyPq27OcsZRa\nkvXhbTqhirlXJ9JAC3CC0eYVKB1svBtxXq+E8CZcgHjBwCjVZjojpOiSzvvF\n3UPOx/nWgGP5mkvbYVCaR3kKGQh9mWh9vkQ6vs1CjOVSt7zeuJMOpeK/aXU1\nI2rlaNvqzjcUtJC3wMtpUZUvN5dHFeGobuJBBGJDstaepTHS35XXDhTRp7Yl\n6zhP3jZQrFyFbjixyROv4vVKb85bbx1mSvDymDPxeS1/vqT8H9MLPEDZl+oq\nv+C3QVkPaouAIS5mGk2nceMWhmMHQghDrkayafF+iSIoWA7AU/lB3zSaGz3G\nxpx+RWxaSSH6VUR6KyFNYR1v5EIxhNApnMgBJfGIfREwv9cSal9MGDvqzPWt\nf5et+FWzHbVcJQ651hUXYzgzpH2Q9jfMrVCoCVIWWijiH+CEg21q078aov77\nMArc\r\n=nCRo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBrqu7bKi6F5gA9A0juSlqwRi8eClcaMwyRGomw6t8ZeAiEA8eGvZFBPFs53bO6JmQfvy7j0qvNLO+vR73kv3p6Pv/c="}]},"maintainers":[{"name":"dynalon","email":"timo@latecrew.de"}],"_npmUser":{"name":"dynalon","email":"timo@latecrew.de"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tus-js-client_1.8.6_1576140361304_0.4174645870254201"},"_hasShrinkwrap":false},"1.8.7":{"name":"@dynalon/tus-js-client","version":"1.8.7","description":"A pure JavaScript client for the tus resumable upload protocol","main":"lib.es5/index.js","jsnext:main":"lib/index.js","types":"lib/index.d.ts","browser":{"./lib/node/request.js":"./lib/browser/request.js","./lib/node/base64.js":"./lib/browser/base64.js","./lib/node/storage.js":"./lib/browser/storage.js","./lib/node/source.js":"./lib/browser/source.js","./lib/node/fingerprint.js":"./lib/browser/fingerprint.js","./lib.es5/node/request.js":"./lib.es5/browser/request.js","./lib.es5/node/storage.js":"./lib.es5/browser/storage.js","./lib.es5/node/source.js":"./lib.es5/browser/source.js","./lib.es5/node/fingerprint.js":"./lib.es5/browser/fingerprint.js"},"repository":{"type":"git","url":"git+https://github.com/Dynalon/tus-js-client.git"},"keywords":["tus","resumable","upload","protocol","progress","file","browser"],"license":"MIT","bugs":{"url":"https://github.com/tus/tus-js-client/issues"},"homepage":"https://github.com/tus/tus-js-client","devDependencies":{"axios":"^0.18.0","babel-cli":"^6.26.0","babel-preset-es2015":"^6.24.1","babelify":"^7.3.0","browserify":"^12.0.0","browserstack":"^1.5.2","browserstack-runner":"git://github.com/Acconut/browserstack-runner.git#fix_etxtbsy","derequire":"^2.0.6","eslint":"^4.19.1","eslint-plugin-react":"^7.11.1","exorcist":"^0.4.0","jasmine":"^2.5.2","jasmine-ajax":"^3.2.0","jasmine-core":"^2.4.1","puppeteer":"^1.19.0","synchronous-promise":"^2.0.5","temp":"^0.8.3","uglify-js":"^2.6.0","watchify":"^3.11.1"},"dependencies":{"buffer-from":"^0.1.1","combine-errors":"^3.0.3","extend":"^3.0.2","js-base64":"^2.4.9","lodash.throttle":"^4.1.1","proper-lockfile":"^2.0.1","spark-md5":"^3.0.0","url-parse":"^1.4.3"},"scripts":{"build":"mkdir -p dist && browserify lib/index.js -t [ babelify ] -s tus -d | exorcist ./dist/tus.js.map | derequire > dist/tus.js","watch":"watchify lib/index.js -t babelify -o dist/tus.js -s tus -v -d","test":"./bin/test","puppeteer-test":"node bin/puppeteer-jasmine.js","browserstack-test":"node bin/browserstack-jasmine.js","node-test":"cd test; jasmine","minify":"uglifyjs ./dist/tus.js -o ./dist/tus.min.js --in-source-map ./dist/tus.js.map --source-map ./dist/tus.min.js.map --source-map-url tus.min.js.map","dist":"npm run build && npm run minify","lint":"eslint lib demos test bin","transpile":"babel -d lib.es5/ lib/","yalc":"npm run build && npm run transpile && yalc publish"},"gitHead":"d951a9dbcb457f1dc79355f266799c96127bcd77","_id":"@dynalon/tus-js-client@1.8.7","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-qIL26JWayuvbAkBrm75jUOXL5MAFEC8O5OshYdF7aJ4vHE8WLwvbwlQZXwdRv67SkEXhnZfe5porCB+wpI6vEA==","shasum":"aca4a8c3a16278fbc11cd39bb045701440ff0598","tarball":"https://registry.npmjs.org/@dynalon/tus-js-client/-/tus-js-client-1.8.7.tgz","fileCount":130,"unpackedSize":11729166,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd8kbPCRA9TVsSAnZWagAAs8wP/Aua5Jd6lohpm+Yt+hgM\nPUeNmu5OMpBHnIq6C4uFbD/eDLndryjT/2GdLEYzWRl4Ts/do985cSBZwZ+y\nixxPuC6THAeePm8bihCW08NLkYA35QvThBOdUyIkXDK9NqscjjLxTbFCgNWt\n7t1TLHeFoQ4tTqSRHP3wyKfGhpZXFSU/5fZUX7WBNoAOExmiafKC5vzssLQ1\n3mjngXC/JmtqGDDt9uaS1C5ItShlJq+VEi7D6/1ChphsBKVBss3NzDI4kGoC\nHb1eW2kEJpJ/VtEeD5KhlEI2x+B7UjP2Kd07LCr7Ym9qZLPB3/RC91Ps31l5\nLA5g6oiLeHf9okK9f91umtpN58r/dunIhX1CSGuDcouBjzKgSRJTYkH5NKq6\n+Z9jYlRivMdwKTZlz4QopGBbkdRTDUpH9Z/+D4cdE3hAROccY0rzt3IT6tPl\nGWOm6hCtZ7hFBpRfiLmeuags2fNTX+XEPirrwDIRAo5RVbMadxSZ0OKPVKNJ\nv9TPaPieDeT9uqkFsCLD32RkhO5Z03vdqJ2FANnoFsBhEDJvHkVZCQhDr9UP\nZE7xWKRH5BKdqW28TSXUveyh5IWZNOTeNWEys+Zhzg20UsjGdQweNVTXzDXE\nVBxWf8e5FjrXQe76jYp6C5gpmHsEkXXIC9IRQYihSIqxx7PzkBIhWEpxLn1+\n/fzZ\r\n=DleI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDmXDKIvcAjp2T+TU2Oo45YVGgUA74gPi0UUClOwerYeAiA8bJN7vTVEsq1ufo2Tn6b1onN3bES/Gg8J3SGOf7HShg=="}]},"maintainers":[{"name":"dynalon","email":"timo@latecrew.de"}],"_npmUser":{"name":"dynalon","email":"timo@latecrew.de"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tus-js-client_1.8.7_1576158926720_0.6778136534355148"},"_hasShrinkwrap":false}},"time":{"created":"2019-11-29T11:17:34.619Z","1.8.0":"2019-11-29T11:17:35.166Z","modified":"2022-04-05T06:17:45.334Z","1.8.1":"2019-11-29T11:21:50.833Z","1.8.2":"2019-11-29T13:52:34.747Z","1.8.3":"2019-12-11T12:52:45.673Z","1.8.4":"2019-12-11T13:37:53.136Z","1.8.5":"2019-12-11T14:11:24.894Z","1.8.6":"2019-12-12T08:46:01.837Z","1.8.7":"2019-12-12T13:55:27.212Z"},"maintainers":[{"name":"dynalon","email":"timo@latecrew.de"}],"description":"A pure JavaScript client for the tus resumable upload protocol","homepage":"https://github.com/tus/tus-js-client","keywords":["tus","resumable","upload","protocol","progress","file","browser"],"repository":{"type":"git","url":"git+https://github.com/Dynalon/tus-js-client.git"},"bugs":{"url":"https://github.com/tus/tus-js-client/issues"},"license":"MIT","readme":"# tus-js-client [![Build Status](https://travis-ci.org/tus/tus-js-client.svg?branch=master)](https://travis-ci.org/tus/tus-js-client)\nA pure JavaScript client for the [tus resumable upload protocol](http://tus.io)\nwhich works in browser environments, Node.js, React Native and Apache Cordova.\n\n## Example\n\n```js\ninput.addEventListener(\"change\", function(e) {\n    // Get the selected file from the input element\n    var file = e.target.files[0]\n\n    // Create a new tus upload\n    var upload = new tus.Upload(file, {\n        endpoint: \"http://localhost:1080/files/\",\n        retryDelays: [0, 3000, 5000, 10000, 20000],\n        metadata: {\n            filename: file.name,\n            filetype: file.type\n        },\n        onError: function(error) {\n            console.log(\"Failed because: \" + error)\n        },\n        onProgress: function(bytesUploaded, bytesTotal) {\n            var percentage = (bytesUploaded / bytesTotal * 100).toFixed(2)\n            console.log(bytesUploaded, bytesTotal, percentage + \"%\")\n        },\n        onSuccess: function() {\n            console.log(\"Download %s from %s\", upload.file.name, upload.url)\n        }\n    })\n\n    // Start the upload\n    upload.start()\n})\n```\n\n## Installation\n\nThe sources are compiled into a [UMD](https://github.com/umdjs/umd)\n(`dist/tus.js`) which can be loaded using different approaches:\n\n* **Embed using a script tag:** `<script src=\"dist/tus.js\"></script>` and access\nthe tus methods using the `tus` property in `window`\n* **Install from NPM:** `npm install tus-js-client`:\n`var tus = require(\"tus-js-client\")`\n* **Define using AMD:** `define(\"alpha\", [\"dist/tus.js\"], function(tus) {})`\n\n\n## Basic Usage\n\n1. **Create** a new `tus.Upload` instance by passing the file to be uploaded alongside additional options to its constructor.\n2. **Start** the upload using the `Upload#start` function. This will create the upload resource if necessary and then transfer the file to the remote endpoint.\n3. Optionally **pause** the upload if the user/application wishes to do so using `Upload#abort`. This will cause any currently running transfers to be immediately stopped.\n4. Optionally **resume** the previously paused upload by called `Upload#start` again. This will resume the upload at the point at which it had stopped before. You can also use this approach to continue the upload after an error has occurred.\n\nPlease consult the documentation below for more details.\n\n## Browser support\n\n<a href=\"https://browserstack.com\">\n  <img alt=\"BrowserStack logo\" src=\"demos/browserstack.png\" align=\"right\" />\n</a>\n\ntus-js-client is tested and known to support following browsers:\n\n* Internet Explorer 10+\n* Microsoft Edge 12+\n* Mozilla Firefox 14+\n* Google Chrome 20+\n* Safari 6+\n* Opera 12.1+\n* iOS 6.0+\n* Android 5.0+\n\nSupport in other browsers is *very likely* but has not been confirimed yet.\nSince we only use Web Storage, XMLHttpRequest2, the File API and Blob API,\nmore than 95% of today's users should be able to use tus-js-client.\n\nCompatability between browsers is continuously ensured by automated tests\nin the corresponding browsers on [BrowserStack](https://browserstack.com),\nwho provide their great service glady for Open Source project for free.\n\n\n## Node.js support\n\nSince Node's environment is quite different than a browser's runtime and\nprovides other capabilities but also restrictions, tus-js-client will have a\nslightly changed behavior when used in the context of a Node.js application:\n\n* As the Web Storage API is only available in browser environments,\ntus-js-client will not be able store the URLs of created uploads allowing\nautomatic resuming. Please consult the documentation for the `tus.canStoreURLs`\nfor more information on this specific topic.\n\n* The `tus.Upload` constructor will only accept instances of `buffer.Buffer`\nand `stream.Readable` as file inputs. If you are passing a readable stream as\nthis argument, you must set the `chunkSize` option to a finite integer value\nbecause the chunk, which is currently being uploaded, will be held in memory\nallowing automatic retries, e.g. after connection interruptions. Therefore\nadditional care should be taken when choosing the appropriate value for your\nspecific application to control memory consumption.\n\n* If you call the `tus.Upload` constructor with an instance of the\n`fs.ReadStream`, the above point does not apply, meaning *no* chunk will be held\nin memory. Instead, tus-js-client will create it's own stream starting at the\nneeded position using `fs.createReadStream`. If you want to disable this\nfunctionality, you may want to wrap the `fs.ReadStream` into a\n`stream.PassThrough`.\n\nFinally, you may be interested in the `demos/nodejs/index.js` example which demonstrates\na simple example on how to easily use tus-js-client using Node.js.\n\n## React Native support\n\ntus-js-client can be used in React Native applications with nearly all of its functionality.\nSince there is no browser-like File object types in React Native, files are represented\nby objects with an `uri` property (i.e. `{ uri: 'file:///...', ... }`).\ntus-js-client accepts these objects and automatically resolves the file URI and\nuploads the fetched file.\nThis allows you to directly pass the results from a file/image picker to\ntus-js-client. A full example of this can be found in our\n[React Native demo](/demos/reactnative/App.js).\n\nThe only unavailable feature is upload URL storage (for resuming them in later\nsessions) because React Native does not implement the Web Storage API. You can\ntest this programmatically using the `tus.canStoreURLs` property which will\nalways be set to `false` in React Native environments. In the end, this means\nthat the `fingerprint`, `resume` and `removeFingerprintOnSuccess` options\nto not have any influence on the behavior because their values are ignored\nwhen using React Native.\n\n## Internals\n\nOnce a new file should be uploaded the client will create a new upload resource\non the server using a `POST` request. A successful response will contain a\n`Location` header pointing to the upload URL. This URL will be used to transfer\nthe file to the server using one or multiple `PATCH` requests.\nIn addition tus-js-client will generate a unique fingerprint for every file and\nstore it and the upload URL using the Web Storage API. If the upload is\ninterrupted or aborted manually, the client is able to resume the upload by\nretrieving the upload URL using the fingerprint. The client is even able to\nresume after you close your browser or shut down your device. Now the client can\ncontinue to send `PATCH` requests to the server until the upload is finished.\n\n## Extension support\n\nThe tus specification defines multiple [extensions](http://tus.io/protocols/resumable-upload.html#protocol-extensions) which can be optionally\nimplemented beside the core protocol enabling specific functionality. Not all\nof these extensions are interesting or even useful for a client-side library\nand therefore support for all of them in tus-js-client is not guaranteed.\n\n* The **Creation** extension is mostly implemented and is used for creating the\nupload. Deferring the upload's length is not possible at the moment.\n\n* The Checksum extension requires that the checksum is calculated inside the\nbrowser. While this is totally doable today, it's particularly expensive and\ntime intensive for bigger files and on mobile devices. One solution is to\nutilize the new Web Crypto API, which probably offers better performance and\nsecurity, but you could argue whether it has reached critical mass yet.\n\n* The Concatenation extension is mostly meant for parallel uploads where you\nneed to utilize multiple HTTP connections. In most cases, this does not apply\nto the environment of the browser but it can also be used for different things.\n\nAt the moment, coverage for these extensions is not great but we promise to\nimprove this situation in the near future.\n\n## Documentation\n\n### tus.isSupported\n\nA boolean indicating whether the current browser has the features necessary to\nuse tus-js-client. This can be used to test support and warn the user.\n\n### tus.canStoreURLs\n\nA boolean indicating whether the current environment allows storing URLs\nenabling the corresponding upload to be resumed if the same file (identified\nusing fingerprinting) is passed to the constructor again. Since this storage\nmechanism is currently bound to the Web Storage API, this value will only yield\nto `true` if we are in a browser environment which provides access to the\n`localStorage` object. Please be aware that in some cases, e.g. a sandboxed\niframe, the Web Storage API is provided but cannot be used without causing\nsecurity errors. In these special situations or if no Web Storage API is\navailable, `canStoreURLs` is set to `false`.\n\n### tus.defaultOptions\n\nA object containing the default options used when creating a new upload:\n\n* `endpoint = null`: a URL which will be used to create new uploads\n* `fingerprint`: a function used to generate a unique string from a\ncorresponding File object. This used to store the URL for an upload to resume.\nThis option is only used if the `resume` flag is set to true.\n* `resume = true`: a boolean indicating whether the client should attempt to\nresume the upload if the upload has been started in the past. This includes\nstoring the file's fingerprint. Use `false` to force an entire reupload.\n* `onProgress = null`: a function that will be called each time progress\ninformation is available. The arguments will be `bytesSent` and `bytesTotal`.\n* `onChunkComplete = null`: a function that will be called each time a chunk\nhas been successfully uploaded. The arguments will be `chunkSize`,\n`bytesAccepted`, `bytesTotal`.\n* `onSuccess = null`: a function called when the upload finished successfully.\n* `onError = null`: a function called once an error appears. The arguments will\nbe an Error instance.\n* `headers = {}`: an object with custom header values used in all requests.\n* `withCredentials = false`: a boolean which is be used as the value for\n`withCredentials` in all XMLHttpRequests to use Cookies in requests. The\nremote server must accept CORS and credentials.\n* `chunkSize = Infinity`: a number indicating the maximum size of a chunk\nin bytes which will be uploaded in a single request. This can be used when\na server or proxy has a limit on how big request bodies may be.\nNote that if the server has hard limits (such as the minimum 5MB chunk\nsize imposed by S3), specifying a chunk size which falls\noutside those hard limits will cause chunked uploads to fail.\n* `metadata = {}`: an object with string values used as additional meta data\nwhich will be passed along to the server when (and only when) creating a new\nupload. Can be used for filenames, file types etc.\n* `uploadUrl = null`: a URL which will be used to directly attempt a resume\nwithout generating the fingerprint and looking it up before. If this attempt\nfails it will fall back to creating a new upload using the URL specified in\n`endpoint`. This will also force an attempt even if resuming has been disabled\nby setting `resume` to `false`.\n* `uploadSize = null`: an integer representing the size of the file in bytes.\nThis will only be used if the size cannot be automatically calculated. This\nis currently only used and required if you supply a `Readable` stream as the\nfile to upload. You may also use this to limit the position until which a file\nwill be uploaded.\n* `overridePatchMethod = false`: a boolean indicating whether the `POST` method\nshould be used instead of `PATCH` for transfering the chunks. This may be\nnecessary if a browser or the server does not support latter one. In this case,\na `POST` request will be made with the `X-HTTP-Method-Override: PATCH` header.\nThe server must be able to detect it, and then handle the request as if `PATCH`\nwould have been the method.\n* `retryDelays = null`: an array or null, indicating how many milliseconds should\npass before the next attempt to uploading will be started after the transfer has\nbeen interrupted. The array's length indicates the maximum number of attempts.\nFor more details about the system of retries and delays, read the\n[Automated Retries](#automated-retries) section.\n* `removeFingerprintOnSuccess = false`: a boolean indicating if the fingerprint\nin the storage will be removed when the upload is successfully completed.\nThis value is `false` for not breaking the previous API contract, but we strongly\nsuggest to set it to `true` to avoid cluttering the storage space. The effect is\nthat if the same file is uploaded again, it will create an entirely new upload.\nFurthermore, this option will only change behaviour if `resume` is set to `true`.\n* `uploadLengthDeferred = false`: a boolean indicating whether a stream of data is going to be uploaded as a [`Reader`](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStreamDefaultReader). If so, the total size isn't available when we begin uploading, so we use the Tus [`Upload-Defer-Length`](https://tus.io/protocols/resumable-upload.html#upload-defer-length) header. Once the reader is finished, the total file size is sent to the tus server in order to complete the upload. It is recommended to set `resume` to `false` when using this option. Furthermore, `chunkSize` must be set to a finite number.\n* `uploadDataDuringCreation = false`: a boolean indicating whether the `creation-with-upload` extension should be used. If `true`, the file's content will already be transferred in the POST request when a new upload is created. This can improve upload speed as no additional PATCH request is needed. Please be aware that your tus server must support the `creation-with-upload` extension or otherwise errors will occurr (Note that this option is still *experimental* and may change in future minor release, so please use it only with caution).\n\n### new tus.Upload(file, options)\n\nCreate a new tus.Upload object. The upload will not be started automatically,\nuse `start` to do so.\n\nDepending on the platform, the `file` argument must be an instance of the following types:\n- inside browser: `File`, `Blob`, or [`Reader`](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStreamDefaultReader)\n- inside Node.js: `Buffer` or `Readable` stream\n- inside Cordova: `File` object from a `FileEntry` (see [demo](demos/cordova/www/js/index.js))\n\nThe `options` argument will be merged deeply with `tus.defaultOptions`.\n\n### tus.Upload#options\n\nThe `options` argument used in the constructor merged deeply with\n`tus.defaultOptions`.\n\n### tus.Upload#file\n\nThe `file` argument used in the constructor.\n\n### tus.Upload#url\n\nThe URL used to upload the file. Leave it set to `null` and the client will\ncreate a new upload and set this property to the new upload URL.\nYou may supply your own URL using this property and the client will try to\nresume using this URL.\n\n### tus.Upload#start()\n\nStart or resume the upload using the specified file. If no `file` property is\navailable the error handler will be called. If you supplied your own URL using\nthe `uploadUrl` option the client will try to resume using this URL.\nIf not, the client will look up if the file has been (fully or partially)\nuploaded and tries to resume.\nIf no upload can be resume it will create a new upload using the supplied\n`endpoint` option.\n\n### tus.Upload#abort(shouldTerminate, callback)\n\nAbort the currently running upload request and don't continue. You can resume\nthe upload by calling the `start` method again.\n\nThe `shouldTerminate` argument is a `boolean` value that determines whether or not the upload\nshould be terminated according to the [termination extension](https://github.com/tus/tus-resumable-upload-protocol/blob/master/protocol.md#termination).\n\nThe `callback` argument is a function that would be called after the `abort` function is complete. If an `error`\noccurs during the `abort` process, this `error` will be passed as argument to the `callback`.\n\n### tus.Upload.terminate(url, [options], callback)\n\nTerminate an upload based on the [termination extension](https://github.com/tus/tus-resumable-upload-protocol/blob/master/protocol.md#termination).\n\nThe `url` argument is the URL for the upload which you want to terminate. The `options` argument is an object with\nthe `tus.defaultOptions` schema, which can be passed to specify certain request related options (e.g `headers`, `retryDelays`).\nThe `callback` argument is a function that would be called after the `terminate` function is complete. If an `error`\noccurs during the `terminate` process, the `terminate` function may retry to send the request depending on the nature of the error, and depending on whether or not the `retryDelays` options is set. If the request can no longer be retried, the `error` will be passed as argument to the `callback`.\n\n### Difference between onProgress and onChunkComplete\n\nWhen configuring a new uploader, the `onProgress` and `onChunkComplete`\ncallbacks are available. While they may seem to be equal based on their\nnaming and the arguments, they provide different information in reality.\nProgress events are emitted using the `onProgress` option and provide numbers\nabout how much data has been sent to the server. However, this data may not\nhave been received or accepted by the endpoint. Imagine a network outage where\nthe browser reports to have successfully sent 100 bytes, but none of them ever\nreach the backend. In order to provide reliable information about whether the\nchunks have been accepted by the server, `onChunkComplete` is only invoked if\nwe have evidence that the remote endpoint has received and accepted the\nuploaded bytes. When consuming this functionality, the `chunkSize` option is\nfrom high importance since the callback will and invoked if an entire chunk\nhas been uploaded.\n\n### Automated Retries\n\nDue to tus' support for resumability, tus-js-client has been engineered to work even under bad networking conditions and provides options for controlling how it should act in different circumstances.\nOne of these settings is `retryDelays` which defines whether and how often tus-js-client will attempt a retry after the upload has been unintentionally interrupted. The value may either be `null`, to fully disable the described functionality, or an array of numbers. It's length will define how often retries will be attempted before giving up and the array's values indicate the delay between the upload interruption and the start of the next attempt in milliseconds. For example, a configuration of `[0, 1000, 3000, 5000]` will result in, at most, five attempts to resume the upload, including the initial one from calling `tus.Upload#start`. The first retry will occur instantly after the interruption, while the second attempt is going to be started after waiting for one second, the third after three seconds, and so on. If the fifth and final attempt also fails, the latest error will not be caught, but passed to the provided `onError` callback.\nThe underlying implementation is rather straightforward: Any error which would usually trigger the `onError` callback will be caught if following criteria are matched:\n- the error has been caused by networking issues, e.g. connection interruption or an unexpected/invalid response from the server, and\n- the environment does not explicitly report that the client is disconnected from any network, e.g. `navigator.onLine` in modern browsers, and\n- the maximum number of retries, defined by the array's length, has not been reached.\n\nIf all of these conditions are met, an attempt will be issued after applying the defined delay. Furthermore, once the client was able to successfully transfer chunks of the upload to the server, the counter for attempted retries will be reset to zero. For example, if an upload is interrupted the first delay will be applied. After reconnecting to the remote endpoint, it is able to transfer data to it until the connection is cut again. This time not the second delay will be used but the first one again because we were able to upload chunks. The reason for this behavior is that it will allow uploads to be interrupted more often than the `retryDelays` option defines, as long as we are making progress in uploading.\n\n## Building\n\n```bash\n# Install dependencies\nnpm install\n\n# Build dist/tus.js a single time\nnpm run build\n\n# Build all dist files (including minification)\nnpm run dist\n\n# Watch source and rebuild\nnpm run watch\n```\n\n## Testing\n\nTests are implemented using Jasmine and can be found in the `test/` directory.\nIn order to run the tests, open `test/SpecRunner.html` in a browser and you\nshould see a visual representation of the test results. No web server is\nrequired, you can open `SpecRunner.html` using the `file:///` protocol.\n\nTests can also be run on SauceLabs' cloud infrastructure using `npm test`.\nBefore using this command, you have to set up your SauceLabs account by filling\nthe `SAUCE_USERNAME` and `SAUCE_ACCESS_KEY` variables else the command will fail.\n\n## FAQ\n\n### How can I access the upload's ID?\n\ntus-js-client identifies and accesses uploads by their URL and *not* their ID.\nTherefore, there is no direct functionality for getting the upload ID. However,\nwith most tus server you are able to extract the upload ID from the the upload\nURL. The upload URL can be accessed using the\n[`Upload#url` property](https://github.com/tus/tus-js-client#tusuploadurl) after\nan upload has been started. For example, the [tusd](https://github.com/tus/tusd)\nserver and [tus-node-server](https://github.com/tus/tus-node-server) have URLs\nsuch as https://master.tus.io/files/accbccf63e9afedef9fbc1e6082835dc where the\nlast segment is the upload URL.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}