Prechádzať zdrojové kódy

Merge branch 'master' of github.com:transloadit/uppy

Kevin van Zonneveld 6 rokov pred
rodič
commit
c3fb8070b6
49 zmenil súbory, kde vykonal 254 pridanie a 206 odobranie
  1. 4 4
      README.md
  2. 1 1
      bin/upload-to-cdn.sh
  3. 2 2
      examples/cdn-example/index.html
  4. 1 1
      examples/transloadit-textarea/index.html
  5. 2 2
      examples/uppy-with-companion/client/index.html
  6. 1 1
      package.json
  7. 4 4
      packages/@uppy/aws-s3-multipart/package.json
  8. 5 5
      packages/@uppy/aws-s3/package.json
  9. 1 1
      packages/@uppy/companion-client/package.json
  10. 12 4
      packages/@uppy/companion-client/src/Provider.js
  11. 1 1
      packages/@uppy/companion/package.json
  12. 1 29
      packages/@uppy/companion/src/server/controllers/callback.js
  13. 1 0
      packages/@uppy/companion/src/server/controllers/index.js
  14. 51 0
      packages/@uppy/companion/src/server/controllers/send-token.js
  15. 2 1
      packages/@uppy/companion/src/uppy.js
  16. 22 13
      packages/@uppy/companion/test/__tests__/companion.js
  17. 1 1
      packages/@uppy/companion/test/mockserver.js
  18. 3 3
      packages/@uppy/core/package.json
  19. 8 8
      packages/@uppy/dashboard/package.json
  20. 3 3
      packages/@uppy/drag-drop/package.json
  21. 5 5
      packages/@uppy/dropbox/package.json
  22. 3 1
      packages/@uppy/dropbox/src/index.js
  23. 3 3
      packages/@uppy/file-input/package.json
  24. 3 3
      packages/@uppy/form/package.json
  25. 3 3
      packages/@uppy/golden-retriever/package.json
  26. 5 5
      packages/@uppy/google-drive/package.json
  27. 3 1
      packages/@uppy/google-drive/src/index.js
  28. 3 3
      packages/@uppy/informer/package.json
  29. 5 5
      packages/@uppy/instagram/package.json
  30. 3 1
      packages/@uppy/instagram/src/index.js
  31. 3 3
      packages/@uppy/progress-bar/package.json
  32. 3 3
      packages/@uppy/provider-views/package.json
  33. 7 7
      packages/@uppy/react/package.json
  34. 2 2
      packages/@uppy/redux-dev-tools/package.json
  35. 12 12
      packages/@uppy/robodog/package.json
  36. 3 3
      packages/@uppy/status-bar/package.json
  37. 1 1
      packages/@uppy/store-default/package.json
  38. 1 1
      packages/@uppy/store-redux/package.json
  39. 3 3
      packages/@uppy/thumbnail-generator/package.json
  40. 6 6
      packages/@uppy/transloadit/package.json
  41. 4 4
      packages/@uppy/tus/package.json
  42. 4 4
      packages/@uppy/url/package.json
  43. 1 1
      packages/@uppy/utils/package.json
  44. 3 3
      packages/@uppy/webcam/package.json
  45. 4 4
      packages/@uppy/xhr-upload/package.json
  46. 26 26
      packages/uppy/package.json
  47. 5 5
      website/src/docs/index.md
  48. 2 2
      website/src/examples/i18n/app.html
  49. 2 2
      website/themes/uppy/layout/index.ejs

+ 4 - 4
README.md

