uppy/packages/@uppy/companion-client
Mikael Finstad ad4050b51e
Send token using websocket (#6248)
instead of window.opener - it is more robust

inspired by #4110
closes #6246
closes #4107

Biggest caveat: In cases where window.opener is null (Dropbox), the auth
window will not be auto closed (I don't know how to fix that). It will
show the user a message "Authentication successful. You may now close
this page."
https://github.com/transloadit/uppy/pull/6248/changes#diff-ef5b69c4ab5b83168eaba6f57047bb07c53e3a426f375b42fcb32d79c746872cR22

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Prakash <qxprakash@gmail.com>
2026-05-09 15:03:04 +08:00
..
src Send token using websocket (#6248) 2026-05-09 15:03:04 +08:00
.npmignore
CHANGELOG.md [ci] release (#6011) 2025-10-17 20:24:52 +02:00
LICENSE
package.json [ci] release (#6011) 2025-10-17 20:24:52 +02:00
README.md Fix links (#5492) 2024-10-29 13:54:00 +01:00
tsconfig.build.json From Babel to TS (#5792) 2025-06-30 16:12:26 +02:00
tsconfig.json Migrate from Eslint/Prettier/Stylelint to Biome (#5794) 2025-07-01 14:55:41 +02:00
turbo.json Fix turbo race condition (#5839) 2025-07-23 10:49:11 +02:00

@uppy/companion-client

Uppy logo: a smiling puppy above a pink upwards arrow

npm version CI status for Uppy tests CI status for Companion tests CI status for browser tests

Client library for communication with Companion. Intended for use in Uppy plugins.

Uppy is being developed by the folks at Transloadit, a versatile file encoding service.

Example

import Uppy from '@uppy/core'
import { Provider, RequestClient, Socket } from '@uppy/companion-client'

const uppy = new Uppy()

const client = new RequestClient(uppy, {
  companionUrl: 'https://uppy.mywebsite.com/',
})
client.get('/drive/list').then(() => {})

const provider = new Provider(uppy, {
  companionUrl: 'https://uppy.mywebsite.com/',
  provider: providerPluginInstance,
})
provider.checkAuth().then(() => {})

const socket = new Socket({ target: 'wss://uppy.mywebsite.com/' })
socket.on('progress', () => {})

Installation

Unless you are writing a custom provider plugin, you do not need to install this.

$ npm install @uppy/companion-client

Documentation

Documentation for this plugin can be found on the Uppy website.

License

The MIT License.