diff --git a/.gitignore b/.gitignore index f75068b..2c65c83 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,4 @@ coverage .Trashes ehthumbs.db Thumbs.db +webslides.zip diff --git a/README.md b/README.md index 231a31c..a069a62 100644 --- a/README.md +++ b/README.md @@ -89,7 +89,6 @@ You can add: - [Animate on scroll](http://michalsnik.github.io/aos/) (Useful for longform articles) - [pt](http://williamngan.github.io/pt/) - ### Dive In! - Do not miss [our demos](https://webslides.tv/). diff --git a/package-lock.json b/package-lock.json index d61525f..72a5865 100644 --- a/package-lock.json +++ b/package-lock.json @@ -178,6 +178,37 @@ "integrity": "sha1-ldNgDwdxCqDpKYxyatXs8urLq6s=", "dev": true }, + "archiver": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/archiver/-/archiver-2.0.3.tgz", + "integrity": "sha1-tDYLtYSvFDeZGUJxbyHXxSPR270=", + "dev": true, + "requires": { + "archiver-utils": "1.3.0", + "async": "https://registry.npmjs.org/async/-/async-2.3.0.tgz", + "buffer-crc32": "0.2.13", + "glob": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz", + "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.6.tgz", + "tar-stream": "1.5.4", + "walkdir": "0.0.11", + "zip-stream": "1.2.0" + } + }, + "archiver-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-1.3.0.tgz", + "integrity": "sha1-5QtMCccL89aA4y/xt5lOn52JUXQ=", + "dev": true, + "requires": { + "glob": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz", + "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "lazystream": "1.0.0", + "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "normalize-path": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.0.1.tgz", + "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.6.tgz" + } + }, "are-we-there-yet": { "version": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", @@ -1401,6 +1432,15 @@ "integrity": "sha1-SOyNFt9Dd+rl+liEaCSAr02Vx3Q=", "dev": true }, + "bl": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.1.tgz", + "integrity": "sha1-ysMo977kVzDUBLaSID/LWQ4XLV4=", + "dev": true, + "requires": { + "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.6.tgz" + } + }, "block-stream": { "version": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", @@ -1578,6 +1618,12 @@ "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" } }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "dev": true + }, "buffer-indexof": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", @@ -1898,6 +1944,18 @@ "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", "dev": true }, + "compress-commons": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-1.2.0.tgz", + "integrity": "sha1-WFhwku8g03y1i68AARLJJ4/3O58=", + "dev": true, + "requires": { + "buffer-crc32": "0.2.13", + "crc32-stream": "2.0.0", + "normalize-path": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.0.1.tgz", + "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.6.tgz" + } + }, "compressible": { "version": "2.0.11", "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.11.tgz", @@ -2061,6 +2119,22 @@ } } }, + "crc": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/crc/-/crc-3.4.4.tgz", + "integrity": "sha1-naHpgOO9RPxck79as9ozeNheRms=", + "dev": true + }, + "crc32-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-2.0.0.tgz", + "integrity": "sha1-483TtN8xaN10494/u8t7KX/pCPQ=", + "dev": true, + "requires": { + "crc": "3.4.4", + "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.6.tgz" + } + }, "create-ecdh": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz", @@ -2609,6 +2683,15 @@ "integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA=", "dev": true }, + "end-of-stream": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.0.tgz", + "integrity": "sha1-epDYM+/abPpurA9JSduw+tOmMgY=", + "dev": true, + "requires": { + "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + } + }, "enhanced-resolve": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz", @@ -5475,7 +5558,7 @@ "istanbul-lib-hook": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.0.7.tgz", - "integrity": "sha512-3U2HB9y1ZV9UmFlE12Fx+nPtFqIymzrqCksrXujm3NVbAZIJg/RfYgO1XiIa0mbmxTjWpVEVlkIZJ25xVIAfkQ==", + "integrity": "sha1-3WYH8DB2V4/n1vKmMM8UO0m6zdw=", "dev": true, "requires": { "append-transform": "0.4.0" @@ -5507,7 +5590,7 @@ "istanbul-lib-report": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz", - "integrity": "sha512-tvF+YmCmH4thnez6JFX06ujIA19WPa9YUiwjc1uALF2cv5dmE3It8b5I8Ob7FHJ70H9Y5yF+TDkVa/mcADuw1Q==", + "integrity": "sha1-8OVfVmVf+jQiIIC3oM1HYOFAX8k=", "dev": true, "requires": { "istanbul-lib-coverage": "1.1.1", @@ -5530,7 +5613,7 @@ "istanbul-lib-source-maps": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.1.tgz", - "integrity": "sha512-mukVvSXCn9JQvdJl8wP/iPhqig0MRtuWuD4ZNKo6vB2Ik//AmhAKe3QnPN02dmkRe3lTudFk3rzoHhwU4hb94w==", + "integrity": "sha1-pv4ay6jOCO68Y45XLilNJnAIqgw=", "dev": true, "requires": { "debug": "https://registry.npmjs.org/debug/-/debug-2.6.3.tgz", @@ -6766,6 +6849,15 @@ "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", "dev": true }, + "lazystream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", + "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", + "dev": true, + "requires": { + "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.6.tgz" + } + }, "lcid": { "version": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", @@ -10763,6 +10855,18 @@ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" } }, + "tar-stream": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.5.4.tgz", + "integrity": "sha1-NlSc8E7RrumyowwBQyUiONr5QBY=", + "dev": true, + "requires": { + "bl": "1.2.1", + "end-of-stream": "1.4.0", + "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.6.tgz", + "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" + } + }, "test-exclude": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.1.1.tgz", @@ -11175,6 +11279,12 @@ "indexof": "0.0.1" } }, + "walkdir": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/walkdir/-/walkdir-0.0.11.tgz", + "integrity": "sha1-oW0CXrkxvQO1LzCMrtD0D86+lTI=", + "dev": true + }, "walker": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", @@ -11767,6 +11877,18 @@ "dev": true } } + }, + "zip-stream": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-1.2.0.tgz", + "integrity": "sha1-qLxF9MG0lpnGuQGYuqyqzbzUugQ=", + "dev": true, + "requires": { + "archiver-utils": "1.3.0", + "compress-commons": "1.2.0", + "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.6.tgz" + } } } } diff --git a/package.json b/package.json index aa48dec..cae807e 100644 --- a/package.json +++ b/package.json @@ -28,6 +28,7 @@ }, "homepage": "https://github.com/webslides/webslides#readme", "devDependencies": { + "archiver": "^2.0.3", "autoprefixer": "^7.1.4", "babel-cli": "^6.26.0", "babel-core": "^6.26.0", @@ -65,7 +66,18 @@ "lint:tests": "eslint ./test --cache --ignore-pattern .gitignore", "lint:css": "sass-lint -v -f stylish", "dev": "webpack-dev-server", - "test": "jest && codecov" + "test": "jest && codecov", + "preversion": "npm test", + "postversion": "npm run build && git add -A static && node ./zip-release.js && git push && git push --tags", + }, + "release": { + "files": [ + "demos/**/**", + "static/**/**", + "*.html", + "LICENSE", + "README.md" + ] }, "jest": { "collectCoverage": true diff --git a/zip-release.js b/zip-release.js new file mode 100644 index 0000000..745f6d3 --- /dev/null +++ b/zip-release.js @@ -0,0 +1,21 @@ +/* eslint-disable no-console */ +const fs = require('fs'); +const archiver = require('archiver'); +const pck = require('./package.json'); + +const output = fs.createWriteStream(`${__dirname}/${pck.name}.zip`); +const archive = archiver('zip', { zlib: { level: 9 } }); + +output.on('close', () => { + console.log(`${archive.pointer()} total bytes`); +}); + +archive.on('error', err => { + throw err; +}); + +archive.pipe(output); + +pck.release.files.forEach(f => archive.glob(f)); + +archive.finalize();