diff --git a/.browsersync.js b/.browsersync.js
index 114ccc9de..ef3745e70 100644
--- a/.browsersync.js
+++ b/.browsersync.js
@@ -27,12 +27,12 @@ module.exports = {
"middleware": false,
"serveStatic": ["examples/bundle"],
"ghostMode": {
- "clicks": true,
- "scroll": true,
+ "clicks": false,
+ "scroll": false,
"forms": {
- "submit": true,
- "inputs": true,
- "toggles": true
+ "submit": false,
+ "inputs": false,
+ "toggles": false
}
},
"logLevel": "info",
diff --git a/README.md b/README.md
index 374034fc5..19bd57e14 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](http://webpack.github.io/), [Browserify](http://browserify.org/) or [Rollup.js](http://rollupjs.org/).
-Add CSS [uppy.min.css](https://transloadit.edgly.net/releases/uppy/v0.29.0/dist/uppy.min.css), either to `
` of your HTML page or include in JS, if your bundler of choice supports it — transforms and plugins are available for Browserify and Webpack.
+Add CSS [uppy.min.css](https://transloadit.edgly.net/releases/uppy/v0.29.1/dist/uppy.min.css), either to `` of your HTML page or include in JS, if your bundler of choice supports it — transforms and plugins are available for Browserify and Webpack.
Alternatively, you can also use a pre-built bundle from Transloadit's CDN: Edgly. In that case `Uppy` will attach itself to the global `window.Uppy` object.
@@ -73,10 +73,10 @@ Alternatively, you can also use a pre-built bundle from Transloadit's CDN: Edgly
```html
-
+
-
+
@@ -163,7 +163,7 @@ If you're using Uppy via a script tag, you can load the polyfills from [JSDelivr
```html
-
+
```
## FAQ
@@ -228,57 +228,57 @@ Use Uppy in your project? [Let us know](https://github.com/transloadit/uppy/issu
:---: |:---: |:---: |:---: |:---: |:---: |
[kiloreux](https://github.com/kiloreux) |[sadovnychyi](https://github.com/sadovnychyi) |[richardwillars](https://github.com/richardwillars) |[zcallan](https://github.com/zcallan) |[wilkoklak](https://github.com/wilkoklak) |[oliverpool](https://github.com/oliverpool) |
-[
](https://github.com/nqst) |[
](https://github.com/janko-m) |[
](https://github.com/DJWassink) |[
](https://github.com/taoqf) |[
](https://github.com/gavboulton) |[
](https://github.com/bertho-zero) |
+[
](https://github.com/nqst) |[
](https://github.com/janko-m) |[
](https://github.com/mattes3) |[
](https://github.com/DJWassink) |[
](https://github.com/taoqf) |[
](https://github.com/gavboulton) |
:---: |:---: |:---: |:---: |:---: |:---: |
-[nqst](https://github.com/nqst) |[janko-m](https://github.com/janko-m) |[DJWassink](https://github.com/DJWassink) |[taoqf](https://github.com/taoqf) |[gavboulton](https://github.com/gavboulton) |[bertho-zero](https://github.com/bertho-zero) |
+[nqst](https://github.com/nqst) |[janko-m](https://github.com/janko-m) |[mattes3](https://github.com/mattes3) |[DJWassink](https://github.com/DJWassink) |[taoqf](https://github.com/taoqf) |[gavboulton](https://github.com/gavboulton) |
-[
](https://github.com/frederikhors) |[
](https://github.com/pauln) |[
](https://github.com/toadkicker) |[
](https://github.com/mrbatista) |[
](https://github.com/phitranphitranphitran) |[
](https://github.com/sunil-shrestha) |
+[
](https://github.com/bertho-zero) |[
](https://github.com/frederikhors) |[
](https://github.com/pauln) |[
](https://github.com/toadkicker) |[
](https://github.com/mrbatista) |[
](https://github.com/phitranphitranphitran) |
:---: |:---: |:---: |:---: |:---: |:---: |
-[frederikhors](https://github.com/frederikhors) |[pauln](https://github.com/pauln) |[toadkicker](https://github.com/toadkicker) |[mrbatista](https://github.com/mrbatista) |[phitranphitranphitran](https://github.com/phitranphitranphitran) |[sunil-shrestha](https://github.com/sunil-shrestha) |
+[bertho-zero](https://github.com/bertho-zero) |[frederikhors](https://github.com/frederikhors) |[pauln](https://github.com/pauln) |[toadkicker](https://github.com/toadkicker) |[mrbatista](https://github.com/mrbatista) |[phitranphitranphitran](https://github.com/phitranphitranphitran) |
-[
](https://github.com/tranvansang) |[
](https://github.com/ap--) |[
](https://github.com/tim-kos) |[
](https://github.com/ogtfaber) |[
](https://github.com/btrice) |[
](https://github.com/pekala) |
+[
](https://github.com/sunil-shrestha) |[
](https://github.com/tranvansang) |[
](https://github.com/ap--) |[
](https://github.com/tim-kos) |[
](https://github.com/ogtfaber) |[
](https://github.com/btrice) |
:---: |:---: |:---: |:---: |:---: |:---: |
-[tranvansang](https://github.com/tranvansang) |[ap--](https://github.com/ap--) |[tim-kos](https://github.com/tim-kos) |[ogtfaber](https://github.com/ogtfaber) |[btrice](https://github.com/btrice) |[pekala](https://github.com/pekala) |
+[sunil-shrestha](https://github.com/sunil-shrestha) |[tranvansang](https://github.com/tranvansang) |[ap--](https://github.com/ap--) |[tim-kos](https://github.com/tim-kos) |[ogtfaber](https://github.com/ogtfaber) |[btrice](https://github.com/btrice) |
-[
](https://github.com/Martin005) |[
](https://github.com/martiuslim) |[
](https://github.com/msand) |[
](https://github.com/richartkeil) |[
](https://github.com/Burkes) |[
](https://github.com/rosenfeld) |
+[
](https://github.com/pekala) |[
](https://github.com/manuelkiessling) |[
](https://github.com/Martin005) |[
](https://github.com/martiuslim) |[
](https://github.com/msand) |[
](https://github.com/Burkes) |
:---: |:---: |:---: |:---: |:---: |:---: |
-[Martin005](https://github.com/Martin005) |[martiuslim](https://github.com/martiuslim) |[msand](https://github.com/msand) |[richartkeil](https://github.com/richartkeil) |[Burkes](https://github.com/Burkes) |[rosenfeld](https://github.com/rosenfeld) |
+[pekala](https://github.com/pekala) |[manuelkiessling](https://github.com/manuelkiessling) |[Martin005](https://github.com/Martin005) |[martiuslim](https://github.com/martiuslim) |[msand](https://github.com/msand) |[Burkes](https://github.com/Burkes) |
-[
](https://github.com/ThomasG77) |[
](https://github.com/zhuangya) |[
](https://github.com/fortrieb) |[
](https://github.com/muhammadInam) |[
](https://github.com/richmeij) |[
](https://github.com/ajschmidt8) |
+[
](https://github.com/richmeij) |[
](https://github.com/rosenfeld) |[
](https://github.com/ThomasG77) |[
](https://github.com/zhuangya) |[
](https://github.com/fortrieb) |[
](https://github.com/muhammadInam) |
:---: |:---: |:---: |:---: |:---: |:---: |
-[ThomasG77](https://github.com/ThomasG77) |[zhuangya](https://github.com/zhuangya) |[fortrieb](https://github.com/fortrieb) |[muhammadInam](https://github.com/muhammadInam) |[richmeij](https://github.com/richmeij) |[ajschmidt8](https://github.com/ajschmidt8) |
+[richmeij](https://github.com/richmeij) |[rosenfeld](https://github.com/rosenfeld) |[ThomasG77](https://github.com/ThomasG77) |[zhuangya](https://github.com/zhuangya) |[fortrieb](https://github.com/fortrieb) |[muhammadInam](https://github.com/muhammadInam) |
-[
](https://github.com/asmt3) |[
](https://github.com/tuoxiansp) |[
](https://github.com/functino) |[
](https://github.com/radarhere) |[
](https://github.com/azeemba) |[
](https://github.com/bducharme) |
+[
](https://github.com/richartkeil) |[
](https://github.com/ajschmidt8) |[
](https://github.com/tuoxiansp) |[
](https://github.com/amitport) |[
](https://github.com/functino) |[
](https://github.com/radarhere) |
:---: |:---: |:---: |:---: |:---: |:---: |
-[asmt3](https://github.com/asmt3) |[tuoxiansp](https://github.com/tuoxiansp) |[functino](https://github.com/functino) |[radarhere](https://github.com/radarhere) |[azeemba](https://github.com/azeemba) |[bducharme](https://github.com/bducharme) |
+[richartkeil](https://github.com/richartkeil) |[ajschmidt8](https://github.com/ajschmidt8) |[tuoxiansp](https://github.com/tuoxiansp) |[amitport](https://github.com/amitport) |[functino](https://github.com/functino) |[radarhere](https://github.com/radarhere) |
-[
](https://github.com/chao) |[
](https://github.com/csprance) |[
](https://github.com/cbush06) |[
](https://github.com/danmichaelo) |[
](https://github.com/mrboomer) |[
](https://github.com/yoldar) |
+[
](https://github.com/azeemba) |[
](https://github.com/bducharme) |[
](https://github.com/chao) |[
](https://github.com/csprance) |[
](https://github.com/cbush06) |[
](https://github.com/danmichaelo) |
:---: |:---: |:---: |:---: |:---: |:---: |
-[chao](https://github.com/chao) |[csprance](https://github.com/csprance) |[cbush06](https://github.com/cbush06) |[danmichaelo](https://github.com/danmichaelo) |[mrboomer](https://github.com/mrboomer) |[yoldar](https://github.com/yoldar) |
+[azeemba](https://github.com/azeemba) |[bducharme](https://github.com/bducharme) |[chao](https://github.com/chao) |[csprance](https://github.com/csprance) |[cbush06](https://github.com/cbush06) |[danmichaelo](https://github.com/danmichaelo) |
-[
](https://github.com/lowsprofile) |[
](https://github.com/FWirtz) |[
](https://github.com/geoffappleford) |[
](https://github.com/gjungb) |[
](https://github.com/JacobMGEvans) |[
](https://github.com/jcjmcclean) |
+[
](https://github.com/mrboomer) |[
](https://github.com/davilima6) |[
](https://github.com/yoldar) |[
](https://github.com/lowsprofile) |[
](https://github.com/FWirtz) |[
](https://github.com/geoffappleford) |
:---: |:---: |:---: |:---: |:---: |:---: |
-[lowsprofile](https://github.com/lowsprofile) |[FWirtz](https://github.com/FWirtz) |[geoffappleford](https://github.com/geoffappleford) |[gjungb](https://github.com/gjungb) |[JacobMGEvans](https://github.com/JacobMGEvans) |[jcjmcclean](https://github.com/jcjmcclean) |
+[mrboomer](https://github.com/mrboomer) |[davilima6](https://github.com/davilima6) |[yoldar](https://github.com/yoldar) |[lowsprofile](https://github.com/lowsprofile) |[FWirtz](https://github.com/FWirtz) |[geoffappleford](https://github.com/geoffappleford) |
-[
](https://github.com/vith) |[
](https://github.com/jessica-coursera) |[
](https://github.com/jderrough) |[
](https://github.com/firesharkstudios) |[
](https://github.com/dviry) |[
](https://github.com/leods92) |
+[
](https://github.com/gjungb) |[
](https://github.com/JacobMGEvans) |[
](https://github.com/jcjmcclean) |[
](https://github.com/vith) |[
](https://github.com/jessica-coursera) |[
](https://github.com/jderrough) |
:---: |:---: |:---: |:---: |:---: |:---: |
-[vith](https://github.com/vith) |[jessica-coursera](https://github.com/jessica-coursera) |[jderrough](https://github.com/jderrough) |[firesharkstudios](https://github.com/firesharkstudios) |[dviry](https://github.com/dviry) |[leods92](https://github.com/leods92) |
+[gjungb](https://github.com/gjungb) |[JacobMGEvans](https://github.com/JacobMGEvans) |[jcjmcclean](https://github.com/jcjmcclean) |[vith](https://github.com/vith) |[jessica-coursera](https://github.com/jessica-coursera) |[jderrough](https://github.com/jderrough) |
-[
](https://github.com/lucaperret) |[
](https://github.com/mperrando) |[
](https://github.com/mnafees) |[
](https://github.com/phillipalexander) |[
](https://github.com/luarmr) |[
](https://github.com/phobos101) |
+[
](https://github.com/firesharkstudios) |[
](https://github.com/kyleparisi) |[
](https://github.com/dviry) |[
](https://github.com/leods92) |[
](https://github.com/lucaperret) |[
](https://github.com/mperrando) |
:---: |:---: |:---: |:---: |:---: |:---: |
-[lucaperret](https://github.com/lucaperret) |[mperrando](https://github.com/mperrando) |[mnafees](https://github.com/mnafees) |[phillipalexander](https://github.com/phillipalexander) |[luarmr](https://github.com/luarmr) |[phobos101](https://github.com/phobos101) |
+[firesharkstudios](https://github.com/firesharkstudios) |[kyleparisi](https://github.com/kyleparisi) |[dviry](https://github.com/dviry) |[leods92](https://github.com/leods92) |[lucaperret](https://github.com/lucaperret) |[mperrando](https://github.com/mperrando) |
-[
](https://github.com/fortunto2) |[
](https://github.com/sergei-zelinsky) |[
](https://github.com/tomsaleeba) |[
](https://github.com/vially) |[
](https://github.com/eltercero) |[
](https://github.com/xhocquet) |
+[
](https://github.com/mnafees) |[
](https://github.com/phillipalexander) |[
](https://github.com/luarmr) |[
](https://github.com/phobos101) |[
](https://github.com/fortunto2) |[
](https://github.com/sergei-zelinsky) |
:---: |:---: |:---: |:---: |:---: |:---: |
-[fortunto2](https://github.com/fortunto2) |[sergei-zelinsky](https://github.com/sergei-zelinsky) |[tomsaleeba](https://github.com/tomsaleeba) |[vially](https://github.com/vially) |[eltercero](https://github.com/eltercero) |[xhocquet](https://github.com/xhocquet) |
+[mnafees](https://github.com/mnafees) |[phillipalexander](https://github.com/phillipalexander) |[luarmr](https://github.com/luarmr) |[phobos101](https://github.com/phobos101) |[fortunto2](https://github.com/fortunto2) |[sergei-zelinsky](https://github.com/sergei-zelinsky) |
-[
](https://github.com/avalla) |[
](https://github.com/bartvde) |[
](https://github.com/c0b41) |[
](https://github.com/craigcbrunner) |[
](https://github.com/franckl) |[
](https://github.com/luntta) |
+[
](https://github.com/tomsaleeba) |[
](https://github.com/vially) |[
](https://github.com/eltercero) |[
](https://github.com/xhocquet) |[
](https://github.com/avalla) |[
](https://github.com/c0b41) |
:---: |:---: |:---: |:---: |:---: |:---: |
-[avalla](https://github.com/avalla) |[bartvde](https://github.com/bartvde) |[c0b41](https://github.com/c0b41) |[craigcbrunner](https://github.com/craigcbrunner) |[franckl](https://github.com/franckl) |[luntta](https://github.com/luntta) |
+[tomsaleeba](https://github.com/tomsaleeba) |[vially](https://github.com/vially) |[eltercero](https://github.com/eltercero) |[xhocquet](https://github.com/xhocquet) |[avalla](https://github.com/avalla) |[c0b41](https://github.com/c0b41) |
-[
](https://github.com/rhymes) |[
](https://github.com/amitport) |
-:---: |:---: |
-[rhymes](https://github.com/rhymes) |[amitport](https://github.com/amitport) |
+[
](https://github.com/craigcbrunner) |[
](https://github.com/franckl) |[
](https://github.com/luntta) |[
](https://github.com/rhymes) |[
](https://github.com/asmt3) |
+:---: |:---: |:---: |:---: |:---: |
+[craigcbrunner](https://github.com/craigcbrunner) |[franckl](https://github.com/franckl) |[luntta](https://github.com/luntta) |[rhymes](https://github.com/rhymes) |[asmt3](https://github.com/asmt3) |
## License
diff --git a/bin/build-lib.js b/bin/build-lib.js
index edd0745c8..660ffda7b 100644
--- a/bin/build-lib.js
+++ b/bin/build-lib.js
@@ -8,17 +8,45 @@ const path = require('path')
const transformFile = promisify(babel.transformFile)
const writeFile = promisify(fs.writeFile)
+const stat = promisify(fs.stat)
const SOURCE = 'packages/{*,@uppy/*}/src/**/*.js'
// Files not to build (such as tests)
const IGNORE = /\.test\.js$|__mocks__|companion\//
+// Files that should trigger a rebuild of everything on change
+const META_FILES = [
+ '.babelrc',
+ 'package.json',
+ 'package-lock.json',
+ 'bin/build-lib.js'
+]
+
+function lastModified (file) {
+ return stat(file).then((s) => s.mtime)
+}
async function buildLib () {
+ const metaMtimes = await Promise.all(META_FILES.map((filename) =>
+ lastModified(path.join(__dirname, '..', filename))
+ ))
+ const metaMtime = Math.max(...metaMtimes)
+
const files = await glob(SOURCE)
for (const file of files) {
if (IGNORE.test(file)) continue
-
const libFile = file.replace('/src/', '/lib/')
+
+ // on a fresh build, rebuild everything.
+ if (!process.env.FRESH) {
+ const srcMtime = await lastModified(file)
+ const libMtime = await lastModified(libFile)
+ .catch(() => 0) // probably doesn't exist
+ // Skip files that haven't changed
+ if (srcMtime < libMtime && metaMtime < libMtime) {
+ continue
+ }
+ }
+
const { code, map } = await transformFile(file, {})
await mkdirp(path.dirname(libFile))
await Promise.all([
@@ -29,6 +57,7 @@ async function buildLib () {
}
}
+console.log('Using Babel version:', require('babel-core/package.json').version)
buildLib().catch((err) => {
console.error(err.stack)
process.exit(1)
diff --git a/bin/release b/bin/release
index 95c708506..b7513b12e 100755
--- a/bin/release
+++ b/bin/release
@@ -59,7 +59,7 @@ git add README.md
cp README.md packages/uppy/README.md
npm run clean
-npm run build
+FRESH=1 npm run build
git commit -m "Release"
lerna version --amend --no-push --exact
diff --git a/bin/to-gif-hd.sh b/bin/to-gif-hd.sh
new file mode 100644
index 000000000..5854bbebd
--- /dev/null
+++ b/bin/to-gif-hd.sh
@@ -0,0 +1,10 @@
+#!/bin/sh
+# Convert a video file to a gif.
+# `to-gif /path/to/input.mp4 /path/to/output.gif`
+palette="/tmp/to-gif-palette.png"
+filters="fps=15"
+ffmpeg -v warning -i $1 -vf "$filters,palettegen" -y $palette
+ffmpeg -v warning -i $1 -i $palette -lavfi "$filters [x]; [x][1:v] paletteuse" -y $2
+
+# resize after
+# gifsicle --resize-fit-width 1000 -i animation.gif > animation-1000px.gif
diff --git a/bin/upload-to-cdn.sh b/bin/upload-to-cdn.sh
index aff66390e..0bf85401e 100755
--- a/bin/upload-to-cdn.sh
+++ b/bin/upload-to-cdn.sh
@@ -8,7 +8,7 @@
# - Checks if a tag is being built (on Travis - otherwise opts to continue execution regardless)
# - Installs AWS CLI if needed
# - Assumed a fully built uppy is in root dir (unless a specific tag was specified, then it's fetched from npm)
-# - Runs npm pack, and stores files to e.g. https://transloadit.edgly.net/releases/uppy/v0.29.0/dist/uppy.css
+# - Runs npm pack, and stores files to e.g. https://transloadit.edgly.net/releases/uppy/v0.29.1/dist/uppy.css
# - Uses local package by default, if [version] argument was specified, takes package from npm
#
# Run as:
diff --git a/examples/cdn-example/index.html b/examples/cdn-example/index.html
index 5f3896527..439d5feaf 100644
--- a/examples/cdn-example/index.html
+++ b/examples/cdn-example/index.html
@@ -4,11 +4,11 @@
-
+
-
+
+
+
+
```
2\. Add CSS to ``:
``` html
-
+
```
3\. Initialize at the bottom of the closing `` tag:
@@ -168,5 +168,5 @@ If you're using Uppy via a script tag, you can load the polyfills from [JSDelivr
```html
-
+
```
diff --git a/website/src/examples/i18n/app.html b/website/src/examples/i18n/app.html
index 37c833ef4..e73aecf17 100644
--- a/website/src/examples/i18n/app.html
+++ b/website/src/examples/i18n/app.html
@@ -1,11 +1,11 @@
+https://transloadit.edgly.net/releases/uppy/v0.29.1/dist/uppy.min.css -->
+https://transloadit.edgly.net/releases/uppy/v0.29.1/dist/uppy.min.js -->
+
+