The next open source file uploader for web browsers :dog:

Overview

Uppy

Uppy logo: a superman puppy in a pink suit

Tests CI status for Uppy tests CI status for Companion tests CI status for browser tests
Deploys CI status for CDN deployment CI status for Companion deployment CI status for website deployment

Uppy is a sleek, modular JavaScript file uploader that integrates seamlessly with any application. It’s fast, easy to use and lets you worry about more important problems than building a file uploader.

  • Fetch files from local disk, remote URLs, Google Drive, Dropbox, Box, Instagram or snap and record selfies with a camera
  • Preview and edit metadata with a nice interface
  • Upload to the final destination, optionally process/encode

Read the docs | Try Uppy

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

Example

Code used in the above example:

const Uppy = require('@uppy/core')
const Dashboard = require('@uppy/dashboard')
const GoogleDrive = require('@uppy/google-drive')
const Instagram = require('@uppy/instagram')
const Webcam = require('@uppy/webcam')
const Tus = require('@uppy/tus')

const uppy = new Uppy({ autoProceed: false })
  .use(Dashboard, { trigger: '#select-files' })
  .use(GoogleDrive, { target: Dashboard, companionUrl: 'https://companion.uppy.io' })
  .use(Instagram, { target: Dashboard, companionUrl: 'https://companion.uppy.io' })
  .use(Webcam, { target: Dashboard })
  .use(Tus, { endpoint: 'https://tusd.tusdemo.net/files/' })
  .on('complete', (result) => {
    console.log('Upload result:', result)
  })

Try it online or read the docs for more details on how to use Uppy and its plugins.

Features

  • Lightweight, modular plugin-based architecture, easy on dependencies
  • Resumable file uploads via the open tus standard, so large uploads survive network hiccups
  • Supports picking files from: Webcam, Dropbox, Box, Google Drive, Instagram, bypassing the user’s device where possible, syncing between servers directly via @uppy/companion
  • Works great with file encoding and processing backends, such as Transloadit, works great without (just roll your own Apache/Nginx/Node/FFmpeg/etc backend)
  • Sleek user interface
  • Optional file recovery (after a browser crash) with Golden Retriever
  • Speaks multiple languages (i18n) 🌍
  • Built with accessibility in mind
  • Free for the world, forever (as in beer 🍺 , pizza 🍕 , and liberty 🗽 )
  • Cute as a puppy, also accepts cat pictures 🐶

Installation

$ npm install @uppy/core @uppy/dashboard @uppy/tus

We recommend installing from npm and then using a module bundler such as Webpack, Browserify or Rollup.js.

Add CSS uppy.min.css, either to your HTML page's <head> 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.

⚠️ The bundle currently consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using just a few.

<!-- 1. Add CSS to `<head>` -->
<link href="https://releases.transloadit.com/uppy/v1.25.2/uppy.min.css" rel="stylesheet">

<!-- 2. Add JS before the closing `</body>` -->
<script src="https://releases.transloadit.com/uppy/v1.25.2/uppy.min.js"></script>

<!-- 3. Initialize -->
<div class="UppyDragDrop"></div>
<script>
  var uppy = Uppy.Core()
  uppy.use(Uppy.DragDrop, { target: '.UppyDragDrop' })
  uppy.use(Uppy.Tus, { endpoint: '//tusd.tusdemo.net/files/' })
</script>

Documentation

  • Uppy — full list of options, methods and events
  • Plugins — list of Uppy plugins and their options
  • Companion — setting up and running a Companion instance, which adds support for Instagram, Dropbox, Box, Google Drive and remote URLs
  • React — components to integrate Uppy UI plugins with React apps
  • Architecture & Writing a Plugin — how to write a plugin for Uppy

Plugins

List of plugins and their common options

UI Elements

  • Dashboard — universal UI with previews, progress bars, metadata editor and all the cool stuff. Required for most UI plugins like Webcam and Instagram
  • Progress Bar — minimal progress bar that fills itself when upload progresses
  • Status Bar — more detailed progress, pause/resume/cancel buttons, percentage, speed, uploaded/total sizes (included by default with Dashboard)
  • Informer — send notifications like “smile” before taking a selfie or “upload failed” when all is lost (also included by default with Dashboard)

Sources

  • Drag & Drop — plain and simple drag and drop area
  • File Input — even plainer “select files” button
  • Webcam — snap and record those selfies 📷
  • Google Drive — import files from Google Drive
  • Dropbox — import files from Dropbox
  • Box — import files from Box
  • Instagram — import images and videos from Instagram
  • Facebook — import images and videos from Facebook
  • OneDrive — import files from Microsoft OneDrive
  • Import From URL — import direct URLs from anywhere on the web

The ⓒ mark means that @uppy/companion, a server-side component, is needed for a plugin to work.

Destinations

  • Tus — resumable uploads via the open tus standard
  • XHR Upload — regular uploads for any backend out there (like Apache, Nginx)
  • AWS S3 — plain upload to AWS S3 or compatible services
  • AWS S3 Multipart — S3-style "Multipart" upload to AWS or compatible services

File Processing

  • Robodog — user friendly abstraction to do file processing with Transloadit
  • Transloadit — support for Transloadit’s robust file uploading and encoding backend

Miscellaneous

  • Golden Retriever — restores files after a browser crash, like it’s nothing
  • Thumbnail Generator — generates image previews (included by default with Dashboard)
  • Form — collects metadata from <form> right before an Uppy upload, then optionally appends results back to the form
  • Redux — for your emerging time traveling needs

React

  • React — components to integrate Uppy UI plugins with React apps
  • React Native — basic Uppy component for React Native with Expo

Browser Support

Sauce Test Status

We aim to support IE11 and recent versions of Safari, Edge, Chrome, Firefox and Opera.

We still run end-to-end tests with IE10, but we are not actively supporting it or fixing visual / minor issues.

Polyfills

Uppy heavily uses Promises. If your target environment does not support Promises, use a polyfill like es6-promise before initializing Uppy.

When using remote providers like Google Drive or Dropbox, the Fetch API is used. If your target environment does not support the Fetch API, use a polyfill like whatwg-fetch before initializing Uppy. The Fetch API polyfill must be loaded after the Promises polyfill, because Fetch uses Promises.

With a module bundler, you can use the required polyfills like so:

npm install es6-promise whatwg-fetch
require('es6-promise/auto')
require('whatwg-fetch')
const Uppy = require('@uppy/core')

If you're using Uppy from CDN, es6-promise and whatwg-fetch are already included in the bundle, so no need to include anything additionally:

<script src="https://releases.transloadit.com/uppy/v1.25.2/uppy.min.js"></script>

FAQ

Why not just use <input type="file">?

Having no JavaScript beats having a lot of it, so that’s a fair question! Running an uploading & encoding business for ten years though we found that in cases, the file input leaves some to be desired:

  • We received complaints about broken uploads and found that resumable uploads are important, especially for big files and to be inclusive towards people on poorer connections (we also launched tus.io to attack that problem). Uppy uploads can survive network outages and browser crashes or accidental navigate-aways.
  • Uppy supports editing meta information before uploading (and e.g. cropping is planned).
  • There’s the situation where people are using their mobile devices and want to upload on the go, but they have their picture on Instagram, files in Dropbox or just a plain file URL from anywhere on the open web. Uppy allows to pick files from those and push it to the destination without downloading it to your mobile device first.
  • Accurate upload progress reporting is an issue on many platforms.
  • Some file validation — size, type, number of files — can be done on the client with Uppy.
  • Uppy integrates webcam support, in case your users want to upload a picture/video/audio that does not exist yet :)
  • A larger drag and drop surface can be pleasant to work with. Some people also like that you can control the styling, language, etc.
  • Uppy is aware of encoding backends. Often after an upload, the server needs to rotate, detect faces, optimize for iPad, or what have you. Uppy can track progress of this and report back to the user in different ways.
  • Sometimes you might want your uploads to happen while you continue to interact on the same single page.

Not all apps need all of these features. An <input type="file"> is fine in many situations. But these were a few things that our customers hit / asked about enough to spark us to develop Uppy.

Why is all this goodness free?

Transloadit’s team is small and we have a shared ambition to make a living from open source. By giving away projects like tus.io and Uppy, we’re hoping to advance the state of the art, make life a tiny little bit better for everyone and in doing so have rewarding jobs and get some eyes on our commercial service: a content ingestion & processing platform.

Our thinking is that if just a fraction of our open source userbase can see the appeal of hosted versions straight from the source, that could already be enough to sustain our work. So far this is working out! We’re able to dedicate 80% of our time to open source and haven’t gone bankrupt yet. :D

Does Uppy support React?

Yep, we have Uppy React components, please see Uppy React docs.

Does Uppy support S3 uploads?

Yes, there is an S3 plugin, please check out the docs for more.

Do I need to install a special service/server for Uppy? Can I use it with Rails/Node/Go/PHP?

Yes, whatever you want on the backend will work with @uppy/xhr-upload plugin, since it just does a POST or PUT request. Here’s a PHP backend example.

If you want resumability with the Tus plugin, use one of the tus server implementations 👌🏼

And you’ll need @uppy/companion if you’d like your users to be able to pick files from Instagram, Google Drive, Dropbox or via direct URLs (with more services coming).

Contributions are welcome

Used by

Uppy is used by: Photobox, Issuu, Law Insider, Cool Tabs, Soundoff, Scrumi, Crive and others.

Use Uppy in your project? Let us know!

Contributors

