diff --git a/BUNDLE-README.md b/BUNDLE-README.md
index 146a4a6a3..86c4d3b36 100644
--- a/BUNDLE-README.md
+++ b/BUNDLE-README.md
@@ -1,7 +1,7 @@
# Uppy
Hi, thanks for trying out the bundled version of the Uppy File Uploader. You can use
-this from a CDN (``) or bundle it with your webapp.
+this from a CDN (``) or bundle it with your webapp.
Note that the recommended way to use Uppy is to install it with yarn/npm and use a
bundler like Webpack so that you can create a smaller custom build with only the
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 935af7409..ea4c39e91 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -12,6 +12,30 @@ Please add your entries in this format:
In the current stage we aim to release a new version at least every month.
+## 3.16.0
+
+Released: 2023-09-18
+
+| Package | Version | Package | Version |
+| ------------------ | ------- | ------------------ | ------- |
+| @uppy/companion | 4.9.0 | @uppy/locales | 3.3.1 |
+| @uppy/compressor | 1.0.3 | @uppy/tus | 3.3.0 |
+| @uppy/dashboard | 3.5.3 | uppy | 3.16.0 |
+| @uppy/image-editor | 2.2.0 | | |
+
+- @uppy/tus: Fix: Utilize user-defined onSuccess, onError, and onProgress callbacks in @uppy/tus (choi sung keun / #4674)
+- @uppy/dashboard: Make file-editor:cancel event fire when the Image Editor “cancel” button is pressed (Artur Paikin / #4684)
+- @uppy/companion: add missing credentialsURL for box (Mikael Finstad / #4681)
+- @uppy/companion: remove s3 endpoints if s3 disabled (Mikael Finstad / #4675)
+- meta: use latest Node.js version for tests (Antoine du Hamel / #4662)
+- meta: Improve Contributing.md (Evgenia Karunus / #4633)
+- @uppy/compressor: update file.meta.name after compression, becase format/extension might have changed (Artur Paikin / #4645)
+- @uppy/companion: Onedrive refresh tokens (Mikael Finstad / #4655)
+- @uppy/companion: catch "invalid initialization vector" instead of crashing (Mikael Finstad / #4661)
+- @uppy/image-editor: Improve image rotation (Evgenia Karunus / #4639)
+- @uppy/locales: Feature/updating i18n farsi (Parsa Arvaneh / #4638)
+
+
## 3.15.0
Released: 2023-09-05
diff --git a/README.md b/README.md
index 84111da64..d86975295 100644
--- a/README.md
+++ b/README.md
@@ -65,7 +65,7 @@ const uppy = new Uppy()
npm install @uppy/core @uppy/dashboard @uppy/tus
```
-Add CSS [uppy.min.css](https://releases.transloadit.com/uppy/v3.15.0/uppy.min.css), either to your HTML page’s `
` or include in JS, if your bundler of choice supports it.
+Add CSS [uppy.min.css](https://releases.transloadit.com/uppy/v3.16.0/uppy.min.css), either to your HTML page’s `` or include in JS, if your bundler of choice supports it.
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,12 +73,12 @@ Alternatively, you can also use a pre-built bundle from Transloadit’s CDN: Edg
```html
-
+
+
```
## FAQ
@@ -419,73 +419,73 @@ Use Uppy in your project? [Let us know](https://github.com/transloadit/uppy/issu
:---: |:---: |:---: |:---: |:---: |:---: |
[pleasespammelater](https://github.com/pleasespammelater) |[naveed-ahmad](https://github.com/naveed-ahmad) |[trungcva10a6tn](https://github.com/trungcva10a6tn) |[nicojones](https://github.com/nicojones) |[coreprocess](https://github.com/coreprocess) |[nil1511](https://github.com/nil1511) |
-[ ](https://github.com/leftdevel) |[ ](https://github.com/Ozodbek1405) |[ ](https://github.com/cryptic022) |[ ](https://github.com/pascalwengerter) |[ ](https://github.com/patricklindsay) |[ ](https://github.com/plneto) |
+[ ](https://github.com/leftdevel) |[ ](https://github.com/Ozodbek1405) |[ ](https://github.com/cryptic022) |[ ](https://github.com/ParsaArvanehPA) |[ ](https://github.com/pascalwengerter) |[ ](https://github.com/patricklindsay) |
:---: |:---: |:---: |:---: |:---: |:---: |
-[leftdevel](https://github.com/leftdevel) |[Ozodbek1405](https://github.com/Ozodbek1405) |[cryptic022](https://github.com/cryptic022) |[pascalwengerter](https://github.com/pascalwengerter) |[patricklindsay](https://github.com/patricklindsay) |[plneto](https://github.com/plneto) |
+[leftdevel](https://github.com/leftdevel) |[Ozodbek1405](https://github.com/Ozodbek1405) |[cryptic022](https://github.com/cryptic022) |[ParsaArvanehPA](https://github.com/ParsaArvanehPA) |[pascalwengerter](https://github.com/pascalwengerter) |[patricklindsay](https://github.com/patricklindsay) |
-[ ](https://github.com/pedrofs) |[ ](https://github.com/pmusaraj) |[ ](https://github.com/phillipalexander) |[ ](https://github.com/ppadmavilasom) |[ ](https://github.com/Pzoco) |[ ](https://github.com/eman8519) |
+[ ](https://github.com/plneto) |[ ](https://github.com/pedrofs) |[ ](https://github.com/pmusaraj) |[ ](https://github.com/phillipalexander) |[ ](https://github.com/ppadmavilasom) |[ ](https://github.com/Pzoco) |
:---: |:---: |:---: |:---: |:---: |:---: |
-[pedrofs](https://github.com/pedrofs) |[pmusaraj](https://github.com/pmusaraj) |[phillipalexander](https://github.com/phillipalexander) |[ppadmavilasom](https://github.com/ppadmavilasom) |[Pzoco](https://github.com/Pzoco) |[eman8519](https://github.com/eman8519) |
+[plneto](https://github.com/plneto) |[pedrofs](https://github.com/pedrofs) |[pmusaraj](https://github.com/pmusaraj) |[phillipalexander](https://github.com/phillipalexander) |[ppadmavilasom](https://github.com/ppadmavilasom) |[Pzoco](https://github.com/Pzoco) |
-[ ](https://github.com/luarmr) |[ ](https://github.com/raulibanez) |[ ](https://github.com/refo) |[ ](https://github.com/SxDx) |[ ](https://github.com/robwilson1) |[ ](https://github.com/scherroman) |
+[ ](https://github.com/eman8519) |[ ](https://github.com/luarmr) |[ ](https://github.com/raulibanez) |[ ](https://github.com/refo) |[ ](https://github.com/SxDx) |[ ](https://github.com/robwilson1) |
:---: |:---: |:---: |:---: |:---: |:---: |
-[luarmr](https://github.com/luarmr) |[raulibanez](https://github.com/raulibanez) |[refo](https://github.com/refo) |[SxDx](https://github.com/SxDx) |[robwilson1](https://github.com/robwilson1) |[scherroman](https://github.com/scherroman) |
+[eman8519](https://github.com/eman8519) |[luarmr](https://github.com/luarmr) |[raulibanez](https://github.com/raulibanez) |[refo](https://github.com/refo) |[SxDx](https://github.com/SxDx) |[robwilson1](https://github.com/robwilson1) |
-[ ](https://github.com/rossng) |[ ](https://github.com/rart) |[ ](https://github.com/GNURub) |[ ](https://github.com/fortunto2) |[ ](https://github.com/samuelcolburn) |[ ](https://github.com/sdebacker) |
+[ ](https://github.com/scherroman) |[ ](https://github.com/rossng) |[ ](https://github.com/rart) |[ ](https://github.com/GNURub) |[ ](https://github.com/fortunto2) |[ ](https://github.com/samuelcolburn) |
:---: |:---: |:---: |:---: |:---: |:---: |
-[rossng](https://github.com/rossng) |[rart](https://github.com/rart) |[GNURub](https://github.com/GNURub) |[fortunto2](https://github.com/fortunto2) |[samuelcolburn](https://github.com/samuelcolburn) |[sdebacker](https://github.com/sdebacker) |
+[scherroman](https://github.com/scherroman) |[rossng](https://github.com/rossng) |[rart](https://github.com/rart) |[GNURub](https://github.com/GNURub) |[fortunto2](https://github.com/fortunto2) |[samuelcolburn](https://github.com/samuelcolburn) |
-[ ](https://github.com/sebasegovia01) |[ ](https://github.com/sergei-zelinsky) |[ ](https://github.com/szh) |[ ](https://github.com/SpazzMarticus) |[ ](https://github.com/waptik) |[ ](https://github.com/quigebo) |
+[ ](https://github.com/sdebacker) |[ ](https://github.com/sebasegovia01) |[ ](https://github.com/sergei-zelinsky) |[ ](https://github.com/szh) |[ ](https://github.com/SpazzMarticus) |[ ](https://github.com/waptik) |
:---: |:---: |:---: |:---: |:---: |:---: |
-[sebasegovia01](https://github.com/sebasegovia01) |[sergei-zelinsky](https://github.com/sergei-zelinsky) |[szh](https://github.com/szh) |[SpazzMarticus](https://github.com/SpazzMarticus) |[waptik](https://github.com/waptik) |[quigebo](https://github.com/quigebo) |
+[sdebacker](https://github.com/sdebacker) |[sebasegovia01](https://github.com/sebasegovia01) |[sergei-zelinsky](https://github.com/sergei-zelinsky) |[szh](https://github.com/szh) |[SpazzMarticus](https://github.com/SpazzMarticus) |[waptik](https://github.com/waptik) |
-[ ](https://github.com/amaitu) |[ ](https://github.com/steverob) |[ ](https://github.com/sjauld) |[ ](https://github.com/strayer) |[ ](https://github.com/taj) |[ ](https://github.com/Tashows) |
+[ ](https://github.com/quigebo) |[ ](https://github.com/amaitu) |[ ](https://github.com/steverob) |[ ](https://github.com/sjauld) |[ ](https://github.com/strayer) |[ ](https://github.com/taj) |
:---: |:---: |:---: |:---: |:---: |:---: |
-[amaitu](https://github.com/amaitu) |[steverob](https://github.com/steverob) |[sjauld](https://github.com/sjauld) |[strayer](https://github.com/strayer) |[taj](https://github.com/taj) |[Tashows](https://github.com/Tashows) |
+[quigebo](https://github.com/quigebo) |[amaitu](https://github.com/amaitu) |[steverob](https://github.com/steverob) |[sjauld](https://github.com/sjauld) |[strayer](https://github.com/strayer) |[taj](https://github.com/taj) |
-[ ](https://github.com/tcgj) |[ ](https://github.com/twarlop) |[ ](https://github.com/tmaier) |[ ](https://github.com/WIStudent) |[ ](https://github.com/tomsaleeba) |[ ](https://github.com/tomekp) |
+[ ](https://github.com/Tashows) |[ ](https://github.com/tcgj) |[ ](https://github.com/twarlop) |[ ](https://github.com/tmaier) |[ ](https://github.com/WIStudent) |[ ](https://github.com/tomsaleeba) |
:---: |:---: |:---: |:---: |:---: |:---: |
-[tcgj](https://github.com/tcgj) |[twarlop](https://github.com/twarlop) |[tmaier](https://github.com/tmaier) |[WIStudent](https://github.com/WIStudent) |[tomsaleeba](https://github.com/tomsaleeba) |[tomekp](https://github.com/tomekp) |
+[Tashows](https://github.com/Tashows) |[tcgj](https://github.com/tcgj) |[twarlop](https://github.com/twarlop) |[tmaier](https://github.com/tmaier) |[WIStudent](https://github.com/WIStudent) |[tomsaleeba](https://github.com/tomsaleeba) |
-[ ](https://github.com/tvaliasek) |[ ](https://github.com/top-master) |[ ](https://github.com/vially) |[ ](https://github.com/valentinoli) |[ ](https://github.com/stiig) |[ ](https://github.com/nagyv) |
+[ ](https://github.com/tomekp) |[ ](https://github.com/tvaliasek) |[ ](https://github.com/top-master) |[ ](https://github.com/vially) |[ ](https://github.com/valentinoli) |[ ](https://github.com/stiig) |
:---: |:---: |:---: |:---: |:---: |:---: |
-[tvaliasek](https://github.com/tvaliasek) |[top-master](https://github.com/top-master) |[vially](https://github.com/vially) |[valentinoli](https://github.com/valentinoli) |[stiig](https://github.com/stiig) |[nagyv](https://github.com/nagyv) |
+[tomekp](https://github.com/tomekp) |[tvaliasek](https://github.com/tvaliasek) |[top-master](https://github.com/top-master) |[vially](https://github.com/vially) |[valentinoli](https://github.com/valentinoli) |[stiig](https://github.com/stiig) |
-[ ](https://github.com/dwnste) |[ ](https://github.com/weston-sankey-mark43) |[ ](https://github.com/willycamargo) |[ ](https://github.com/xhocquet) |[ ](https://github.com/YehudaKremer) |[ ](https://github.com/zachconner) |
+[ ](https://github.com/nagyv) |[ ](https://github.com/dwnste) |[ ](https://github.com/weston-sankey-mark43) |[ ](https://github.com/willycamargo) |[ ](https://github.com/xhocquet) |[ ](https://github.com/YehudaKremer) |
:---: |:---: |:---: |:---: |:---: |:---: |
-[dwnste](https://github.com/dwnste) |[weston-sankey-mark43](https://github.com/weston-sankey-mark43) |[willycamargo](https://github.com/willycamargo) |[xhocquet](https://github.com/xhocquet) |[YehudaKremer](https://github.com/YehudaKremer) |[zachconner](https://github.com/zachconner) |
+[nagyv](https://github.com/nagyv) |[dwnste](https://github.com/dwnste) |[weston-sankey-mark43](https://github.com/weston-sankey-mark43) |[willycamargo](https://github.com/willycamargo) |[xhocquet](https://github.com/xhocquet) |[YehudaKremer](https://github.com/YehudaKremer) |
-[ ](https://github.com/zlawson-ut) |[ ](https://github.com/zackbloom) |[ ](https://github.com/sartoshi-foot-dao) |[ ](https://github.com/aduh95-test-account) |[ ](https://github.com/agreene-coursera) |[ ](https://github.com/alfatv) |
+[ ](https://github.com/zachconner) |[ ](https://github.com/zlawson-ut) |[ ](https://github.com/zackbloom) |[ ](https://github.com/sartoshi-foot-dao) |[ ](https://github.com/aduh95-test-account) |[ ](https://github.com/agreene-coursera) |
:---: |:---: |:---: |:---: |:---: |:---: |
-[zlawson-ut](https://github.com/zlawson-ut) |[zackbloom](https://github.com/zackbloom) |[sartoshi-foot-dao](https://github.com/sartoshi-foot-dao) |[aduh95-test-account](https://github.com/aduh95-test-account) |[agreene-coursera](https://github.com/agreene-coursera) |[alfatv](https://github.com/alfatv) |
+[zachconner](https://github.com/zachconner) |[zlawson-ut](https://github.com/zlawson-ut) |[zackbloom](https://github.com/zackbloom) |[sartoshi-foot-dao](https://github.com/sartoshi-foot-dao) |[aduh95-test-account](https://github.com/aduh95-test-account) |[agreene-coursera](https://github.com/agreene-coursera) |
-[ ](https://github.com/arggh) |[ ](https://github.com/avalla) |[ ](https://github.com/c0b41) |[ ](https://github.com/canvasbh) |[ ](https://github.com/christianwengert) |[ ](https://github.com/craigcbrunner) |
+[ ](https://github.com/alfatv) |[ ](https://github.com/arggh) |[ ](https://github.com/avalla) |[ ](https://github.com/c0b41) |[ ](https://github.com/canvasbh) |[ ](https://github.com/cgoinglove) |
:---: |:---: |:---: |:---: |:---: |:---: |
-[arggh](https://github.com/arggh) |[avalla](https://github.com/avalla) |[c0b41](https://github.com/c0b41) |[canvasbh](https://github.com/canvasbh) |[christianwengert](https://github.com/christianwengert) |[craigcbrunner](https://github.com/craigcbrunner) |
+[alfatv](https://github.com/alfatv) |[arggh](https://github.com/arggh) |[avalla](https://github.com/avalla) |[c0b41](https://github.com/c0b41) |[canvasbh](https://github.com/canvasbh) |[cgoinglove](https://github.com/cgoinglove) |
-[ ](https://github.com/darthf1) |[ ](https://github.com/dkisic) |[ ](https://github.com/elliotsayes) |[ ](https://github.com/fingul) |[ ](https://github.com/franckl) |[ ](https://github.com/gaelicwinter) |
+[ ](https://github.com/christianwengert) |[ ](https://github.com/craigcbrunner) |[ ](https://github.com/darthf1) |[ ](https://github.com/dkisic) |[ ](https://github.com/elliotsayes) |[ ](https://github.com/fingul) |
:---: |:---: |:---: |:---: |:---: |:---: |
-[darthf1](https://github.com/darthf1) |[dkisic](https://github.com/dkisic) |[elliotsayes](https://github.com/elliotsayes) |[fingul](https://github.com/fingul) |[franckl](https://github.com/franckl) |[gaelicwinter](https://github.com/gaelicwinter) |
+[christianwengert](https://github.com/christianwengert) |[craigcbrunner](https://github.com/craigcbrunner) |[darthf1](https://github.com/darthf1) |[dkisic](https://github.com/dkisic) |[elliotsayes](https://github.com/elliotsayes) |[fingul](https://github.com/fingul) |
-[ ](https://github.com/green-mike) |[ ](https://github.com/hxgf) |[ ](https://github.com/johnmanjiro13) |[ ](https://github.com/sontixyou) |[ ](https://github.com/kode-ninja) |[ ](https://github.com/jx-zyf) |
+[ ](https://github.com/franckl) |[ ](https://github.com/gaelicwinter) |[ ](https://github.com/green-mike) |[ ](https://github.com/hxgf) |[ ](https://github.com/johnmanjiro13) |[ ](https://github.com/sontixyou) |
:---: |:---: |:---: |:---: |:---: |:---: |
-[green-mike](https://github.com/green-mike) |[hxgf](https://github.com/hxgf) |[johnmanjiro13](https://github.com/johnmanjiro13) |[sontixyou](https://github.com/sontixyou) |[kode-ninja](https://github.com/kode-ninja) |[jx-zyf](https://github.com/jx-zyf) |
+[franckl](https://github.com/franckl) |[gaelicwinter](https://github.com/gaelicwinter) |[green-mike](https://github.com/green-mike) |[hxgf](https://github.com/hxgf) |[johnmanjiro13](https://github.com/johnmanjiro13) |[sontixyou](https://github.com/sontixyou) |
-[ ](https://github.com/magumbo) |[ ](https://github.com/mjlumetta) |[ ](https://github.com/mosi-kha) |[ ](https://github.com/neuronet77) |[ ](https://github.com/ninesalt) |[ ](https://github.com/odselsevier) |
+[ ](https://github.com/kode-ninja) |[ ](https://github.com/jx-zyf) |[ ](https://github.com/magumbo) |[ ](https://github.com/mjlumetta) |[ ](https://github.com/mosi-kha) |[ ](https://github.com/neuronet77) |
:---: |:---: |:---: |:---: |:---: |:---: |
-[magumbo](https://github.com/magumbo) |[mjlumetta](https://github.com/mjlumetta) |[mosi-kha](https://github.com/mosi-kha) |[neuronet77](https://github.com/neuronet77) |[ninesalt](https://github.com/ninesalt) |[odselsevier](https://github.com/odselsevier) |
+[kode-ninja](https://github.com/kode-ninja) |[jx-zyf](https://github.com/jx-zyf) |[magumbo](https://github.com/magumbo) |[mjlumetta](https://github.com/mjlumetta) |[mosi-kha](https://github.com/mosi-kha) |[neuronet77](https://github.com/neuronet77) |
-[ ](https://github.com/phil714) |[ ](https://github.com/luntta) |[ ](https://github.com/rhymes) |[ ](https://github.com/rlebosse) |[ ](https://github.com/rmoura-92) |[ ](https://github.com/rtaieb) |
+[ ](https://github.com/ninesalt) |[ ](https://github.com/odselsevier) |[ ](https://github.com/phil714) |[ ](https://github.com/luntta) |[ ](https://github.com/rhymes) |[ ](https://github.com/rlebosse) |
:---: |:---: |:---: |:---: |:---: |:---: |
-[phil714](https://github.com/phil714) |[luntta](https://github.com/luntta) |[rhymes](https://github.com/rhymes) |[rlebosse](https://github.com/rlebosse) |[rmoura-92](https://github.com/rmoura-92) |[rtaieb](https://github.com/rtaieb) |
+[ninesalt](https://github.com/ninesalt) |[odselsevier](https://github.com/odselsevier) |[phil714](https://github.com/phil714) |[luntta](https://github.com/luntta) |[rhymes](https://github.com/rhymes) |[rlebosse](https://github.com/rlebosse) |
-[ ](https://github.com/slawexxx44) |[ ](https://github.com/stduhpf) |[ ](https://github.com/thanhthot) |[ ](https://github.com/tusharjkhunt) |[ ](https://github.com/vedran555) |[ ](https://github.com/yoann-hellopret) |
+[ ](https://github.com/rmoura-92) |[ ](https://github.com/rtaieb) |[ ](https://github.com/slawexxx44) |[ ](https://github.com/stduhpf) |[ ](https://github.com/thanhthot) |[ ](https://github.com/tusharjkhunt) |
:---: |:---: |:---: |:---: |:---: |:---: |
-[slawexxx44](https://github.com/slawexxx44) |[stduhpf](https://github.com/stduhpf) |[thanhthot](https://github.com/thanhthot) |[tusharjkhunt](https://github.com/tusharjkhunt) |[vedran555](https://github.com/vedran555) |[yoann-hellopret](https://github.com/yoann-hellopret) |
+[rmoura-92](https://github.com/rmoura-92) |[rtaieb](https://github.com/rtaieb) |[slawexxx44](https://github.com/slawexxx44) |[stduhpf](https://github.com/stduhpf) |[thanhthot](https://github.com/thanhthot) |[tusharjkhunt](https://github.com/tusharjkhunt) |
-[ ](https://github.com/olitomas) |[ ](https://github.com/JimmyLv) |
-:---: |:---: |
-[olitomas](https://github.com/olitomas) |[JimmyLv](https://github.com/JimmyLv) |
+[ ](https://github.com/vedran555) |[ ](https://github.com/yoann-hellopret) |[ ](https://github.com/olitomas) |[ ](https://github.com/JimmyLv) |
+:---: |:---: |:---: |:---: |
+[vedran555](https://github.com/vedran555) |[yoann-hellopret](https://github.com/yoann-hellopret) |[olitomas](https://github.com/olitomas) |[JimmyLv](https://github.com/JimmyLv) |
diff --git a/examples/aws-nodejs/public/drag.html b/examples/aws-nodejs/public/drag.html
index cf883f290..1e5b65e54 100644
--- a/examples/aws-nodejs/public/drag.html
+++ b/examples/aws-nodejs/public/drag.html
@@ -3,7 +3,7 @@
Uppy
-
+