diff --git a/CHANGELOG.md b/CHANGELOG.md index f1f589db6..c8a9dfa9e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -101,6 +101,43 @@ PRs are welcome! Please do open an issue to discuss first if it's a big feature, - [ ] core: add maxTotalFileSize restriction #514 (@arturi) - [ ] providers: Provider Browser don't handle uppy restrictions, can we hide things that don't match the restrictions in Google Drive and Instagram? #1827 (@arturi) +## 1.19.1 + +Released: 2020-07-29 + +This is a bugfix release. The breaking change mentioned in 1.19.0 was much more severe than anticipated, because it affected the primary user-facing translation string. 1.19.1 hopes to restore backwards compatibility with all previous 1.x versions. Thanks to [@yaegor](https://github.com/yaegor) for pointing this out and to [@jonathanarbely](https://github.com/jonathanarbely) and [@fingul](https://github.com/fingul) for submitting translations for the new strings for German and Korean! + +| Package | Version | Package | Version | +|-|-|-|-| +| @uppy/aws-s3-multipart | 1.8.1 | @uppy/provider-views | 1.7.1 | +| @uppy/aws-s3 | 1.6.8 | @uppy/react | 1.10.1 | +| @uppy/companion-client | 1.5.2 | @uppy/redux-dev-tools | 1.3.3 | +| @uppy/core | 1.12.1 | @uppy/robodog | 1.9.1 | +| @uppy/dashboard | 1.12.1 | @uppy/screen-capture | 1.0.5 | +| @uppy/drag-drop | 1.4.17 | @uppy/status-bar | 1.7.2 | +| @uppy/dropbox | 1.4.10 | @uppy/store-default | 1.2.2 | +| @uppy/facebook | 1.1.10 | @uppy/store-redux | 1.2.2 | +| @uppy/file-input | 1.4.15 | @uppy/thumbnail-generator | 1.6.4 | +| @uppy/form | 1.3.18 | @uppy/transloadit | 1.6.4 | +| @uppy/golden-retriever | 1.3.17 | @uppy/tus | 1.7.2 | +| @uppy/google-drive | 1.5.10 | @uppy/url | 1.5.9 | +| @uppy/informer | 1.5.9 | @uppy/utils | 3.2.1 | +| @uppy/instagram | 1.4.10 | @uppy/webcam | 1.6.9 | +| @uppy/locales | 1.16.2 | @uppy/xhr-upload | 1.6.2 | +| @uppy/onedrive | 1.1.10 | uppy | 1.19.1 | +| @uppy/progress-bar | 1.3.17 | - | - | + +- @uppy/aws-s3: tighten type checks in default `getUploadParameters()` implementation (#2388 / @johnnyperkins) +- @uppy/dashboard: restore backwards compatibility for the locales (#2397 / @goto-bus-stop) +- @uppy/dashboard: revert Preact X version conflict fix, which was causing new bugs (#2405 / @goto-bus-stop) +- @uppy/locales: add stub value for `browseFiles` for all remaining translations (#2397 / @goto-bus-stop) +- @uppy/locales: add stub value for `browseFiles` for the German translation (#2396 / @jonathanarbely) +- @uppy/locales: tweak Korean wording and add the new `dropPaste*` strings (#2395 / @fingul) +- docs: document shape of file objects (#2371 / @goto-bus-stop) +- docs: document transloadit `waitForXYZ` options better (#2371 / @goto-bus-stop) +- docs: prefer constructor syntax `new Uppy()` over plain call syntax `Uppy()` (#2371 / @goto-bus-stop) +- website: fix a couple of cases where user-provided values were output to HTML unescaped. Thanks [Shivprsad Sammbhare](https://linkedin.com/in/shivprasadsambhare) for the report! + ## 1.19.0 Released: 2020-07-21 diff --git a/README.md b/README.md index 7a29382e7..ca1bfaa32 100644 --- a/README.md +++ b/README.md @@ -65,7 +65,7 @@ $ npm install @uppy/core @uppy/dashboard @uppy/tus We recommend installing from npm and then using a module bundler such as [Webpack](https://webpack.js.org/), [Browserify](http://browserify.org/) or [Rollup.js](http://rollupjs.org/). -Add CSS [uppy.min.css](https://transloadit.edgly.net/releases/uppy/v1.19.0/uppy.min.css), either to your HTML page's `` or include in JS, if your bundler of choice supports it — transforms and plugins are available for Browserify and Webpack. +Add CSS [uppy.min.css](https://transloadit.edgly.net/releases/uppy/v1.19.1/uppy.min.css), either to your HTML page's `` 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. @@ -73,10 +73,10 @@ Alternatively, you can also use a pre-built bundle from Transloadit's CDN: Edgly ```html - + - +
@@ -174,7 +174,7 @@ 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: ```html - + ``` ## FAQ @@ -259,117 +259,121 @@ Use Uppy in your project? [Let us know](https://github.com/transloadit/uppy/issu :---: |:---: |:---: |:---: |:---: |:---: | [sunil-shrestha](https://github.com/sunil-shrestha) |[yonahforst](https://github.com/yonahforst) |[stephentuso](https://github.com/stephentuso) |[mskelton](https://github.com/mskelton) |[btrice](https://github.com/btrice) |[behnammodi](https://github.com/behnammodi) | -[Burkes](https://github.com/Burkes) |[craigjennings11](https://github.com/craigjennings11) |[davekiss](https://github.com/davekiss) |[frobinsonj](https://github.com/frobinsonj) |[geertclerx](https://github.com/geertclerx) |[jasonbosco](https://github.com/jasonbosco) | +[Burkes](https://github.com/Burkes) |[craigjennings11](https://github.com/craigjennings11) |[davekiss](https://github.com/davekiss) |[elenalape](https://github.com/elenalape) |[frobinsonj](https://github.com/frobinsonj) |[geertclerx](https://github.com/geertclerx) | :---: |:---: |:---: |:---: |:---: |:---: | -[Burkes](https://github.com/Burkes) |[craigjennings11](https://github.com/craigjennings11) |[davekiss](https://github.com/davekiss) |[frobinsonj](https://github.com/frobinsonj) |[geertclerx](https://github.com/geertclerx) |[jasonbosco](https://github.com/jasonbosco) | +[Burkes](https://github.com/Burkes) |[craigjennings11](https://github.com/craigjennings11) |[davekiss](https://github.com/davekiss) |[elenalape](https://github.com/elenalape) |[frobinsonj](https://github.com/frobinsonj) |[geertclerx](https://github.com/geertclerx) | -[jedwood](https://github.com/jedwood) |[Mactaivsh](https://github.com/Mactaivsh) |[maferland](https://github.com/maferland) |[Martin005](https://github.com/Martin005) |[martiuslim](https://github.com/martiuslim) |[MatthiasKunnen](https://github.com/MatthiasKunnen) | +[jasonbosco](https://github.com/jasonbosco) |[jedwood](https://github.com/jedwood) |[Mactaivsh](https://github.com/Mactaivsh) |[maferland](https://github.com/maferland) |[Martin005](https://github.com/Martin005) |[martiuslim](https://github.com/martiuslim) | :---: |:---: |:---: |:---: |:---: |:---: | -[jedwood](https://github.com/jedwood) |[Mactaivsh](https://github.com/Mactaivsh) |[maferland](https://github.com/maferland) |[Martin005](https://github.com/Martin005) |[martiuslim](https://github.com/martiuslim) |[MatthiasKunnen](https://github.com/MatthiasKunnen) | +[jasonbosco](https://github.com/jasonbosco) |[jedwood](https://github.com/jedwood) |[Mactaivsh](https://github.com/Mactaivsh) |[maferland](https://github.com/maferland) |[Martin005](https://github.com/Martin005) |[martiuslim](https://github.com/martiuslim) | -[msand](https://github.com/msand) |[richartkeil](https://github.com/richartkeil) |[richmeij](https://github.com/richmeij) |[rosenfeld](https://github.com/rosenfeld) |[jrschumacher](https://github.com/jrschumacher) |[ThomasG77](https://github.com/ThomasG77) | +[MatthiasKunnen](https://github.com/MatthiasKunnen) |[msand](https://github.com/msand) |[richartkeil](https://github.com/richartkeil) |[richmeij](https://github.com/richmeij) |[rosenfeld](https://github.com/rosenfeld) |[jrschumacher](https://github.com/jrschumacher) | :---: |:---: |:---: |:---: |:---: |:---: | -[msand](https://github.com/msand) |[richartkeil](https://github.com/richartkeil) |[richmeij](https://github.com/richmeij) |[rosenfeld](https://github.com/rosenfeld) |[jrschumacher](https://github.com/jrschumacher) |[ThomasG77](https://github.com/ThomasG77) | +[MatthiasKunnen](https://github.com/MatthiasKunnen) |[msand](https://github.com/msand) |[richartkeil](https://github.com/richartkeil) |[richmeij](https://github.com/richmeij) |[rosenfeld](https://github.com/rosenfeld) |[jrschumacher](https://github.com/jrschumacher) | -[zhuangya](https://github.com/zhuangya) |[allenfantasy](https://github.com/allenfantasy) |[Zyclotrop-j](https://github.com/Zyclotrop-j) |[fortrieb](https://github.com/fortrieb) |[jarey](https://github.com/jarey) |[muhammadInam](https://github.com/muhammadInam) | +[ThomasG77](https://github.com/ThomasG77) |[zhuangya](https://github.com/zhuangya) |[allenfantasy](https://github.com/allenfantasy) |[Zyclotrop-j](https://github.com/Zyclotrop-j) |[fortrieb](https://github.com/fortrieb) |[jarey](https://github.com/jarey) | :---: |:---: |:---: |:---: |:---: |:---: | -[zhuangya](https://github.com/zhuangya) |[allenfantasy](https://github.com/allenfantasy) |[Zyclotrop-j](https://github.com/Zyclotrop-j) |[fortrieb](https://github.com/fortrieb) |[jarey](https://github.com/jarey) |[muhammadInam](https://github.com/muhammadInam) | +[ThomasG77](https://github.com/ThomasG77) |[zhuangya](https://github.com/zhuangya) |[allenfantasy](https://github.com/allenfantasy) |[Zyclotrop-j](https://github.com/Zyclotrop-j) |[fortrieb](https://github.com/fortrieb) |[jarey](https://github.com/jarey) | -[rettgerst](https://github.com/rettgerst) |[jukakoski](https://github.com/jukakoski) |[ajschmidt8](https://github.com/ajschmidt8) |[superhawk610](https://github.com/superhawk610) |[adamelmore](https://github.com/adamelmore) |[adamvigneault](https://github.com/adamvigneault) | +[muhammadInam](https://github.com/muhammadInam) |[rettgerst](https://github.com/rettgerst) |[jukakoski](https://github.com/jukakoski) |[ajschmidt8](https://github.com/ajschmidt8) |[superhawk610](https://github.com/superhawk610) |[adamelmore](https://github.com/adamelmore) | :---: |:---: |:---: |:---: |:---: |:---: | -[rettgerst](https://github.com/rettgerst) |[jukakoski](https://github.com/jukakoski) |[ajschmidt8](https://github.com/ajschmidt8) |[superhawk610](https://github.com/superhawk610) |[adamelmore](https://github.com/adamelmore) |[adamvigneault](https://github.com/adamvigneault) | +[muhammadInam](https://github.com/muhammadInam) |[rettgerst](https://github.com/rettgerst) |[jukakoski](https://github.com/jukakoski) |[ajschmidt8](https://github.com/ajschmidt8) |[superhawk610](https://github.com/superhawk610) |[adamelmore](https://github.com/adamelmore) | -[asmt3](https://github.com/asmt3) |[alexnj](https://github.com/alexnj) |[amitport](https://github.com/amitport) |[functino](https://github.com/functino) |[Botz](https://github.com/Botz) |[radarhere](https://github.com/radarhere) | +[adamvigneault](https://github.com/adamvigneault) |[asmt3](https://github.com/asmt3) |[alexnj](https://github.com/alexnj) |[amitport](https://github.com/amitport) |[functino](https://github.com/functino) |[Botz](https://github.com/Botz) | :---: |:---: |:---: |:---: |:---: |:---: | -[asmt3](https://github.com/asmt3) |[alexnj](https://github.com/alexnj) |[amitport](https://github.com/amitport) |[functino](https://github.com/functino) |[Botz](https://github.com/Botz) |[radarhere](https://github.com/radarhere) | +[adamvigneault](https://github.com/adamvigneault) |[asmt3](https://github.com/asmt3) |[alexnj](https://github.com/alexnj) |[amitport](https://github.com/amitport) |[functino](https://github.com/functino) |[Botz](https://github.com/Botz) | -[superandrew213](https://github.com/superandrew213) |[andychongyz](https://github.com/andychongyz) |[arthurdenner](https://github.com/arthurdenner) |[apuyou](https://github.com/apuyou) |[bochkarev-artem](https://github.com/bochkarev-artem) |[atsawin](https://github.com/atsawin) | +[radarhere](https://github.com/radarhere) |[superandrew213](https://github.com/superandrew213) |[andychongyz](https://github.com/andychongyz) |[arthurdenner](https://github.com/arthurdenner) |[apuyou](https://github.com/apuyou) |[bochkarev-artem](https://github.com/bochkarev-artem) | :---: |:---: |:---: |:---: |:---: |:---: | -[superandrew213](https://github.com/superandrew213) |[andychongyz](https://github.com/andychongyz) |[arthurdenner](https://github.com/arthurdenner) |[apuyou](https://github.com/apuyou) |[bochkarev-artem](https://github.com/bochkarev-artem) |[atsawin](https://github.com/atsawin) | +[radarhere](https://github.com/radarhere) |[superandrew213](https://github.com/superandrew213) |[andychongyz](https://github.com/andychongyz) |[arthurdenner](https://github.com/arthurdenner) |[apuyou](https://github.com/apuyou) |[bochkarev-artem](https://github.com/bochkarev-artem) | -[ayhankesicioglu](https://github.com/ayhankesicioglu) |[azeemba](https://github.com/azeemba) |[bducharme](https://github.com/bducharme) |[Quorafind](https://github.com/Quorafind) |[cellvinchung](https://github.com/cellvinchung) |[chao](https://github.com/chao) | +[atsawin](https://github.com/atsawin) |[ayhankesicioglu](https://github.com/ayhankesicioglu) |[azeemba](https://github.com/azeemba) |[bducharme](https://github.com/bducharme) |[Quorafind](https://github.com/Quorafind) |[cellvinchung](https://github.com/cellvinchung) | :---: |:---: |:---: |:---: |:---: |:---: | -[ayhankesicioglu](https://github.com/ayhankesicioglu) |[azeemba](https://github.com/azeemba) |[bducharme](https://github.com/bducharme) |[Quorafind](https://github.com/Quorafind) |[cellvinchung](https://github.com/cellvinchung) |[chao](https://github.com/chao) | +[atsawin](https://github.com/atsawin) |[ayhankesicioglu](https://github.com/ayhankesicioglu) |[azeemba](https://github.com/azeemba) |[bducharme](https://github.com/bducharme) |[Quorafind](https://github.com/Quorafind) |[cellvinchung](https://github.com/cellvinchung) | -[csprance](https://github.com/csprance) |[Aarbel](https://github.com/Aarbel) |[cbush06](https://github.com/cbush06) |[czj](https://github.com/czj) |[ardeois](https://github.com/ardeois) |[sercraig](https://github.com/sercraig) | +[chao](https://github.com/chao) |[csprance](https://github.com/csprance) |[Aarbel](https://github.com/Aarbel) |[cbush06](https://github.com/cbush06) |[czj](https://github.com/czj) |[ardeois](https://github.com/ardeois) | :---: |:---: |:---: |:---: |:---: |:---: | -[csprance](https://github.com/csprance) |[Aarbel](https://github.com/Aarbel) |[cbush06](https://github.com/cbush06) |[czj](https://github.com/czj) |[ardeois](https://github.com/ardeois) |[sercraig](https://github.com/sercraig) | +[chao](https://github.com/chao) |[csprance](https://github.com/csprance) |[Aarbel](https://github.com/Aarbel) |[cbush06](https://github.com/cbush06) |[czj](https://github.com/czj) |[ardeois](https://github.com/ardeois) | -[danmichaelo](https://github.com/danmichaelo) |[mrboomer](https://github.com/mrboomer) |[akizor](https://github.com/akizor) |[davilima6](https://github.com/davilima6) |[DennisKofflard](https://github.com/DennisKofflard) |[dominiceden](https://github.com/dominiceden) | +[sercraig](https://github.com/sercraig) |[danmichaelo](https://github.com/danmichaelo) |[mrboomer](https://github.com/mrboomer) |[akizor](https://github.com/akizor) |[davilima6](https://github.com/davilima6) |[DennisKofflard](https://github.com/DennisKofflard) | :---: |:---: |:---: |:---: |:---: |:---: | -[danmichaelo](https://github.com/danmichaelo) |[mrboomer](https://github.com/mrboomer) |[akizor](https://github.com/akizor) |[davilima6](https://github.com/davilima6) |[DennisKofflard](https://github.com/DennisKofflard) |[dominiceden](https://github.com/dominiceden) | +[sercraig](https://github.com/sercraig) |[danmichaelo](https://github.com/danmichaelo) |[mrboomer](https://github.com/mrboomer) |[akizor](https://github.com/akizor) |[davilima6](https://github.com/davilima6) |[DennisKofflard](https://github.com/DennisKofflard) | -[efbautista](https://github.com/efbautista) |[yoldar](https://github.com/yoldar) |[elenalape](https://github.com/elenalape) |[eliOcs](https://github.com/eliOcs) |[lowsprofile](https://github.com/lowsprofile) |[fgallinari](https://github.com/fgallinari) | +[jeetiss](https://github.com/jeetiss) |[dominiceden](https://github.com/dominiceden) |[efbautista](https://github.com/efbautista) |[yoldar](https://github.com/yoldar) |[eliOcs](https://github.com/eliOcs) |[lowsprofile](https://github.com/lowsprofile) | :---: |:---: |:---: |:---: |:---: |:---: | -[efbautista](https://github.com/efbautista) |[yoldar](https://github.com/yoldar) |[elenalape](https://github.com/elenalape) |[eliOcs](https://github.com/eliOcs) |[lowsprofile](https://github.com/lowsprofile) |[fgallinari](https://github.com/fgallinari) | +[jeetiss](https://github.com/jeetiss) |[dominiceden](https://github.com/dominiceden) |[efbautista](https://github.com/efbautista) |[yoldar](https://github.com/yoldar) |[eliOcs](https://github.com/eliOcs) |[lowsprofile](https://github.com/lowsprofile) | -[dtrucs](https://github.com/dtrucs) |[geoffappleford](https://github.com/geoffappleford) |[gjungb](https://github.com/gjungb) |[roenschg](https://github.com/roenschg) |[HughbertD](https://github.com/HughbertD) |[HussainAlkhalifah](https://github.com/HussainAlkhalifah) | +[fgallinari](https://github.com/fgallinari) |[dtrucs](https://github.com/dtrucs) |[geoffappleford](https://github.com/geoffappleford) |[gjungb](https://github.com/gjungb) |[roenschg](https://github.com/roenschg) |[HughbertD](https://github.com/HughbertD) | :---: |:---: |:---: |:---: |:---: |:---: | -[dtrucs](https://github.com/dtrucs) |[geoffappleford](https://github.com/geoffappleford) |[gjungb](https://github.com/gjungb) |[roenschg](https://github.com/roenschg) |[HughbertD](https://github.com/HughbertD) |[HussainAlkhalifah](https://github.com/HussainAlkhalifah) | +[fgallinari](https://github.com/fgallinari) |[dtrucs](https://github.com/dtrucs) |[geoffappleford](https://github.com/geoffappleford) |[gjungb](https://github.com/gjungb) |[roenschg](https://github.com/roenschg) |[HughbertD](https://github.com/HughbertD) | -[huydod](https://github.com/huydod) |[ishendyweb](https://github.com/ishendyweb) |[NaxYo](https://github.com/NaxYo) |[intenzive](https://github.com/intenzive) |[JacobMGEvans](https://github.com/JacobMGEvans) |[jdssem](https://github.com/jdssem) | +[HussainAlkhalifah](https://github.com/HussainAlkhalifah) |[huydod](https://github.com/huydod) |[ishendyweb](https://github.com/ishendyweb) |[NaxYo](https://github.com/NaxYo) |[intenzive](https://github.com/intenzive) |[JacobMGEvans](https://github.com/JacobMGEvans) | :---: |:---: |:---: |:---: |:---: |:---: | -[huydod](https://github.com/huydod) |[ishendyweb](https://github.com/ishendyweb) |[NaxYo](https://github.com/NaxYo) |[intenzive](https://github.com/intenzive) |[JacobMGEvans](https://github.com/JacobMGEvans) |[jdssem](https://github.com/jdssem) | +[HussainAlkhalifah](https://github.com/HussainAlkhalifah) |[huydod](https://github.com/huydod) |[ishendyweb](https://github.com/ishendyweb) |[NaxYo](https://github.com/NaxYo) |[intenzive](https://github.com/intenzive) |[JacobMGEvans](https://github.com/JacobMGEvans) | -[jcjmcclean](https://github.com/jcjmcclean) |[janklimo](https://github.com/janklimo) |[vith](https://github.com/vith) |[jessica-coursera](https://github.com/jessica-coursera) |[theJoeBiz](https://github.com/theJoeBiz) |[jderrough](https://github.com/jderrough) | +[jdssem](https://github.com/jdssem) |[jcjmcclean](https://github.com/jcjmcclean) |[janklimo](https://github.com/janklimo) |[vith](https://github.com/vith) |[jessica-coursera](https://github.com/jessica-coursera) |[theJoeBiz](https://github.com/theJoeBiz) | :---: |:---: |:---: |:---: |:---: |:---: | -[jcjmcclean](https://github.com/jcjmcclean) |[janklimo](https://github.com/janklimo) |[vith](https://github.com/vith) |[jessica-coursera](https://github.com/jessica-coursera) |[theJoeBiz](https://github.com/theJoeBiz) |[jderrough](https://github.com/jderrough) | +[jdssem](https://github.com/jdssem) |[jcjmcclean](https://github.com/jcjmcclean) |[janklimo](https://github.com/janklimo) |[vith](https://github.com/vith) |[jessica-coursera](https://github.com/jessica-coursera) |[theJoeBiz](https://github.com/theJoeBiz) | -[jonathanly](https://github.com/jonathanly) |[jorgeepc](https://github.com/jorgeepc) |[julianocomg](https://github.com/julianocomg) |[dogrocker](https://github.com/dogrocker) |[firesharkstudios](https://github.com/firesharkstudios) |[kyleparisi](https://github.com/kyleparisi) | +[johnnyperkins](https://github.com/johnnyperkins) |[jonathanarbely](https://github.com/jonathanarbely) |[jderrough](https://github.com/jderrough) |[jonathanly](https://github.com/jonathanly) |[jorgeepc](https://github.com/jorgeepc) |[julianocomg](https://github.com/julianocomg) | :---: |:---: |:---: |:---: |:---: |:---: | -[jonathanly](https://github.com/jonathanly) |[jorgeepc](https://github.com/jorgeepc) |[julianocomg](https://github.com/julianocomg) |[dogrocker](https://github.com/dogrocker) |[firesharkstudios](https://github.com/firesharkstudios) |[kyleparisi](https://github.com/kyleparisi) | +[johnnyperkins](https://github.com/johnnyperkins) |[jonathanarbely](https://github.com/jonathanarbely) |[jderrough](https://github.com/jderrough) |[jonathanly](https://github.com/jonathanly) |[jorgeepc](https://github.com/jorgeepc) |[julianocomg](https://github.com/julianocomg) | -[lafe](https://github.com/lafe) |[larowlan](https://github.com/larowlan) |[dviry](https://github.com/dviry) |[galli-leo](https://github.com/galli-leo) |[leods92](https://github.com/leods92) |[louim](https://github.com/louim) | +[dogrocker](https://github.com/dogrocker) |[firesharkstudios](https://github.com/firesharkstudios) |[kyleparisi](https://github.com/kyleparisi) |[lafe](https://github.com/lafe) |[larowlan](https://github.com/larowlan) |[dviry](https://github.com/dviry) | :---: |:---: |:---: |:---: |:---: |:---: | -[lafe](https://github.com/lafe) |[larowlan](https://github.com/larowlan) |[dviry](https://github.com/dviry) |[galli-leo](https://github.com/galli-leo) |[leods92](https://github.com/leods92) |[louim](https://github.com/louim) | +[dogrocker](https://github.com/dogrocker) |[firesharkstudios](https://github.com/firesharkstudios) |[kyleparisi](https://github.com/kyleparisi) |[lafe](https://github.com/lafe) |[larowlan](https://github.com/larowlan) |[dviry](https://github.com/dviry) | -[lucaperret](https://github.com/lucaperret) |[mperrando](https://github.com/mperrando) |[marcusforsberg](https://github.com/marcusforsberg) |[Acconut](https://github.com/Acconut) |[mattfik](https://github.com/mattfik) |[matthewhartstonge](https://github.com/matthewhartstonge) | +[galli-leo](https://github.com/galli-leo) |[leods92](https://github.com/leods92) |[louim](https://github.com/louim) |[lucaperret](https://github.com/lucaperret) |[mperrando](https://github.com/mperrando) |[marcusforsberg](https://github.com/marcusforsberg) | :---: |:---: |:---: |:---: |:---: |:---: | -[lucaperret](https://github.com/lucaperret) |[mperrando](https://github.com/mperrando) |[marcusforsberg](https://github.com/marcusforsberg) |[Acconut](https://github.com/Acconut) |[mattfik](https://github.com/mattfik) |[matthewhartstonge](https://github.com/matthewhartstonge) | +[galli-leo](https://github.com/galli-leo) |[leods92](https://github.com/leods92) |[louim](https://github.com/louim) |[lucaperret](https://github.com/lucaperret) |[mperrando](https://github.com/mperrando) |[marcusforsberg](https://github.com/marcusforsberg) | -[hrsh](https://github.com/hrsh) |[mhulet](https://github.com/mhulet) |[mkabatek](https://github.com/mkabatek) |[achmiral](https://github.com/achmiral) |[mnafees](https://github.com/mnafees) |[shahimclt](https://github.com/shahimclt) | +[Acconut](https://github.com/Acconut) |[mattfik](https://github.com/mattfik) |[matthewhartstonge](https://github.com/matthewhartstonge) |[hrsh](https://github.com/hrsh) |[mhulet](https://github.com/mhulet) |[mkabatek](https://github.com/mkabatek) | :---: |:---: |:---: |:---: |:---: |:---: | -[hrsh](https://github.com/hrsh) |[mhulet](https://github.com/mhulet) |[mkabatek](https://github.com/mkabatek) |[achmiral](https://github.com/achmiral) |[mnafees](https://github.com/mnafees) |[shahimclt](https://github.com/shahimclt) | +[Acconut](https://github.com/Acconut) |[mattfik](https://github.com/mattfik) |[matthewhartstonge](https://github.com/matthewhartstonge) |[hrsh](https://github.com/hrsh) |[mhulet](https://github.com/mhulet) |[mkabatek](https://github.com/mkabatek) | -[naveed-ahmad](https://github.com/naveed-ahmad) |[nicojones](https://github.com/nicojones) |[olemoign](https://github.com/olemoign) |[leftdevel](https://github.com/leftdevel) |[cryptic022](https://github.com/cryptic022) |[pedrofs](https://github.com/pedrofs) | +[achmiral](https://github.com/achmiral) |[mnafees](https://github.com/mnafees) |[shahimclt](https://github.com/shahimclt) |[naveed-ahmad](https://github.com/naveed-ahmad) |[nicojones](https://github.com/nicojones) |[olemoign](https://github.com/olemoign) | :---: |:---: |:---: |:---: |:---: |:---: | -[naveed-ahmad](https://github.com/naveed-ahmad) |[nicojones](https://github.com/nicojones) |[olemoign](https://github.com/olemoign) |[leftdevel](https://github.com/leftdevel) |[cryptic022](https://github.com/cryptic022) |[pedrofs](https://github.com/pedrofs) | +[achmiral](https://github.com/achmiral) |[mnafees](https://github.com/mnafees) |[shahimclt](https://github.com/shahimclt) |[naveed-ahmad](https://github.com/naveed-ahmad) |[nicojones](https://github.com/nicojones) |[olemoign](https://github.com/olemoign) | -[phillipalexander](https://github.com/phillipalexander) |[Pzoco](https://github.com/Pzoco) |[eman8519](https://github.com/eman8519) |[luarmr](https://github.com/luarmr) |[phobos101](https://github.com/phobos101) |[romain-preston](https://github.com/romain-preston) | +[leftdevel](https://github.com/leftdevel) |[cryptic022](https://github.com/cryptic022) |[pedrofs](https://github.com/pedrofs) |[phillipalexander](https://github.com/phillipalexander) |[Pzoco](https://github.com/Pzoco) |[eman8519](https://github.com/eman8519) | :---: |:---: |:---: |:---: |:---: |:---: | -[phillipalexander](https://github.com/phillipalexander) |[Pzoco](https://github.com/Pzoco) |[eman8519](https://github.com/eman8519) |[luarmr](https://github.com/luarmr) |[phobos101](https://github.com/phobos101) |[romain-preston](https://github.com/romain-preston) | +[leftdevel](https://github.com/leftdevel) |[cryptic022](https://github.com/cryptic022) |[pedrofs](https://github.com/pedrofs) |[phillipalexander](https://github.com/phillipalexander) |[Pzoco](https://github.com/Pzoco) |[eman8519](https://github.com/eman8519) | -[scherroman](https://github.com/scherroman) |[fortunto2](https://github.com/fortunto2) |[samuelcolburn](https://github.com/samuelcolburn) |[sergei-zelinsky](https://github.com/sergei-zelinsky) |[SpazzMarticus](https://github.com/SpazzMarticus) |[suchoproduction](https://github.com/suchoproduction) | +[luarmr](https://github.com/luarmr) |[phobos101](https://github.com/phobos101) |[romain-preston](https://github.com/romain-preston) |[scherroman](https://github.com/scherroman) |[fortunto2](https://github.com/fortunto2) |[samuelcolburn](https://github.com/samuelcolburn) | :---: |:---: |:---: |:---: |:---: |:---: | -[scherroman](https://github.com/scherroman) |[fortunto2](https://github.com/fortunto2) |[samuelcolburn](https://github.com/samuelcolburn) |[sergei-zelinsky](https://github.com/sergei-zelinsky) |[SpazzMarticus](https://github.com/SpazzMarticus) |[suchoproduction](https://github.com/suchoproduction) | +[luarmr](https://github.com/luarmr) |[phobos101](https://github.com/phobos101) |[romain-preston](https://github.com/romain-preston) |[scherroman](https://github.com/scherroman) |[fortunto2](https://github.com/fortunto2) |[samuelcolburn](https://github.com/samuelcolburn) | -[waptik](https://github.com/waptik) |[steverob](https://github.com/steverob) |[tajchumber](https://github.com/tajchumber) |[Tashows](https://github.com/Tashows) |[twarlop](https://github.com/twarlop) |[tmaier](https://github.com/tmaier) | +[sergei-zelinsky](https://github.com/sergei-zelinsky) |[SpazzMarticus](https://github.com/SpazzMarticus) |[suchoproduction](https://github.com/suchoproduction) |[waptik](https://github.com/waptik) |[steverob](https://github.com/steverob) |[tajchumber](https://github.com/tajchumber) | :---: |:---: |:---: |:---: |:---: |:---: | -[waptik](https://github.com/waptik) |[steverob](https://github.com/steverob) |[tajchumber](https://github.com/tajchumber) |[Tashows](https://github.com/Tashows) |[twarlop](https://github.com/twarlop) |[tmaier](https://github.com/tmaier) | +[sergei-zelinsky](https://github.com/sergei-zelinsky) |[SpazzMarticus](https://github.com/SpazzMarticus) |[suchoproduction](https://github.com/suchoproduction) |[waptik](https://github.com/waptik) |[steverob](https://github.com/steverob) |[tajchumber](https://github.com/tajchumber) | -[tomsaleeba](https://github.com/tomsaleeba) |[tvaliasek](https://github.com/tvaliasek) |[sparanoid](https://github.com/sparanoid) |[vially](https://github.com/vially) |[nagyv](https://github.com/nagyv) |[willycamargo](https://github.com/willycamargo) | +[Tashows](https://github.com/Tashows) |[twarlop](https://github.com/twarlop) |[tmaier](https://github.com/tmaier) |[tomsaleeba](https://github.com/tomsaleeba) |[tvaliasek](https://github.com/tvaliasek) |[sparanoid](https://github.com/sparanoid) | :---: |:---: |:---: |:---: |:---: |:---: | -[tomsaleeba](https://github.com/tomsaleeba) |[tvaliasek](https://github.com/tvaliasek) |[sparanoid](https://github.com/sparanoid) |[vially](https://github.com/vially) |[nagyv](https://github.com/nagyv) |[willycamargo](https://github.com/willycamargo) | +[Tashows](https://github.com/Tashows) |[twarlop](https://github.com/twarlop) |[tmaier](https://github.com/tmaier) |[tomsaleeba](https://github.com/tomsaleeba) |[tvaliasek](https://github.com/tvaliasek) |[sparanoid](https://github.com/sparanoid) | -[xhocquet](https://github.com/xhocquet) |[yaegor](https://github.com/yaegor) |[YehudaKremer](https://github.com/YehudaKremer) |[zachconner](https://github.com/zachconner) |[zacharylawson](https://github.com/zacharylawson) |[agreene-coursera](https://github.com/agreene-coursera) | +[vially](https://github.com/vially) |[nagyv](https://github.com/nagyv) |[willycamargo](https://github.com/willycamargo) |[xhocquet](https://github.com/xhocquet) |[yaegor](https://github.com/yaegor) |[YehudaKremer](https://github.com/YehudaKremer) | :---: |:---: |:---: |:---: |:---: |:---: | -[xhocquet](https://github.com/xhocquet) |[yaegor](https://github.com/yaegor) |[YehudaKremer](https://github.com/YehudaKremer) |[zachconner](https://github.com/zachconner) |[zacharylawson](https://github.com/zacharylawson) |[agreene-coursera](https://github.com/agreene-coursera) | +[vially](https://github.com/vially) |[nagyv](https://github.com/nagyv) |[willycamargo](https://github.com/willycamargo) |[xhocquet](https://github.com/xhocquet) |[yaegor](https://github.com/yaegor) |[YehudaKremer](https://github.com/YehudaKremer) | -[alfatv](https://github.com/alfatv) |[arggh](https://github.com/arggh) |[avalla](https://github.com/avalla) |[bdirito](https://github.com/bdirito) |[c0b41](https://github.com/c0b41) |[canvasbh](https://github.com/canvasbh) | +[zachconner](https://github.com/zachconner) |[zacharylawson](https://github.com/zacharylawson) |[agreene-coursera](https://github.com/agreene-coursera) |[alfatv](https://github.com/alfatv) |[arggh](https://github.com/arggh) |[avalla](https://github.com/avalla) | :---: |:---: |:---: |:---: |:---: |:---: | -[alfatv](https://github.com/alfatv) |[arggh](https://github.com/arggh) |[avalla](https://github.com/avalla) |[bdirito](https://github.com/bdirito) |[c0b41](https://github.com/c0b41) |[canvasbh](https://github.com/canvasbh) | +[zachconner](https://github.com/zachconner) |[zacharylawson](https://github.com/zacharylawson) |[agreene-coursera](https://github.com/agreene-coursera) |[alfatv](https://github.com/alfatv) |[arggh](https://github.com/arggh) |[avalla](https://github.com/avalla) | -[craigcbrunner](https://github.com/craigcbrunner) |[darthf1](https://github.com/darthf1) |[dkisic](https://github.com/dkisic) |[franckl](https://github.com/franckl) |[green-mike](https://github.com/green-mike) |[johnmanjiro13](https://github.com/johnmanjiro13) | +[bdirito](https://github.com/bdirito) |[c0b41](https://github.com/c0b41) |[canvasbh](https://github.com/canvasbh) |[craigcbrunner](https://github.com/craigcbrunner) |[darthf1](https://github.com/darthf1) |[dkisic](https://github.com/dkisic) | :---: |:---: |:---: |:---: |:---: |:---: | -[craigcbrunner](https://github.com/craigcbrunner) |[darthf1](https://github.com/darthf1) |[dkisic](https://github.com/dkisic) |[franckl](https://github.com/franckl) |[green-mike](https://github.com/green-mike) |[johnmanjiro13](https://github.com/johnmanjiro13) | +[bdirito](https://github.com/bdirito) |[c0b41](https://github.com/c0b41) |[canvasbh](https://github.com/canvasbh) |[craigcbrunner](https://github.com/craigcbrunner) |[darthf1](https://github.com/darthf1) |[dkisic](https://github.com/dkisic) | -[magumbo](https://github.com/magumbo) |[ninesalt](https://github.com/ninesalt) |[luntta](https://github.com/luntta) |[rhymes](https://github.com/rhymes) |[rlebosse](https://github.com/rlebosse) |[rtaieb](https://github.com/rtaieb) | +[fingul](https://github.com/fingul) |[franckl](https://github.com/franckl) |[green-mike](https://github.com/green-mike) |[johnmanjiro13](https://github.com/johnmanjiro13) |[magumbo](https://github.com/magumbo) |[ninesalt](https://github.com/ninesalt) | :---: |:---: |:---: |:---: |:---: |:---: | -[magumbo](https://github.com/magumbo) |[ninesalt](https://github.com/ninesalt) |[luntta](https://github.com/luntta) |[rhymes](https://github.com/rhymes) |[rlebosse](https://github.com/rlebosse) |[rtaieb](https://github.com/rtaieb) | +[fingul](https://github.com/fingul) |[franckl](https://github.com/franckl) |[green-mike](https://github.com/green-mike) |[johnmanjiro13](https://github.com/johnmanjiro13) |[magumbo](https://github.com/magumbo) |[ninesalt](https://github.com/ninesalt) | -[thanhthot](https://github.com/thanhthot) |[tinny77](https://github.com/tinny77) |[yoann-hellopret](https://github.com/yoann-hellopret) |[olitomas](https://github.com/olitomas) | -:---: |:---: |:---: |:---: | -[thanhthot](https://github.com/thanhthot) |[tinny77](https://github.com/tinny77) |[yoann-hellopret](https://github.com/yoann-hellopret) |[olitomas](https://github.com/olitomas) | +[luntta](https://github.com/luntta) |[rhymes](https://github.com/rhymes) |[rlebosse](https://github.com/rlebosse) |[rtaieb](https://github.com/rtaieb) |[thanhthot](https://github.com/thanhthot) |[tinny77](https://github.com/tinny77) | +:---: |:---: |:---: |:---: |:---: |:---: | +[luntta](https://github.com/luntta) |[rhymes](https://github.com/rhymes) |[rlebosse](https://github.com/rlebosse) |[rtaieb](https://github.com/rtaieb) |[thanhthot](https://github.com/thanhthot) |[tinny77](https://github.com/tinny77) | + +[yoann-hellopret](https://github.com/yoann-hellopret) |[olitomas](https://github.com/olitomas) | +:---: |:---: | +[yoann-hellopret](https://github.com/yoann-hellopret) |[olitomas](https://github.com/olitomas) | diff --git a/env.example.sh b/env.example.sh index fd7f4959c..a1ff9a4a2 100644 --- a/env.example.sh +++ b/env.example.sh @@ -13,6 +13,8 @@ export COMPANION_FACEBOOK_SECRET="***" export EDGLY_KEY="***" export EDGLY_SECRET="***" export GITHUB_TOKEN="***" +export COMPANION_ZOOM_KEY="***" +export COMPANION_ZOOM_SECRET="***" # Let's not set this by default, because that will make acceptance tests Always run on Saucelabs ## export SAUCE_ACCESS_KEY="***" diff --git a/examples/cdn-example/index.html b/examples/cdn-example/index.html index 1bd61deaf..6e34a9bd5 100644 --- a/examples/cdn-example/index.html +++ b/examples/cdn-example/index.html @@ -4,11 +4,11 @@ - + - + + + + ``` Then, a global `Robodog` variable will be available. For usage instructions, please see the [main Robodog documentation](https://uppy.io/docs/robodog). diff --git a/packages/@uppy/robodog/package.json b/packages/@uppy/robodog/package.json index e38840dab..28784b50b 100644 --- a/packages/@uppy/robodog/package.json +++ b/packages/@uppy/robodog/package.json @@ -1,7 +1,7 @@ { "name": "@uppy/robodog", "description": "Transloadit SDK for browsers based on Uppy", - "version": "1.9.0", + "version": "1.9.1", "license": "MIT", "main": "lib/index.js", "jsnext:main": "src/index.js", diff --git a/packages/@uppy/screen-capture/package.json b/packages/@uppy/screen-capture/package.json index 2f15d7542..d873e9099 100644 --- a/packages/@uppy/screen-capture/package.json +++ b/packages/@uppy/screen-capture/package.json @@ -1,7 +1,7 @@ { "name": "@uppy/screen-capture", "description": "Uppy plugin that captures video from display or application.", - "version": "1.0.4", + "version": "1.0.5", "license": "MIT", "main": "lib/index.js", "style": "dist/style.min.css", diff --git a/packages/@uppy/status-bar/package.json b/packages/@uppy/status-bar/package.json index 50dbf4451..a6718ad0b 100644 --- a/packages/@uppy/status-bar/package.json +++ b/packages/@uppy/status-bar/package.json @@ -1,7 +1,7 @@ { "name": "@uppy/status-bar", "description": "A progress bar for Uppy, with many bells and whistles.", - "version": "1.7.1", + "version": "1.7.2", "license": "MIT", "main": "lib/index.js", "style": "dist/style.min.css", diff --git a/packages/@uppy/store-default/package.json b/packages/@uppy/store-default/package.json index bac12ffde..d12c1ced3 100644 --- a/packages/@uppy/store-default/package.json +++ b/packages/@uppy/store-default/package.json @@ -1,7 +1,7 @@ { "name": "@uppy/store-default", "description": "The default simple object-based store for Uppy.", - "version": "1.2.1", + "version": "1.2.2", "license": "MIT", "main": "lib/index.js", "types": "types/index.d.ts", diff --git a/packages/@uppy/store-redux/package.json b/packages/@uppy/store-redux/package.json index 57b94433e..b5af2b95f 100644 --- a/packages/@uppy/store-redux/package.json +++ b/packages/@uppy/store-redux/package.json @@ -1,7 +1,7 @@ { "name": "@uppy/store-redux", "description": "Make Uppy use your existing Redux store.", - "version": "1.2.1", + "version": "1.2.2", "license": "MIT", "main": "lib/index.js", "types": "types/index.d.ts", diff --git a/packages/@uppy/thumbnail-generator/package.json b/packages/@uppy/thumbnail-generator/package.json index ab1c95e45..562c2b70c 100644 --- a/packages/@uppy/thumbnail-generator/package.json +++ b/packages/@uppy/thumbnail-generator/package.json @@ -1,7 +1,7 @@ { "name": "@uppy/thumbnail-generator", "description": "Uppy plugin that generates small previews of images to show on your upload UI.", - "version": "1.6.3", + "version": "1.6.4", "license": "MIT", "main": "lib/index.js", "types": "types/index.d.ts", diff --git a/packages/@uppy/transloadit/package.json b/packages/@uppy/transloadit/package.json index 932f38973..2f2d14dc0 100644 --- a/packages/@uppy/transloadit/package.json +++ b/packages/@uppy/transloadit/package.json @@ -1,7 +1,7 @@ { "name": "@uppy/transloadit", "description": "The Transloadit plugin can be used to upload files to Transloadit for all kinds of processing, such as transcoding video, resizing images, zipping/unzipping, and more", - "version": "1.6.3", + "version": "1.6.4", "license": "MIT", "main": "lib/index.js", "types": "types/index.d.ts", diff --git a/packages/@uppy/transloadit/src/index.js b/packages/@uppy/transloadit/src/index.js index e9a7cf5e6..2da76e737 100644 --- a/packages/@uppy/transloadit/src/index.js +++ b/packages/@uppy/transloadit/src/index.js @@ -128,6 +128,7 @@ module.exports = class Transloadit extends Plugin { addPluginVersion('GoogleDrive', 'uppy-google-drive') addPluginVersion('Instagram', 'uppy-instagram') addPluginVersion('OneDrive', 'uppy-onedrive') + addPluginVersion('Zoom', 'uppy-zoom') addPluginVersion('Url', 'uppy-url') return list.join(',') diff --git a/packages/@uppy/tus/package.json b/packages/@uppy/tus/package.json index 1341091ac..2533c4f05 100644 --- a/packages/@uppy/tus/package.json +++ b/packages/@uppy/tus/package.json @@ -1,7 +1,7 @@ { "name": "@uppy/tus", "description": "Resumable uploads for Uppy using Tus.io", - "version": "1.7.1", + "version": "1.7.2", "license": "MIT", "main": "lib/index.js", "types": "types/index.d.ts", diff --git a/packages/@uppy/url/package.json b/packages/@uppy/url/package.json index aabcf2aa6..5488627a9 100644 --- a/packages/@uppy/url/package.json +++ b/packages/@uppy/url/package.json @@ -1,7 +1,7 @@ { "name": "@uppy/url", "description": "The Url plugin lets users import files from the Internet. Paste any URL and it’ll be added!", - "version": "1.5.8", + "version": "1.5.9", "license": "MIT", "main": "lib/index.js", "style": "dist/style.min.css", diff --git a/packages/@uppy/utils/package.json b/packages/@uppy/utils/package.json index b64e7cba1..f3db26a64 100644 --- a/packages/@uppy/utils/package.json +++ b/packages/@uppy/utils/package.json @@ -1,7 +1,7 @@ { "name": "@uppy/utils", "description": "Shared utility functions for Uppy Core and plugins maintained by the Uppy team.", - "version": "3.2.0", + "version": "3.2.1", "license": "MIT", "main": "lib/index.js", "types": "types/index.d.ts", diff --git a/packages/@uppy/utils/src/Translator.js b/packages/@uppy/utils/src/Translator.js index 467a83e88..3930a1463 100644 --- a/packages/@uppy/utils/src/Translator.js +++ b/packages/@uppy/utils/src/Translator.js @@ -125,6 +125,10 @@ module.exports = class Translator { * @returns {Array} The translated and interpolated parts, in order. */ translateArray (key, options) { + if (!has(this.locale.strings, key)) { + throw new Error(`missing string: ${key}`) + } + const string = this.locale.strings[key] const hasPluralForms = typeof string === 'object' diff --git a/packages/@uppy/webcam/package.json b/packages/@uppy/webcam/package.json index 4da863dd8..73da8d35c 100644 --- a/packages/@uppy/webcam/package.json +++ b/packages/@uppy/webcam/package.json @@ -1,7 +1,7 @@ { "name": "@uppy/webcam", "description": "Uppy plugin that takes photos or records videos using the device's camera.", - "version": "1.6.8", + "version": "1.6.9", "license": "MIT", "main": "lib/index.js", "style": "dist/style.min.css", diff --git a/packages/@uppy/xhr-upload/package.json b/packages/@uppy/xhr-upload/package.json index e10a31f16..37cae8c19 100644 --- a/packages/@uppy/xhr-upload/package.json +++ b/packages/@uppy/xhr-upload/package.json @@ -1,7 +1,7 @@ { "name": "@uppy/xhr-upload", "description": "Plain and simple classic HTML multipart form uploads with Uppy, as well as uploads using the HTTP PUT method.", - "version": "1.6.1", + "version": "1.6.2", "license": "MIT", "main": "lib/index.js", "types": "types/index.d.ts", diff --git a/packages/@uppy/zoom/LICENSE b/packages/@uppy/zoom/LICENSE new file mode 100644 index 000000000..d074cabcb --- /dev/null +++ b/packages/@uppy/zoom/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2020 Transloadit + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/@uppy/zoom/README.md b/packages/@uppy/zoom/README.md new file mode 100644 index 000000000..38e58ac8b --- /dev/null +++ b/packages/@uppy/zoom/README.md @@ -0,0 +1,40 @@ +# @uppy/zoom + +Uppy logo: a superman puppy in a pink suit + + +Build Status + +A description of this plugin or module goes here. + +Uppy is being developed by the folks at [Transloadit](https://transloadit.com), a versatile file encoding service. + +## Example + +```js +const Uppy = require('@uppy/core') +const Zoom = require('@uppy/zoom') + +const uppy = Uppy() +uppy.use(Zoom, { + // Options +}) +``` + +## Installation + +```bash +$ npm install @uppy/zoom --save +``` + +We recommend installing from npm and then using a module bundler such as [Webpack](https://webpack.js.org/), [Browserify](http://browserify.org/) or [Rollup.js](http://rollupjs.org/). + +Alternatively, you can also use this plugin in a pre-built bundle from Transloadit's CDN: Edgly. In that case `Uppy` will attach itself to the global `window.Uppy` object. See the [main Uppy documentation](https://uppy.io/docs/#Installation) for instructions. + +## Documentation + +Documentation for this plugin can be found on the [Uppy website](https://uppy.io/docs/zoom). + +## License + +[The MIT License](./LICENSE). diff --git a/packages/@uppy/zoom/package.json b/packages/@uppy/zoom/package.json new file mode 100644 index 000000000..76752ac2f --- /dev/null +++ b/packages/@uppy/zoom/package.json @@ -0,0 +1,34 @@ +{ + "name": "@uppy/zoom", + "description": "Import files from zoom, into Uppy.", + "version": "0.0.1", + "license": "MIT", + "main": "lib/index.js", + "types": "types/index.d.ts", + "keywords": [ + "file uploader", + "uppy", + "uppy-plugin", + "zoom" + ], + "homepage": "https://uppy.io", + "bugs": { + "url": "https://github.com/transloadit/uppy/issues" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/transloadit/uppy.git" + }, + "dependencies": { + "@uppy/companion-client": "file:../companion-client", + "@uppy/provider-views": "file:../provider-views", + "@uppy/utils": "file:../utils", + "preact": "8.2.9" + }, + "peerDependencies": { + "@uppy/core": "^1.0.0" + }, + "publishConfig": { + "access": "public" + } +} diff --git a/packages/@uppy/zoom/src/index.js b/packages/@uppy/zoom/src/index.js new file mode 100644 index 000000000..b3e1a7c32 --- /dev/null +++ b/packages/@uppy/zoom/src/index.js @@ -0,0 +1,58 @@ +const { Plugin } = require('@uppy/core') +const { Provider } = require('@uppy/companion-client') +const ProviderViews = require('@uppy/provider-views') +const { h } = require('preact') + +module.exports = class Zoom extends Plugin { + static VERSION = require('../package.json').version + + constructor (uppy, opts) { + super(uppy, opts) + this.id = this.opts.id || 'Zoom' + Provider.initPlugin(this, opts) + this.title = this.opts.title || 'Zoom' + this.icon = () => ( + + ) + + this.provider = new Provider(uppy, { + companionUrl: this.opts.companionUrl, + companionHeaders: this.opts.companionHeaders || this.opts.serverHeaders, + provider: 'zoom', + pluginId: this.id + }) + + this.onFirstRender = this.onFirstRender.bind(this) + this.render = this.render.bind(this) + } + + install () { + this.view = new ProviderViews(this, { + provider: this.provider + }) + + const target = this.opts.target + if (target) { + this.mount(target, this) + } + } + + uninstall () { + this.view.tearDown() + this.unmount() + } + + onFirstRender () { + return this.view.getFolder() + } + + render (state) { + return this.view.render(state) + } +} diff --git a/packages/@uppy/zoom/types/index.d.ts b/packages/@uppy/zoom/types/index.d.ts new file mode 100644 index 000000000..cd500060f --- /dev/null +++ b/packages/@uppy/zoom/types/index.d.ts @@ -0,0 +1,17 @@ +import Uppy = require('@uppy/core') +import CompanionClient = require('@uppy/companion-client') + +declare module Zoom { + interface ZoomOptions + extends Uppy.PluginOptions, + CompanionClient.PublicProviderOptions { + replaceTargetContent?: boolean + target?: Uppy.PluginTarget + title?: string + storage?: CompanionClient.TokenStorage + } +} + +declare class Zoom extends Uppy.Plugin {} + +export = Zoom diff --git a/packages/@uppy/zoom/types/index.test-d.ts b/packages/@uppy/zoom/types/index.test-d.ts new file mode 100644 index 000000000..009d20d96 --- /dev/null +++ b/packages/@uppy/zoom/types/index.test-d.ts @@ -0,0 +1,2 @@ +import Zoom = require('../') +// TODO implement diff --git a/packages/uppy/package.json b/packages/uppy/package.json index 14ef1064a..fadca972f 100644 --- a/packages/uppy/package.json +++ b/packages/uppy/package.json @@ -1,7 +1,7 @@ { "name": "uppy", "description": "Extensible JavaScript file upload widget with support for drag&drop, resumable uploads, previews, restrictions, file processing/encoding, remote providers like Instagram, Dropbox, Google Drive, S3 and more :dog:", - "version": "1.19.0", + "version": "1.19.1", "license": "MIT", "main": "index.js", "module": "index.mjs", diff --git a/packages/uppy/types/index.test-d.ts b/packages/uppy/types/index.test-d.ts index f814115e0..48bf0606e 100644 --- a/packages/uppy/types/index.test-d.ts +++ b/packages/uppy/types/index.test-d.ts @@ -21,6 +21,7 @@ import * as Uppy from '../'; .use(Uppy.Instagram, { target: Uppy.Dashboard, companionUrl: 'https://companion.uppy.io' }) .use(Uppy.Webcam, { target: Uppy.Dashboard }) .use(Uppy.ScreenCapture, { target: Uppy.Dashboard }) + .use(Uppy.Zoom, { target: Uppy.Dashboard }) .use(Uppy.Tus, { endpoint: 'https://master.tus.io/files/' }) .on('complete', (result) => { console.log('Upload result:', result); diff --git a/test/endtoend/providers/provider.zoom.test.js b/test/endtoend/providers/provider.zoom.test.js new file mode 100644 index 000000000..831315ba7 --- /dev/null +++ b/test/endtoend/providers/provider.zoom.test.js @@ -0,0 +1,69 @@ +/* global browser */ + +/* + WARNING! PLEASE READ THIS BEFORE ENABLING THIS TEST ON TRAVIS. + + Before enabling this test on travis, please keep in mind that with this "no_ssl_bump_domains" option set + here https://github.com/transloadit/uppy/blob/998c7b1805acb8d305a562dd9726ebae98575e07/.travis.yml#L33 + SSL encryption may not be enabled between the running companion and the testing browser client. + + Hence, provider tokens (Google, Instagram, Zoom) may be at risk of getting hijacked. +*/ +const { finishUploadTest, startUploadTest, uploadWithRetry } = require('./helper') +const testURL = 'http://localhost:4567/providers' + +describe('File upload with Zoom Provider', () => { + beforeEach(async () => { + await browser.url(testURL) + }) + + // not using arrow functions as cb so to keep mocha in the 'this' context + it('should upload a file completely with Zoom', async function () { + if (!process.env.UPPY_GOOGLE_EMAIL) { + console.log('skipping Zoom integration test') + return this.skip() + } + + // ensure session is cleared + await startUploadTest(browser, 'Zoom', /zoom/) + await signIntoGoogle(browser) + await finishUploadTest(browser) + }) + + // not using arrow functions as cb so to keep mocha in the 'this' context + it('should resume uploads when retry is triggered with Zoom', async function () { + if (!process.env.UPPY_GOOGLE_EMAIL) { + console.log('skipping Zoom integration test') + return this.skip() + } + + await uploadWithRetry(browser, 'Zoom', testURL) + }) +}) + +const signIntoGoogle = async (browser) => { + const emailInput = await browser.$('#identifierId') + await emailInput.waitForExist(30000) + await emailInput.setValue(process.env.UPPY_GOOGLE_EMAIL) + let nextButton = await browser.$('#identifierNext') + await nextButton.click() + + const passwordInput = await browser.$('input[name=password]') + await passwordInput.waitForDisplayed(30000) + await passwordInput.setValue(process.env.UPPY_GOOGLE_PASSWORD) + nextButton = await browser.$('#passwordNext') + await nextButton.click() + await browser.pause(3000) + + const emailListItem = await browser.$(`li div[data-identifier="${process.env.UPPY_GOOGLE_EMAIL}"]`) + if (await emailListItem.isExisting()) { + // if user is already signed in, just select user + await emailListItem.click() + } + + const allowZoomButton = await browser.$('#submit_approve_access') + if (await allowZoomButton.isExisting()) { + // if Zoom has never been allowed, allow it + await allowZoomButton.click() + } +} diff --git a/website/src/docs/companion.md b/website/src/docs/companion.md index ac12ba8a8..c3a7328b5 100644 --- a/website/src/docs/companion.md +++ b/website/src/docs/companion.md @@ -190,6 +190,12 @@ export COMPANION_ONEDRIVE_SECRET="YOUR ONEDRIVE SECRET" # specifying a secret file will override a directly set secret export COMPANION_ONEDRIVE_SECRET_FILE="PATH/TO/ONEDRIVE/SECRET/FILE" +# to enable Zoom +export COMPANION_ZOOM_KEY="YOUR ZOOM KEY" +export COMPANION_ZOOM_SECRET="YOUR ZOOM SECRET" +# specifying a secret file will override a directly set secret +export COMPANION_ZOOM_SECRET_FILE="PATH/TO/ZOOM/SECRET/FILE" + # to enable S3 export COMPANION_AWS_KEY="YOUR AWS KEY" export COMPANION_AWS_SECRET="YOUR AWS SECRET" diff --git a/website/src/docs/index.md b/website/src/docs/index.md index d8997c2bc..4babaf11a 100644 --- a/website/src/docs/index.md +++ b/website/src/docs/index.md @@ -19,12 +19,12 @@ Here’s the simplest example html page with Uppy (it uses a CDN bundle, while w Uppy - +
- + + ``` 2\. Add CSS to ``: ``` html - + ``` 3\. Initialize at the bottom of the closing `` tag: @@ -169,5 +169,5 @@ const Uppy = require('@uppy/core') If you're using Uppy from CDN, `es6-promise` and `whatwg-fetch` are already included in the bundle, no need to include anything additionally: ```html - + ``` diff --git a/website/src/docs/locales.md b/website/src/docs/locales.md index 8bd7236a6..f176bb0f5 100644 --- a/website/src/docs/locales.md +++ b/website/src/docs/locales.md @@ -33,8 +33,8 @@ const uppy = new Uppy({ Add a ` - + + + + + + ``` diff --git a/website/src/examples/dashboard/app.es6 b/website/src/examples/dashboard/app.es6 index e2ed49518..9395fe676 100644 --- a/website/src/examples/dashboard/app.es6 +++ b/website/src/examples/dashboard/app.es6 @@ -172,7 +172,7 @@ function loadLocaleFromCDN (localeName) { var head = document.getElementsByTagName('head')[0] var js = document.createElement('script') js.type = 'text/javascript' - js.src = `https://transloadit.edgly.net/releases/uppy/locales/v1.16.1/${localeName}.min.js` + js.src = `https://transloadit.edgly.net/releases/uppy/locales/v1.16.2/${localeName}.min.js` head.appendChild(js) } diff --git a/website/src/examples/dragdrop/app.es6 b/website/src/examples/dragdrop/app.es6 index 1890158ec..dd57754fb 100644 --- a/website/src/examples/dragdrop/app.es6 +++ b/website/src/examples/dragdrop/app.es6 @@ -11,8 +11,14 @@ const onUploadSuccess = (elForUploadedFiles) => const url = response.uploadURL const fileName = file.name - document.querySelector(elForUploadedFiles).innerHTML += - `
  • ${fileName}
  • ` + const li = document.createElement('li') + const a = document.createElement('a') + a.href = url + a.target = '_blank' + a.appendChild(document.createTextNode(fileName)) + li.appendChild(a) + + document.querySelector(elForUploadedFiles).appendChild(li) } const uppyOne = new Uppy({ debug: true, autoProceed: true }) diff --git a/website/src/examples/i18n/app.html b/website/src/examples/i18n/app.html index 767d151b8..516f3967e 100644 --- a/website/src/examples/i18n/app.html +++ b/website/src/examples/i18n/app.html @@ -1,7 +1,7 @@ - +
    @@ -12,8 +12,8 @@ - - + + +// const robodog = require('@uppy/robodog') const TRANSLOADIT_EXAMPLE_KEY = '35c1aed03f5011e982b6afe82599b6a0' diff --git a/website/src/examples/markdown-snippets/app.html b/website/src/examples/markdown-snippets/app.html index 93b97caac..aa5a95263 100644 --- a/website/src/examples/markdown-snippets/app.html +++ b/website/src/examples/markdown-snippets/app.html @@ -1,6 +1,6 @@ + -->

    Create a new snippet

    diff --git a/website/src/examples/xhrupload/app.es6 b/website/src/examples/xhrupload/app.es6 index 8b24ce088..95ab49b8b 100644 --- a/website/src/examples/xhrupload/app.es6 +++ b/website/src/examples/xhrupload/app.es6 @@ -25,6 +25,12 @@ uppy.on('upload-success', (file, response) => { const url = response.uploadURL const fileName = file.name - document.querySelector('.uploaded-files ol').innerHTML += - `
  • ${fileName}
  • ` + const li = document.createElement('li') + const a = document.createElement('a') + a.href = url + a.target = '_blank' + a.appendChild(document.createTextNode(fileName)) + li.appendChild(a) + + document.querySelector('.uploaded-files ol').appendChild(li) }) diff --git a/website/themes/uppy/layout/index.ejs b/website/themes/uppy/layout/index.ejs index 2f490d5b3..a1d2319c3 100644 --- a/website/themes/uppy/layout/index.ejs +++ b/website/themes/uppy/layout/index.ejs @@ -167,8 +167,8 @@

    © <%- date(Date.now(), 'YYYY') %> Transloadit

    - - + +