arturi goto-bus-stop kvz ifedapoolarewaju hedgerh AJvanLoon
arturi goto-bus-stop kvz ifedapoolarewaju hedgerh AJvanLoon
nqst lakesare kiloreux sadovnychyi samuelayo richardwillars
nqst lakesare kiloreux sadovnychyi samuelayo richardwillars
ajkachnic zcallan tim-kos janko wilkoklak oliverpool
ajkachnic zcallan tim-kos janko wilkoklak oliverpool
Botz dependabot[bot] mcallistertyler mokutsu-coursera DJWassink taoqf
Botz dependabot[bot] mcallistertyler mokutsu-coursera DJWassink taoqf
tuoxiansp elenalape gavboulton bertho-zero tranvansang ap--
tuoxiansp elenalape gavboulton bertho-zero tranvansang ap--
ofhope mrbatista MikeKovarik pauln szh toadkicker
ofhope mrbatista MikeKovarik pauln szh toadkicker
mejiaej johnnyperkins dargmuesli manuelkiessling nndevstudio ogtfaber
mejiaej johnnyperkins dargmuesli manuelkiessling nndevstudio ogtfaber
sksavant sunil-shrestha yonahforst stephentuso mskelton ahmedkandel
sksavant sunil-shrestha yonahforst stephentuso mskelton ahmedkandel
btrice behnammodi Burkes craigjennings11 davekiss DenysNosov
btrice behnammodi Burkes craigjennings11 davekiss DenysNosov
dominiceden frobinsonj geertclerx jasonbosco jedwood dogrocker
dominiceden frobinsonj geertclerx jasonbosco jedwood dogrocker
lamartire Mactaivsh maferland Martin005 martiuslim MatthiasKunnen
lamartire Mactaivsh maferland Martin005 martiuslim MatthiasKunnen
msand richartkeil richmeij rosenfeld jrschumacher ThomasG77
msand richartkeil richmeij rosenfeld jrschumacher ThomasG77
sparanoid zhuangya allenfantasy Zyclotrop-j fortrieb jarey
sparanoid zhuangya allenfantasy Zyclotrop-j fortrieb jarey
muhammadInam rettgerst mkabatek jukakoski olemoign ajschmidt8
muhammadInam rettgerst mkabatek jukakoski olemoign ajschmidt8
superhawk610 abannach adamelmore adamvigneault adritasharma asmt3
superhawk610 abannach adamelmore adamvigneault adritasharma asmt3
alexnj aalepis amitport functino radarhere superandrew213
alexnj aalepis amitport functino radarhere superandrew213
andychongyz anthony0030 arthurdenner apuyou bochkarev-artem atsawin
andychongyz anthony0030 arthurdenner apuyou bochkarev-artem atsawin
ayhankesicioglu azeemba azizk bducharme Quorafind wbaaron
ayhankesicioglu azeemba azizk bducharme Quorafind wbaaron
bedgerotto cyu cartfisk cellvinchung chao csprance
bedgerotto cyu cartfisk cellvinchung chao csprance
Aarbel cbush06 czj ardeois sercraig danmichaelo
Aarbel cbush06 czj ardeois sercraig danmichaelo
mrboomer akizor davilima6 DennisKofflard jeetiss sweetro
mrboomer akizor davilima6 DennisKofflard jeetiss sweetro
efbautista yoldar eliOcs EnricoSottile ethanwillis Gkleinereva
efbautista yoldar eliOcs EnricoSottile ethanwillis Gkleinereva
fgallinari ferdiusa dtrucs geoffappleford gjungb roenschg
fgallinari ferdiusa dtrucs geoffappleford gjungb roenschg
HughbertD HussainAlkhalifah huydod ishendyweb NaxYo ghasrfakhri
HughbertD HussainAlkhalifah huydod ishendyweb NaxYo ghasrfakhri
intenzive JacobMGEvans jdssem Jbithell jcjmcclean janklimo
intenzive JacobMGEvans jdssem Jbithell jcjmcclean janklimo
vith jessica-coursera Jmales theJoeBiz profsmallpine jonathanarbely
vith jessica-coursera Jmales theJoeBiz profsmallpine jonathanarbely
jderrough jonathanly jorgeepc julianocomg firesharkstudios elkebab
jderrough jonathanly jorgeepc julianocomg firesharkstudios elkebab
kyleparisi lafe leaanthony larowlan dviry galli-leo
kyleparisi lafe leaanthony larowlan dviry galli-leo
leods92 louim lucaperret mperrando marcosthejew marcusforsberg
leods92 louim lucaperret mperrando marcosthejew marcusforsberg
Acconut mattfik matthewhartstonge hrsh mhulet mkopinsky
Acconut mattfik matthewhartstonge hrsh mhulet mkopinsky
mifi achmiral mnafees shahimclt pleasespammelater naveed-ahmad
mifi achmiral mnafees shahimclt pleasespammelater naveed-ahmad
nicojones leftdevel cryptic022 patricklindsay pedrofs phillipalexander
nicojones leftdevel cryptic022 patricklindsay pedrofs phillipalexander
ppadmavilasom Pzoco eman8519 luarmr SxDx phobos101
ppadmavilasom Pzoco eman8519 luarmr SxDx phobos101
romain-preston scherroman fortunto2 samuelcolburn sergei-zelinsky SpazzMarticus
romain-preston scherroman fortunto2 samuelcolburn sergei-zelinsky SpazzMarticus
suchoproduction waptik steverob taj Tashows twarlop
suchoproduction waptik steverob taj Tashows twarlop
tmaier tvaliasek vially nagyv willycamargo xhocquet
tmaier tvaliasek vially nagyv willycamargo xhocquet
yaegor YehudaKremer zachconner zacharylawson agreene-coursera alfatv
yaegor YehudaKremer zachconner zacharylawson agreene-coursera alfatv
arggh avalla bdirito c0b41 canvasbh craigcbrunner
arggh avalla bdirito c0b41 canvasbh craigcbrunner
darthf1 dkisic fingul franckl gaelicwinter green-mike
darthf1 dkisic fingul franckl gaelicwinter green-mike
hxgf johnmanjiro13 kode-ninja magumbo ninesalt phil714
hxgf johnmanjiro13 kode-ninja magumbo ninesalt phil714
luntta rhymes rlebosse rtaieb thanhthot tinny77
luntta rhymes rlebosse rtaieb thanhthot tinny77
vedran555 yoann-hellopret olitomas
vedran555 yoann-hellopret olitomas

Software

We use Browserstack for manual testing BrowserStack logo

License

The MIT License.