@@ -65,7 +65,7 @@ $ npm install @uppy/core @uppy/dashboard @uppy/tus
 
 
 We recommend installing from npm and then using a module bundler such as [Webpack](http://webpack.github.io/), [Browserify](http://browserify.org/) or [Rollup.js](http://rollupjs.org/).
 We recommend installing from npm and then using a module bundler such as [Webpack](http://webpack.github.io/), [Browserify](http://browserify.org/) or [Rollup.js](http://rollupjs.org/).
 
 
-Add CSS [uppy.min.css](https://transloadit.edgly.net/releases/uppy/v0.30.1/dist/uppy.min.css), either to `<head>` of your HTML page or include in JS, if your bundler of choice supports it — transforms and plugins are available for Browserify and Webpack.
+Add CSS [uppy.min.css](https://transloadit.edgly.net/releases/uppy/v0.30.2/uppy.min.css), either to `<head>` of your HTML page or include in JS, if your bundler of choice supports it — transforms and plugins are available for Browserify and Webpack.
 
 
 Alternatively, you can also use a pre-built bundle from Transloadit's CDN: Edgly. In that case `Uppy` will attach itself to the global `window.Uppy` object.
 Alternatively, you can also use a pre-built bundle from Transloadit's CDN: Edgly. In that case `Uppy` will attach itself to the global `window.Uppy` object.
 
 
@@ -73,10 +73,10 @@ Alternatively, you can also use a pre-built bundle from Transloadit's CDN: Edgly
 
 
 ```html
 ```html
 <!-- 1. Add CSS to `<head>` -->
 <!-- 1. Add CSS to `<head>` -->
-<link href="https://transloadit.edgly.net/releases/uppy/v0.30.0/dist/uppy.min.css" rel="stylesheet">
+<link href="https://transloadit.edgly.net/releases/uppy/v0.30.2/uppy.min.css" rel="stylesheet">
 
 
 <!-- 2. Add JS before the closing `</body>` -->
 <!-- 2. Add JS before the closing `</body>` -->
-<script src="https://transloadit.edgly.net/releases/uppy/v0.30.0/dist/uppy.min.js"></script>
+<script src="https://transloadit.edgly.net/releases/uppy/v0.30.2/uppy.min.js"></script>
 
 
 <!-- 3. Initialize -->
 <!-- 3. Initialize -->
 <div class="UppyDragDrop"></div>
 <div class="UppyDragDrop"></div>
@@ -163,7 +163,7 @@ If you're using Uppy via a script tag, you can load the polyfills from [JSDelivr
 ```html
 ```html
 <script src="https://cdn.jsdelivr.net/npm/es6-promise@4.2.5/dist/es6-promise.auto.min.js"></script>
 <script src="https://cdn.jsdelivr.net/npm/es6-promise@4.2.5/dist/es6-promise.auto.min.js"></script>
 <script src="https://cdn.jsdelivr.net/npm/whatwg-fetch@3.0.0/dist/fetch.umd.min.js"></script>
 <script src="https://cdn.jsdelivr.net/npm/whatwg-fetch@3.0.0/dist/fetch.umd.min.js"></script>
-<script src="https://transloadit.edgly.net/releases/uppy/v0.30.1/dist/uppy.min.js"></script>
+<script src="https://transloadit.edgly.net/releases/uppy/v0.30.2/uppy.min.js"></script>
 ```
 ```
 
 
 ## FAQ
 ## FAQ

+ 1 - 1
bin/upload-to-cdn.sh

@@ -8,7 +8,7 @@
 #  - Checks if a tag is being built (on Travis - otherwise opts to continue execution regardless)
 #  - Checks if a tag is being built (on Travis - otherwise opts to continue execution regardless)
 #  - Installs AWS CLI if needed
 #  - Installs AWS CLI if needed
 #  - Assumed a fully built uppy is in root dir (unless a specific tag was specified, then it's fetched from npm)
 #  - Assumed a fully built uppy is in root dir (unless a specific tag was specified, then it's fetched from npm)
-#  - Runs npm pack, and stores files to e.g. https://transloadit.edgly.net/releases/uppy/v0.30.1/dist/uppy.css
+#  - Runs npm pack, and stores files to e.g. https://transloadit.edgly.net/releases/uppy/v0.30.2/uppy.css
 #  - Uses local package by default, if [version] argument was specified, takes package from npm
 #  - Uses local package by default, if [version] argument was specified, takes package from npm
 #
 #
 # Run as:
 # Run as:

+ 2 - 2
examples/cdn-example/index.html

@@ -4,11 +4,11 @@
     <title></title>
     <title></title>
     <meta charset="UTF-8">
     <meta charset="UTF-8">
     <meta name="viewport" content="width=device-width, initial-scale=1">
     <meta name="viewport" content="width=device-width, initial-scale=1">
-    <link href="https://transloadit.edgly.net/releases/uppy/v0.30.1/dist/uppy.min.css" rel="stylesheet">
+    <link href="https://transloadit.edgly.net/releases/uppy/v0.30.2/uppy.min.css" rel="stylesheet">
   </head>
   </head>
   <body>
   <body>
     <button id="uppyModalOpener">Open Modal</button>
     <button id="uppyModalOpener">Open Modal</button>
-    <script src="https://transloadit.edgly.net/releases/uppy/v0.30.1/dist/uppy.min.js"></script>
+    <script src="https://transloadit.edgly.net/releases/uppy/v0.30.2/uppy.min.js"></script>
     <script>
     <script>
       const uppy = Uppy.Core({debug: true, autoProceed: false})
       const uppy = Uppy.Core({debug: true, autoProceed: false})
         .use(Uppy.Dashboard, { trigger: '#uppyModalOpener' })
         .use(Uppy.Dashboard, { trigger: '#uppyModalOpener' })

+ 1 - 1
examples/transloadit-textarea/index.html

@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <!DOCTYPE html>
 <html>
 <html>
   <head>
   <head>
-    <link rel="stylesheet" href="https://transloadit.edgly.net/releases/uppy/v0.30.1/dist/uppy.css">
+    <link rel="stylesheet" href="https://transloadit.edgly.net/releases/uppy/v0.30.2/uppy.css">
     <style>
     <style>
       body {
       body {
         font-family: Roboto, Open Sans;
         font-family: Roboto, Open Sans;

+ 2 - 2
examples/uppy-with-companion/client/index.html

@@ -4,11 +4,11 @@
     <title></title>
     <title></title>
     <meta charset="UTF-8">
     <meta charset="UTF-8">
     <meta name="viewport" content="width=device-width, initial-scale=1">
     <meta name="viewport" content="width=device-width, initial-scale=1">
-    <link href="https://transloadit.edgly.net/releases/uppy/v0.30.1/dist/uppy.min.css" rel="stylesheet">
+    <link href="https://transloadit.edgly.net/releases/uppy/v0.30.2/uppy.min.css" rel="stylesheet">
   </head>
   </head>
   <body>
   <body>
     <button id="uppyModalOpener">Open Modal</button>
     <button id="uppyModalOpener">Open Modal</button>
-    <script src="https://transloadit.edgly.net/releases/uppy/v0.30.1/dist/uppy.min.js"></script>
+    <script src="https://transloadit.edgly.net/releases/uppy/v0.30.2/uppy.min.js"></script>
     <script>
     <script>
       const uppy = Uppy.Core({debug: true, autoProceed: false})
       const uppy = Uppy.Core({debug: true, autoProceed: false})
         .use(Uppy.Dashboard, { trigger: '#uppyModalOpener' })
         .use(Uppy.Dashboard, { trigger: '#uppyModalOpener' })

+ 1 - 1
package.json

@@ -87,7 +87,7 @@
     "build:js": "npm-run-all build:lib build:bundle",
     "build:js": "npm-run-all build:lib build:bundle",
     "build:lib": "node ./bin/build-lib.js",
     "build:lib": "node ./bin/build-lib.js",
     "build": "npm-run-all --parallel build:js build:css build:companion --serial build:gzip size",
     "build": "npm-run-all --parallel build:js build:css build:companion --serial build:gzip size",
-    "clean": "rm -rf packages/*/lib packages/@uppy/*/lib && rm -rf packages/*/dist packages/@uppy/*/dist",
+    "clean": "rm -rf packages/*/lib packages/@uppy/*/lib packages/*/dist packages/@uppy/*/dist",
     "lint:fix": "npm run lint -- --fix",
     "lint:fix": "npm run lint -- --fix",
     "lint": "eslint . --cache",
     "lint": "eslint . --cache",
     "lint-staged": "lint-staged",
     "lint-staged": "lint-staged",

+ 4 - 4
packages/@uppy/aws-s3-multipart/package.json

@@ -1,7 +1,7 @@
 {
 {
   "name": "@uppy/aws-s3-multipart",
   "name": "@uppy/aws-s3-multipart",
   "description": "Upload to Amazon S3 with Uppy and S3's Multipart upload strategy",
   "description": "Upload to Amazon S3 with Uppy and S3's Multipart upload strategy",
-  "version": "0.30.1",
+  "version": "0.30.2",
   "license": "MIT",
   "license": "MIT",
   "main": "lib/index.js",
   "main": "lib/index.js",
   "types": "types/index.d.ts",
   "types": "types/index.d.ts",
@@ -23,12 +23,12 @@
     "url": "git+https://github.com/transloadit/uppy.git"
     "url": "git+https://github.com/transloadit/uppy.git"
   },
   },
   "dependencies": {
   "dependencies": {
-    "@uppy/companion-client": "0.28.1",
-    "@uppy/utils": "0.30.1",
+    "@uppy/companion-client": "^0.28.2",
+    "@uppy/utils": "^0.30.2",
     "resolve-url": "^0.2.1"
     "resolve-url": "^0.2.1"
   },
   },
   "devDependencies": {
   "devDependencies": {
-    "@uppy/core": "0.30.1"
+    "@uppy/core": "^0.30.2"
   },
   },
   "peerDependencies": {
   "peerDependencies": {
     "@uppy/core": "^0.30.0"
     "@uppy/core": "^0.30.0"

+ 5 - 5
packages/@uppy/aws-s3/package.json

@@ -1,7 +1,7 @@
 {
 {
   "name": "@uppy/aws-s3",
   "name": "@uppy/aws-s3",
   "description": "Upload to Amazon S3 with Uppy",
   "description": "Upload to Amazon S3 with Uppy",
-  "version": "0.30.1",
+  "version": "0.30.2",
   "license": "MIT",
   "license": "MIT",
   "main": "lib/index.js",
   "main": "lib/index.js",
   "types": "types/index.d.ts",
   "types": "types/index.d.ts",
@@ -22,13 +22,13 @@
     "url": "git+https://github.com/transloadit/uppy.git"
     "url": "git+https://github.com/transloadit/uppy.git"
   },
   },
   "dependencies": {
   "dependencies": {
-    "@uppy/companion-client": "0.28.1",
-    "@uppy/utils": "0.30.1",
-    "@uppy/xhr-upload": "0.30.1",
+    "@uppy/companion-client": "^0.28.2",
+    "@uppy/utils": "^0.30.2",
+    "@uppy/xhr-upload": "^0.30.2",
     "resolve-url": "^0.2.1"
     "resolve-url": "^0.2.1"
   },
   },
   "devDependencies": {
   "devDependencies": {
-    "@uppy/core": "0.30.1"
+    "@uppy/core": "^0.30.2"
   },
   },
   "peerDependencies": {
   "peerDependencies": {
     "@uppy/core": "^0.30.0"
     "@uppy/core": "^0.30.0"

+ 1 - 1
packages/@uppy/companion-client/package.json

@@ -1,7 +1,7 @@
 {
 {
   "name": "@uppy/companion-client",
   "name": "@uppy/companion-client",
   "description": "Client library for communication with Companion. Intended for use in Uppy plugins.",
   "description": "Client library for communication with Companion. Intended for use in Uppy plugins.",
-  "version": "0.28.1",
+  "version": "0.28.2",
   "license": "MIT",
   "license": "MIT",
   "main": "lib/index.js",
   "main": "lib/index.js",
   "types": "types/index.d.ts",
   "types": "types/index.d.ts",

+ 12 - 4
packages/@uppy/companion-client/src/Provider.js

@@ -13,17 +13,22 @@ module.exports = class Provider extends RequestClient {
     this.id = this.provider
     this.id = this.provider
     this.authProvider = opts.authProvider || this.provider
     this.authProvider = opts.authProvider || this.provider
     this.name = this.opts.name || _getName(this.id)
     this.name = this.opts.name || _getName(this.id)
-    this.tokenKey = `companion-${this.id}-auth-token`
+    this.pluginId = this.opts.pluginId
+    this.tokenKey = `companion-${this.pluginId}-auth-token`
   }
   }
 
 
   get defaultHeaders () {
   get defaultHeaders () {
-    return Object.assign({}, super.defaultHeaders, {'uppy-auth-token': localStorage.getItem(this.tokenKey)})
+    return Object.assign({}, super.defaultHeaders, {'uppy-auth-token': this.getAuthToken()})
   }
   }
 
 
   // @todo(i.olarewaju) consider whether or not this method should be exposed
   // @todo(i.olarewaju) consider whether or not this method should be exposed
   setAuthToken (token) {
   setAuthToken (token) {
     // @todo(i.olarewaju) add fallback for OOM storage
     // @todo(i.olarewaju) add fallback for OOM storage
-    localStorage.setItem(this.tokenKey, token)
+    this.uppy.getPlugin(this.pluginId).storage.setItem(this.tokenKey, token)
+  }
+
+  getAuthToken () {
+    return this.uppy.getPlugin(this.pluginId).storage.getItem(this.tokenKey)
   }
   }
 
 
   checkAuth () {
   checkAuth () {
@@ -48,7 +53,7 @@ module.exports = class Provider extends RequestClient {
   logout (redirect = location.href) {
   logout (redirect = location.href) {
     return this.get(`${this.id}/logout?redirect=${redirect}`)
     return this.get(`${this.id}/logout?redirect=${redirect}`)
       .then((res) => {
       .then((res) => {
-        localStorage.removeItem(this.tokenKey)
+        this.storage.removeItem(this.tokenKey)
         return res
         return res
       })
       })
   }
   }
@@ -59,6 +64,7 @@ module.exports = class Provider extends RequestClient {
     if (defaultOpts) {
     if (defaultOpts) {
       plugin.opts = Object.assign({}, defaultOpts, opts)
       plugin.opts = Object.assign({}, defaultOpts, opts)
     }
     }
+
     if (opts.serverPattern) {
     if (opts.serverPattern) {
       const pattern = opts.serverPattern
       const pattern = opts.serverPattern
       // validate serverPattern param
       // validate serverPattern param
@@ -74,5 +80,7 @@ module.exports = class Provider extends RequestClient {
         plugin.opts.serverPattern = opts.serverUrl
         plugin.opts.serverPattern = opts.serverUrl
       }
       }
     }
     }
+
+    plugin.storage = plugin.opts.storage || localStorage
   }
   }
 }
 }

+ 1 - 1
packages/@uppy/companion/package.json

@@ -1,6 +1,6 @@
 {
 {
   "name": "@uppy/companion",
   "name": "@uppy/companion",
-  "version": "0.17.1",
+  "version": "0.17.2",
   "description": "OAuth helper and remote fetcher for Uppy's (https://uppy.io) extensible file upload widget with support for drag&drop, resumable uploads, previews, restrictions, file processing/encoding, remote providers like Dropbox and Google Drive, S3 and more :dog:",
   "description": "OAuth helper and remote fetcher for Uppy's (https://uppy.io) extensible file upload widget with support for drag&drop, resumable uploads, previews, restrictions, file processing/encoding, remote providers like Dropbox and Google Drive, S3 and more :dog:",
   "main": "lib/uppy.js",
   "main": "lib/uppy.js",
   "types": "types/index.d.ts",
   "types": "types/index.d.ts",

+ 1 - 29
packages/@uppy/companion/src/server/controllers/callback.js

@@ -1,11 +1,7 @@
 /**
 /**
  * oAuth callback.  Encrypts the access token and sends the new token with the response,
  * oAuth callback.  Encrypts the access token and sends the new token with the response,
- * and redirects to redirect url.
  */
  */
 const tokenService = require('../helpers/jwt')
 const tokenService = require('../helpers/jwt')
-const parseUrl = require('url').parse
-const { hasMatch, sanitizeHtml } = require('../helpers/utils')
-const oAuthState = require('../helpers/oauth-state')
 const logger = require('../logger')
 const logger = require('../logger')
 
 
 /**
 /**
@@ -25,29 +21,5 @@ module.exports = function callback (req, res, next) {
   req.uppy.providerTokens[providerName] = req.query.access_token
   req.uppy.providerTokens[providerName] = req.query.access_token
   logger.debug(`Generating auth token for provider ${providerName}.`)
   logger.debug(`Generating auth token for provider ${providerName}.`)
   const uppyAuthToken = tokenService.generateToken(req.uppy.providerTokens, req.uppy.options.secret)
   const uppyAuthToken = tokenService.generateToken(req.uppy.providerTokens, req.uppy.options.secret)
-  // add the token to cookies for thumbnail/image requests
-  tokenService.addToCookies(res, uppyAuthToken, req.uppy.options)
-
-  const state = (req.session.grant || {}).state
-  if (state) {
-    const origin = oAuthState.getFromState(state, 'origin', req.uppy.options.secret)
-    const allowedClients = req.uppy.options.clients
-    // if no preset clients then allow any client
-    if (!allowedClients || hasMatch(origin, allowedClients) || hasMatch(parseUrl(origin).host, allowedClients)) {
-      return res.send(`
-        <!DOCTYPE html>
-        <html>
-        <head>
-            <meta charset="utf-8" />
-            <script>
-              window.opener.postMessage({token: "${uppyAuthToken}"}, "${sanitizeHtml(origin)}")
-              window.close()
-            </script>
-        </head>
-        <body></body>
-        </html>`
-      )
-    }
-  }
-  next()
+  return res.redirect(req.uppy.buildURL(`/${providerName}/send-token?uppyAuthToken=${uppyAuthToken}`, true))
 }
 }

+ 1 - 0
packages/@uppy/companion/src/server/controllers/index.js

@@ -1,6 +1,7 @@
 module.exports = {
 module.exports = {
   authorized: require('./authorized'),
   authorized: require('./authorized'),
   callback: require('./callback'),
   callback: require('./callback'),
+  sendToken: require('./send-token'),
   get: require('./get'),
   get: require('./get'),
   thumbnail: require('./thumbnail'),
   thumbnail: require('./thumbnail'),
   list: require('./list'),
   list: require('./list'),

+ 51 - 0
packages/@uppy/companion/src/server/controllers/send-token.js

@@ -0,0 +1,51 @@
+/**
+ *
+ * sends auth token to uppy client
+ */
+const tokenService = require('../helpers/jwt')
+const parseUrl = require('url').parse
+const { hasMatch, sanitizeHtml } = require('../helpers/utils')
+const oAuthState = require('../helpers/oauth-state')
+
+/**
+ *
+ * @param {object} req
+ * @param {object} res
+ * @param {function} next
+ */
+module.exports = function sendToken (req, res, next) {
+  const uppyAuthToken = req.uppy.authToken
+  // add the token to cookies for thumbnail/image requests
+  tokenService.addToCookies(res, uppyAuthToken, req.uppy.options)
+
+  const state = (req.session.grant || {}).state
+  if (state) {
+    const origin = oAuthState.getFromState(state, 'origin', req.uppy.options.secret)
+    const allowedClients = req.uppy.options.clients
+    // if no preset clients then allow any client
+    if (!allowedClients || hasMatch(origin, allowedClients) || hasMatch(parseUrl(origin).host, allowedClients)) {
+      return res.send(htmlContent(uppyAuthToken, origin))
+    }
+  }
+  next()
+}
+
+/**
+ *
+ * @param {string} token uppy auth token
+ * @param {string} origin url string
+ */
+const htmlContent = (token, origin) => {
+  return `
+    <!DOCTYPE html>
+    <html>
+    <head>
+        <meta charset="utf-8" />
+        <script>
+          window.opener.postMessage({token: "${token}"}, "${sanitizeHtml(origin)}")
+          window.close()
+        </script>
+    </head>
+    <body></body>
+    </html>`
+}

+ 2 - 1
packages/@uppy/companion/src/uppy.js

@@ -87,6 +87,7 @@ module.exports.app = (options = {}) => {
   app.get('/:providerName/redirect', middlewares.hasSessionAndProvider, controllers.redirect)
   app.get('/:providerName/redirect', middlewares.hasSessionAndProvider, controllers.redirect)
   app.get('/:providerName/logout', middlewares.hasSessionAndProvider, middlewares.gentleVerifyToken, controllers.logout)
   app.get('/:providerName/logout', middlewares.hasSessionAndProvider, middlewares.gentleVerifyToken, controllers.logout)
   app.get('/:providerName/authorized', middlewares.hasSessionAndProvider, middlewares.gentleVerifyToken, controllers.authorized)
   app.get('/:providerName/authorized', middlewares.hasSessionAndProvider, middlewares.gentleVerifyToken, controllers.authorized)
+  app.get('/:providerName/send-token', middlewares.hasSessionAndProvider, middlewares.verifyToken, controllers.sendToken)
   app.get('/:providerName/list/:id?', middlewares.hasSessionAndProvider, middlewares.verifyToken, controllers.list)
   app.get('/:providerName/list/:id?', middlewares.hasSessionAndProvider, middlewares.verifyToken, controllers.list)
   app.post('/:providerName/get/:id', middlewares.hasSessionAndProvider, middlewares.verifyToken, controllers.get)
   app.post('/:providerName/get/:id', middlewares.hasSessionAndProvider, middlewares.verifyToken, controllers.get)
   app.get('/:providerName/thumbnail/:id', middlewares.hasSessionAndProvider, middlewares.cookieAuthToken, middlewares.verifyToken, controllers.thumbnail)
   app.get('/:providerName/thumbnail/:id', middlewares.hasSessionAndProvider, middlewares.cookieAuthToken, middlewares.verifyToken, controllers.thumbnail)
@@ -217,7 +218,7 @@ const getOptionsMiddleware = (options) => {
     req.uppy = {
     req.uppy = {
       options,
       options,
       s3Client,
       s3Client,
-      authToken: req.header('uppy-auth-token'),
+      authToken: req.header('uppy-auth-token') || req.query.uppyAuthToken,
       buildURL: getURLBuilder(options)
       buildURL: getURLBuilder(options)
     }
     }
     next()
     next()

+ 22 - 13
packages/@uppy/companion/test/__tests__/companion.js

@@ -66,26 +66,35 @@ describe('download provdier file', () => {
 })
 })
 
 
 describe('test authentication', () => {
 describe('test authentication', () => {
-  test('authentication callback redirects to specified url', () => {
+  test('authentication callback redirects to send-token url', () => {
     return request(authServer)
     return request(authServer)
       .get('/drive/callback')
       .get('/drive/callback')
-      .set('uppy-auth-token', token)
+      .expect(302)
+      .expect((res) => {
+        expect(res.header['location']).toContain('http://localhost:3020/drive/send-token?uppyAuthToken=')
+      })
+  })
+
+  test('the token gets sent via cookie and html', () => {
+    return request(authServer)
+      .get(`/drive/send-token?uppyAuthToken=${token}`)
       .expect(200)
       .expect(200)
       .expect((res) => {
       .expect((res) => {
         const authToken = res.header['set-cookie'][0].split(';')[0].split('uppyAuthToken=')[1]
         const authToken = res.header['set-cookie'][0].split(';')[0].split('uppyAuthToken=')[1]
+        expect(authToken).toEqual(token)
         // see mock ../../src/server/helpers/oauth-state above for http://localhost:3020
         // see mock ../../src/server/helpers/oauth-state above for http://localhost:3020
         const body = `
         const body = `
-        <!DOCTYPE html>
-        <html>
-        <head>
-            <meta charset="utf-8" />
-            <script>
-              window.opener.postMessage({token: "${authToken}"}, "http://localhost:3020")
-              window.close()
-            </script>
-        </head>
-        <body></body>
-        </html>`
+    <!DOCTYPE html>
+    <html>
+    <head>
+        <meta charset="utf-8" />
+        <script>
+          window.opener.postMessage({token: "${token}"}, "http://localhost:3020")
+          window.close()
+        </script>
+    </head>
+    <body></body>
+    </html>`
         expect(res.text).toBe(body)
         expect(res.text).toBe(body)
       })
       })
   })
   })

+ 1 - 1
packages/@uppy/companion/test/mockserver.js

@@ -5,7 +5,7 @@ const session = require('express-session')
 var authServer = express()
 var authServer = express()
 
 
 authServer.use(session({ secret: 'grant', resave: true, saveUninitialized: true }))
 authServer.use(session({ secret: 'grant', resave: true, saveUninitialized: true }))
-authServer.all('/drive/callback', (req, res, next) => {
+authServer.all('/drive/send-token', (req, res, next) => {
   req.session.grant = {
   req.session.grant = {
     state: 'non-empty-value' }
     state: 'non-empty-value' }
   next()
   next()

+ 3 - 3
packages/@uppy/core/package.json

@@ -1,7 +1,7 @@
 {
 {
   "name": "@uppy/core",
   "name": "@uppy/core",
   "description": "Core module for the extensible JavaScript file upload widget with support for drag&drop, resumable uploads, previews, restrictions, file processing/encoding, remote providers like Instagram, Dropbox, Google Drive, S3 and more :dog:",
   "description": "Core module for the extensible JavaScript file upload widget with support for drag&drop, resumable uploads, previews, restrictions, file processing/encoding, remote providers like Instagram, Dropbox, Google Drive, S3 and more :dog:",
-  "version": "0.30.1",
+  "version": "0.30.2",
   "license": "MIT",
   "license": "MIT",
   "main": "lib/index.js",
   "main": "lib/index.js",
   "style": "dist/style.min.css",
   "style": "dist/style.min.css",
@@ -20,8 +20,8 @@
     "url": "git+https://github.com/transloadit/uppy.git"
     "url": "git+https://github.com/transloadit/uppy.git"
   },
   },
   "dependencies": {
   "dependencies": {
-    "@uppy/store-default": "0.28.1",
-    "@uppy/utils": "0.30.1",
+    "@uppy/store-default": "^0.28.2",
+    "@uppy/utils": "^0.30.2",
     "cuid": "^2.1.1",
     "cuid": "^2.1.1",
     "lodash.throttle": "^4.1.1",
     "lodash.throttle": "^4.1.1",
     "mime-match": "^1.0.2",
     "mime-match": "^1.0.2",

+ 8 - 8
packages/@uppy/dashboard/package.json

@@ -1,7 +1,7 @@
 {
 {
   "name": "@uppy/dashboard",
   "name": "@uppy/dashboard",
   "description": "Universal UI plugin for Uppy.",
   "description": "Universal UI plugin for Uppy.",
-  "version": "0.30.1",
+  "version": "0.30.2",
   "license": "MIT",
   "license": "MIT",
   "main": "lib/index.js",
   "main": "lib/index.js",
   "style": "dist/style.min.css",
   "style": "dist/style.min.css",
@@ -22,11 +22,11 @@
     "url": "git+https://github.com/transloadit/uppy.git"
     "url": "git+https://github.com/transloadit/uppy.git"
   },
   },
   "dependencies": {
   "dependencies": {
-    "@uppy/informer": "0.30.1",
-    "@uppy/provider-views": "0.30.1",
-    "@uppy/status-bar": "0.30.1",
-    "@uppy/thumbnail-generator": "0.30.1",
-    "@uppy/utils": "0.30.1",
+    "@uppy/informer": "^0.30.2",
+    "@uppy/provider-views": "^0.30.2",
+    "@uppy/status-bar": "^0.30.2",
+    "@uppy/thumbnail-generator": "^0.30.2",
+    "@uppy/utils": "^0.30.2",
     "classnames": "^2.2.6",
     "classnames": "^2.2.6",
     "cuid": "^2.1.1",
     "cuid": "^2.1.1",
     "drag-drop": "2.13.3",
     "drag-drop": "2.13.3",
@@ -37,8 +37,8 @@
     "resize-observer-polyfill": "^1.5.0"
     "resize-observer-polyfill": "^1.5.0"
   },
   },
   "devDependencies": {
   "devDependencies": {
-    "@uppy/core": "0.30.1",
-    "@uppy/google-drive": "0.30.1"
+    "@uppy/core": "^0.30.2",
+    "@uppy/google-drive": "^0.30.2"
   },
   },
   "peerDependencies": {
   "peerDependencies": {
     "@uppy/core": "^0.30.0"
     "@uppy/core": "^0.30.0"

+ 3 - 3
packages/@uppy/drag-drop/package.json

@@ -1,7 +1,7 @@
 {
 {
   "name": "@uppy/drag-drop",
   "name": "@uppy/drag-drop",
   "description": "Droppable zone UI for Uppy. Drag and drop files into it to upload.",
   "description": "Droppable zone UI for Uppy. Drag and drop files into it to upload.",
-  "version": "0.30.1",
+  "version": "0.30.2",
   "license": "MIT",
   "license": "MIT",
   "main": "lib/index.js",
   "main": "lib/index.js",
   "style": "dist/style.min.css",
   "style": "dist/style.min.css",
@@ -25,12 +25,12 @@
     "url": "git+https://github.com/transloadit/uppy.git"
     "url": "git+https://github.com/transloadit/uppy.git"
   },
   },
   "dependencies": {
   "dependencies": {
-    "@uppy/utils": "0.30.1",
+    "@uppy/utils": "^0.30.2",
     "drag-drop": "2.13.3",
     "drag-drop": "2.13.3",
     "preact": "^8.2.9"
     "preact": "^8.2.9"
   },
   },
   "devDependencies": {
   "devDependencies": {
-    "@uppy/core": "0.30.1"
+    "@uppy/core": "^0.30.2"
   },
   },
   "peerDependencies": {
   "peerDependencies": {
     "@uppy/core": "^0.30.0"
     "@uppy/core": "^0.30.0"

+ 5 - 5
packages/@uppy/dropbox/package.json

@@ -1,7 +1,7 @@
 {
 {
   "name": "@uppy/dropbox",
   "name": "@uppy/dropbox",
   "description": "Import files from Dropbox, into Uppy.",
   "description": "Import files from Dropbox, into Uppy.",
-  "version": "0.30.1",
+  "version": "0.30.2",
   "license": "MIT",
   "license": "MIT",
   "main": "lib/index.js",
   "main": "lib/index.js",
   "types": "types/index.d.ts",
   "types": "types/index.d.ts",
@@ -20,13 +20,13 @@
     "url": "git+https://github.com/transloadit/uppy.git"
     "url": "git+https://github.com/transloadit/uppy.git"
   },
   },
   "dependencies": {
   "dependencies": {
-    "@uppy/companion-client": "0.28.1",
-    "@uppy/provider-views": "0.30.1",
-    "@uppy/utils": "0.30.1",
+    "@uppy/companion-client": "^0.28.2",
+    "@uppy/provider-views": "^0.30.2",
+    "@uppy/utils": "^0.30.2",
     "preact": "^8.2.9"
     "preact": "^8.2.9"
   },
   },
   "devDependencies": {
   "devDependencies": {
-    "@uppy/core": "0.30.1"
+    "@uppy/core": "^0.30.2"
   },
   },
   "peerDependencies": {
   "peerDependencies": {
     "@uppy/core": "^0.30.0"
     "@uppy/core": "^0.30.0"

+ 3 - 1
packages/@uppy/dropbox/src/index.js

@@ -20,7 +20,9 @@ module.exports = class Dropbox extends Plugin {
     this.provider = new Provider(uppy, {
     this.provider = new Provider(uppy, {
       serverUrl: this.opts.serverUrl,
       serverUrl: this.opts.serverUrl,
       serverHeaders: this.opts.serverHeaders,
       serverHeaders: this.opts.serverHeaders,
-      provider: 'dropbox'
+      storage: this.opts.storage,
+      provider: 'dropbox',
+      pluginId: this.id
     })
     })
 
 
     this.onAuth = this.onAuth.bind(this)
     this.onAuth = this.onAuth.bind(this)

+ 3 - 3
packages/@uppy/file-input/package.json

@@ -1,7 +1,7 @@
 {
 {
   "name": "@uppy/file-input",
   "name": "@uppy/file-input",
   "description": "Simple UI of a file input button that works with Uppy right out of the box",
   "description": "Simple UI of a file input button that works with Uppy right out of the box",
-  "version": "0.30.1",
+  "version": "0.30.2",
   "license": "MIT",
   "license": "MIT",
   "main": "lib/index.js",
   "main": "lib/index.js",
   "style": "dist/style.min.css",
   "style": "dist/style.min.css",
@@ -22,11 +22,11 @@
     "url": "git+https://github.com/transloadit/uppy.git"
     "url": "git+https://github.com/transloadit/uppy.git"
   },
   },
   "dependencies": {
   "dependencies": {
-    "@uppy/utils": "0.30.1",
+    "@uppy/utils": "^0.30.2",
     "preact": "^8.2.9"
     "preact": "^8.2.9"
   },
   },
   "devDependencies": {
   "devDependencies": {
-    "@uppy/core": "0.30.1"
+    "@uppy/core": "^0.30.2"
   },
   },
   "peerDependencies": {
   "peerDependencies": {
     "@uppy/core": "^0.30.0"
     "@uppy/core": "^0.30.0"

+ 3 - 3
packages/@uppy/form/package.json

@@ -1,7 +1,7 @@
 {
 {
   "name": "@uppy/form",
   "name": "@uppy/form",
   "description": "Connect Uppy to an existing HTML <form>.",
   "description": "Connect Uppy to an existing HTML <form>.",
-  "version": "0.30.1",
+  "version": "0.30.2",
   "license": "MIT",
   "license": "MIT",
   "main": "lib/index.js",
   "main": "lib/index.js",
   "types": "types/index.d.ts",
   "types": "types/index.d.ts",
@@ -20,11 +20,11 @@
     "url": "git+https://github.com/transloadit/uppy.git"
     "url": "git+https://github.com/transloadit/uppy.git"
   },
   },
   "dependencies": {
   "dependencies": {
-    "@uppy/utils": "0.30.1",
+    "@uppy/utils": "^0.30.2",
     "get-form-data": "^2.0.0"
     "get-form-data": "^2.0.0"
   },
   },
   "devDependencies": {
   "devDependencies": {
-    "@uppy/core": "0.30.1"
+    "@uppy/core": "^0.30.2"
   },
   },
   "peerDependencies": {
   "peerDependencies": {
     "@uppy/core": "^0.30.0"
     "@uppy/core": "^0.30.0"

+ 3 - 3
packages/@uppy/golden-retriever/package.json

@@ -1,7 +1,7 @@
 {
 {
   "name": "@uppy/golden-retriever",
   "name": "@uppy/golden-retriever",
   "description": "The GoldenRetriever Uppy plugin saves selected files in browser cache to seamlessly resume uploding after browser crash or accidentally closed tab",
   "description": "The GoldenRetriever Uppy plugin saves selected files in browser cache to seamlessly resume uploding after browser crash or accidentally closed tab",
-  "version": "0.30.1",
+  "version": "0.30.2",
   "license": "MIT",
   "license": "MIT",
   "main": "lib/index.js",
   "main": "lib/index.js",
   "types": "types/index.d.ts",
   "types": "types/index.d.ts",
@@ -23,11 +23,11 @@
     "url": "git+https://github.com/transloadit/uppy.git"
     "url": "git+https://github.com/transloadit/uppy.git"
   },
   },
   "dependencies": {
   "dependencies": {
-    "@uppy/utils": "0.30.1",
+    "@uppy/utils": "^0.30.2",
     "prettier-bytes": "^1.0.4"
     "prettier-bytes": "^1.0.4"
   },
   },
   "devDependencies": {
   "devDependencies": {
-    "@uppy/core": "0.30.1"
+    "@uppy/core": "^0.30.2"
   },
   },
   "peerDependencies": {
   "peerDependencies": {
     "@uppy/core": "^0.30.0"
     "@uppy/core": "^0.30.0"

+ 5 - 5
packages/@uppy/google-drive/package.json

@@ -1,7 +1,7 @@
 {
 {
   "name": "@uppy/google-drive",
   "name": "@uppy/google-drive",
   "description": "The Google Drive plugin for Uppy lets users import files from their Google Drive account",
   "description": "The Google Drive plugin for Uppy lets users import files from their Google Drive account",
-  "version": "0.30.1",
+  "version": "0.30.2",
   "license": "MIT",
   "license": "MIT",
   "main": "lib/index.js",
   "main": "lib/index.js",
   "types": "types/index.d.ts",
   "types": "types/index.d.ts",
@@ -21,13 +21,13 @@
     "url": "git+https://github.com/transloadit/uppy.git"
     "url": "git+https://github.com/transloadit/uppy.git"
   },
   },
   "dependencies": {
   "dependencies": {
-    "@uppy/companion-client": "0.28.1",
-    "@uppy/provider-views": "0.30.1",
-    "@uppy/utils": "0.30.1",
+    "@uppy/companion-client": "^0.28.2",
+    "@uppy/provider-views": "^0.30.2",
+    "@uppy/utils": "^0.30.2",
     "preact": "^8.2.9"
     "preact": "^8.2.9"
   },
   },
   "devDependencies": {
   "devDependencies": {
-    "@uppy/core": "0.30.1"
+    "@uppy/core": "^0.30.2"
   },
   },
   "peerDependencies": {
   "peerDependencies": {
     "@uppy/core": "^0.30.0"
     "@uppy/core": "^0.30.0"

+ 3 - 1
packages/@uppy/google-drive/src/index.js

@@ -23,8 +23,10 @@ module.exports = class GoogleDrive extends Plugin {
     this.provider = new Provider(uppy, {
     this.provider = new Provider(uppy, {
       serverUrl: this.opts.serverUrl,
       serverUrl: this.opts.serverUrl,
       serverHeaders: this.opts.serverHeaders,
       serverHeaders: this.opts.serverHeaders,
+      storage: this.opts.storage,
       provider: 'drive',
       provider: 'drive',
-      authProvider: 'google'
+      authProvider: 'google',
+      pluginId: this.id
     })
     })
 
 
     this.onAuth = this.onAuth.bind(this)
     this.onAuth = this.onAuth.bind(this)

+ 3 - 3
packages/@uppy/informer/package.json

@@ -1,7 +1,7 @@
 {
 {
   "name": "@uppy/informer",
   "name": "@uppy/informer",
   "description": "A notification and error pop-up bar for Uppy.",
   "description": "A notification and error pop-up bar for Uppy.",
-  "version": "0.30.1",
+  "version": "0.30.2",
   "license": "MIT",
   "license": "MIT",
   "main": "lib/index.js",
   "main": "lib/index.js",
   "style": "dist/style.min.css",
   "style": "dist/style.min.css",
@@ -23,11 +23,11 @@
     "url": "git+https://github.com/transloadit/uppy.git"
     "url": "git+https://github.com/transloadit/uppy.git"
   },
   },
   "dependencies": {
   "dependencies": {
-    "@uppy/utils": "0.30.1",
+    "@uppy/utils": "^0.30.2",
     "preact": "^8.2.9"
     "preact": "^8.2.9"
   },
   },
   "devDependencies": {
   "devDependencies": {
-    "@uppy/core": "0.30.1"
+    "@uppy/core": "^0.30.2"
   },
   },
   "peerDependencies": {
   "peerDependencies": {
     "@uppy/core": "^0.30.0"
     "@uppy/core": "^0.30.0"

+ 5 - 5
packages/@uppy/instagram/package.json

@@ -1,7 +1,7 @@
 {
 {
   "name": "@uppy/instagram",
   "name": "@uppy/instagram",
   "description": "Import photos and videos from Instagram, into Uppy.",
   "description": "Import photos and videos from Instagram, into Uppy.",
-  "version": "0.30.1",
+  "version": "0.30.2",
   "license": "MIT",
   "license": "MIT",
   "main": "lib/index.js",
   "main": "lib/index.js",
   "types": "types/index.d.ts",
   "types": "types/index.d.ts",
@@ -23,13 +23,13 @@
     "url": "git+https://github.com/transloadit/uppy.git"
     "url": "git+https://github.com/transloadit/uppy.git"
   },
   },
   "dependencies": {
   "dependencies": {
-    "@uppy/companion-client": "0.28.1",
-    "@uppy/provider-views": "0.30.1",
-    "@uppy/utils": "0.30.1",
+    "@uppy/companion-client": "^0.28.2",
+    "@uppy/provider-views": "^0.30.2",
+    "@uppy/utils": "^0.30.2",
     "preact": "^8.2.9"
     "preact": "^8.2.9"
   },
   },
   "devDependencies": {
   "devDependencies": {
-    "@uppy/core": "0.30.1"
+    "@uppy/core": "^0.30.2"
   },
   },
   "peerDependencies": {
   "peerDependencies": {
     "@uppy/core": "^0.30.0"
     "@uppy/core": "^0.30.0"

+ 3 - 1
packages/@uppy/instagram/src/index.js

@@ -20,8 +20,10 @@ module.exports = class Instagram extends Plugin {
     this.provider = new Provider(uppy, {
     this.provider = new Provider(uppy, {
       serverUrl: this.opts.serverUrl,
       serverUrl: this.opts.serverUrl,
       serverHeaders: this.opts.serverHeaders,
       serverHeaders: this.opts.serverHeaders,
+      storage: this.opts.storage,
       provider: 'instagram',
       provider: 'instagram',
-      authProvider: 'instagram'
+      authProvider: 'instagram',
+      pluginId: this.id
     })
     })
 
 
     this.onAuth = this.onAuth.bind(this)
     this.onAuth = this.onAuth.bind(this)

+ 3 - 3
packages/@uppy/progress-bar/package.json

@@ -1,7 +1,7 @@
 {
 {
   "name": "@uppy/progress-bar",
   "name": "@uppy/progress-bar",
   "description": "A progress bar UI for Uppy",
   "description": "A progress bar UI for Uppy",
-  "version": "0.30.1",
+  "version": "0.30.2",
   "license": "MIT",
   "license": "MIT",
   "main": "lib/index.js",
   "main": "lib/index.js",
   "style": "dist/style.min.css",
   "style": "dist/style.min.css",
@@ -23,11 +23,11 @@
     "url": "git+https://github.com/transloadit/uppy.git"
     "url": "git+https://github.com/transloadit/uppy.git"
   },
   },
   "dependencies": {
   "dependencies": {
-    "@uppy/utils": "0.30.1",
+    "@uppy/utils": "^0.30.2",
     "preact": "^8.2.9"
     "preact": "^8.2.9"
   },
   },
   "devDependencies": {
   "devDependencies": {
-    "@uppy/core": "0.30.1"
+    "@uppy/core": "^0.30.2"
   },
   },
   "peerDependencies": {
   "peerDependencies": {
     "@uppy/core": "^0.30.0"
     "@uppy/core": "^0.30.0"

+ 3 - 3
packages/@uppy/provider-views/package.json

@@ -1,7 +1,7 @@
 {
 {
   "name": "@uppy/provider-views",
   "name": "@uppy/provider-views",
   "description": "View library for Uppy remote provider plugins.",
   "description": "View library for Uppy remote provider plugins.",
-  "version": "0.30.1",
+  "version": "0.30.2",
   "license": "MIT",
   "license": "MIT",
   "main": "lib/index.js",
   "main": "lib/index.js",
   "style": "dist/style.min.css",
   "style": "dist/style.min.css",
@@ -19,12 +19,12 @@
     "url": "git+https://github.com/transloadit/uppy.git"
     "url": "git+https://github.com/transloadit/uppy.git"
   },
   },
   "dependencies": {
   "dependencies": {
-    "@uppy/utils": "0.30.1",
+    "@uppy/utils": "^0.30.2",
     "classnames": "^2.2.6",
     "classnames": "^2.2.6",
     "preact": "^8.2.9"
     "preact": "^8.2.9"
   },
   },
   "devDependencies": {
   "devDependencies": {
-    "@uppy/core": "0.30.1"
+    "@uppy/core": "^0.30.2"
   },
   },
   "peerDependencies": {
   "peerDependencies": {
     "@uppy/core": "^0.30.0"
     "@uppy/core": "^0.30.0"

+ 7 - 7
packages/@uppy/react/package.json

@@ -1,7 +1,7 @@
 {
 {
   "name": "@uppy/react",
   "name": "@uppy/react",
   "description": "React component wrappers around Uppy's official UI plugins.",
   "description": "React component wrappers around Uppy's official UI plugins.",
-  "version": "0.30.1",
+  "version": "0.30.2",
   "license": "MIT",
   "license": "MIT",
   "main": "index.js",
   "main": "index.js",
   "module": "index.mjs",
   "module": "index.mjs",
@@ -22,15 +22,15 @@
     "url": "git+https://github.com/transloadit/uppy.git"
     "url": "git+https://github.com/transloadit/uppy.git"
   },
   },
   "dependencies": {
   "dependencies": {
-    "@uppy/dashboard": "0.30.1",
-    "@uppy/drag-drop": "0.30.1",
-    "@uppy/progress-bar": "0.30.1",
-    "@uppy/status-bar": "0.30.1",
-    "@uppy/utils": "0.30.1",
+    "@uppy/dashboard": "^0.30.2",
+    "@uppy/drag-drop": "^0.30.2",
+    "@uppy/progress-bar": "^0.30.2",
+    "@uppy/status-bar": "^0.30.2",
+    "@uppy/utils": "^0.30.2",
     "prop-types": "^15.6.1"
     "prop-types": "^15.6.1"
   },
   },
   "devDependencies": {
   "devDependencies": {
-    "@uppy/core": "0.30.1"
+    "@uppy/core": "^0.30.2"
   },
   },
   "peerDependencies": {
   "peerDependencies": {
     "@uppy/core": "^0.30.0"
     "@uppy/core": "^0.30.0"

+ 2 - 2
packages/@uppy/redux-dev-tools/package.json

@@ -1,7 +1,7 @@
 {
 {
   "name": "@uppy/redux-dev-tools",
   "name": "@uppy/redux-dev-tools",
   "description": "Redux developer tools plugin for Uppy that simply syncs Uppy’s state with redux-devtools browser or JS extensions, and allows for basic time travel",
   "description": "Redux developer tools plugin for Uppy that simply syncs Uppy’s state with redux-devtools browser or JS extensions, and allows for basic time travel",
-  "version": "0.30.1",
+  "version": "0.30.2",
   "license": "MIT",
   "license": "MIT",
   "main": "lib/index.js",
   "main": "lib/index.js",
   "types": "types/index.d.ts",
   "types": "types/index.d.ts",
@@ -21,7 +21,7 @@
     "url": "git+https://github.com/transloadit/uppy.git"
     "url": "git+https://github.com/transloadit/uppy.git"
   },
   },
   "devDependencies": {
   "devDependencies": {
-    "@uppy/core": "0.30.1"
+    "@uppy/core": "^0.30.2"
   },
   },
   "peerDependencies": {
   "peerDependencies": {
     "@uppy/core": "^0.30.0"
     "@uppy/core": "^0.30.0"

+ 12 - 12
packages/@uppy/robodog/package.json

@@ -1,7 +1,7 @@
 {
 {
   "name": "@uppy/robodog",
   "name": "@uppy/robodog",
   "description": "Transloadit SDK for browsers based on Uppy",
   "description": "Transloadit SDK for browsers based on Uppy",
-  "version": "0.30.1",
+  "version": "0.30.2",
   "license": "MIT",
   "license": "MIT",
   "main": "lib/index.js",
   "main": "lib/index.js",
   "jsnext:main": "src/index.js",
   "jsnext:main": "src/index.js",
@@ -28,17 +28,17 @@
     "url": "git+https://github.com/transloadit/uppy.git"
     "url": "git+https://github.com/transloadit/uppy.git"
   },
   },
   "dependencies": {
   "dependencies": {
-    "@uppy/core": "0.30.1",
-    "@uppy/dashboard": "0.30.1",
-    "@uppy/dropbox": "0.30.1",
-    "@uppy/form": "0.30.1",
-    "@uppy/google-drive": "0.30.1",
-    "@uppy/instagram": "0.30.1",
-    "@uppy/status-bar": "0.30.1",
-    "@uppy/transloadit": "0.30.1",
-    "@uppy/url": "0.30.1",
-    "@uppy/utils": "0.30.1",
-    "@uppy/webcam": "0.30.1",
+    "@uppy/core": "^0.30.2",
+    "@uppy/dashboard": "^0.30.2",
+    "@uppy/dropbox": "^0.30.2",
+    "@uppy/form": "^0.30.2",
+    "@uppy/google-drive": "^0.30.2",
+    "@uppy/instagram": "^0.30.2",
+    "@uppy/status-bar": "^0.30.2",
+    "@uppy/transloadit": "^0.30.2",
+    "@uppy/url": "^0.30.2",
+    "@uppy/utils": "^0.30.2",
+    "@uppy/webcam": "^0.30.2",
     "es6-promise": "4.2.5",
     "es6-promise": "4.2.5",
     "whatwg-fetch": "3.0.0"
     "whatwg-fetch": "3.0.0"
   }
   }

+ 3 - 3
packages/@uppy/status-bar/package.json

@@ -1,7 +1,7 @@
 {
 {
   "name": "@uppy/status-bar",
   "name": "@uppy/status-bar",
   "description": "A progress bar for Uppy, with many bells and whistles.",
   "description": "A progress bar for Uppy, with many bells and whistles.",
-  "version": "0.30.1",
+  "version": "0.30.2",
   "license": "MIT",
   "license": "MIT",
   "main": "lib/index.js",
   "main": "lib/index.js",
   "style": "dist/style.min.css",
   "style": "dist/style.min.css",
@@ -26,14 +26,14 @@
     "url": "git+https://github.com/transloadit/uppy.git"
     "url": "git+https://github.com/transloadit/uppy.git"
   },
   },
   "dependencies": {
   "dependencies": {
-    "@uppy/utils": "0.30.1",
+    "@uppy/utils": "^0.30.2",
     "classnames": "^2.2.6",
     "classnames": "^2.2.6",
     "lodash.throttle": "^4.1.1",
     "lodash.throttle": "^4.1.1",
     "preact": "^8.2.9",
     "preact": "^8.2.9",
     "prettier-bytes": "^1.0.4"
     "prettier-bytes": "^1.0.4"
   },
   },
   "devDependencies": {
   "devDependencies": {
-    "@uppy/core": "0.30.1"
+    "@uppy/core": "^0.30.2"
   },
   },
   "peerDependencies": {
   "peerDependencies": {
     "@uppy/core": "^0.30.0"
     "@uppy/core": "^0.30.0"

+ 1 - 1
packages/@uppy/store-default/package.json

@@ -1,7 +1,7 @@
 {
 {
   "name": "@uppy/store-default",
   "name": "@uppy/store-default",
   "description": "The default simple object-based store for Uppy.",
   "description": "The default simple object-based store for Uppy.",
-  "version": "0.28.1",
+  "version": "0.28.2",
   "license": "MIT",
   "license": "MIT",
   "main": "lib/index.js",
   "main": "lib/index.js",
   "types": "types/index.d.ts",
   "types": "types/index.d.ts",

+ 1 - 1
packages/@uppy/store-redux/package.json

@@ -1,7 +1,7 @@
 {
 {
   "name": "@uppy/store-redux",
   "name": "@uppy/store-redux",
   "description": "Make Uppy use your existing Redux store.",
   "description": "Make Uppy use your existing Redux store.",
-  "version": "0.28.1",
+  "version": "0.28.2",
   "license": "MIT",
   "license": "MIT",
   "main": "lib/index.js",
   "main": "lib/index.js",
   "types": "types/index.d.ts",
   "types": "types/index.d.ts",

+ 3 - 3
packages/@uppy/thumbnail-generator/package.json

@@ -1,7 +1,7 @@
 {
 {
   "name": "@uppy/thumbnail-generator",
   "name": "@uppy/thumbnail-generator",
   "description": "Uppy plugin that generates small previews of images to show on your upload UI.",
   "description": "Uppy plugin that generates small previews of images to show on your upload UI.",
-  "version": "0.30.1",
+  "version": "0.30.2",
   "license": "MIT",
   "license": "MIT",
   "main": "lib/index.js",
   "main": "lib/index.js",
   "types": "types/index.d.ts",
   "types": "types/index.d.ts",
@@ -22,10 +22,10 @@
     "url": "git+https://github.com/transloadit/uppy.git"
     "url": "git+https://github.com/transloadit/uppy.git"
   },
   },
   "dependencies": {
   "dependencies": {
-    "@uppy/utils": "0.30.1"
+    "@uppy/utils": "^0.30.2"
   },
   },
   "devDependencies": {
   "devDependencies": {
-    "@uppy/core": "0.30.1",
+    "@uppy/core": "^0.30.2",
     "namespace-emitter": "^2.0.1"
     "namespace-emitter": "^2.0.1"
   },
   },
   "peerDependencies": {
   "peerDependencies": {

+ 6 - 6
packages/@uppy/transloadit/package.json

@@ -1,7 +1,7 @@
 {
 {
   "name": "@uppy/transloadit",
   "name": "@uppy/transloadit",
   "description": "The Transloadit plugin can be used to upload files to Transloadit for all kinds of processing, such as transcoding video, resizing images, zipping/unzipping, and more",
   "description": "The Transloadit plugin can be used to upload files to Transloadit for all kinds of processing, such as transcoding video, resizing images, zipping/unzipping, and more",
-  "version": "0.30.1",
+  "version": "0.30.2",
   "license": "MIT",
   "license": "MIT",
   "main": "lib/index.js",
   "main": "lib/index.js",
   "types": "types/index.d.ts",
   "types": "types/index.d.ts",
@@ -27,15 +27,15 @@
     "url": "git+https://github.com/transloadit/uppy.git"
     "url": "git+https://github.com/transloadit/uppy.git"
   },
   },
   "dependencies": {
   "dependencies": {
-    "@uppy/companion-client": "0.28.1",
-    "@uppy/provider-views": "0.30.1",
-    "@uppy/tus": "0.30.1",
-    "@uppy/utils": "0.30.1",
+    "@uppy/companion-client": "^0.28.2",
+    "@uppy/provider-views": "^0.30.2",
+    "@uppy/tus": "^0.30.2",
+    "@uppy/utils": "^0.30.2",
     "component-emitter": "^1.2.1",
     "component-emitter": "^1.2.1",
     "socket.io-client": "^2.1.1"
     "socket.io-client": "^2.1.1"
   },
   },
   "devDependencies": {
   "devDependencies": {
-    "@uppy/core": "0.30.1"
+    "@uppy/core": "^0.30.2"
   },
   },
   "peerDependencies": {
   "peerDependencies": {
     "@uppy/core": "^0.30.0"
     "@uppy/core": "^0.30.0"

+ 4 - 4
packages/@uppy/tus/package.json

@@ -1,7 +1,7 @@
 {
 {
   "name": "@uppy/tus",
   "name": "@uppy/tus",
   "description": "Resumable uploads for Uppy using Tus.io",
   "description": "Resumable uploads for Uppy using Tus.io",
-  "version": "0.30.1",
+  "version": "0.30.2",
   "license": "MIT",
   "license": "MIT",
   "main": "lib/index.js",
   "main": "lib/index.js",
   "types": "types/index.d.ts",
   "types": "types/index.d.ts",
@@ -22,12 +22,12 @@
     "url": "git+https://github.com/transloadit/uppy.git"
     "url": "git+https://github.com/transloadit/uppy.git"
   },
   },
   "dependencies": {
   "dependencies": {
-    "@uppy/companion-client": "0.28.1",
-    "@uppy/utils": "0.30.1",
+    "@uppy/companion-client": "^0.28.2",
+    "@uppy/utils": "^0.30.2",
     "tus-js-client": "1.6.0"
     "tus-js-client": "1.6.0"
   },
   },
   "devDependencies": {
   "devDependencies": {
-    "@uppy/core": "0.30.1"
+    "@uppy/core": "^0.30.2"
   },
   },
   "peerDependencies": {
   "peerDependencies": {
     "@uppy/core": "^0.30.0"
     "@uppy/core": "^0.30.0"

+ 4 - 4
packages/@uppy/url/package.json

@@ -1,7 +1,7 @@
 {
 {
   "name": "@uppy/url",
   "name": "@uppy/url",
   "description": "The Url plugin lets users import files from the Internet. Paste any URL and it’ll be added!",
   "description": "The Url plugin lets users import files from the Internet. Paste any URL and it’ll be added!",
-  "version": "0.30.1",
+  "version": "0.30.2",
   "license": "MIT",
   "license": "MIT",
   "main": "lib/index.js",
   "main": "lib/index.js",
   "style": "dist/style.min.css",
   "style": "dist/style.min.css",
@@ -22,12 +22,12 @@
     "url": "git+https://github.com/transloadit/uppy.git"
     "url": "git+https://github.com/transloadit/uppy.git"
   },
   },
   "dependencies": {
   "dependencies": {
-    "@uppy/companion-client": "0.28.1",
-    "@uppy/utils": "0.30.1",
+    "@uppy/companion-client": "^0.28.2",
+    "@uppy/utils": "^0.30.2",
     "preact": "^8.2.9"
     "preact": "^8.2.9"
   },
   },
   "devDependencies": {
   "devDependencies": {
-    "@uppy/core": "0.30.1"
+    "@uppy/core": "^0.30.2"
   },
   },
   "peerDependencies": {
   "peerDependencies": {
     "@uppy/core": "^0.30.0"
     "@uppy/core": "^0.30.0"

+ 1 - 1
packages/@uppy/utils/package.json

@@ -1,7 +1,7 @@
 {
 {
   "name": "@uppy/utils",
   "name": "@uppy/utils",
   "description": "Shared utility functions for Uppy Core and plugins maintained by the Uppy team.",
   "description": "Shared utility functions for Uppy Core and plugins maintained by the Uppy team.",
-  "version": "0.30.1",
+  "version": "0.30.2",
   "license": "MIT",
   "license": "MIT",
   "main": "lib/index.js",
   "main": "lib/index.js",
   "types": "types/index.d.ts",
   "types": "types/index.d.ts",

+ 3 - 3
packages/@uppy/webcam/package.json

@@ -1,7 +1,7 @@
 {
 {
   "name": "@uppy/webcam",
   "name": "@uppy/webcam",
   "description": "Uppy plugin that takes photos or records videos using the device's camera.",
   "description": "Uppy plugin that takes photos or records videos using the device's camera.",
-  "version": "0.30.1",
+  "version": "0.30.2",
   "license": "MIT",
   "license": "MIT",
   "main": "lib/index.js",
   "main": "lib/index.js",
   "style": "dist/style.min.css",
   "style": "dist/style.min.css",
@@ -26,11 +26,11 @@
     "url": "git+https://github.com/transloadit/uppy.git"
     "url": "git+https://github.com/transloadit/uppy.git"
   },
   },
   "dependencies": {
   "dependencies": {
-    "@uppy/utils": "0.30.1",
+    "@uppy/utils": "^0.30.2",
     "preact": "^8.2.9"
     "preact": "^8.2.9"
   },
   },
   "devDependencies": {
   "devDependencies": {
-    "@uppy/core": "0.30.1"
+    "@uppy/core": "^0.30.2"
   },
   },
   "peerDependencies": {
   "peerDependencies": {
     "@uppy/core": "^0.30.0"
     "@uppy/core": "^0.30.0"

+ 4 - 4
packages/@uppy/xhr-upload/package.json

@@ -1,7 +1,7 @@
 {
 {
   "name": "@uppy/xhr-upload",
   "name": "@uppy/xhr-upload",
   "description": "Plain and simple classic HTML multipart form uploads with Uppy, as well as uploads using the HTTP PUT method.",
   "description": "Plain and simple classic HTML multipart form uploads with Uppy, as well as uploads using the HTTP PUT method.",
-  "version": "0.30.1",
+  "version": "0.30.2",
   "license": "MIT",
   "license": "MIT",
   "main": "lib/index.js",
   "main": "lib/index.js",
   "types": "types/index.d.ts",
   "types": "types/index.d.ts",
@@ -24,12 +24,12 @@
     "url": "git+https://github.com/transloadit/uppy.git"
     "url": "git+https://github.com/transloadit/uppy.git"
   },
   },
   "dependencies": {
   "dependencies": {
-    "@uppy/companion-client": "0.28.1",
-    "@uppy/utils": "0.30.1",
+    "@uppy/companion-client": "^0.28.2",
+    "@uppy/utils": "^0.30.2",
     "cuid": "^2.1.1"
     "cuid": "^2.1.1"
   },
   },
   "devDependencies": {
   "devDependencies": {
-    "@uppy/core": "0.30.1"
+    "@uppy/core": "^0.30.2"
   },
   },
   "peerDependencies": {
   "peerDependencies": {
     "@uppy/core": "^0.30.0"
     "@uppy/core": "^0.30.0"

+ 26 - 26
packages/uppy/package.json

@@ -1,7 +1,7 @@
 {
 {
   "name": "uppy",
   "name": "uppy",
   "description": "Extensible JavaScript file upload widget with support for drag&drop, resumable uploads, previews, restrictions, file processing/encoding, remote providers like Instagram, Dropbox, Google Drive, S3 and more :dog:",
   "description": "Extensible JavaScript file upload widget with support for drag&drop, resumable uploads, previews, restrictions, file processing/encoding, remote providers like Instagram, Dropbox, Google Drive, S3 and more :dog:",
-  "version": "0.30.1",
+  "version": "0.30.2",
   "license": "MIT",
   "license": "MIT",
   "main": "index.js",
   "main": "index.js",
   "module": "index.mjs",
   "module": "index.mjs",
@@ -30,31 +30,31 @@
     "url": "git+https://github.com/transloadit/uppy.git"
     "url": "git+https://github.com/transloadit/uppy.git"
   },
   },
   "dependencies": {
   "dependencies": {
-    "@uppy/aws-s3": "0.30.1",
-    "@uppy/aws-s3-multipart": "0.30.1",
-    "@uppy/companion-client": "0.28.1",
-    "@uppy/core": "0.30.1",
-    "@uppy/dashboard": "0.30.1",
-    "@uppy/drag-drop": "0.30.1",
-    "@uppy/dropbox": "0.30.1",
-    "@uppy/file-input": "0.30.1",
-    "@uppy/form": "0.30.1",
-    "@uppy/golden-retriever": "0.30.1",
-    "@uppy/google-drive": "0.30.1",
-    "@uppy/informer": "0.30.1",
-    "@uppy/instagram": "0.30.1",
-    "@uppy/progress-bar": "0.30.1",
-    "@uppy/provider-views": "0.30.1",
-    "@uppy/redux-dev-tools": "0.30.1",
-    "@uppy/status-bar": "0.30.1",
-    "@uppy/store-default": "0.28.1",
-    "@uppy/store-redux": "0.28.1",
-    "@uppy/thumbnail-generator": "0.30.1",
-    "@uppy/transloadit": "0.30.1",
-    "@uppy/tus": "0.30.1",
-    "@uppy/url": "0.30.1",
-    "@uppy/webcam": "0.30.1",
-    "@uppy/xhr-upload": "0.30.1"
+    "@uppy/aws-s3": "^0.30.2",
+    "@uppy/aws-s3-multipart": "^0.30.2",
+    "@uppy/companion-client": "^0.28.2",
+    "@uppy/core": "^0.30.2",
+    "@uppy/dashboard": "^0.30.2",
+    "@uppy/drag-drop": "^0.30.2",
+    "@uppy/dropbox": "^0.30.2",
+    "@uppy/file-input": "^0.30.2",
+    "@uppy/form": "^0.30.2",
+    "@uppy/golden-retriever": "^0.30.2",
+    "@uppy/google-drive": "^0.30.2",
+    "@uppy/informer": "^0.30.2",
+    "@uppy/instagram": "^0.30.2",
+    "@uppy/progress-bar": "^0.30.2",
+    "@uppy/provider-views": "^0.30.2",
+    "@uppy/redux-dev-tools": "^0.30.2",
+    "@uppy/status-bar": "^0.30.2",
+    "@uppy/store-default": "^0.28.2",
+    "@uppy/store-redux": "^0.28.2",
+    "@uppy/thumbnail-generator": "^0.30.2",
+    "@uppy/transloadit": "^0.30.2",
+    "@uppy/tus": "^0.30.2",
+    "@uppy/url": "^0.30.2",
+    "@uppy/webcam": "^0.30.2",
+    "@uppy/xhr-upload": "^0.30.2"
   },
   },
   "devDependencies": {
   "devDependencies": {
     "es6-promise": "4.2.5",
     "es6-promise": "4.2.5",

+ 5 - 5
website/src/docs/index.md

@@ -18,12 +18,12 @@ Here’s the simplest example html page with Uppy (it uses a CDN bundle, while w
   <head>
   <head>
     <meta charset="utf-8">
     <meta charset="utf-8">
     <title>Uppy</title>
     <title>Uppy</title>
-    <link href="https://transloadit.edgly.net/releases/uppy/v0.30.1/dist/uppy.min.css" rel="stylesheet">
+    <link href="https://transloadit.edgly.net/releases/uppy/v0.30.2/uppy.min.css" rel="stylesheet">
   </head>
   </head>
   <body>
   <body>
     <div id="drag-drop-area"></div>
     <div id="drag-drop-area"></div>
 
 
-    <script src="https://transloadit.edgly.net/releases/uppy/v0.30.1/dist/uppy.min.js"></script>
+    <script src="https://transloadit.edgly.net/releases/uppy/v0.30.2/uppy.min.js"></script>
     <script>
     <script>
       var uppy = Uppy.Core()
       var uppy = Uppy.Core()
         .use(Uppy.Dashboard, {
         .use(Uppy.Dashboard, {
@@ -112,12 +112,12 @@ You can also use a pre-built bundle from Transloadit's CDN: Edgly. `Uppy` will a
 1\. Add a script at the bottom of the closing `</body>` tag:
 1\. Add a script at the bottom of the closing `</body>` tag:
 
 
 ``` html
 ``` html
-<script src="https://transloadit.edgly.net/releases/uppy/v0.30.1/dist/uppy.min.js"></script>
+<script src="https://transloadit.edgly.net/releases/uppy/v0.30.2/uppy.min.js"></script>
 ```
 ```
 
 
 2\. Add CSS to `<head>`:
 2\. Add CSS to `<head>`:
 ``` html
 ``` html
-<link href="https://transloadit.edgly.net/releases/uppy/v0.30.1/dist/uppy.min.css" rel="stylesheet">
+<link href="https://transloadit.edgly.net/releases/uppy/v0.30.2/uppy.min.css" rel="stylesheet">
 ```
 ```
 
 
 3\. Initialize at the bottom of the closing `</body>` tag:
 3\. Initialize at the bottom of the closing `</body>` tag:
@@ -168,5 +168,5 @@ If you're using Uppy via a script tag, you can load the polyfills from [JSDelivr
 ```html
 ```html
 <script src="https://cdn.jsdelivr.net/npm/es6-promise@4.2.5/dist/es6-promise.auto.min.js"></script>
 <script src="https://cdn.jsdelivr.net/npm/es6-promise@4.2.5/dist/es6-promise.auto.min.js"></script>
 <script src="https://cdn.jsdelivr.net/npm/whatwg-fetch@3.0.0/dist/fetch.umd.min.js"></script>
 <script src="https://cdn.jsdelivr.net/npm/whatwg-fetch@3.0.0/dist/fetch.umd.min.js"></script>
-<script src="https://transloadit.edgly.net/releases/uppy/v0.30.1/dist/uppy.min.js"></script>
+<script src="https://transloadit.edgly.net/releases/uppy/v0.30.2/uppy.min.js"></script>
 ```
 ```

+ 2 - 2
website/src/examples/i18n/app.html

@@ -1,11 +1,11 @@
 <!-- Basic Uppy styles. You can use Transloadit's CDN, Edgly:
 <!-- Basic Uppy styles. You can use Transloadit's CDN, Edgly:
-https://transloadit.edgly.net/releases/uppy/v0.30.1/dist/uppy.min.css -->
+https://transloadit.edgly.net/releases/uppy/v0.30.2/uppy.min.css -->
 <link rel="stylesheet" href="/uppy/uppy.min.css">
 <link rel="stylesheet" href="/uppy/uppy.min.css">
 
 
 <div class="UppyDragDrop"></div>
 <div class="UppyDragDrop"></div>
 
 
 <!-- Load Uppy pre-built bundled version. You can use Transloadit's CDN, Edgly:
 <!-- Load Uppy pre-built bundled version. You can use Transloadit's CDN, Edgly:
-https://transloadit.edgly.net/releases/uppy/v0.30.1/dist/uppy.min.js -->
+https://transloadit.edgly.net/releases/uppy/v0.30.2/uppy.min.js -->
 <script src="/uppy/uppy.min.js"></script>
 <script src="/uppy/uppy.min.js"></script>
 <script>
 <script>
   var uppy = Uppy.Core({ debug: true, autoProceed: true });
   var uppy = Uppy.Core({ debug: true, autoProceed: true });

+ 2 - 2
website/themes/uppy/layout/index.ejs

@@ -82,8 +82,8 @@
   <p><a href="/privacy-policy/">Privacy Policy</a></p>
   <p><a href="/privacy-policy/">Privacy Policy</a></p>
 </footer>
 </footer>
 
 
-<link href="https://transloadit.edgly.net/releases/uppy/v0.30.1/dist/uppy.min.css" rel="stylesheet">
-<script src="https://transloadit.edgly.net/releases/uppy/v0.30.1/dist/uppy.min.js"></script>
+<link href="https://transloadit.edgly.net/releases/uppy/v0.30.2/uppy.min.css" rel="stylesheet">
+<script src="https://transloadit.edgly.net/releases/uppy/v0.30.2/uppy.min.js"></script>
 
 
 <script>
 <script>
   var TUS_ENDPOINT = 'https://master.tus.io/files/'
   var TUS_ENDPOINT = 'https://master.tus.io/files/'