Comments
  • 1.0 Roadmap and React compatibility

    1.0 Roadmap and React compatibility

    Hi folks! The project looks great, and like others, I'm quite looking forward to it.

    Since the readme says don't use in production yet, I am wondering if I could get a sense of what are the big parts remaining to make it production-usable in your view? And if you had a sense of how far out that might be?

    Thank you for open-sourcing this!

    PS. I have gone through the Changelog/Roadmap document which gives details about the tasks but didn't answer my question, so hence the issue created

    Help Wanted 💬 Discussion 
    opened by oyeanuj 48
  • Uppy Modal/Dashboard Design

    Uppy Modal/Dashboard Design

    So, currently Uppy Modal looks like this:

    screen shot 2016-07-05 at 20 18 16 _img 1_

    It works, but:

    1. It’s a bit heavy
    2. A bunch of space is wasted when you are, say, in Drag & Drop, while all the progress/selected files are in a tiny popover thing
    3. The whole workflow is based on the idea that we have tabs and we switch between them to switch between services like Google Drive, Instagram, Dropbox or local Drag & Drop.

    So we thought maybe it’s time to rethink that UI and see if we could do better.

    It’s work in progress, but the result at the moment is this:

    screen shot 2016-07-01 at 16 08 13 _img 2_

    It’s lighter, has a Dashboard/Workspace screen that combines progress + selected files screen with DragDrop/Local files screen. The idea being that by default you are always at this screen, and everything happens here, but you can move away to acquire files from somewhere else and then be back here to see their upload progress or annotate them.

    This is not the final design, we are tweaking and tinkering as we progress. See comments for more UI mockups.

    UI 💬 Discussion 
    opened by arturi 42
  • Feature/accessibility

    Feature/accessibility

    1. Made provider components accessible. Had to change some html&css along the way.
    2. Made file-already-uploaded components accessible.
    3. Made focus managed throughout Uppy in Dashboard. Now we should be able to navigate through Uppy entirely via the keyboard. I went through it with Mac's VoiceOver, everything's read well, although sometimes Informer gets interrupted by the shifted focus.

    I thought about how to implement focus management for some time, and I tried a few options. Basically if we tried to implement it via the componentDidMount/Updates with timeouts, focus may be fighting between multiple components, and sometimes it may be getting lost out of the current overlay. What I did is I made it recalculate where focus should be every 250ms, and introduced 'superfocusable' elements - if they are rendered, focus will fall on them if it's not yet on some other superfocusable element.

    Concerns:

    • I didn't manage to check Dropbox integration, we'd need new credentials to check it.
    • Is there a case where focus could be jumping back and forth between two element in a loop, do you see when this state may occur? (dashboard/src/utils/createSuperFocus.js)

    Fixes #1415, fixes #1414, fixes #1413, fixes #1556, fixes #1351

    opened by lakesare 35
  • Modals by default?

    Modals by default?

    I think for simple file uploading - we may not want to default to using modals.

    Look at this example of someone integrating with Transloadit with minimal impact / blocking UI:

    https://github.com/pamelafox/bootstrap-transloadit-plugin <-- it has a link to an example, but the bootstrap layout is broken. normally you'd see a progress bar right on the page

    opened by kvz 35
  • add more granular image rotation control

    add more granular image rotation control

    We probably need to refine the style and the accessibility of the feature (new icon? keyboard shortcut?).

    Here's a preview of the rendering on my machine: image

    Fixes: https://github.com/transloadit/uppy/issues/2636

    opened by aduh95 26
  • File is modified/corrupted when uploaded from a remote source to GCS

    File is modified/corrupted when uploaded from a remote source to GCS

    Hey,

    I get a strange behavior when uploading from G Drive or Dropbox to Google Storage. Some files (not all) get modified once they're uploaded to GCS.

    For example, when I upload a .m4a file using G Drive it's no longer playable once it's uploaded to GCS. Repeated with several .m4a files. It does not happen with .mp3. It does not happen when I upload the same .m4a file from local drive.

    Comparing the file sizes of the one uploaded from local drive vs. G Drive it seems that the one uploaded from G Drive is about 400 bytes larger.

    Something is going wrong when Companion downloads the file from the remote source or when it uploads it to GCS..

    Anyone has a clue what's happening here?

    Bug Companion XHR Upload 
    opened by kode-ninja 26
  • Add Backblaze B2 upload support

    Add Backblaze B2 upload support

    This change adds Backblaze B2 bucket upload capability with the addition of an @uppy/b2-multipart-companion plugin as well as accompanying controller code for Companion.

    The b2-multipart-companion plugin introduces one dependency: js-sha1

    Thanks!

    opened by Klowner 26
  • Uppy throws with latest create-react-app (react-scripts 5), Uncaught TypeError: nanoid is not a function

    Uppy throws with latest create-react-app (react-scripts 5), Uncaught TypeError: nanoid is not a function

    To reproduce the error: https://github.com/waveiron/uppy_example_1 It was created using create-react-app, only App.tsx and package.json dependencies are changed

    You can follow the steps to reproduce the error:

    npx create-react-app --template typescript my_app
    

    package.json

    // ...
      "dependencies": {
        "@testing-library/jest-dom": "^5.16.1",
        "@testing-library/react": "^12.1.2",
        "@testing-library/user-event": "^13.5.0",
        "@types/jest": "^27.0.3",
        "@types/node": "^16.11.14",
        "@types/react": "^17.0.37",
        "@types/react-dom": "^17.0.11",
        "@uppy/core": "^2.1.4",
        "@uppy/react": "^2.1.2",
        "react": "^17.0.2",
        "react-dom": "^17.0.2",
        "react-scripts": "5.0.0",
        "typescript": "^4.5.4",
        "web-vitals": "^2.1.2"
      },
    // ...
    

    App.tsx

    import Uppy from '@uppy/core';
    import { Dashboard, useUppy } from '@uppy/react';
    import React from 'react';
    import './App.css';
    
    function App() {
      const uppy = useUppy(() => {
        return new Uppy();
      });
      return (
        <Dashboard uppy={uppy}/>
      );
    }
    
    export default App;
    
    npm start
    

    image

    Bug React Confirmed bug 
    opened by waveiron 23
  • problem uploading local larg files

    problem uploading local larg files

    hi my problem is that large files localhost can not be uploaded, for example, I upload up to one and a half gigs, but it does not allow uploading more than one and a half gigs.

    thank you for guiding me to fix this problem. thanks

    error_up

    Question 
    opened by cmsnegar 22
  • Using uppy without the UI

    Using uppy without the UI

    Hi @arturi @goto-bus-stop @kvz! I am trying to integrate uppy into my existing React (with Redux) app, following the examples mentioned here by @arturi and here by @goto-bus-stop. I had two questions that I think are related to #116 but probably warrant their own thread.

    1. Playing around with the current way of using Uppy made me want a little bit more finegrained control over the upload process. Currently, the Core module seems to be a blackbox and holds all the state for the uploads. I am wondering the team's current point of view on the balance between exposing complexity vs blackbox approach of the current Core module? The core module instead of keeping state could expose the events, and utilities for the developer to use? Not dealing with state might make it also less daunting for a developer to be able to add/patch/fix the core module. And then I did come across this (abandoned?) library https://github.com/hedgerh/uppy-base which seems to have some of those ideas. In general, in the React world (hence, my bias), stateless components pattern work well.

    2. If using without the UI, is there a way to import only the core module and the plugins being used? I feel like having these as separate packages that one could use would make the load much lighter and make the project more modular as well.

    Again, apologies if these issues have already been discussed but felt important enough to bring up in this ticket.

    Thank you, all!

    Question Architecture 💬 Discussion 
    opened by oyeanuj 22
  • Transform Plugins: crop, rotate, resize

    Transform Plugins: crop, rotate, resize

    I'm thinking a bit about how the processing/transform plugins are going to need to work. The following API (just an example) is not going to suffice:

    Uppy
      .use(DragDrop, { target: 'foo' })
      .use(UppyResize)
      .use(UppyRotate)
      .use(UppyCrop)
    

    Given that transforms need to run in a very specific order, I think the best approach is to turn processing plugins into functions, rather than classes, unless there is some reason we actually need classes in the instance, which I don't think we do. We can then provide the developer with the following API:

    Uppy.apply(resize(800,600))
    

    Where .apply(), or whatever we want to call it, chains together all of the transform functions in the order in which they are provided.

    If our file uploader has a photo editor that allows the user to make changes to an image before uploading, the transforms need to be ran in a very specific order to get the desired processed image.

    Consider the following image:

    rickmorty

    If I run:

    Uppy.apply(resize(800, 600))
    .apply(rotate(90))
    

    I get:

    rickmorty1

    If I run:

    Uppy.apply(rotate(90))
    .apply(resize(800,600))
    

    I get:

    rickmorty2

    This is also the best approach to the API because some transforms will need to be applied more than once, like if you resize, crop, rotate, then resize an image.

    UI 💬 Discussion 
    opened by hedgerh 22
  • DragDrop Restrictions on drag

    DragDrop Restrictions on drag

    Initial checklist

    • [X] I understand this is a feature request and questions should be posted in the Community Forum
    • [X] I searched issues and couldn’t find anything (or linked relevant results below)

    Problem

    when I try to drop with restrictions it not working properly

    Solution

    have a way to have a restrictions for drop: example: ``` .on('ondrop') => { this.uppy.setOptions({ restrictions: { maxTotalFileSize: 1024 * 1024 * 1024, // 1gb maxFileSize: 10 * 1024 * 1024, // 10mb minFileSize: 3 * 1024, // 3kb allowedFileTypes: props.restrictions ? supportedImageTypes : allSupportedTypes, }, }); })

    
    ### Alternatives
    
    Same as the example above
    Feature Triage 
    opened by dkrefta 2
  • send uppyAuthToken via wss

    send uppyAuthToken via wss

    Hello guys!

    This PR solves #4107,

    when users have Instagram installed on android and get redirected to authorize, the app is opened and after this, the app opens the browser to the authorization url, it provokes a lost of context for window.opener, meaning that the token is not sent to the client via postMessage

    this PR sends the uppyAuthToken via WSS using a token reference for wss.

    It was tested locally and added the tests to callbac.js in the companion package.

    pending end-to-end tests 
    opened by S0c5 1
  • BUG When user authorizes instagram in Android, user is redirected but gets a blank page.

    BUG When user authorizes instagram in Android, user is redirected but gets a blank page.

    Initial checklist

    • [X] I understand this is a bug report and questions should be posted in the Community Forum
    • [X] I searched issues and couldn’t find anything (or linked relevant results below)

    Link to runnable example

    No response

    Steps to reproduce

    how to reproduce?

    • Instgram app installed
    • Android 11
    1. open browser https://uppy.io/examples/dashboard/
    2. connect with instagram
    3. when the user authorizes Instagram app in the browser (chrome) is get redirected to a blank page

    What is causing the error:

    1. lost of context for window.opener when user is redirected through app to the authorization page.
    window.opener.sendMessage({ token }) // at instagram/send-token
    

    Work around?

    • we need to send the token via webSockets

    Expected behavior

    That I coud connect with instagram

    Actual behavior

    blank page at instagram/send-token/

    Bug Triage 
    opened by S0c5 4
  • @uppy/transloadit: implement Server-sent event API

    @uppy/transloadit: implement Server-sent event API

    Could replace Socket.io to get Assembly status update without HTTP polling. (See https://developer.mozilla.org/en-US/docs/Web/API/EventSource, and https://caniuse.com/eventsource)

    opened by aduh95 0
  • @uppy/core state and store types are outdated

    @uppy/core state and store types are outdated

    Initial checklist

    • [X] I understand this is a bug report and questions should be posted in the Community Forum
    • [X] I searched issues and couldn’t find anything (or linked relevant results below)

    Link to runnable example

    No response

    Steps to reproduce

    • Access the added files with uppy.state.files, validated by TS
    • Error: cannot read property "files" of undefined

    Expected behavior

    TS to error out when accessing uppy.state and instead support uppy.store.state.

    Actual behavior

    state is nested under store:

    image

    Bug Types Core 
    opened by a-kriya 5
  • [email protected](Sep 25, 2022)

    | Package | Version | Package | Version | | --------------- | ------- | --------------- | ------- | | @uppy/companion | 4.0.3 | uppy | 3.1.1 |

    • meta: Fix Companion release deploy (Antoine du Hamel)
    Source code(tar.gz)
    Source code(zip)
  • [email protected](Sep 25, 2022)

    | Package | Version | Package | Version | | ------------------------- | ------- | ------------------------- | ------- | | @uppy/angular | 0.4.2 | @uppy/onedrive | 3.0.1 | | @uppy/audio | 1.0.2 | @uppy/progress-bar | 3.0.1 | | @uppy/aws-s3 | 3.0.2 | @uppy/provider-views | 3.0.1 | | @uppy/aws-s3-multipart | 3.0.2 | @uppy/react | 3.0.2 | | @uppy/box | 2.0.1 | @uppy/redux-dev-tools | 3.0.1 | | @uppy/companion | 4.0.2 | @uppy/remote-sources | 1.0.2 | | @uppy/companion-client | 3.0.2 | @uppy/screen-capture | 3.0.1 | | @uppy/compressor | 1.0.1 | @uppy/status-bar | 3.0.1 | | @uppy/core | 3.0.2 | @uppy/store-default | 3.0.2 | | @uppy/dashboard | 3.1.0 | @uppy/store-redux | 3.0.2 | | @uppy/drag-drop | 3.0.1 | @uppy/svelte | 3.0.1 | | @uppy/drop-target | 2.0.1 | @uppy/thumbnail-generator | 3.0.2 | | @uppy/dropbox | 3.0.1 | @uppy/transloadit | 3.0.2 | | @uppy/facebook | 3.0.1 | @uppy/tus | 3.0.2 | | @uppy/file-input | 3.0.1 | @uppy/unsplash | 3.0.1 | | @uppy/form | 3.0.1 | @uppy/url | 3.0.1 | | @uppy/golden-retriever | 3.0.1 | @uppy/utils | 5.0.2 | | @uppy/google-drive | 3.0.1 | @uppy/vue | 1.0.1 | | @uppy/image-editor | 2.0.1 | @uppy/webcam | 3.2.0 | | @uppy/informer | 3.0.1 | @uppy/xhr-upload | 3.0.2 | | @uppy/instagram | 3.0.1 | @uppy/zoom | 2.0.1 | | @uppy/locales | 3.0.1 | uppy | 3.1.0 |

    • meta: Fix companion-deploy-yml (Mikael Finstad)
    • website: fix tag for Activity Feed (Livia Medeiros / #4118)
    • @uppy/golden-retriever: fix condition to load files from service worker (Merlijn Vos / #4115)
    • website: remove references to the deleted disc.html page (Antoine du Hamel / #4119)
    • @uppy/locales: Create uz_UZ (Ozodbek1405 / #4114)
    • @uppy/golden-retriever: Fix endless webcam re-render with Golden Retriever (Merlijn Vos / #4111)
    • @uppy/image-editor: image-editor: fix controls in small Dashboard (Livia Medeiros / #4113)
    • website: add “what is Uppy” to the blog post (Artur Paikin)
    • meta: fix Companion deploy (Antoine du Hamel / #4095)
    • @uppy/dashboard: add dashboard:show-panel event (Jon-Pierre Sanchez / #4108)
    • website: Small post fixes (Artur Paikin)
    • @uppy/companion: Companion throttle progress by time (Mikael Finstad / #4101)
    • meta: skip a few more unnecessary CI runs (Antoine du Hamel / #4106)
    • meta: resolve e2e flakiness (Merlijn Vos / #4077)
    • meta: run linters on almost every PRs (Antoine du Hamel / #4105)
    • website: 3.0 blog post tweaks (Merlijn Vos / #4104)
    • meta: Fix linter warnings in 3.0 post (Murderlon)
    • website: Add 3.0 blog post (Artur Paikin / #4046)
    • website: fix ESM import in example (Livia Medeiros / #4103)
    • doc: Update "Dashboard typo" (Laban / #4096)
    • @uppy/audio,@uppy/aws-s3-multipart,@uppy/aws-s3,@uppy/box,@uppy/companion-client,@uppy/companion,@uppy/compressor,@uppy/core,@uppy/dashboard,@uppy/drag-drop,@uppy/drop-target,@uppy/dropbox,@uppy/facebook,@uppy/file-input,@uppy/form,@uppy/golden-retriever,@uppy/google-drive,@uppy/image-editor,@uppy/informer,@uppy/instagram,@uppy/locales,@uppy/onedrive,@uppy/progress-bar,@uppy/provider-views,@uppy/react,@uppy/redux-dev-tools,@uppy/remote-sources,@uppy/screen-capture,@uppy/status-bar,@uppy/store-default,@uppy/store-redux,@uppy/svelte,@uppy/thumbnail-generator,@uppy/transloadit,@uppy/tus,@uppy/unsplash,@uppy/url,@uppy/utils,@uppy/vue,@uppy/webcam,@uppy/xhr-upload,@uppy/zoom: add missing entries to changelog for individual packages (Antoine du Hamel / #4092)
    • meta: ci: add GHA to tryout bundling Uppy with popular bundlers (Antoine du Hamel / #4084)
    • @uppy/core: Fix Restrictor counts ghost files against maxNumberOfFiles (Andrew McIntee / #4078)
    • uppy: add a decoy Core export to warn users about the renaming (Antoine du Hamel / #4085)
    • meta: run CI when modifying workflow files (Antoine du Hamel / #4091)
    • meta: limit the number of unnecessary CI runs (Antoine du Hamel / #4086)
    • meta: Update remote-sources.md (heocoi / #4087)
    • uppy: remove all remaining occurrences of Uppy.Core (Antoine du Hamel / #4082)
    • meta: fix typo in e2e.yml (Antoine du Hamel)
    • meta: Restrict e2e CI runs (Merlijn Vos / #4075)
    • @uppy/webcam: Set default videoConstraints (Artur Paikin / #4070)
    • @uppy/angular: Fix angular build error (Murderlon)
    • website: add Known issues section on Migration Guide (Antoine du Hamel / #4066)
    • @uppy/core: fix types (Antoine du Hamel / #4072)
    • doc: remove use of deprecated metaFields option (Antoine du Hamel / #4073)
    Source code(tar.gz)
    Source code(zip)
  • [email protected](Sep 25, 2022)

    | Package | Version | Package | Version | | ------------------------- | ------- | ------------------------- | ------- | | @uppy/angular | 0.3.2 | @uppy/thumbnail-generator | 2.2.2 | | @uppy/core | 2.3.4 | @uppy/robodog | 2.9.5 | | @uppy/dashboard | 2.4.3 | uppy | 2.13.6 | | @uppy/golden-retriever | 2.1.2 | | |

    • @uppy/golden-retriever: Fix endless webcam re-render with Golden Retriever (Merlijn Vos / #4111)
    • meta: run CI when modifying workflow files (Antoine du Hamel / #4091)
    • meta: limit the number of unnecessary CI runs (Antoine du Hamel / #4086)
    • meta: fix typo in e2e.yml (Antoine du Hamel)
    • meta: Restrict e2e CI runs (Merlijn Vos / #4075)
    • @uppy/core: Fix Restrictor counts ghost files against maxNumberOfFiles (Andrew McIntee / #4078)
    • meta: improve CI npm install time (Antoine du Hamel / #4058)
    • meta: fix Node.js 12.x CI (Antoine du Hamel)
    • @uppy/core: fix types (Antoine du Hamel / #4072)
    • @uppy/core,@uppy/dashboard,@uppy/thumbnail-generator: update definition type files for TS 4.8 compatibility (Antoine du Hamel / #4055)
    Source code(tar.gz)
    Source code(zip)
  • [email protected](Aug 30, 2022)

    | Package | Version | Package | Version | | ------------------------- | ------- | ------------------------- | ------- | | @uppy/angular | 0.4.1 | @uppy/store-default | 3.0.1 | | @uppy/audio | 1.0.1 | @uppy/store-redux | 3.0.1 | | @uppy/aws-s3 | 3.0.1 | @uppy/svelte | 3.0.0 | | @uppy/aws-s3-multipart | 3.0.1 | @uppy/thumbnail-generator | 3.0.1 | | @uppy/companion | 4.0.1 | @uppy/transloadit | 3.0.1 | | @uppy/companion-client | 3.0.1 | @uppy/tus | 3.0.1 | | @uppy/core | 3.0.1 | @uppy/utils | 5.0.1 | | @uppy/dashboard | 3.0.1 | @uppy/webcam | 3.1.0 | | @uppy/react | 3.0.1 | @uppy/xhr-upload | 3.0.1 | | @uppy/remote-sources | 1.0.1 | uppy | 3.0.1 |

    • @uppy/dashboard,@uppy/webcam: add nativeCameraFacingMode to Webcam and Dashboard (Artur Paikin / #4047)
    • meta: upgrade to Jest 29 (Antoine du Hamel / #4049)
    • @uppy/svelte: update peer dependencies (Antoine du Hamel / #4065)
    • @uppy/react: useUppy: fix unmount on NextJS dev mode (Matt Jesuele / #4062)
    • @uppy/vue: fix missing component in docs (Antoine du Hamel / #4063)
    • @uppy/angular: fix compiler warning (Antoine du Hamel / #4064)
    • meta: improve CI npm install time (Antoine du Hamel / #4058)
    • meta: example: fix Angular example package name (Antoine du Hamel / #4060)
    • meta: upgrade to TypeScript 4.8 (Antoine du Hamel / #4048)
    • @uppy/core,@uppy/dashboard,@uppy/thumbnail-generator: update definition type files for TS 4.8 compatibility (Antoine du Hamel / #4055)
    • @uppy/transloadit: improve deprecation notice (Antoine du Hamel / #4056)
    • @uppy/thumbnail-generator: fix exifr import (Antoine du Hamel / #4054)
    • @uppy/utils: fix relativePath when drag&dropping a folder (Antoine du Hamel / #4043)
    • @uppy/companion: Fix Companion license (Merlijn Vos / #4044)
    • e2e: add tests for AWS (Antoine du Hamel / #3665)
    • meta: Only publish Companion to Dockerhub on release (Merlijn Vos / #4037)
    • meta: fix linter warnings (Antoine du Hamel / #4039)
    • @uppy/utils: Post-release website fixes (Merlijn Vos / #4038)
    • @uppy/angular: fix peer dependencies (Antoine du Hamel / #4035)
    • meta: uppy.io homepage: Add Tus (Artur Paikin)
    • meta: Fix uppy.io homepage example (Artur Paikin)
    Source code(tar.gz)
    Source code(zip)
  • [email protected](Aug 30, 2022)

    | Package | Version | Package | Version | | ------------- | ------- | ------------- | ------- | | @uppy/tus | 2.4.4 | @uppy/robodog | 2.9.4 | | @uppy/utils | 4.1.3 | uppy | 2.13.5 |

    • @uppy/utils: fix relativePath when drag&dropping a folder (Antoine du Hamel / #4043)
    • @uppy/tus: avoid crashing when Tus client reports an error (Antoine du Hamel / #4019)
    Source code(tar.gz)
    Source code(zip)
  • [email protected](Aug 22, 2022)

    Migration guides: https://uppy.io/docs/migration-guides.html

    | Package | Version | Package | Version | | ------------------------- | ------- | ------------------------- | ------- | | @uppy/angular | 0.4.0 | @uppy/progress-bar | 3.0.0 | | @uppy/audio | 1.0.0 | @uppy/provider-views | 3.0.0 | | @uppy/aws-s3 | 3.0.0 | @uppy/react | 3.0.0 | | @uppy/aws-s3-multipart | 3.0.0 | @uppy/react-native | 0.4.0 | | @uppy/box | 2.0.0 | @uppy/redux-dev-tools | 3.0.0 | | @uppy/companion | 4.0.0 | @uppy/remote-sources | 1.0.0 | | @uppy/companion-client | 3.0.0 | @uppy/screen-capture | 3.0.0 | | @uppy/compressor | 1.0.0 | @uppy/status-bar | 3.0.0 | | @uppy/core | 3.0.0 | @uppy/store-default | 3.0.0 | | @uppy/dashboard | 3.0.0 | @uppy/store-redux | 3.0.0 | | @uppy/drag-drop | 3.0.0 | @uppy/svelte | 2.0.0 | | @uppy/drop-target | 2.0.0 | @uppy/thumbnail-generator | 3.0.0 | | @uppy/dropbox | 3.0.0 | @uppy/transloadit | 3.0.0 | | @uppy/facebook | 3.0.0 | @uppy/tus | 3.0.0 | | @uppy/file-input | 3.0.0 | @uppy/unsplash | 3.0.0 | | @uppy/form | 3.0.0 | @uppy/url | 3.0.0 | | @uppy/golden-retriever | 3.0.0 | @uppy/utils | 5.0.0 | | @uppy/google-drive | 3.0.0 | @uppy/vue | 1.0.0 | | @uppy/image-editor | 2.0.0 | @uppy/webcam | 3.0.0 | | @uppy/informer | 3.0.0 | @uppy/xhr-upload | 3.0.0 | | @uppy/instagram | 3.0.0 | @uppy/zoom | 2.0.0 | | @uppy/locales | 3.0.0 | uppy | 3.0.0 | | @uppy/onedrive | 3.0.0 | | |

    • docs: Use RemoteSources in readme example (Artur Paikin / #4030)
    • docs: Add migration guide for Uppy 3.x, Companion 4.x, and Robodog (Merlijn Vos / #3913)
    • example: upgrade React example to use React 18 (Antoine du Hamel / #4002)
    • meta: fix linter failures (Antoine du Hamel / #4029)
    • @uppy/vue: move @uppy/ packages to peer dependencies (Antoine du Hamel / #4024)
    • @uppy/robodog: remove package (Antoine du Hamel / #3946)
    • example: migrate digitalocean-spaces to ESM (Antoine du Hamel / #4015)
    • example: replace Robodog example with Transloadit + RemoteSources + Form (Antoine du Hamel / #4027)
    • website: replace Robodog example with Uppy plugins (Artur Paikin / #4026)
    • @uppy/aws-s3,@uppy/tus,@uppy/xhr-upload: @uppy/tus, @uppy/xhr-upload, @uppy/aws-s3: metaFields -> allowedMetaFields (Merlijn Vos / #4023)
    • example: showcase migration out of Robodog (Antoine du Hamel / #4021)
    • example: fix Svelte dev mode (Antoine du Hamel / #4025)
    • example: fix docs and env for Vite examples (Antoine du Hamel / #4018)
    • @uppy/tus: avoid crashing when Tus client reports an error (Antoine du Hamel / #4019)
    • @uppy/react: move @uppy/ packages to peer dependencies (Antoine du Hamel / #4004)
    • @uppy/core: core: uppy.addFile should accept browser File objects (Artur Paikin / #4020)
    • example: fix svelte example (Antoine du Hamel / #4017)
    • example: migrate python-xhr to ESM (Antoine du Hamel / #4010)
    • example: migrate php-xhr to ESM (Antoine du Hamel / #4009)
    • example: migrate node-xhr to ESM (Antoine du Hamel / #4008)
    • example: migrate xhr-bundle to ESM (Antoine du Hamel / #4012)
    • example: migrate multiple-instances to ESM (Antoine du Hamel / #4007)
    • example: replace transloadit-textarea with transloadit-markdown-bin (Antoine du Hamel / #4013)
    • example: add README to Svelte example (Antoine du Hamel / #4011)
    • build: Remove size-limit for now (Artur Paikin / #4003)
    • @uppy/core,@uppy/dashboard,@uppy/status-bar: Style tweaks: use all: initial + other resets (Artur Paikin / #3983)
    • @uppy/aws-s3: aws-s3: fix incorrect comparison for file-removed (Merlijn Vos / #3962)
    • example: update to new CDN export names (Antoine du Hamel / #4006)
    • example: fix dependencies of bundled example (Antoine du Hamel / #4005)
    • @uppy/tus: fix dependencies (Antoine du Hamel / #3923)
    • @uppy/tus: add file argument to onBeforeRequest (Merlijn Vos / #3984)
    • @uppy/utils: fix drop of multiple files on Chromium browsers (Antoine du Hamel / #3998)
    • @uppy/angular: upgrade to Angular 14 (Antoine du Hamel / #3997)
    • example: update Angular example to v14 (Antoine du Hamel / #3996)
    • @uppy/utils: Fix @uppy/utils microtip.scss export (Merlijn Vos / #3995)
    • docs: Companion: make streaming upload recommended & other docs tweaks (Mikael Finstad / #3994)
    Source code(tar.gz)
    Source code(zip)
  • [email protected](Aug 17, 2022)

    | Package | Version | Package | Version | | ------------------------- | ------- | ------------------------- | ------- | | @uppy/audio | 0.3.3 | @uppy/progress-bar | 2.1.2 | | @uppy/aws-s3 | 2.2.2 | @uppy/provider-views | 2.1.3 | | @uppy/aws-s3-multipart | 2.4.3 | @uppy/react | 2.2.3 | | @uppy/box | 1.0.8 | @uppy/redux-dev-tools | 2.1.1 | | @uppy/companion | 3.7.2 | @uppy/remote-sources | 0.1.2 | | @uppy/companion-client | 2.2.2 | @uppy/screen-capture | 2.1.2 | | @uppy/compressor | 0.3.3 | @uppy/status-bar | 2.2.2 | | @uppy/core | 2.3.3 | @uppy/store-default | 2.1.1 | | @uppy/dashboard | 2.4.2 | @uppy/store-redux | 2.1.1 | | @uppy/drag-drop | 2.1.2 | @uppy/svelte | 1.0.9 | | @uppy/drop-target | 1.1.4 | @uppy/thumbnail-generator | 2.2.1 | | @uppy/dropbox | 2.0.8 | @uppy/transloadit | 2.3.7 | | @uppy/facebook | 2.0.8 | @uppy/tus | 2.4.3 | | @uppy/file-input | 2.1.2 | @uppy/unsplash | 2.1.1 | | @uppy/form | 2.0.7 | @uppy/url | 2.2.1 | | @uppy/golden-retriever | 2.1.1 | @uppy/utils | 4.1.2 | | @uppy/google-drive | 2.1.2 | @uppy/vue | 0.4.9 | | @uppy/image-editor | 1.4.2 | @uppy/webcam | 2.2.2 | | @uppy/informer | 2.1.1 | @uppy/xhr-upload | 2.1.3 | | @uppy/instagram | 2.1.2 | @uppy/zoom | 1.1.2 | | @uppy/locales | 2.1.2 | uppy | 2.13.4 | | @uppy/onedrive | 2.1.2 | | |

    • @uppy/tus: add file argument to onBeforeRequest (Merlijn Vos / #3984)
    • meta: add CI to 2.x branch (Antoine du Hamel)
    • @uppy/utils: fix drop of multiple files on Chromium browsers (Antoine du Hamel / #3998)
    Source code(tar.gz)
    Source code(zip)
  • [email protected](Aug 16, 2022)

    | Package | Version | Package | Version | | ------------------------- | ------------ | ------------------------- | ------------ | | @uppy/audio | 1.0.0-beta.2 | @uppy/progress-bar | 3.0.0-beta.2 | | @uppy/aws-s3 | 3.0.0-beta.3 | @uppy/provider-views | 3.0.0-beta.3 | | @uppy/aws-s3-multipart | 3.0.0-beta.4 | @uppy/react | 3.0.0-beta.4 | | @uppy/box | 2.0.0-beta.2 | @uppy/redux-dev-tools | 3.0.0-beta.2 | | @uppy/companion | 4.0.0-beta.4 | @uppy/remote-sources | 1.0.0-beta.4 | | @uppy/companion-client | 3.0.0-beta.2 | @uppy/screen-capture | 3.0.0-beta.3 | | @uppy/compressor | 1.0.0-beta.3 | @uppy/status-bar | 3.0.0-beta.3 | | @uppy/core | 3.0.0-beta.4 | @uppy/store-default | 3.0.0-beta.3 | | @uppy/dashboard | 3.0.0-beta.4 | @uppy/store-redux | 3.0.0-beta.3 | | @uppy/drag-drop | 3.0.0-beta.2 | @uppy/svelte | 2.0.0-beta.2 | | @uppy/drop-target | 2.0.0-beta.3 | @uppy/thumbnail-generator | 3.0.0-beta.2 | | @uppy/dropbox | 3.0.0-beta.2 | @uppy/transloadit | 3.0.0-beta.5 | | @uppy/facebook | 3.0.0-beta.2 | @uppy/tus | 3.0.0-beta.3 | | @uppy/file-input | 3.0.0-beta.2 | @uppy/unsplash | 3.0.0-beta.2 | | @uppy/form | 3.0.0-beta.2 | @uppy/url | 3.0.0-beta.3 | | @uppy/golden-retriever | 3.0.0-beta.2 | @uppy/utils | 5.0.0-beta.1 | | @uppy/google-drive | 3.0.0-beta.2 | @uppy/vue | 1.0.0-beta.2 | | @uppy/image-editor | 2.0.0-beta.3 | @uppy/webcam | 3.0.0-beta.3 | | @uppy/informer | 3.0.0-beta.3 | @uppy/xhr-upload | 3.0.0-beta.3 | | @uppy/instagram | 3.0.0-beta.2 | @uppy/zoom | 2.0.0-beta.2 | | @uppy/locales | 3.0.0-beta.4 | uppy | 3.0.0-beta.5 | | @uppy/onedrive | 3.0.0-beta.2 | | |

    • meta: prepare release workflow for beta versions (Antoine du Hamel)
    • @uppy/provider-views: Reset filter input correctly in provider views (Merlijn Vos / #3978)
    • @uppy/aws-s3-multipart: Fix when using Companion (Merlijn Vos / #3969)
    • @uppy/companion: Companion: bring back default upload protocol (Mikael Finstad / #3967)
    • meta: Update CONTRIBUTING.md (Mikael Finstad / #3966)
    • meta: fix contributing link (Mikael Finstad / #3968)
    • @uppy/companion: enforce usage of uploadUrls (Mikael Finstad / #3965)
    • @uppy/utils: Fix webp mimetype (Merlijn Vos / #3961)
    • @uppy/locales: Add compressor string translation to Japanese locale (kenken / #3963)
    • meta: Fix statement about cropping images in README.md (Mikael Finstad / #3964)
    • @uppy/aws-s3-multipart: Fix race condition in #uploadParts (Morgan Zolob / #3955)
    • @uppy/provider-views: core validateRestrictions: return error directly vs the result/reason obj (Artur Paikin / #3951)
    • @uppy/aws-s3: Export AwsS3UploadParameters & AwsS3Options interfaces (Antonina Vertsinskaya / #3956)
    • website: convert all website examples to ESM (Antoine du Hamel / #3957)
    • @uppy/companion: fix crash if redis disconnects (Mikael Finstad / #3954)
    • @uppy/companion: upgrade ws version (Antoine du Hamel / #3949)
    • @uppy/companion: sort Dropbox response & refactor to async/await (Mikael Finstad / #3897)
    • @uppy/utils: modernize getDroppedFiles (Antoine du Hamel / #3534)
    • @uppy/companion: fix default getKey for non-standalone too (Mikael Finstad / #3945)
    • @uppy/aws-s3-multipart: ignore exception inside abortMultipartUpload (Antoine du Hamel / #3950)
    • @uppy/companion: remove isobject from dependencies (Antoine du Hamel / #3948)
    • @uppy/compressor: Fix Compressor being broken when no name is in the compressed blob (Artur Paikin / #3947)
    • @uppy/core,@uppy/react: Fix all breaking todo comments for 3.0 (Merlijn Vos / #3907)
    • @uppy/companion: show deprecation message when using legacy s3 options (Antoine du Hamel / #3944)
    • example: fix aws-companion example (Antoine du Hamel / #3850)
    Source code(tar.gz)
    Source code(zip)
  • [email protected](Aug 8, 2022)

    | Package | Version | Package | Version | | ---------------------- | ------- | ---------------------- | ------- | | @uppy/aws-s3-multipart | 2.4.2 | @uppy/robodog | 2.9.3 | | @uppy/compressor | 0.3.2 | uppy | 2.13.3 | | @uppy/utils | 4.1.1 | | |

    This release marks the transition of Uppy 2.x to maintenance mode. The team is now focused on working Uppy 3.0.0 releases, and plan to not land any new feature on the 2.x release line. We are committed on backporting bug fixes that affects the deprecated Robodog package and its dependencies for at least one year, we encourage Robodog users to migrate away from Robodog to Uppy plugins.

    • @uppy/aws-s3-multipart: Fix race condition in #uploadParts (Morgan Zolob / #3955)
    • meta: fork branch in preparation for LTS (Antoine du Hamel)
    • @uppy/aws-s3-multipart: ignore exception inside abortMultipartUpload (Antoine du Hamel / #3950)
    • @uppy/utils: modernize getDroppedFiles (Antoine du Hamel / #3534)
    • @uppy/compressor: Fix Compressor being broken when no name is in the compressed blob (Artur Paikin / #3947)
    • e2e: mark tests as flaky (Antoine du Hamel / #3940)
    Source code(tar.gz)
    Source code(zip)
  • [email protected](Aug 3, 2022)

    | Package | Version | Package | Version | | ---------------------- | ------------ | ---------------------- | ------------ | | @uppy/aws-s3-multipart | 3.0.0-beta.3 | @uppy/screen-capture | 3.0.0-beta.2 | | @uppy/companion | 4.0.0-beta.3 | @uppy/status-bar | 3.0.0-beta.2 | | @uppy/core | 3.0.0-beta.3 | @uppy/store-default | 3.0.0-beta.2 | | @uppy/dashboard | 3.0.0-beta.3 | @uppy/transloadit | 3.0.0-beta.4 | | @uppy/drop-target | 2.0.0-beta.2 | @uppy/tus | 3.0.0-beta.2 | | @uppy/informer | 3.0.0-beta.2 | @uppy/url | 3.0.0-beta.2 | | @uppy/react | 3.0.0-beta.3 | @uppy/robodog | 3.0.0-beta.4 | | @uppy/remote-sources | 1.0.0-beta.3 | uppy | 3.0.0-beta.4 |

    • @uppy/companion,@uppy/tus: Upgrade tus-js-client to 3.0.0 (Merlijn Vos / #3942)
    • meta: fix release script (Antoine du Hamel)
    • @uppy/aws-s3-multipart: Correctly handle errors for prepareUploadParts (Merlijn Vos / #3912)
    • @uppy/store-default: export the class, don't expose .callbacks (Antoine du Hamel / #3928)
    • @uppy/remote-sources: do not rely on .name property (Antoine du Hamel / #3941)
    • @uppy/screen-capture: fix TODOs (Antoine du Hamel / #3930)
    • @uppy/status-bar: rename internal modules (Antoine du Hamel / #3929)
    • @uppy/transloadit: remove static properties in favor of exports (Antoine du Hamel / #3927)
    • @uppy/informer: simplify render method (Antoine du Hamel / #3931)
    • @uppy/url: remove private methods from public API (Antoine du Hamel / #3934)
    • @uppy/dashboard: change copyToClipboard signature (Antoine du Hamel / #3933)
    • @uppy/drop-target: remove isFileTransfer from the public API (Antoine du Hamel / #3932)
    • meta: improve beta release script (Antoine du Hamel)

    | Package | Version | Package | Version | | ----------------- | ------- | ----------------- | ------- | | @uppy/transloadit | 2.3.6 | @uppy/robodog | 2.9.2 | | @uppy/tus | 2.4.2 | uppy | 2.13.2 |

    • @uppy/transloadit: send assembly-cancelled only once (Antoine du Hamel / #3937)
    • meta: keepNames in bundle (Antoine du Hamel / #3926)
    • meta: e2e: fix Transloadit test suite with Cypress 10 (Antoine du Hamel / #3936)
    • meta: Bump guzzlehttp/guzzle from 7.4.1 to 7.4.5 in /examples/aws-presigned-url (dependabot[bot] / #3842)
    • @uppy/tus: fix dependencies (Antoine du Hamel / #3923)
    • meta: doc: fix linter failure in image-editor.md (Antoine du Hamel / #3924)
    • meta: doc: Fix typo in image-editor.md (Ikko Ashimine / #3921)
    • website: Docs and header fix (Artur Paikin / #3920)
    Source code(tar.gz)
    Source code(zip)
  • [email protected](Aug 2, 2022)

    | Package | Version | Package | Version | | ----------------- | ------- | ----------------- | ------- | | @uppy/transloadit | 2.3.6 | @uppy/robodog | 2.9.2 | | @uppy/tus | 2.4.2 | uppy | 2.13.2 |

    • @uppy/transloadit: send assembly-cancelled only once (Antoine du Hamel / #3937)
    • meta: keepNames in bundle (Antoine du Hamel / #3926)
    • meta: e2e: fix Transloadit test suite with Cypress 10 (Antoine du Hamel / #3936)
    • meta: Bump guzzlehttp/guzzle from 7.4.1 to 7.4.5 in /examples/aws-presigned-url (dependabot[bot] / #3842)
    • @uppy/tus: fix dependencies (Antoine du Hamel / #3923)
    • meta: doc: fix linter failure in image-editor.md (Antoine du Hamel / #3924)
    • meta: doc: Fix typo in image-editor.md (Ikko Ashimine / #3921)
    • @uppy/robodog: Fix Robodog CDN url in readme.md (Artur Paikin / #3922)
    • website: Docs and header fix (Artur Paikin / #3920)
    Source code(tar.gz)
    Source code(zip)
  • [email protected](Jul 27, 2022)

    | Package | Version | Package | Version | | -------------------- | ------- | -------------------- | ------- | | @uppy/companion | 3.7.1 | @uppy/remote-sources | 0.1.1 | | @uppy/compressor | 0.3.1 | @uppy/transloadit | 2.3.5 | | @uppy/core | 2.3.2 | @uppy/robodog | 2.9.1 | | @uppy/dashboard | 2.4.1 | uppy | 2.13.1 | | @uppy/image-editor | 1.4.1 | | |

    • @uppy/compressor: fix upload causing meta name to reset (Justin / #3890)
    • @uppy/transloadit: cancel assemblies when all its files have been removed (Antoine du Hamel / #3893)
    • e2e: Add retries for flaky e2e test (Merlijn Vos / #3915)
    • @uppy/dashboard,@uppy/image-editor,@uppy/remote-sources: Fix uppy.close() crashes when remote-sources or image-editor is installed (Merlijn Vos / #3914)
    • @uppy/core: Add missing type for retry-all event (Luc Boissaye / #3901)
    • @uppy/companion: Companion app type (Mikael Finstad / #3899)
    • e2e: upgrade to Cypress 10 (Antoine du Hamel / #3896)
    • meta: Fix website build (Murderlon)
    • meta: Create new issue templates (Merlijn Vos / #3879)
    Source code(tar.gz)
    Source code(zip)
  • [email protected](Jul 27, 2022)

    | Package | Version | Package | Version | | ---------------------- | ------------ | ---------------------- | ------------ | | @uppy/aws-s3 | 3.0.0-beta.2 | @uppy/react | 3.0.0-beta.2 | | @uppy/aws-s3-multipart | 3.0.0-beta.2 | @uppy/remote-sources | 1.0.0-beta.2 | | @uppy/companion | 4.0.0-beta.2 | @uppy/store-redux | 3.0.0-beta.2 | | @uppy/compressor | 1.0.0-beta.2 | @uppy/transloadit | 3.0.0-beta.3 | | @uppy/core | 3.0.0-beta.2 | @uppy/webcam | 3.0.0-beta.2 | | @uppy/dashboard | 3.0.0-beta.2 | @uppy/xhr-upload | 3.0.0-beta.2 | | @uppy/image-editor | 2.0.0-beta.2 | @uppy/robodog | 3.0.0-beta.3 | | @uppy/locales | 3.0.0-beta.3 | uppy | 3.0.0-beta.3 |

    • @uppy/react: Fix exports in propTypes.js to fix website build (Murderlon)
    • @uppy/dashboard,@uppy/webcam: Add support for mobileNativeCamera option to Webcam and Dashboard (Artur Paikin / #3844)
    • @uppy/aws-s3-multipart: make headers part indexed too in prepareUploadParts (Merlijn Vos / #3895)
    • @uppy/aws-s3,@uppy/core,@uppy/dashboard,@uppy/store-redux,@uppy/xhr-upload: upgrade nanoid to v4 (Antoine du Hamel / #3904)
    • @uppy/companion: update minimal supported Node.js version in the docs (Antoine du Hamel / #3902)
    • @uppy/companion: upgrade redis to version 4.x (Antoine du Hamel / #3589)
    • @uppy/companion: remove unnecessary ts-ignores (Mikael Finstad / #3900)
    • meta: use node: protocol when using Node.js built-in core modules (Antoine du Hamel / #3871)
    • meta: upgrade to Vite v3 (Antoine du Hamel / #3882)
    • @uppy/companion: remove COMPANION_S3_GETKEY_SAFE_BEHAVIOR env variable (Antoine du Hamel / #3869)
    • meta: fix release script for major beta versions (Antoine du Hamel)
    Source code(tar.gz)
    Source code(zip)
  • [email protected](Jul 18, 2022)

    | Package | Version | Package | Version | | ------------------ | ------- | ------------------ | ------- | | @uppy/dashboard | 2.4.0 | @uppy/robodog | 2.9.0 | | @uppy/image-editor | 1.4.0 | uppy | 2.13.0 | | @uppy/transloadit | 2.3.4 | | |

    • @uppy/transloadit: fix outdated file ids and incorrect usage of files (Merlijn Vos / #3886)
    • @uppy/image-editor: remove beta notice (Merlijn Vos / #3877)
    • meta: Fix broken links in _posts/2019-08-1.3.md (YukeshShr / #3884)
    • meta: Fix broken link in _posts/2017-03-0.15.md (YukeshShr / #3883)
    • @uppy/image-editor: Add image editor cancel event (James R T / #3875)
    Source code(tar.gz)
    Source code(zip)
  • [email protected](Jul 11, 2022)

    | Package | Version | Package | Version | | ----------------- | ------- | ----------------- | ------- | | @uppy/transloadit | 2.3.3 | uppy | 2.12.3 | | @uppy/robodog | 2.8.3 | | |

    • @uppy/transloadit: fix TypeError when file is cancelled asynchronously (Antoine du Hamel / #3872)
    • @uppy/robodog,@uppy/transloadit: use modern syntax to simplify code (Antoine du Hamel / #3873)
    • meta: fix release-beta automation (Antoine du Hamel)
    Source code(tar.gz)
    Source code(zip)
  • [email protected](Jul 6, 2022)

    | Package | Version | Package | Version | | -------------------- | ------- | -------------------- | ------- | | @uppy/companion | 3.7.0 | @uppy/transloadit | 2.3.2 | | @uppy/locales | 2.1.1 | @uppy/robodog | 2.8.2 | | @uppy/provider-views | 2.1.2 | uppy | 2.12.2 |

    • @uppy/provider-views: improve logging (Mikael Finstad / #3638)
    • docs: de-dupe companion dev docs (Mikael Finstad / #3852)
    • @uppy/companion: Getkey safe behavior (Mikael Finstad / #3592)
    • website: fix broken links (YukeshShr / #3861)
    • @uppy/companion: doc: fix Google Drive example (Antoine du Hamel / #3855)
    • @uppy/locales,@uppy/transloadit: Fix undefined error in in onTusError (Merlijn Vos / #3848)
    • @uppy/companion: build an ARM64 container (Stuart Auld / #3841)
    • @uppy/locales: Add missing translations and reorder nl_NL locale (Kasper Meinema / #3839)
    • docs: Fix typo in aws-s3-multipart.md (Ikko Ashimine / #3838)
    • meta: do not rebase when preparing beta candidates (Antoine du Hamel)
    • meta: fix hard-coded branch name in release script (Antoine du Hamel)
    Source code(tar.gz)
    Source code(zip)
  • [email protected](Jul 6, 2022)

    | Package | Version | Package | Version | | -------------------- | ------------ | -------------------- | ------------ | | @uppy/companion | 4.0.0-beta.1 | @uppy/transloadit | 3.0.0-beta.2 | | @uppy/locales | 3.0.0-beta.2 | @uppy/robodog | 3.0.0-beta.2 | | @uppy/provider-views | 3.0.0-beta.2 | uppy | 3.0.0-beta.2 |

    • example: fix custom-provider example (Antoine du Hamel / #3854)
    • example: fix Vue3 example (Antoine du Hamel / #3774)
    • @uppy/companion: remove deprecated duplicated metrics (Mikael Finstad / #3833)
    • example: update CDN example (Antoine du Hamel / #3803)
    • @uppy/companion: Companion 3 default to no s3 acl (Mikael Finstad / #3826)
    • @uppy/companion: rewrite companion.app() to return an object (Mikael Finstad / #3827)
    • @uppy/companion: remove companion provider compat api (Mikael Finstad / #3828)
    • @uppy/companion: rewrite code for node >=14 (Mikael Finstad / #3829)
    • @uppy/companion: remove chunkSize backwards compatibility (Mikael Finstad / #3830)
    • @uppy/companion: Companion: make emitSuccess and emitError private (Mikael Finstad / #3832)
    • @uppy/companion: do not use a default upload protocol (Mikael Finstad / #3834)
    Source code(tar.gz)
    Source code(zip)
  • [email protected](Jun 9, 2022)

    | Package | Version | Package | Version | | ----------------- | ------- | ----------------- | ------- | | @uppy/transloadit | 2.3.1 | uppy | 2.12.1 | | @uppy/robodog | 2.8.1 | | |

    • @uppy/transloadit: fix COMPANION_PATTERN export (Antoine du Hamel / #3820)
    • meta: fix URL generation in the release script (Antoine du Hamel)
    Source code(tar.gz)
    Source code(zip)
  • [email protected](Jun 9, 2022)

    | Package | Version | Package | Version | | ------------------------- | ------------ | ------------------------- | ------------ | | uppy | 3.0.0-beta.1 | @uppy/google-drive | 3.0.0-beta.1 | | @uppy/audio | 1.0.0-beta.1 | @uppy/informer | 3.0.0-beta.1 | | @uppy/box | 2.0.0-beta.1 | @uppy/instagram | 3.0.0-beta.1 | | @uppy/compressor | 1.0.0-beta.1 | @uppy/locales | 3.0.0-beta.1 | | @uppy/drop-target | 2.0.0-beta.1 | @uppy/onedrive | 3.0.0-beta.1 | | @uppy/image-editor | 2.0.0-beta.1 | @uppy/progress-bar | 3.0.0-beta.1 | | @uppy/remote-sources | 1.0.0-beta.1 | @uppy/provider-views | 3.0.0-beta.1 | | @uppy/svelte | 2.0.0-beta.1 | @uppy/react | 3.0.0-beta.1 | | @uppy/vue | 1.0.0-beta.1 | @uppy/redux-dev-tools | 3.0.0-beta.1 | | @uppy/zoom | 2.0.0-beta.1 | @uppy/robodog | 3.0.0-beta.1 | | @uppy/aws-s3 | 3.0.0-beta.1 | @uppy/screen-capture | 3.0.0-beta.1 | | @uppy/aws-s3-multipart | 3.0.0-beta.1 | @uppy/status-bar | 3.0.0-beta.1 | | @uppy/companion-client | 3.0.0-beta.1 | @uppy/store-default | 3.0.0-beta.1 | | @uppy/core | 3.0.0-beta.1 | @uppy/store-redux | 3.0.0-beta.1 | | @uppy/dashboard | 3.0.0-beta.1 | @uppy/thumbnail-generator | 3.0.0-beta.1 | | @uppy/drag-drop | 3.0.0-beta.1 | @uppy/transloadit | 3.0.0-beta.1 | | @uppy/dropbox | 3.0.0-beta.1 | @uppy/tus | 3.0.0-beta.1 | | @uppy/facebook | 3.0.0-beta.1 | @uppy/unsplash | 3.0.0-beta.1 | | @uppy/file-input | 3.0.0-beta.1 | @uppy/url | 3.0.0-beta.1 | | @uppy/form | 3.0.0-beta.1 | @uppy/webcam | 3.0.0-beta.1 | | @uppy/golden-retriever | 3.0.0-beta.1 | @uppy/xhr-upload | 3.0.0-beta.1 |

    • meta: improve release process for beta branch (Antoine du Hamel / #3809)
    • uppy: refactor to ESM (Antoine du Hamel / #3807)
    • @uppy/core,@uppy/dashboard: fix types for some events (Antoine du Hamel / #3812)
    • example: update Vue2 example (Antoine du Hamel / #3802)
    Source code(tar.gz)
    Source code(zip)
  • [email protected](Jun 7, 2022)

    | Package | Version | Package | Version | | ---------------------- | ------- | ---------------------- | ------- | | @uppy/aws-s3 | 2.2.1 | @uppy/tus | 2.4.1 | | @uppy/aws-s3-multipart | 2.4.1 | @uppy/url | 2.2.0 | | @uppy/companion-client | 2.2.1 | @uppy/xhr-upload | 2.1.2 | | @uppy/core | 2.3.1 | @uppy/robodog | 2.8.0 | | @uppy/react | 2.2.2 | uppy | 2.12.0 | | @uppy/remote-sources | 0.1.0 | | |

    • @uppy/remote-sources: Add @uppy/remote-sources preset/plugin (Artur Paikin / #3676)
    • @uppy/react: Reset uppy instance when React component is unmounted (Tomasz Pęksa / #3814)
    • @uppy/aws-s3-multipart,@uppy/aws-s3,@uppy/tus: queue socket token requests for remote files (Merlijn Vos / #3797)
    • @uppy/xhr-upload: replace ev.target.status with xhr.status (Wes Sankey / #3782)
    • @uppy/core: fix TypeError when file was deleted (Antoine du Hamel / #3811)
    • @uppy/robodog: fix linter warnings (Antoine du Hamel / #3808)
    • meta: fix GHA workflow for prereleases (Antoine du Hamel)
    • @uppy/aws-s3-multipart: allow companionHeaders to be modified with setOptions (Paulo Lemos Neto / #3770)
    • @uppy/url: enable passing optional meta data to addFile (Brad Edelman / #3788)
    • @uppy/url: fix getFileNameFromUrl (Brad Edelman / #3804)
    • @uppy/tus: make onShouldRetry type optional (Merlijn Vos / #3800)
    • doc: fix React examples (Antoine du Hamel / #3799)
    • meta: add GHA workflow for prereleases (Antoine du Hamel)
    Source code(tar.gz)
    Source code(zip)
  • [email protected](May 30, 2022)

    | Package | Version | Package | Version | | ------------------------- | ------- | ------------------------- | ------- | | @uppy/angular | 0.3.1 | @uppy/progress-bar | 2.1.1 | | @uppy/audio | 0.3.2 | @uppy/provider-views | 2.1.1 | | @uppy/aws-s3 | 2.2.0 | @uppy/react | 2.2.1 | | @uppy/aws-s3-multipart | 2.4.0 | @uppy/react-native | 0.3.1 | | @uppy/box | 1.0.7 | @uppy/redux-dev-tools | 2.1.0 | | @uppy/companion | 3.6.0 | @uppy/screen-capture | 2.1.1 | | @uppy/companion-client | 2.2.0 | @uppy/status-bar | 2.2.1 | | @uppy/compressor | 0.3.0 | @uppy/store-default | 2.1.0 | | @uppy/core | 2.3.0 | @uppy/store-redux | 2.1.0 | | @uppy/dashboard | 2.3.0 | @uppy/thumbnail-generator | 2.2.0 | | @uppy/drag-drop | 2.1.1 | @uppy/transloadit | 2.3.0 | | @uppy/dropbox | 2.0.7 | @uppy/tus | 2.4.0 | | @uppy/facebook | 2.0.7 | @uppy/unsplash | 2.1.0 | | @uppy/file-input | 2.1.1 | @uppy/url | 2.1.1 | | @uppy/form | 2.0.6 | @uppy/utils | 4.1.0 | | @uppy/golden-retriever | 2.1.0 | @uppy/vue | 0.4.8 | | @uppy/google-drive | 2.1.1 | @uppy/webcam | 2.2.1 | | @uppy/image-editor | 1.3.0 | @uppy/xhr-upload | 2.1.1 | | @uppy/informer | 2.1.0 | @uppy/zoom | 1.1.1 | | @uppy/instagram | 2.1.1 | @uppy/robodog | 2.7.0 | | @uppy/onedrive | 2.1.1 | uppy | 2.11.0 |

    • doc: update bundler recommendation (Antoine du Hamel / #3763)
    • @uppy/aws-s3-multipart: refactor to ESM (Antoine du Hamel / #3672)
    • @uppy/aws-s3: fix JSDoc type error (Antoine du Hamel / #3785)
    • @uppy/aws-s3: refactor to ESM (Antoine du Hamel / #3673)
    • @uppy/companion-client: Revert "Revert "@uppy/companion-client: refactor to ESM"" (Antoine du Hamel / #3730)
    • @uppy/companion: expire redis keys after 1 day (Mikael Finstad / #3771)
    • @uppy/companion: fix some linter warnings (Antoine du Hamel / #3752)
    • @uppy/compressor: Fix Compressor docs, pass files array to compressor:complete event (Artur Paikin / #3682)
    • @uppy/core: refactor to ESM (Antoine du Hamel / #3744)
    • @uppy/dashboard: refactor to ESM (Antoine du Hamel / #3701)
    • @uppy/dashboard: use webkitRelativePath when querying a file's relative path (Eduard Müller / taktik / #3766)
    • @uppy/golden-retriever: refactor to ESM (Antoine du Hamel / #3731)
    • @uppy/image-editor: remove CJS-interop hack in the source code (Antoine du Hamel / #3778)
    • @uppy/informer: @uppy/Informer: refactor to ESM (Antoine du Hamel / #3732)
    • @uppy/informer: remove remaining require call (Antoine du Hamel / #3737)
    • @uppy/provider-views: Add onKeyPress event handler to capture e.shiftKey, unavailable in onChange (Artur Paikin / #3768)
    • @uppy/redux-dev-tools: refactor to ESM (Antoine du Hamel / #3733)
    • @uppy/screen-capture: don't install when unsupported (Artur Paikin / #3795)
    • @uppy/store-default: refactor to ESM (Antoine du Hamel / #3746)
    • @uppy/store-redux: refactor to ESM (Antoine du Hamel / #3745)
    • @uppy/thumbnail-generator: refactor to ESM (Antoine du Hamel / #3734)
    • @uppy/transloadit: refactor to ESM (Antoine du Hamel / #3725)
    • @uppy/transloadit: transloadit: propagate error details when creating Assembly fails (Renée Kooi / #3794)
    • @uppy/tus: Add onShouldRetry as option to @uppy/tus (Merlijn Vos / #3720)
    • @uppy/tus: fix broken import (Antoine du Hamel / #3729)
    • @uppy/tus: fixup! @uppy/tus: wait for user promise on beforeRequest (Antoine du Hamel / #3712)
    • @uppy/tus: wait for user promise on beforeRequest (Antoine du Hamel / #3712)
    • @uppy/unsplash: refactor to ESM (Antoine du Hamel / #3728)
    • @uppy/utils: refactor to ESM (Antoine du Hamel / #3721)
    • dev: fix dev env Vite's config (Antoine du Hamel)
    • dev: fix return type of generateSignatureIfSecret (Renée Kooi / #3793)
    • dev: remove vite-plugin-jsx-commonjs plugin on dev env (Antoine du Hamel / #3749)
    • dev: remove CJS-related hack in build:locale-pack script (Antoine du Hamel / #3764)
    • meta: e2e: run CI on PRs that modify the workflow file (Antoine du Hamel / #3740)
    • meta: fix linter warnings (Antoine du Hamel / #3753)
    • meta: fix more linter warnings (Antoine du Hamel / #3757)
    • meta: resolve warnings in .d.ts files (Antoine du Hamel / #3754)
    • meta: uppy: add Zoom plugin to the bundle and fix ESM exports (Antoine du Hamel / #3747)
    • test: Apply bin/update-yarn.sh (Merlijn Vos / #3775)
    • test: fix e2e dependency conflict (Merlijn Vos / #3779)
    • test: fixup! e2e: run CI on PRs that modify the workflow file (Antoine du Hamel / #3740)
    • test: prepare internal script files for lint rune hardening (Antoine du Hamel / #3760)
    • test: prepare test files for lint rule hardening (Antoine du Hamel / #3761)
    • test: Setup Cypress Dashboard (Merlijn Vos / #3691)
    • test: split Companion CI between Node.js legacy and supported versions (Antoine du Hamel / #3776)
    • website: disable linter warnings (Antoine du Hamel / #3759)
    Source code(tar.gz)
    Source code(zip)
  • [email protected](May 30, 2022)

    | Package | Version | Package | Version | | ------------------------- | ---------- | ------------------------- | ---------- | | @uppy/audio | 3.0.0-beta | @uppy/progress-bar | 3.0.0-beta | | @uppy/aws-s3 | 3.0.0-beta | @uppy/provider-views | 3.0.0-beta | | @uppy/aws-s3-multipart | 3.0.0-beta | @uppy/react | 3.0.0-beta | | @uppy/box | 3.0.0-beta | @uppy/redux-dev-tools | 3.0.0-beta | | @uppy/companion | 4.0.0-beta | @uppy/robodog | 3.0.0-beta | | @uppy/companion-client | 3.0.0-beta | @uppy/screen-capture | 3.0.0-beta | | @uppy/compressor | 3.0.0-beta | @uppy/status-bar | 3.0.0-beta | | @uppy/core | 3.0.0-beta | @uppy/store-default | 3.0.0-beta | | @uppy/dashboard | 3.0.0-beta | @uppy/store-redux | 3.0.0-beta | | @uppy/drag-drop | 3.0.0-beta | @uppy/svelte | 3.0.0-beta | | @uppy/drop-target | 3.0.0-beta | @uppy/thumbnail-generator | 3.0.0-beta | | @uppy/dropbox | 3.0.0-beta | @uppy/transloadit | 3.0.0-beta | | @uppy/facebook | 3.0.0-beta | @uppy/tus | 3.0.0-beta | | @uppy/file-input | 3.0.0-beta | @uppy/unsplash | 3.0.0-beta | | @uppy/form | 3.0.0-beta | @uppy/url | 3.0.0-beta | | @uppy/golden-retriever | 3.0.0-beta | @uppy/utils | 5.0.0-beta | | @uppy/google-drive | 3.0.0-beta | @uppy/vue | 3.0.0-beta | | @uppy/image-editor | 3.0.0-beta | @uppy/webcam | 3.0.0-beta | | @uppy/informer | 3.0.0-beta | @uppy/xhr-upload | 3.0.0-beta | | @uppy/instagram | 3.0.0-beta | @uppy/zoom | 3.0.0-beta | | @uppy/locales | 3.0.0-beta | uppy | 3.0.0-beta | | @uppy/onedrive | 3.0.0-beta | | |

    • meta: temporary adjust release script for the beta (Antoine du Hamel)
    • meta: disable ESM to CJS transform in dist files (Antoine du Hamel / #3773)
    • @uppy/companion: remove searchProviders wrapper & move s3 options (Merlijn Vos / #3781)
    • meta: do not test on EOL versions of Node.js (Antoine du Hamel / #3786)
    • @uppy/companion: remove support for EOL versions of Node.js (Antoine du Hamel / #3784)
    • @uppy/react: refactor to ESM (Antoine du Hamel / #3780)
    • @uppy/transloadit: remove IE 10 hack (Antoine du Hamel / #3777)
    Source code(tar.gz)
    Source code(zip)
  • [email protected](May 14, 2022)

    | Package | Version | Package | Version | | ---------------------- | ------- | ---------------------- | ------- | | @uppy/audio | 0.3.1 | @uppy/provider-views | 2.1.0 | | @uppy/aws-s3 | 2.1.0 | @uppy/react | 2.2.0 | | @uppy/aws-s3-multipart | 2.3.0 | @uppy/react-native | 0.3.0 | | @uppy/companion-client | 2.1.0 | @uppy/screen-capture | 2.1.0 | | @uppy/core | 2.2.0 | @uppy/status-bar | 2.2.0 | | @uppy/dashboard | 2.2.0 | @uppy/svelte | 1.0.8 | | @uppy/drag-drop | 2.1.0 | @uppy/transloadit | 2.2.0 | | @uppy/file-input | 2.1.0 | @uppy/tus | 2.3.0 | | @uppy/google-drive | 2.1.0 | @uppy/url | 2.1.0 | | @uppy/image-editor | 1.2.0 | @uppy/webcam | 2.2.0 | | @uppy/instagram | 2.1.0 | @uppy/xhr-upload | 2.1.0 | | @uppy/locales | 2.1.0 | @uppy/zoom | 1.1.0 | | @uppy/onedrive | 2.1.0 | @uppy/robodog | 2.6.0 | | @uppy/progress-bar | 2.1.0 | uppy | 2.10.0 |

    • @uppy/audio: fix types (Merlijn Vos / #3689)
    • @uppy/aws-s3-multipart,@uppy/aws-s3,@uppy/core,@uppy/react,@uppy/transloadit,@uppy/tus,@uppy/xhr-upload: proposal: Cancel assemblies optional (Mikael Finstad / #3575)
    • @uppy/aws-s3-multipart: export interface AwsS3MultipartOptions (Matteo Padovano / #3709)
    • @uppy/companion-client: refactor to ESM (Antoine du Hamel / #3693)
    • @uppy/companion: Only deploy on companion changes (kiloreux / #3677)
    • @uppy/core: add definition for addFiles method (Matteo Padovano / #3556)
    • @uppy/core: wrap plugins in div.uppy-Root and set dir attrubute in UIPlugin (Artur Paikin / #3692)
    • @uppy/google-drive: refactor to ESM (Antoine du Hamel / #3683)
    • @uppy/image-editor: refactor to ESM (Antoine du Hamel / #3685)
    • @uppy/instagram: refactor to ESM (Antoine du Hamel / #3696)
    • @uppy/locales: Add save translation to Spanish locale (Juan Carlos Alonso / #3678)
    • @uppy/locales: refactor to ESM (Antoine du Hamel / #3707)
    • @uppy/onedrive: refactor to ESM (Antoine du Hamel / #3694)
    • @uppy/progress-bar: refactor to ESM (Antoine du Hamel / #3706)
    • @uppy/provider-views: refactor to ESM (Antoine du Hamel / #3715)
    • @uppy/react: Support React 18 in @uppy/react (Merlijn Vos / #3680)
    • @uppy/screen-capture: refactor to ESM (Antoine du Hamel / #3698)
    • @uppy/status-bar: refactor to ESM (Antoine du Hamel / #3697)
    • @uppy/transloadit: add rate limiting for assembly creation and status polling (Antoine du Hamel / #3718)
    • @uppy/tus: refactor to ESM (Antoine du Hamel / #3724)
    • @uppy/url: refactor to ESM (Antoine du Hamel / #3713)
    • @uppy/webcam: refactor to ESM (Antoine du Hamel / #3686)
    • @uppy/xhr-upload: refactor to ESM (Antoine du Hamel / #3695)
    • @uppy/zoom: refactor to ESM (Antoine du Hamel / #3699)
    • meta: e2e: fix failing test (Antoine du Hamel / #3722)
    • test: harden linter rule for JSX/ESM validation (Antoine du Hamel / #3681)
    • test: harden linter rules for ESM/CJS validation (Antoine du Hamel / #3674)
    • test: Increase retries to trigger longer retryDelay in tus (Artur Paikin / #3726)
    • test: Remove it.only from e2e test (Merlijn Vos / #3690)
    • tests: Make Cypress more stable & add e2e test for error events when upload fails (Merlijn Vos / #3662)
    Source code(tar.gz)
    Source code(zip)
  • [email protected](Apr 27, 2022)

    | Package | Version | Package | Version | | --------------- | ------- | --------------- | ------- | | @uppy/companion | 3.5.2 | @uppy/robodog | 2.5.5 | | @uppy/core | 2.1.10 | uppy | 2.9.5 |

    • @uppy/companion: Bump moment from 2.29.1 to 2.29.2 (dependabot[bot] / #3635)
    • @uppy/core: fix TypeError when file was removed (Antoine du Hamel / #3670)
    Source code(tar.gz)
    Source code(zip)
  • [email protected](Apr 27, 2022)

    | Package | Version | Package | Version | | ---------------------- | ------- | ---------------------- | ------- | | @uppy/aws-s3-multipart | 2.2.2 | @uppy/file-input | 2.0.6 | | @uppy/box | 1.0.6 | @uppy/form | 2.0.5 | | @uppy/companion | 3.5.1 | @uppy/locales | 2.0.9 | | @uppy/compressor | 0.2.5 | @uppy/transloadit | 2.1.5 | | @uppy/core | 2.1.9 | @uppy/utils | 4.0.7 | | @uppy/drag-drop | 2.0.7 | @uppy/vue | 0.4.7 | | @uppy/drop-target | 1.1.3 | @uppy/robodog | 2.5.4 | | @uppy/dropbox | 2.0.6 | uppy | 2.9.4 | | @uppy/facebook | 2.0.6 | | |

    • @uppy/locales: Plural translation in cs_CZ local (JakubHaladej / #3666)
    • @uppy/vue: Add license field to package.json in @uppy/vue (Tobias Trumm / #3664)
    • meta: Add todo comments (Murderlon)
    • @uppy/facebook: refactor to ESM (Antoine du Hamel / #3653)
    • meta: locale-pack: refactor to use more parallel processing (Antoine du Hamel / #3630)
    • @uppy/file-input: refactor to ESM (Antoine du Hamel / #3652)
    • meta: sign requests sent to Transloadit in e2e suite (Antoine du Hamel / #3656)
    • meta: add VITE_TRANSLOADIT_SECRET for e2e (Antoine du Hamel)
    • meta: Update BACKLOG.md (Artur Paikin)
    • @uppy/form: refactor to ESM (Antoine du Hamel / #3654)
    • @uppy/dropbox: refactor to ESM (Antoine du Hamel / #3651)
    • meta: sign requests sent to Transloadit in dev env (Antoine du Hamel / #3517)
    • @uppy/drop-target: refactor to ESM (Antoine du Hamel / #3648)
    • @uppy/core: fix TypeError when file was removed (Antoine du Hamel / #3650)
    • @uppy/drag-drop: refactor to ESM (Antoine du Hamel / #3647)
    • meta: update outdated files (Antoine du Hamel / #3646)
    • @uppy/compressor: Set meta on file compression (Camilo Forero / #3644)
    • @uppy/transloadit: improve fetch error handling (Antoine du Hamel / #3637)
    • @uppy/box: refactor to ESM (Antoine du Hamel / #3643)
    • @uppy/utils: Fix getFileType for dicom images (Merlijn Vos / #3610)
    • @uppy/aws-s3-multipart: Add companionCookiesRule type to @uppy/aws-s3-multipart (Mauricio Ribeiro / #3623)
    Source code(tar.gz)
    Source code(zip)
  • [email protected](Apr 7, 2022)

    | Package | Version | Package | Version | | ------------- | ------- | ------------- | ------- | | @uppy/core | 2.1.8 | uppy | 2.9.3 | | @uppy/robodog | 2.5.3 | | |

    • @uppy/core: fix TypeError in event handler when file was removed (Antoine du Hamel / #3629)
    Source code(tar.gz)
    Source code(zip)
  • [email protected](Apr 7, 2022)

    | Package | Version | Package | Version | | ---------------------- | ------- | ---------------------- | ------- | | @uppy/aws-s3 | 2.0.9 | @uppy/utils | 4.0.6 | | @uppy/companion-client | 2.0.6 | @uppy/robodog | 2.5.2 | | @uppy/compressor | 0.2.4 | uppy | 2.9.2 | | @uppy/transloadit | 2.1.4 | | |

    • @uppy/aws-s3,@uppy/companion-client,@uppy/transloadit,@uppy/utils: Propagate isNetworkError through error wrappers (Renée Kooi / #3620)
    • @uppy/compressor: Merge new name and type into compressed file (Camilo Forero / #3606)
    Source code(tar.gz)
    Source code(zip)
  • [email protected](Mar 29, 2022)

    | Package | Version | Package | Version | | ------------- | ------- | ------------- | ------- | | @uppy/core | 2.1.7 | @uppy/robodog | 2.5.1 | | @uppy/tus | 2.2.2 | uppy | 2.9.1 |

    • @uppy/tus: fix hasOwn (Mikael Finstad / #3604)
    • meta: Increase test timeout for flaky e2e tests (Merlijn Vos / #3603)
    • meta: upgrade GHA actions (Antoine du Hamel / #3602)
    • @uppy/core: refactor: replace deprecated String.prototype.substr() (CommanderRoot / #3600)
    Source code(tar.gz)
    Source code(zip)
  • [email protected](Mar 24, 2022)

    | Package | Version | Package | Version | | ----------------- | ------- | ----------------- | ------- | | @uppy/companion | 3.5.0 | @uppy/webcam | 2.1.0 | | @uppy/status-bar | 2.1.3 | @uppy/robodog | 2.5.0 | | @uppy/transloadit | 2.1.2 | uppy | 2.9.0 | | @uppy/tus | 2.2.1 | | |

    • @uppy/transloadit: close assembly if upload is cancelled (Antoine du Hamel / #3591)
    • @uppy/companion: Companion server upload events (Mikael Finstad / #3544)
    • @uppy/tus: fix double requests sent when rate limiting (Antoine du Hamel / #3595)
    • website: fix linter error on blog post (Antoine du Hamel / #3596)
    • @uppy/companion: fix yarn test command (Antoine du Hamel / #3590)
    • @uppy/webcam: Mime types in webcam options type (Sobakin Sviatoslav / #3593)
    • website: Some polish and a better (?) intro for the recent update post (AJvanLoon / #3588)
    • @uppy/companion: Allow setting no ACL (Mikael Finstad / #3577)
    • @uppy/companion: Small companion code and doc changes (Mikael Finstad / #3586)
    • @uppy/robodog: fix CDN bundle (Antoine du Hamel / #3587)
    • website: Fix broken link (YukeshShr / #3581)
    Source code(tar.gz)
    Source code(zip)
  • [email protected](Mar 16, 2022)

    | Package | Version | Package | Version | | -------------------- | ------- | -------------------- | ------- | | @uppy/audio | 0.3.0 | @uppy/locales | 2.0.8 | | @uppy/aws-s3 | 2.0.8 | @uppy/provider-views | 2.0.8 | | @uppy/companion | 3.4.0 | @uppy/vue | 0.4.6 | | @uppy/compressor | 0.2.3 | @uppy/robodog | 2.4.0 | | @uppy/core | 2.1.6 | uppy | 2.8.0 | | @uppy/drop-target | 1.1.2 | | |

    • @uppy/aws-s3: fix wrong events being sent to companion (Mikael Finstad / #3576)
    • @uppy/compressor: ignore remote files, calculate savings correctly (Artur Paikin / #3578)
    • @uppy/companion: always log errors with stack trace (Mikael Finstad / #3573)
    • meta: remove incorrect s3 documentation (Mikael Finstad / #3571)
    • @uppy/companion: Companion refactor (Mikael Finstad / #3542)
    • website: partial ooops (Artur Paikin)
    • meta: run e2e workflow on the head branch instead of the base one (Antoine du Hamel / #3561)
    • website: Use Plausible instead of Google Analytics (Artur Paikin / #3567)
    • @uppy/vue: enforce use of file extension within the import path (Antoine du Hamel / #3560)
    • @uppy/drop-target: ignore if dropped elements aren't files (Penar Musaraj / #3563)
    • @uppy/core: Abstract restriction logic in a new Restricter class (Merlijn Vos / #3532)
    • @uppy/companion: Fetch all Google Drive shared drives (Robert DiMartino / #3553)
    • website: add blog post 2.4-2.7 (Artur Paikin / #3557)
    • meta: fix e2e (Antoine du Hamel / #3562)
    • meta: fix broken link (YukeshShr / #3559)
    • meta: fix support of export declaration in source files (Antoine du Hamel / #3558)
    • @uppy/companion: Order Google Drive results by folder to show all folders first (Robert DiMartino / #3546)
    • meta: add corsOrigins to docs (Mikael Finstad / #3554)
    • @uppy/audio: refactor to ESM (Antoine du Hamel / #3470)
    • @uppy/locales: compressor cleanup (Antoine du Hamel / #3531)
    • meta: fix CJS interop in Vite config (Antoine du Hamel / #3543)
    • @uppy/companion: upgrade node-redis-pubsub (Mikael Finstad / #3541)
    • @uppy/provider-views: provider-view: fix breadcrumbs (Artur Paikin / #3535)
    • meta: Update BACKLOG.md (Artur Paikin)
    • @uppy/locales: Update ru_RU.js (Sobakin Sviatoslav / #3529)
    • @uppy/companion: reorder reqToOptions (Antoine du Hamel / #3530)
    • meta: Fix yarn caching in github actions (Mikael Finstad / #3526)
    Source code(tar.gz)
    Source code(zip)
Owner
Transloadit
The world's most advanced file processing service for developers
Transloadit
A single-file <1kb min+gzip simplified implementation of the reactive core of Solid, optimized for clean code

A single-file <1kb min+gzip simplified implementation of the reactive core of Solid, optimized for clean code

Fabio Spampinato 97 Sep 28, 2022
Subscribe to any reactive source, weakly

sube Subscribe weakly to any reactive source import sub from './sube.js' unsub = sub(source, onnext, onerror?, oncomplete?) // ...unsubscribe unsub(

Spect 7 Sep 8, 2022
React ESI: Blazing-fast Server-Side Rendering for React and Next.js

React ESI: Blazing-fast Server-Side Rendering for React and Next.js React ESI is a super powerful cache library for vanilla React and Next.js applicat

Kévin Dunglas 622 Aug 28, 2022
Next Generation Visual Programming Platform

unit is a General Purpose Visual Programming Language and Environment built with a primary focus on Developer Experience.

Samuel Timbó 1.1k Sep 25, 2022
React library for ux4iot for easily building IoT web applications

React library for ux4iot for easily building IoT web applications

Device Insight 14 Sep 26, 2022
react-pdf-highlighter is a React library that provides annotation experience for PDF documents on web.

☕️ Buy me a coffee react-pdf-highlighter react-pdf-highlighter is a React library that provides annotation experience for PDF documents on web. It is

Vladyslav 2 May 20, 2022
⚡️The Fullstack React Framework — built on Next.js

⚡️The Fullstack React Framework — built on Next.js

⚡️Blitz 12.1k Sep 28, 2022
⚡️The Fullstack React Framework — built on Next.js — Inspired by Ruby on Rails

⚡️The Fullstack React Framework — built on Next.js — Inspired by Ruby on Rails

⚡️Blitz 9.4k Oct 12, 2021
Simple File uploader using React , styled-components and firebase

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

Daemon 1 Dec 30, 2021
File & Image Uploader (With Integrated Cloud Storage)

File & Image Uploader (With Integrated Cloud Storage) Get Started — Try on CodePen Supported Frameworks: React • Vue • Angular • jQuery • Plain JS Sup

Upload.io 48 Sep 27, 2022
React File Upload Widget - React Wrapper for Uploader

React File Upload Widget (With Integrated Cloud Storage) React Wrapper for Uploader • Developed by Upload.io Quick Start — Try on CodePen To implement

Upload.io 12 Sep 14, 2022
Fast, open and free-to-use new tab page for modern browsers

Mue Mue is a fast, open and free-to-use browser extension that gives a new, fresh and customisable tab page to modern browsers. Table of contents Scre

Mue 287 Sep 19, 2022
example how to use react-dropzone for drag 'n drop uploader

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

Hendra_Adri 1 Nov 5, 2021
The simple images uploader applied Render Props pattern that allows you to fully control UI component and behaviors.

react-images-uploading The simple images uploader applied Render Props pattern. (You can read more about this pattern here). This approach allows you

Tony 217 Sep 22, 2022
Avatar Uploader: A React component to upload and crop avatars

Avatar Uploader A React component to upload and crop avatars. Challenge This cha

João Pedrozo 11 Aug 2, 2022
React file input component for complete control over styling and abstraction from file reading.

react-file-reader-input React file input component for complete control over styling and abstraction from file reading. <FileReaderInput as={dataForma

Kevin Ngo 112 Aug 26, 2022
Native file viewer for React Native. Preview any type of file supported by the mobile device.

react-native-file-viewer Native file viewer for react-native. Preview any type of file supported by the mobile device. iOS: it uses QuickLook Framewor

Vincenzo Scamporlino 356 Sep 30, 2022
🦋 Component for building file fields - from basic file inputs to drag and drop image galleries.

?? react-butterfiles A small component for building file upload fields of any type, for example a simple file upload button or an image gallery field

Adrian Smijulj 45 Aug 26, 2022
ONA or Open News App is an open source React Native based application for WordPress News and Blog Websites.

ONA - WordPress Android Version . . ❗ ** iOS Version of App has not been tested yet.** About The App ONA or Open News App is an open source React Nati

Vikas Bukhari 35 Sep 3, 2022
Source code of the official F8 app of 2017, powered by React Native and other Facebook open source projects.

F8 App 2017 This is the entire source code of the official F8 app of 2017, available on Google Play and the App Store. How We Build It We've created a

Facebook Samples 14k Sep 24, 2022