diff --git a/Makefile b/Makefile index 4b4092b..7a28afc 100644 --- a/Makefile +++ b/Makefile @@ -1,13 +1,16 @@ src_files := src/*.js src_dir := src -.PHONY: all lint build +.PHONY: all lint test build -all: lint build +all: lint test build lint: dist/icons.json ./node_modules/.bin/eslint . +test: + ./node_modules/.bin/jest + build: dist/feather.js dist/feather.min.js dist/icons node_modules: diff --git a/bin/__tests__/__snapshots__/process-svg.test.js.snap b/bin/__tests__/__snapshots__/process-svg.test.js.snap new file mode 100644 index 0000000..75c8ebe --- /dev/null +++ b/bin/__tests__/__snapshots__/process-svg.test.js.snap @@ -0,0 +1,26 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`processes SVG correctly 1`] = ` +" + + + +" +`; + +exports[`rejects when passed unparsable SVG string 1`] = ` +[Error: Error in parsing SVG: Unclosed root tag +Line: 0 +Column: 10 +Char: ] +`; diff --git a/bin/__tests__/process-svg.test.js b/bin/__tests__/process-svg.test.js new file mode 100644 index 0000000..79c63ff --- /dev/null +++ b/bin/__tests__/process-svg.test.js @@ -0,0 +1,15 @@ +/* eslint-env jest */ +import processSvg from '../process-svg'; + +test('processes SVG correctly', () => { + const SVG = + 'Title'; + + expect(processSvg(SVG)).resolves.toMatchSnapshot(); +}); + +test('rejects when passed unparsable SVG string', () => { + const UNPARSABLE_SVG = '} + */ +function processSvg(svg) { + return ( + optimize(svg) + .then(setAttributes) + .then(format) + // remove semicolon inserted by prettier + // because prettier thinks it's formatting JSX not HTML + .then(svg => svg.replace(/;/g, '')) + ); +} + +/** + * Optimize SVG with `svgo`. + * @param {string} svg - An SVG string. + * @returns {Promise} + */ +function optimize(svg) { + const svgo = new Svgo({ + plugins: [ + { convertShapeToPath: false }, + { mergePaths: false }, + { removeAttrs: { attrs: '(fill|stroke.*)' } }, + { removeTitle: true }, + ], + }); + + return new Promise(resolve => { + svgo.optimize(svg, ({ data }) => resolve(data)); + }); +} + +/** + * Set default attibutes on SVG. + * @param {string} svg - An SVG string. + * @returns {string} + */ +function setAttributes(svg) { + const $ = cheerio.load(svg); + + Object.keys(DEFAULT_ATTRIBUTES).forEach(key => + $('svg').attr(key, DEFAULT_ATTRIBUTES[key]), + ); + + return $('body').html(); +} + +export default processSvg; diff --git a/bin/process-svgs.js b/bin/process-svgs.js new file mode 100644 index 0000000..3bd4981 --- /dev/null +++ b/bin/process-svgs.js @@ -0,0 +1,15 @@ +/* eslint-disable import/no-extraneous-dependencies */ +import fs from 'fs'; +import path from 'path'; + +import processSvg from './process-svg'; + +const ICONS_DIR = path.resolve(__dirname, '../icons'); + +fs + .readdirSync(ICONS_DIR) + .filter(file => path.extname(file) === '.svg') + .forEach(svgFile => { + const svg = fs.readFileSync(path.join(ICONS_DIR, svgFile)); + processSvg(svg).then(svg => fs.writeFileSync(path.join(ICONS_DIR, svgFile), svg)); + }); diff --git a/icons/activity.svg b/icons/activity.svg index 3584132..2eccd9c 100644 --- a/icons/activity.svg +++ b/icons/activity.svg @@ -1,3 +1,13 @@ - - + + diff --git a/icons/airplay.svg b/icons/airplay.svg index 427e2c7..efa8ec3 100644 --- a/icons/airplay.svg +++ b/icons/airplay.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/alert-circle.svg b/icons/alert-circle.svg index 280aa31..6462242 100644 --- a/icons/alert-circle.svg +++ b/icons/alert-circle.svg @@ -1,5 +1,15 @@ - - - - + + + + diff --git a/icons/alert-octagon.svg b/icons/alert-octagon.svg index cf6765d..c0bb0f6 100644 --- a/icons/alert-octagon.svg +++ b/icons/alert-octagon.svg @@ -1,5 +1,15 @@ - - - - + + + + diff --git a/icons/alert-triangle.svg b/icons/alert-triangle.svg index c32b76d..3a0479e 100644 --- a/icons/alert-triangle.svg +++ b/icons/alert-triangle.svg @@ -1,5 +1,15 @@ - - - - + + + + diff --git a/icons/align-center.svg b/icons/align-center.svg index 9e48a28..c899360 100644 --- a/icons/align-center.svg +++ b/icons/align-center.svg @@ -1,6 +1,16 @@ - - - - - + + + + + diff --git a/icons/align-justify.svg b/icons/align-justify.svg index cb9c9bf..392e197 100644 --- a/icons/align-justify.svg +++ b/icons/align-justify.svg @@ -1,6 +1,16 @@ - - - - - + + + + + diff --git a/icons/align-left.svg b/icons/align-left.svg index 0854522..1e925ff 100644 --- a/icons/align-left.svg +++ b/icons/align-left.svg @@ -1,6 +1,16 @@ - - - - - + + + + + diff --git a/icons/align-right.svg b/icons/align-right.svg index 72708c2..e5b72b4 100644 --- a/icons/align-right.svg +++ b/icons/align-right.svg @@ -1,6 +1,16 @@ - - - - - + + + + + diff --git a/icons/anchor.svg b/icons/anchor.svg index d87888f..696a416 100644 --- a/icons/anchor.svg +++ b/icons/anchor.svg @@ -1,5 +1,15 @@ - - - - + + + + diff --git a/icons/aperture.svg b/icons/aperture.svg index dcc35ba..15652da 100644 --- a/icons/aperture.svg +++ b/icons/aperture.svg @@ -1,9 +1,19 @@ - - - - - - - - + + + + + + + + diff --git a/icons/arrow-down-left.svg b/icons/arrow-down-left.svg index e4fa81b..52f82d4 100644 --- a/icons/arrow-down-left.svg +++ b/icons/arrow-down-left.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/arrow-down-right.svg b/icons/arrow-down-right.svg index 7ba7ca1..1a5537f 100644 --- a/icons/arrow-down-right.svg +++ b/icons/arrow-down-right.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/arrow-down.svg b/icons/arrow-down.svg index edf0f16..55e355a 100644 --- a/icons/arrow-down.svg +++ b/icons/arrow-down.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/arrow-left.svg b/icons/arrow-left.svg index bde05e4..2cf8dc8 100644 --- a/icons/arrow-left.svg +++ b/icons/arrow-left.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/arrow-right.svg b/icons/arrow-right.svg index a3195a2..d1eafec 100644 --- a/icons/arrow-right.svg +++ b/icons/arrow-right.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/arrow-up-left.svg b/icons/arrow-up-left.svg index 2637bcb..7bc4ef1 100644 --- a/icons/arrow-up-left.svg +++ b/icons/arrow-up-left.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/arrow-up-right.svg b/icons/arrow-up-right.svg index e42e4c3..882d99b 100644 --- a/icons/arrow-up-right.svg +++ b/icons/arrow-up-right.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/arrow-up.svg b/icons/arrow-up.svg index 63994a4..2603f4a 100644 --- a/icons/arrow-up.svg +++ b/icons/arrow-up.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/at-sign.svg b/icons/at-sign.svg index 0d62e47..129b42b 100644 --- a/icons/at-sign.svg +++ b/icons/at-sign.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/award.svg b/icons/award.svg index a8206b5..e0ed89c 100644 --- a/icons/award.svg +++ b/icons/award.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/bar-chart-2.svg b/icons/bar-chart-2.svg index bf04491..1fec079 100644 --- a/icons/bar-chart-2.svg +++ b/icons/bar-chart-2.svg @@ -1,5 +1,15 @@ - - - - + + + + diff --git a/icons/bar-chart.svg b/icons/bar-chart.svg index 593b543..ffec203 100644 --- a/icons/bar-chart.svg +++ b/icons/bar-chart.svg @@ -1,5 +1,15 @@ - - - - + + + + diff --git a/icons/battery-charging.svg b/icons/battery-charging.svg index 99a591f..a05ba59 100644 --- a/icons/battery-charging.svg +++ b/icons/battery-charging.svg @@ -1,5 +1,15 @@ - - - - + + + + diff --git a/icons/battery.svg b/icons/battery.svg index 42f99b9..9692024 100644 --- a/icons/battery.svg +++ b/icons/battery.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/bell-off.svg b/icons/bell-off.svg index 19117ae..e0141bf 100644 --- a/icons/bell-off.svg +++ b/icons/bell-off.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/bell.svg b/icons/bell.svg index a9063aa..4bda4c0 100644 --- a/icons/bell.svg +++ b/icons/bell.svg @@ -1,3 +1,13 @@ - - + + diff --git a/icons/bluetooth.svg b/icons/bluetooth.svg index 4fdf7e8..aa2e20f 100644 --- a/icons/bluetooth.svg +++ b/icons/bluetooth.svg @@ -1,3 +1,13 @@ - - + + diff --git a/icons/bold.svg b/icons/bold.svg index 42c8a9e..42bc5f1 100644 --- a/icons/bold.svg +++ b/icons/bold.svg @@ -1 +1,14 @@ - \ No newline at end of file + + + + diff --git a/icons/book.svg b/icons/book.svg index d081df9..3becfa4 100644 --- a/icons/book.svg +++ b/icons/book.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/bookmark.svg b/icons/bookmark.svg index 2852ebb..2285956 100644 --- a/icons/bookmark.svg +++ b/icons/bookmark.svg @@ -1,3 +1,13 @@ - - + + diff --git a/icons/box.svg b/icons/box.svg index 0b4858d..21c4d5c 100644 --- a/icons/box.svg +++ b/icons/box.svg @@ -1,5 +1,15 @@ - - - - + + + + diff --git a/icons/briefcase.svg b/icons/briefcase.svg index d8257d8..4178c4e 100644 --- a/icons/briefcase.svg +++ b/icons/briefcase.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/calendar.svg b/icons/calendar.svg index 0030bb9..c002b85 100644 --- a/icons/calendar.svg +++ b/icons/calendar.svg @@ -1,6 +1,16 @@ - - - - - + + + + + diff --git a/icons/camera-off.svg b/icons/camera-off.svg index e31a0ea..9a3ac4d 100644 --- a/icons/camera-off.svg +++ b/icons/camera-off.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/camera.svg b/icons/camera.svg index 3ffe3da..e64394d 100644 --- a/icons/camera.svg +++ b/icons/camera.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/cast.svg b/icons/cast.svg index e08743f..0fb18a7 100644 --- a/icons/cast.svg +++ b/icons/cast.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/check-circle.svg b/icons/check-circle.svg index 720c2f1..836f625 100644 --- a/icons/check-circle.svg +++ b/icons/check-circle.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/check-square.svg b/icons/check-square.svg index 0868480..ac6d746 100644 --- a/icons/check-square.svg +++ b/icons/check-square.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/check.svg b/icons/check.svg index 9351e77..80aaf84 100644 --- a/icons/check.svg +++ b/icons/check.svg @@ -1,3 +1,13 @@ - - + + diff --git a/icons/chevron-down.svg b/icons/chevron-down.svg index e44c572..bda8e89 100644 --- a/icons/chevron-down.svg +++ b/icons/chevron-down.svg @@ -1,3 +1,13 @@ - - + + diff --git a/icons/chevron-left.svg b/icons/chevron-left.svg index 0d57c8a..5af8840 100644 --- a/icons/chevron-left.svg +++ b/icons/chevron-left.svg @@ -1,3 +1,13 @@ - - + + diff --git a/icons/chevron-right.svg b/icons/chevron-right.svg index aa62be5..fde2d64 100644 --- a/icons/chevron-right.svg +++ b/icons/chevron-right.svg @@ -1,3 +1,13 @@ - - + + diff --git a/icons/chevron-up.svg b/icons/chevron-up.svg index 27f7bb7..085188c 100644 --- a/icons/chevron-up.svg +++ b/icons/chevron-up.svg @@ -1,3 +1,13 @@ - - + + diff --git a/icons/chevrons-down.svg b/icons/chevrons-down.svg index c551d50..fac1aef 100644 --- a/icons/chevrons-down.svg +++ b/icons/chevrons-down.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/chevrons-left.svg b/icons/chevrons-left.svg index 2f1b690..712f4bc 100644 --- a/icons/chevrons-left.svg +++ b/icons/chevrons-left.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/chevrons-right.svg b/icons/chevrons-right.svg index 12fe6ae..1794243 100644 --- a/icons/chevrons-right.svg +++ b/icons/chevrons-right.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/chevrons-up.svg b/icons/chevrons-up.svg index 179c19b..7e38fb5 100644 --- a/icons/chevrons-up.svg +++ b/icons/chevrons-up.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/chrome.svg b/icons/chrome.svg index 6f17bd2..7b4bc1a 100644 --- a/icons/chrome.svg +++ b/icons/chrome.svg @@ -1,7 +1,17 @@ - - - - - - + + + + + + diff --git a/icons/circle.svg b/icons/circle.svg index 8b9ba61..1717bb4 100644 --- a/icons/circle.svg +++ b/icons/circle.svg @@ -1,3 +1,13 @@ - - + + diff --git a/icons/clipboard.svg b/icons/clipboard.svg index e4ba7f6..6e733e7 100644 --- a/icons/clipboard.svg +++ b/icons/clipboard.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/clock.svg b/icons/clock.svg index a793880..c3aa2ce 100644 --- a/icons/clock.svg +++ b/icons/clock.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/cloud-drizzle.svg b/icons/cloud-drizzle.svg index 18eac99..2922969 100644 --- a/icons/cloud-drizzle.svg +++ b/icons/cloud-drizzle.svg @@ -1,9 +1,19 @@ - - - - - - - - + + + + + + + + diff --git a/icons/cloud-lightning.svg b/icons/cloud-lightning.svg index 08c1c00..ee2e1de 100644 --- a/icons/cloud-lightning.svg +++ b/icons/cloud-lightning.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/cloud-off.svg b/icons/cloud-off.svg index 556fadf..b28a3d9 100644 --- a/icons/cloud-off.svg +++ b/icons/cloud-off.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/cloud-rain.svg b/icons/cloud-rain.svg index e00b164..f43c1e1 100644 --- a/icons/cloud-rain.svg +++ b/icons/cloud-rain.svg @@ -1,6 +1,16 @@ - - - - - + + + + + diff --git a/icons/cloud-snow.svg b/icons/cloud-snow.svg index 35a6e25..c41fdd3 100644 --- a/icons/cloud-snow.svg +++ b/icons/cloud-snow.svg @@ -1,9 +1,19 @@ - - - - - - - - + + + + + + + + diff --git a/icons/cloud.svg b/icons/cloud.svg index cb6087f..de6faf1 100644 --- a/icons/cloud.svg +++ b/icons/cloud.svg @@ -1,3 +1,13 @@ - - + + diff --git a/icons/codepen.svg b/icons/codepen.svg index 07fcb34..2f350f1 100644 --- a/icons/codepen.svg +++ b/icons/codepen.svg @@ -1,7 +1,17 @@ - - - - - - + + + + + + diff --git a/icons/command.svg b/icons/command.svg index 4135d14..0817c6c 100644 --- a/icons/command.svg +++ b/icons/command.svg @@ -1,3 +1,13 @@ - - + + diff --git a/icons/compass.svg b/icons/compass.svg index 18fab19..5550490 100644 --- a/icons/compass.svg +++ b/icons/compass.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/copy.svg b/icons/copy.svg index 5b073e4..c8d4956 100644 --- a/icons/copy.svg +++ b/icons/copy.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/corner-down-left.svg b/icons/corner-down-left.svg index 8c271a5..71696a4 100644 --- a/icons/corner-down-left.svg +++ b/icons/corner-down-left.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/corner-down-right.svg b/icons/corner-down-right.svg index 586f2bf..dd9f7a4 100644 --- a/icons/corner-down-right.svg +++ b/icons/corner-down-right.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/corner-left-down.svg b/icons/corner-left-down.svg index 04d3ddb..5c44b7d 100644 --- a/icons/corner-left-down.svg +++ b/icons/corner-left-down.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/corner-left-up.svg b/icons/corner-left-up.svg index fe130c0..cd75292 100644 --- a/icons/corner-left-up.svg +++ b/icons/corner-left-up.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/corner-right-down.svg b/icons/corner-right-down.svg index 7bf576d..aa4690a 100644 --- a/icons/corner-right-down.svg +++ b/icons/corner-right-down.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/corner-right-up.svg b/icons/corner-right-up.svg index f1fecde..fd80c2c 100644 --- a/icons/corner-right-up.svg +++ b/icons/corner-right-up.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/corner-up-left.svg b/icons/corner-up-left.svg index 660b85d..76b5bfb 100644 --- a/icons/corner-up-left.svg +++ b/icons/corner-up-left.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/corner-up-right.svg b/icons/corner-up-right.svg index 3a6cc5a..755cbfd 100644 --- a/icons/corner-up-right.svg +++ b/icons/corner-up-right.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/cpu.svg b/icons/cpu.svg index 26d36fc..4c45b9d 100644 --- a/icons/cpu.svg +++ b/icons/cpu.svg @@ -1,12 +1,22 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/icons/credit-card.svg b/icons/credit-card.svg index d1d89a0..ef1728b 100644 --- a/icons/credit-card.svg +++ b/icons/credit-card.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/crop.svg b/icons/crop.svg index c0efca3..33b5cd9 100644 --- a/icons/crop.svg +++ b/icons/crop.svg @@ -1 +1,14 @@ - \ No newline at end of file + + + + diff --git a/icons/crosshair.svg b/icons/crosshair.svg index e82aa6a..2c44849 100644 --- a/icons/crosshair.svg +++ b/icons/crosshair.svg @@ -1,7 +1,17 @@ - - - - - - + + + + + + diff --git a/icons/delete.svg b/icons/delete.svg index 830dab7..46c79d0 100644 --- a/icons/delete.svg +++ b/icons/delete.svg @@ -1,5 +1,15 @@ - - - - + + + + diff --git a/icons/disc.svg b/icons/disc.svg index bd80b99..df07c00 100644 --- a/icons/disc.svg +++ b/icons/disc.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/download-cloud.svg b/icons/download-cloud.svg index 623f805..99050fb 100644 --- a/icons/download-cloud.svg +++ b/icons/download-cloud.svg @@ -1,5 +1,15 @@ - - - - + + + + diff --git a/icons/download.svg b/icons/download.svg index 5af8946..f1efef3 100644 --- a/icons/download.svg +++ b/icons/download.svg @@ -1,5 +1,15 @@ - - - - + + + + diff --git a/icons/droplet.svg b/icons/droplet.svg index fbf4960..2be2515 100644 --- a/icons/droplet.svg +++ b/icons/droplet.svg @@ -1,3 +1,13 @@ - - + + diff --git a/icons/edit-2.svg b/icons/edit-2.svg index 6d92674..ca0f611 100644 --- a/icons/edit-2.svg +++ b/icons/edit-2.svg @@ -1,3 +1,13 @@ - - + + diff --git a/icons/edit-3.svg b/icons/edit-3.svg index e670223..63bbf72 100644 --- a/icons/edit-3.svg +++ b/icons/edit-3.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/edit.svg b/icons/edit.svg index 045f38b..73f1fc8 100644 --- a/icons/edit.svg +++ b/icons/edit.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/external-link.svg b/icons/external-link.svg index fdbcd4c..537b731 100644 --- a/icons/external-link.svg +++ b/icons/external-link.svg @@ -1,5 +1,15 @@ - - - - + + + + diff --git a/icons/eye-off.svg b/icons/eye-off.svg index b020444..98c45f6 100644 --- a/icons/eye-off.svg +++ b/icons/eye-off.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/eye.svg b/icons/eye.svg index 25ef86f..edaab72 100644 --- a/icons/eye.svg +++ b/icons/eye.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/facebook.svg b/icons/facebook.svg index 608ff27..8be7109 100644 --- a/icons/facebook.svg +++ b/icons/facebook.svg @@ -1,3 +1,13 @@ - - + + diff --git a/icons/fast-forward.svg b/icons/fast-forward.svg index b2cfd53..6c8409c 100644 --- a/icons/fast-forward.svg +++ b/icons/fast-forward.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/feather.svg b/icons/feather.svg index 92e51f9..efec0a9 100644 --- a/icons/feather.svg +++ b/icons/feather.svg @@ -1,5 +1,15 @@ - - - - + + + + diff --git a/icons/file-minus.svg b/icons/file-minus.svg index e6dce3c..eb1c280 100644 --- a/icons/file-minus.svg +++ b/icons/file-minus.svg @@ -1,5 +1,15 @@ - - - - + + + + diff --git a/icons/file-plus.svg b/icons/file-plus.svg index 1be8422..24283ca 100644 --- a/icons/file-plus.svg +++ b/icons/file-plus.svg @@ -1,6 +1,16 @@ - - - - - + + + + + diff --git a/icons/file-text.svg b/icons/file-text.svg index 3d06282..6cba58c 100644 --- a/icons/file-text.svg +++ b/icons/file-text.svg @@ -1,7 +1,17 @@ - - - - - - + + + + + + diff --git a/icons/file.svg b/icons/file.svg index 97ea233..2858cf1 100644 --- a/icons/file.svg +++ b/icons/file.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/film.svg b/icons/film.svg index 0588009..a9f5b15 100644 --- a/icons/film.svg +++ b/icons/film.svg @@ -1,10 +1,20 @@ - - - - - - - - - + + + + + + + + + diff --git a/icons/filter.svg b/icons/filter.svg index 94e0f2e..adc513c 100644 --- a/icons/filter.svg +++ b/icons/filter.svg @@ -1,3 +1,13 @@ - - + + diff --git a/icons/flag.svg b/icons/flag.svg index 5c98d0a..8100a2f 100644 --- a/icons/flag.svg +++ b/icons/flag.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/folder.svg b/icons/folder.svg index 7019d98..bc87557 100644 --- a/icons/folder.svg +++ b/icons/folder.svg @@ -1,3 +1,13 @@ - - + + diff --git a/icons/github.svg b/icons/github.svg index 15282aa..9b10063 100644 --- a/icons/github.svg +++ b/icons/github.svg @@ -1,3 +1,13 @@ - - + + diff --git a/icons/gitlab.svg b/icons/gitlab.svg index c82d31c..b3a72da 100644 --- a/icons/gitlab.svg +++ b/icons/gitlab.svg @@ -1 +1,13 @@ - \ No newline at end of file + + + diff --git a/icons/globe.svg b/icons/globe.svg index 8336543..a9c820f 100644 --- a/icons/globe.svg +++ b/icons/globe.svg @@ -1,5 +1,15 @@ - - - - + + + + diff --git a/icons/grid.svg b/icons/grid.svg index 6fb5b42..1c0b49a 100644 --- a/icons/grid.svg +++ b/icons/grid.svg @@ -1,6 +1,16 @@ - - - - - + + + + + diff --git a/icons/hash.svg b/icons/hash.svg index 375058e..9cc4f15 100644 --- a/icons/hash.svg +++ b/icons/hash.svg @@ -1,6 +1,16 @@ - - - - - + + + + + diff --git a/icons/headphones.svg b/icons/headphones.svg index 1ea46c3..f9c1cbd 100644 --- a/icons/headphones.svg +++ b/icons/headphones.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/heart.svg b/icons/heart.svg index 6d38a9a..8e0b98d 100644 --- a/icons/heart.svg +++ b/icons/heart.svg @@ -1,3 +1,13 @@ - - + + diff --git a/icons/help-circle.svg b/icons/help-circle.svg index b551853..64e20f5 100644 --- a/icons/help-circle.svg +++ b/icons/help-circle.svg @@ -1 +1,15 @@ - \ No newline at end of file + + + + + diff --git a/icons/home.svg b/icons/home.svg index 6baccc0..9cd8f76 100644 --- a/icons/home.svg +++ b/icons/home.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/image.svg b/icons/image.svg index 6feaa97..1175162 100644 --- a/icons/image.svg +++ b/icons/image.svg @@ -1,5 +1,15 @@ - - - - + + + + diff --git a/icons/inbox.svg b/icons/inbox.svg index d19a480..461af58 100644 --- a/icons/inbox.svg +++ b/icons/inbox.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/info.svg b/icons/info.svg index a09af66..68a59f5 100644 --- a/icons/info.svg +++ b/icons/info.svg @@ -1,5 +1,15 @@ - - - - + + + + diff --git a/icons/instagram.svg b/icons/instagram.svg index 9505c4d..ecd1317 100644 --- a/icons/instagram.svg +++ b/icons/instagram.svg @@ -1,5 +1,15 @@ - - - - + + + + diff --git a/icons/italic.svg b/icons/italic.svg index 2fab796..9dfd524 100644 --- a/icons/italic.svg +++ b/icons/italic.svg @@ -1 +1,15 @@ - \ No newline at end of file + + + + + diff --git a/icons/layers.svg b/icons/layers.svg index 631d4e7..43b3255 100644 --- a/icons/layers.svg +++ b/icons/layers.svg @@ -1,5 +1,15 @@ - - - - + + + + diff --git a/icons/layout.svg b/icons/layout.svg index 7dd79c1..80c5066 100644 --- a/icons/layout.svg +++ b/icons/layout.svg @@ -1,5 +1,15 @@ - - - - + + + + diff --git a/icons/life-buoy.svg b/icons/life-buoy.svg index ce923db..b171b39 100644 --- a/icons/life-buoy.svg +++ b/icons/life-buoy.svg @@ -1,9 +1,19 @@ - - - - - - - - + + + + + + + + diff --git a/icons/link-2.svg b/icons/link-2.svg index 22a0219..858bc33 100644 --- a/icons/link-2.svg +++ b/icons/link-2.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/link.svg b/icons/link.svg index 823ff13..645e746 100644 --- a/icons/link.svg +++ b/icons/link.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/list.svg b/icons/list.svg index 6e60003..06ab35a 100644 --- a/icons/list.svg +++ b/icons/list.svg @@ -1,8 +1,18 @@ - - - - - - - + + + + + + + diff --git a/icons/loader.svg b/icons/loader.svg index 12a105b..0b4bb93 100644 --- a/icons/loader.svg +++ b/icons/loader.svg @@ -1,10 +1,20 @@ - - - - - - - - - + + + + + + + + + diff --git a/icons/lock.svg b/icons/lock.svg index 1fbe746..cd6b7f6 100644 --- a/icons/lock.svg +++ b/icons/lock.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/log-in.svg b/icons/log-in.svg index 29c14b2..6f61c37 100644 --- a/icons/log-in.svg +++ b/icons/log-in.svg @@ -1,5 +1,15 @@ - - - - + + + + diff --git a/icons/log-out.svg b/icons/log-out.svg index 2752568..8cb1db8 100644 --- a/icons/log-out.svg +++ b/icons/log-out.svg @@ -1,5 +1,15 @@ - - - - + + + + diff --git a/icons/mail.svg b/icons/mail.svg index 4dddcc6..afaa18f 100644 --- a/icons/mail.svg +++ b/icons/mail.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/map-pin.svg b/icons/map-pin.svg index f21bb76..8f5f320 100644 --- a/icons/map-pin.svg +++ b/icons/map-pin.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/map.svg b/icons/map.svg index d0b761a..8c55dcc 100644 --- a/icons/map.svg +++ b/icons/map.svg @@ -1,5 +1,15 @@ - - - - + + + + diff --git a/icons/maximize-2.svg b/icons/maximize-2.svg index a6d95a0..abfa104 100644 --- a/icons/maximize-2.svg +++ b/icons/maximize-2.svg @@ -1,6 +1,16 @@ - - - - - + + + + + diff --git a/icons/maximize.svg b/icons/maximize.svg index 3570f43..97a3c14 100644 --- a/icons/maximize.svg +++ b/icons/maximize.svg @@ -1,3 +1,13 @@ - - + + diff --git a/icons/menu.svg b/icons/menu.svg index 3a73c86..ab23d38 100644 --- a/icons/menu.svg +++ b/icons/menu.svg @@ -1,5 +1,15 @@ - - - - + + + + diff --git a/icons/message-circle.svg b/icons/message-circle.svg index c263358..0ac1044 100644 --- a/icons/message-circle.svg +++ b/icons/message-circle.svg @@ -1,3 +1,13 @@ - - + + diff --git a/icons/message-square.svg b/icons/message-square.svg index 33e4b91..be1caf3 100644 --- a/icons/message-square.svg +++ b/icons/message-square.svg @@ -1,3 +1,13 @@ - - + + diff --git a/icons/mic-off.svg b/icons/mic-off.svg index 0302ca1..b9f0196 100644 --- a/icons/mic-off.svg +++ b/icons/mic-off.svg @@ -1,7 +1,17 @@ - - - - - - + + + + + + diff --git a/icons/mic.svg b/icons/mic.svg index 513b949..3f1a11a 100644 --- a/icons/mic.svg +++ b/icons/mic.svg @@ -1,6 +1,16 @@ - - - - - + + + + + diff --git a/icons/minimize-2.svg b/icons/minimize-2.svg index f4e9814..cb6c3a8 100644 --- a/icons/minimize-2.svg +++ b/icons/minimize-2.svg @@ -1,6 +1,16 @@ - - - - - + + + + + diff --git a/icons/minimize.svg b/icons/minimize.svg index d087bd0..2aab5bb 100644 --- a/icons/minimize.svg +++ b/icons/minimize.svg @@ -1,3 +1,13 @@ - - + + diff --git a/icons/minus-circle.svg b/icons/minus-circle.svg index bd01962..92a2ed6 100644 --- a/icons/minus-circle.svg +++ b/icons/minus-circle.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/minus-square.svg b/icons/minus-square.svg index 0ea5245..3d03133 100644 --- a/icons/minus-square.svg +++ b/icons/minus-square.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/minus.svg b/icons/minus.svg index 4e0512a..38b1ffc 100644 --- a/icons/minus.svg +++ b/icons/minus.svg @@ -1,3 +1,13 @@ - - + + diff --git a/icons/monitor.svg b/icons/monitor.svg index 72f3eed..d983a85 100644 --- a/icons/monitor.svg +++ b/icons/monitor.svg @@ -1,5 +1,15 @@ - - - - + + + + diff --git a/icons/moon.svg b/icons/moon.svg index eb7ac7b..5023005 100644 --- a/icons/moon.svg +++ b/icons/moon.svg @@ -1,3 +1,13 @@ - - + + diff --git a/icons/more-horizontal.svg b/icons/more-horizontal.svg index 47b83ba..2846881 100644 --- a/icons/more-horizontal.svg +++ b/icons/more-horizontal.svg @@ -1,5 +1,15 @@ - - - - + + + + diff --git a/icons/more-vertical.svg b/icons/more-vertical.svg index adce645..bcb84c7 100644 --- a/icons/more-vertical.svg +++ b/icons/more-vertical.svg @@ -1,5 +1,15 @@ - - - - + + + + diff --git a/icons/move.svg b/icons/move.svg index 71898d7..40de93c 100644 --- a/icons/move.svg +++ b/icons/move.svg @@ -1,8 +1,18 @@ - - - - - - - + + + + + + + diff --git a/icons/music.svg b/icons/music.svg index 6bf9c75..6b1b9d0 100644 --- a/icons/music.svg +++ b/icons/music.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/navigation-2.svg b/icons/navigation-2.svg index ee9248b..febc406 100644 --- a/icons/navigation-2.svg +++ b/icons/navigation-2.svg @@ -1,3 +1,13 @@ - - + + diff --git a/icons/navigation.svg b/icons/navigation.svg index 470ca06..b2be022 100644 --- a/icons/navigation.svg +++ b/icons/navigation.svg @@ -1,3 +1,13 @@ - - + + diff --git a/icons/octagon.svg b/icons/octagon.svg index 425123d..8a550f1 100644 --- a/icons/octagon.svg +++ b/icons/octagon.svg @@ -1,3 +1,13 @@ - - + + diff --git a/icons/package.svg b/icons/package.svg index 3b9f7aa..e84210d 100644 --- a/icons/package.svg +++ b/icons/package.svg @@ -1,6 +1,16 @@ - - - - - + + + + + diff --git a/icons/paperclip.svg b/icons/paperclip.svg index 763995e..fe780eb 100644 --- a/icons/paperclip.svg +++ b/icons/paperclip.svg @@ -1 +1,13 @@ - \ No newline at end of file + + + diff --git a/icons/pause-circle.svg b/icons/pause-circle.svg index 97a94ba..39ce681 100644 --- a/icons/pause-circle.svg +++ b/icons/pause-circle.svg @@ -1,5 +1,15 @@ - - - - + + + + diff --git a/icons/pause.svg b/icons/pause.svg index d378ae3..756b604 100644 --- a/icons/pause.svg +++ b/icons/pause.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/percent.svg b/icons/percent.svg index 0abad4f..3d18ed1 100644 --- a/icons/percent.svg +++ b/icons/percent.svg @@ -1,5 +1,15 @@ - - - - + + + + diff --git a/icons/phone-call.svg b/icons/phone-call.svg index 6e22f5c..7fd231d 100644 --- a/icons/phone-call.svg +++ b/icons/phone-call.svg @@ -1,3 +1,13 @@ - - + + diff --git a/icons/phone-forwarded.svg b/icons/phone-forwarded.svg index 0b7b6ec..bcf3db0 100644 --- a/icons/phone-forwarded.svg +++ b/icons/phone-forwarded.svg @@ -1,5 +1,15 @@ - - - - + + + + diff --git a/icons/phone-incoming.svg b/icons/phone-incoming.svg index d24df2c..9bbde4a 100644 --- a/icons/phone-incoming.svg +++ b/icons/phone-incoming.svg @@ -1,5 +1,15 @@ - - - - + + + + diff --git a/icons/phone-missed.svg b/icons/phone-missed.svg index 9e73774..da522b7 100644 --- a/icons/phone-missed.svg +++ b/icons/phone-missed.svg @@ -1,5 +1,15 @@ - - - - + + + + diff --git a/icons/phone-off.svg b/icons/phone-off.svg index bde5152..a0a0ad9 100644 --- a/icons/phone-off.svg +++ b/icons/phone-off.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/phone-outgoing.svg b/icons/phone-outgoing.svg index 14facf1..107267b 100644 --- a/icons/phone-outgoing.svg +++ b/icons/phone-outgoing.svg @@ -1,5 +1,15 @@ - - - - + + + + diff --git a/icons/phone.svg b/icons/phone.svg index 375e5be..b1972e9 100644 --- a/icons/phone.svg +++ b/icons/phone.svg @@ -1,3 +1,13 @@ - - + + diff --git a/icons/pie-chart.svg b/icons/pie-chart.svg index 1bc0133..f128b88 100644 --- a/icons/pie-chart.svg +++ b/icons/pie-chart.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/play-circle.svg b/icons/play-circle.svg index 00df975..f814cfd 100644 --- a/icons/play-circle.svg +++ b/icons/play-circle.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/play.svg b/icons/play.svg index 36134fc..d1e20e2 100644 --- a/icons/play.svg +++ b/icons/play.svg @@ -1,3 +1,13 @@ - - + + diff --git a/icons/plus-circle.svg b/icons/plus-circle.svg index 4aade84..413fb48 100644 --- a/icons/plus-circle.svg +++ b/icons/plus-circle.svg @@ -1,5 +1,15 @@ - - - - + + + + diff --git a/icons/plus-square.svg b/icons/plus-square.svg index 8b94e78..c8f4798 100644 --- a/icons/plus-square.svg +++ b/icons/plus-square.svg @@ -1,5 +1,15 @@ - - - - + + + + diff --git a/icons/plus.svg b/icons/plus.svg index a67c612..1e1b1c5 100644 --- a/icons/plus.svg +++ b/icons/plus.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/pocket.svg b/icons/pocket.svg index 634451b..00376f4 100644 --- a/icons/pocket.svg +++ b/icons/pocket.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/power.svg b/icons/power.svg index 51738ff..cc03e38 100644 --- a/icons/power.svg +++ b/icons/power.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/printer.svg b/icons/printer.svg index f6321b9..5df50ae 100644 --- a/icons/printer.svg +++ b/icons/printer.svg @@ -1,5 +1,15 @@ - - - - + + + + diff --git a/icons/radio.svg b/icons/radio.svg index ff53494..25ddfd9 100644 --- a/icons/radio.svg +++ b/icons/radio.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/refresh-ccw.svg b/icons/refresh-ccw.svg index f9861a6..24f934c 100644 --- a/icons/refresh-ccw.svg +++ b/icons/refresh-ccw.svg @@ -1,5 +1,15 @@ - - - - + + + + diff --git a/icons/refresh-cw.svg b/icons/refresh-cw.svg index 7cc7827..1773a2f 100644 --- a/icons/refresh-cw.svg +++ b/icons/refresh-cw.svg @@ -1,5 +1,15 @@ - - - - + + + + diff --git a/icons/repeat.svg b/icons/repeat.svg index bfff7f2..3426889 100644 --- a/icons/repeat.svg +++ b/icons/repeat.svg @@ -1,6 +1,16 @@ - - - - - + + + + + diff --git a/icons/rewind.svg b/icons/rewind.svg index bcbc2bf..749f98d 100644 --- a/icons/rewind.svg +++ b/icons/rewind.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/rotate-ccw.svg b/icons/rotate-ccw.svg index 5e54634..df7e67d 100644 --- a/icons/rotate-ccw.svg +++ b/icons/rotate-ccw.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/rotate-cw.svg b/icons/rotate-cw.svg index bdfac28..6756265 100644 --- a/icons/rotate-cw.svg +++ b/icons/rotate-cw.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/save.svg b/icons/save.svg index c9a080c..ddf6bf3 100644 --- a/icons/save.svg +++ b/icons/save.svg @@ -1,5 +1,15 @@ - - - - + + + + diff --git a/icons/scissors.svg b/icons/scissors.svg index 676e78f..1bf1774 100644 --- a/icons/scissors.svg +++ b/icons/scissors.svg @@ -1,7 +1,17 @@ - - - - - - + + + + + + diff --git a/icons/search.svg b/icons/search.svg index f267e1d..3950811 100644 --- a/icons/search.svg +++ b/icons/search.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/server.svg b/icons/server.svg index fb2257e..f580d83 100644 --- a/icons/server.svg +++ b/icons/server.svg @@ -1,6 +1,16 @@ - - - - - + + + + + diff --git a/icons/settings.svg b/icons/settings.svg index a716372..b4a1887 100644 --- a/icons/settings.svg +++ b/icons/settings.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/share-2.svg b/icons/share-2.svg index 531add1..704394f 100644 --- a/icons/share-2.svg +++ b/icons/share-2.svg @@ -1,7 +1,17 @@ - - - - - - + + + + + + diff --git a/icons/share.svg b/icons/share.svg index e68f394..69208c3 100644 --- a/icons/share.svg +++ b/icons/share.svg @@ -1,5 +1,15 @@ - - - - + + + + diff --git a/icons/shield.svg b/icons/shield.svg index ee0fa1b..26d46d3 100644 --- a/icons/shield.svg +++ b/icons/shield.svg @@ -1,3 +1,13 @@ - - + + diff --git a/icons/shopping-cart.svg b/icons/shopping-cart.svg index 6108207..7793ecc 100644 --- a/icons/shopping-cart.svg +++ b/icons/shopping-cart.svg @@ -1 +1,15 @@ - \ No newline at end of file + + + + + diff --git a/icons/shuffle.svg b/icons/shuffle.svg index ecfcece..a2282eb 100644 --- a/icons/shuffle.svg +++ b/icons/shuffle.svg @@ -1,7 +1,17 @@ - - - - - - + + + + + + diff --git a/icons/sidebar.svg b/icons/sidebar.svg index eff0c10..25f0449 100644 --- a/icons/sidebar.svg +++ b/icons/sidebar.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/skip-back.svg b/icons/skip-back.svg index d0f02ff..1dfebcf 100644 --- a/icons/skip-back.svg +++ b/icons/skip-back.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/skip-forward.svg b/icons/skip-forward.svg index b73f046..dcc0b54 100644 --- a/icons/skip-forward.svg +++ b/icons/skip-forward.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/slack.svg b/icons/slack.svg index 42a3b2e..afb29cf 100644 --- a/icons/slack.svg +++ b/icons/slack.svg @@ -1,7 +1,17 @@ - - - - - - + + + + + + diff --git a/icons/slash.svg b/icons/slash.svg index adb58d5..56f6123 100644 --- a/icons/slash.svg +++ b/icons/slash.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/sliders.svg b/icons/sliders.svg index e95d9e6..2edc69d 100644 --- a/icons/sliders.svg +++ b/icons/sliders.svg @@ -1 +1,21 @@ - \ No newline at end of file + + + + + + + + + + + diff --git a/icons/smartphone.svg b/icons/smartphone.svg index e32100a..202e7f1 100644 --- a/icons/smartphone.svg +++ b/icons/smartphone.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/speaker.svg b/icons/speaker.svg index e909ee0..2170367 100644 --- a/icons/speaker.svg +++ b/icons/speaker.svg @@ -1,5 +1,15 @@ - - - - + + + + diff --git a/icons/square.svg b/icons/square.svg index f95f46e..f6ad269 100644 --- a/icons/square.svg +++ b/icons/square.svg @@ -1,3 +1,13 @@ - - + + diff --git a/icons/star.svg b/icons/star.svg index 9f2f540..47e496c 100644 --- a/icons/star.svg +++ b/icons/star.svg @@ -1,3 +1,13 @@ - - + + diff --git a/icons/stop-circle.svg b/icons/stop-circle.svg index ced3199..8376238 100644 --- a/icons/stop-circle.svg +++ b/icons/stop-circle.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/sun.svg b/icons/sun.svg index a836aea..fea872c 100644 --- a/icons/sun.svg +++ b/icons/sun.svg @@ -1,11 +1,21 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/icons/sunrise.svg b/icons/sunrise.svg index d238fb5..7689f4c 100644 --- a/icons/sunrise.svg +++ b/icons/sunrise.svg @@ -1,10 +1,20 @@ - - - - - - - - - + + + + + + + + + diff --git a/icons/sunset.svg b/icons/sunset.svg index 81b52d6..a619416 100644 --- a/icons/sunset.svg +++ b/icons/sunset.svg @@ -1,10 +1,20 @@ - - - - - - - - - + + + + + + + + + diff --git a/icons/tablet.svg b/icons/tablet.svg index 6830237..40881d8 100644 --- a/icons/tablet.svg +++ b/icons/tablet.svg @@ -1,4 +1,22 @@ - - - + + + diff --git a/icons/tag.svg b/icons/tag.svg index 0925309..2fede9a 100644 --- a/icons/tag.svg +++ b/icons/tag.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/target.svg b/icons/target.svg index 062a70b..260624a 100644 --- a/icons/target.svg +++ b/icons/target.svg @@ -1,5 +1,15 @@ - - - - + + + + diff --git a/icons/thermometer.svg b/icons/thermometer.svg index 05bd5c9..7d93e61 100644 --- a/icons/thermometer.svg +++ b/icons/thermometer.svg @@ -1,3 +1,13 @@ - - + + diff --git a/icons/thumbs-down.svg b/icons/thumbs-down.svg index e43ecae..818f7ae 100644 --- a/icons/thumbs-down.svg +++ b/icons/thumbs-down.svg @@ -1,3 +1,13 @@ - - + + diff --git a/icons/thumbs-up.svg b/icons/thumbs-up.svg index 0072d02..e53c962 100644 --- a/icons/thumbs-up.svg +++ b/icons/thumbs-up.svg @@ -1,3 +1,13 @@ - - + + diff --git a/icons/toggle-left.svg b/icons/toggle-left.svg index 1239965..8d7c6da 100644 --- a/icons/toggle-left.svg +++ b/icons/toggle-left.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/toggle-right.svg b/icons/toggle-right.svg index bc54be1..652658c 100644 --- a/icons/toggle-right.svg +++ b/icons/toggle-right.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/trash-2.svg b/icons/trash-2.svg index 2b849a6..f3bd2bd 100644 --- a/icons/trash-2.svg +++ b/icons/trash-2.svg @@ -1,6 +1,16 @@ - - - - - + + + + + diff --git a/icons/trash.svg b/icons/trash.svg index 730a614..942d13d 100644 --- a/icons/trash.svg +++ b/icons/trash.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/trending-down.svg b/icons/trending-down.svg index ff4f5d6..c12cc9e 100644 --- a/icons/trending-down.svg +++ b/icons/trending-down.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/trending-up.svg b/icons/trending-up.svg index aeba24e..79d7483 100644 --- a/icons/trending-up.svg +++ b/icons/trending-up.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/triangle.svg b/icons/triangle.svg index 093a7ab..b9bf937 100644 --- a/icons/triangle.svg +++ b/icons/triangle.svg @@ -1,3 +1,13 @@ - - + + diff --git a/icons/tv.svg b/icons/tv.svg index d458720..cdfcfad 100644 --- a/icons/tv.svg +++ b/icons/tv.svg @@ -1 +1,14 @@ - \ No newline at end of file + + + + diff --git a/icons/twitter.svg b/icons/twitter.svg index 93f8025..b3f2547 100644 --- a/icons/twitter.svg +++ b/icons/twitter.svg @@ -1,3 +1,13 @@ - - + + diff --git a/icons/type.svg b/icons/type.svg index 503da70..6128bdd 100644 --- a/icons/type.svg +++ b/icons/type.svg @@ -1,5 +1,15 @@ - - - - + + + + diff --git a/icons/umbrella.svg b/icons/umbrella.svg index a00f6d3..f571571 100644 --- a/icons/umbrella.svg +++ b/icons/umbrella.svg @@ -1,3 +1,13 @@ - - + + diff --git a/icons/underline.svg b/icons/underline.svg index 592290a..ca6adad 100644 --- a/icons/underline.svg +++ b/icons/underline.svg @@ -1 +1,14 @@ - \ No newline at end of file + + + + diff --git a/icons/unlock.svg b/icons/unlock.svg index 53e23a4..0e6fc78 100644 --- a/icons/unlock.svg +++ b/icons/unlock.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/upload-cloud.svg b/icons/upload-cloud.svg index 301ff44..4e5c299 100644 --- a/icons/upload-cloud.svg +++ b/icons/upload-cloud.svg @@ -1,6 +1,16 @@ - - - - - + + + + + diff --git a/icons/upload.svg b/icons/upload.svg index 5061f55..52e7759 100644 --- a/icons/upload.svg +++ b/icons/upload.svg @@ -1,5 +1,15 @@ - - - - + + + + diff --git a/icons/user-check.svg b/icons/user-check.svg index 5549e4f..7cf8ec3 100644 --- a/icons/user-check.svg +++ b/icons/user-check.svg @@ -1,5 +1,15 @@ - - - - + + + + diff --git a/icons/user-minus.svg b/icons/user-minus.svg index 82b7332..94558bc 100644 --- a/icons/user-minus.svg +++ b/icons/user-minus.svg @@ -1,5 +1,15 @@ - - - - + + + + diff --git a/icons/user-plus.svg b/icons/user-plus.svg index b85a9c3..f84c74b 100644 --- a/icons/user-plus.svg +++ b/icons/user-plus.svg @@ -1,6 +1,16 @@ - - - - - + + + + + diff --git a/icons/user-x.svg b/icons/user-x.svg index f73b339..2033c6e 100644 --- a/icons/user-x.svg +++ b/icons/user-x.svg @@ -1,6 +1,16 @@ - - - - - + + + + + diff --git a/icons/user.svg b/icons/user.svg index 78eb48f..f075a65 100644 --- a/icons/user.svg +++ b/icons/user.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/users.svg b/icons/users.svg index ea39ea3..eb87d02 100644 --- a/icons/users.svg +++ b/icons/users.svg @@ -1,6 +1,16 @@ - - - - - + + + + + diff --git a/icons/video-off.svg b/icons/video-off.svg index 6e482f8..3a6bf29 100644 --- a/icons/video-off.svg +++ b/icons/video-off.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/video.svg b/icons/video.svg index 9030f97..c1199e0 100644 --- a/icons/video.svg +++ b/icons/video.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/voicemail.svg b/icons/voicemail.svg index b5b2c2e..e309748 100644 --- a/icons/voicemail.svg +++ b/icons/voicemail.svg @@ -1,5 +1,15 @@ - - - - + + + + diff --git a/icons/volume-1.svg b/icons/volume-1.svg index f79ccb7..c6f9a5b 100644 --- a/icons/volume-1.svg +++ b/icons/volume-1.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/volume-2.svg b/icons/volume-2.svg index 9f41f30..6e15fa7 100644 --- a/icons/volume-2.svg +++ b/icons/volume-2.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/volume-x.svg b/icons/volume-x.svg index 4133c9d..c7ad8b7 100644 --- a/icons/volume-x.svg +++ b/icons/volume-x.svg @@ -1,5 +1,15 @@ - - - - + + + + diff --git a/icons/volume.svg b/icons/volume.svg index c4362bb..bdeeb83 100644 --- a/icons/volume.svg +++ b/icons/volume.svg @@ -1,3 +1,13 @@ - - + + diff --git a/icons/watch.svg b/icons/watch.svg index c0f3b3f..6a460bd 100644 --- a/icons/watch.svg +++ b/icons/watch.svg @@ -1,5 +1,15 @@ - - - - + + + + diff --git a/icons/wifi-off.svg b/icons/wifi-off.svg index f319b3f..26f2bb9 100644 --- a/icons/wifi-off.svg +++ b/icons/wifi-off.svg @@ -1 +1,19 @@ - \ No newline at end of file + + + + + + + + + diff --git a/icons/wifi.svg b/icons/wifi.svg index 2773f47..4b9b8ed 100644 --- a/icons/wifi.svg +++ b/icons/wifi.svg @@ -1 +1,16 @@ - \ No newline at end of file + + + + + + diff --git a/icons/wind.svg b/icons/wind.svg index bc139af..1d14a82 100644 --- a/icons/wind.svg +++ b/icons/wind.svg @@ -1,3 +1,13 @@ - - + + diff --git a/icons/x-circle.svg b/icons/x-circle.svg index 7e72171..0e28b25 100644 --- a/icons/x-circle.svg +++ b/icons/x-circle.svg @@ -1,5 +1,15 @@ - - - - + + + + diff --git a/icons/x-square.svg b/icons/x-square.svg index 7681f5c..f343ec1 100644 --- a/icons/x-square.svg +++ b/icons/x-square.svg @@ -1,5 +1,15 @@ - - - - + + + + diff --git a/icons/x.svg b/icons/x.svg index d27b1bb..559b116 100644 --- a/icons/x.svg +++ b/icons/x.svg @@ -1,4 +1,14 @@ - - - + + + diff --git a/icons/zap.svg b/icons/zap.svg index 6e03664..c5d0d35 100644 --- a/icons/zap.svg +++ b/icons/zap.svg @@ -1,3 +1,13 @@ - - + + diff --git a/icons/zoom-in.svg b/icons/zoom-in.svg index 8c6a765..0a15151 100644 --- a/icons/zoom-in.svg +++ b/icons/zoom-in.svg @@ -1,6 +1,16 @@ - - - - - + + + + + diff --git a/icons/zoom-out.svg b/icons/zoom-out.svg index 3386ee6..049de6c 100644 --- a/icons/zoom-out.svg +++ b/icons/zoom-out.svg @@ -1,5 +1,15 @@ - - - - + + + + diff --git a/package-lock.json b/package-lock.json index 7e43fe9..f84de5a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -93,6 +93,12 @@ "integrity": "sha512-N9OVsMBspboNvYaLAQnLEhb2eQ96lavogMR5LoH5k8nb1PvBZHSBFhzhsq2LNzGTBBOtBviOc1GiSu+wlM/pGw==", "dev": true }, + "abab": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz", + "integrity": "sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4=", + "dev": true + }, "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", @@ -122,6 +128,23 @@ } } }, + "acorn-globals": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz", + "integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=", + "dev": true, + "requires": { + "acorn": "4.0.13" + }, + "dependencies": { + "acorn": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", + "dev": true + } + } + }, "acorn-jsx": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", @@ -186,6 +209,12 @@ "repeat-string": "1.6.1" } }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true + }, "ansi": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz", @@ -220,6 +249,15 @@ "normalize-path": "2.1.1" } }, + "append-transform": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", + "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", + "dev": true, + "requires": { + "default-require-extensions": "1.0.0" + } + }, "aproba": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", @@ -260,6 +298,12 @@ "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", "dev": true }, + "array-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", + "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", + "dev": true + }, "array-find-index": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", @@ -331,6 +375,12 @@ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "dev": true }, + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "dev": true + }, "async": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", @@ -543,6 +593,16 @@ "babel-template": "6.26.0" } }, + "babel-jest": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-21.2.0.tgz", + "integrity": "sha512-O0W2qLoWu1QOoOGgxiR2JID4O6WSpxPiQanrkyi9SSlM0PJ60Ptzlck47lhtnr9YZO3zYOsxHwnyeWJ6AffoBQ==", + "dev": true, + "requires": { + "babel-plugin-istanbul": "4.1.5", + "babel-preset-jest": "21.2.0" + } + }, "babel-loader": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.2.tgz", @@ -572,6 +632,29 @@ "babel-runtime": "6.26.0" } }, + "babel-plugin-istanbul": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.5.tgz", + "integrity": "sha1-Z2DN2Xf0EdPhdbsGTyvDJ9mbK24=", + "dev": true, + "requires": { + "find-up": "2.1.0", + "istanbul-lib-instrument": "1.9.1", + "test-exclude": "4.1.1" + } + }, + "babel-plugin-jest-hoist": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-21.2.0.tgz", + "integrity": "sha512-yi5QuiVyyvhBUDLP4ButAnhYzkdrUwWDtvUJv71hjH3fclhnZg4HkDeqaitcR2dZZx/E67kGkRcPVjtVu+SJfQ==", + "dev": true + }, + "babel-plugin-syntax-object-rest-spread": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", + "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=", + "dev": true + }, "babel-plugin-transform-es2015-arrow-functions": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", @@ -876,6 +959,16 @@ "babel-plugin-transform-regenerator": "6.26.0" } }, + "babel-preset-jest": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-21.2.0.tgz", + "integrity": "sha512-hm9cBnr2h3J7yXoTtAVV0zg+3vg0Q/gT2GYuzlreTU0EPkJRtlNgKJJ3tBKEn0+VjAi3JykV6xCJkuUYttEEfA==", + "dev": true, + "requires": { + "babel-plugin-jest-hoist": "21.2.0", + "babel-plugin-syntax-object-rest-spread": "6.13.0" + } + }, "babel-register": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", @@ -1026,6 +1119,12 @@ "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", "dev": true }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true + }, "boom": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", @@ -1062,6 +1161,23 @@ "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", "dev": true }, + "browser-resolve": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz", + "integrity": "sha1-j/CbCixCFxihBRwmCzLkj0QpOM4=", + "dev": true, + "requires": { + "resolve": "1.1.7" + }, + "dependencies": { + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", + "dev": true + } + } + }, "browserify-aes": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.1.1.tgz", @@ -1132,6 +1248,15 @@ "pako": "0.2.9" } }, + "bser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.0.0.tgz", + "integrity": "sha1-mseNPtXZFYBP2HrLFYvHlxR6Fxk=", + "dev": true, + "requires": { + "node-int64": "0.4.0" + } + }, "buffer": { "version": "4.9.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", @@ -1230,6 +1355,20 @@ "supports-color": "2.0.0" } }, + "cheerio": { + "version": "1.0.0-rc.2", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.2.tgz", + "integrity": "sha1-S59TqBsn5NXawxwP/Qz6A8xoMNs=", + "dev": true, + "requires": { + "css-select": "1.2.0", + "dom-serializer": "0.1.0", + "entities": "1.1.1", + "htmlparser2": "3.9.2", + "lodash": "4.17.4", + "parse5": "3.0.3" + } + }, "chokidar": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", @@ -1406,6 +1545,17 @@ "word-wrap": "1.2.3" } }, + "fs-extra": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz", + "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "2.4.0", + "klaw": "1.3.1" + } + }, "glob": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz", @@ -1420,6 +1570,15 @@ "path-is-absolute": "1.0.1" } }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, "lodash": { "version": "4.17.2", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.2.tgz", @@ -1503,6 +1662,12 @@ "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", "dev": true }, + "content-type-parser": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/content-type-parser/-/content-type-parser-1.0.2.tgz", + "integrity": "sha512-lM4l4CnMEwOLHAHr/P6MEZwZFPJFtAAKgL6pogbXmVZggIqXhdB6RbBtPOTsw2FcXwYhehRGERJmRrjOiIB8pQ==", + "dev": true + }, "conventional-changelog": { "version": "0.0.17", "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-0.0.17.tgz", @@ -1651,6 +1816,24 @@ "randomfill": "1.0.3" } }, + "css-select": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", + "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", + "dev": true, + "requires": { + "boolbase": "1.0.0", + "css-what": "2.1.0", + "domutils": "1.5.1", + "nth-check": "1.0.1" + } + }, + "css-what": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz", + "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=", + "dev": true + }, "csso": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz", @@ -1661,6 +1844,21 @@ "source-map": "0.5.7" } }, + "cssom": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.2.tgz", + "integrity": "sha1-uANhcMefB6kP8vFuIihAJ6JDhIs=", + "dev": true + }, + "cssstyle": { + "version": "0.2.37", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz", + "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=", + "dev": true, + "requires": { + "cssom": "0.3.2" + } + }, "currently-unhandled": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", @@ -1744,6 +1942,26 @@ "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", "dev": true }, + "default-require-extensions": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", + "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", + "dev": true, + "requires": { + "strip-bom": "2.0.0" + }, + "dependencies": { + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "0.2.1" + } + } + } + }, "del": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", @@ -1817,6 +2035,12 @@ "wrappy": "1.0.2" } }, + "diff": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.4.0.tgz", + "integrity": "sha512-QpVuMTEoJMF7cKzi6bvWhRulU1fZqZnvyVQgNhPaxxuTYwyjn/j1v9falseQ/uXWwPnO56RBfwtg4h/EQXmucA==", + "dev": true + }, "diffie-hellman": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz", @@ -1838,12 +2062,55 @@ "isarray": "1.0.0" } }, + "dom-serializer": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", + "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", + "dev": true, + "requires": { + "domelementtype": "1.1.3", + "entities": "1.1.1" + }, + "dependencies": { + "domelementtype": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", + "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=", + "dev": true + } + } + }, "domain-browser": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz", "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=", "dev": true }, + "domelementtype": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", + "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=", + "dev": true + }, + "domhandler": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.1.tgz", + "integrity": "sha1-iS5HAAqZvlW783dP/qBWHYh5wlk=", + "dev": true, + "requires": { + "domelementtype": "1.3.0" + } + }, + "domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "dev": true, + "requires": { + "dom-serializer": "0.1.0", + "domelementtype": "1.3.0" + } + }, "duplexer": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", @@ -1893,6 +2160,12 @@ "tapable": "0.2.8" } }, + "entities": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", + "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=", + "dev": true + }, "errno": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz", @@ -1987,6 +2260,27 @@ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, + "escodegen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.0.tgz", + "integrity": "sha512-v0MYvNQ32bzwoG2OSFzWAkuahDQHK92JBN0pTAALJ4RIxEZe766QJPDR8Hqy7XNUy5K3fnVL76OqYAdc4TZEIw==", + "dev": true, + "requires": { + "esprima": "3.1.3", + "estraverse": "4.2.0", + "esutils": "2.0.2", + "optionator": "0.8.2", + "source-map": "0.5.7" + }, + "dependencies": { + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + } + } + }, "escope": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", @@ -2399,6 +2693,15 @@ "safe-buffer": "5.1.1" } }, + "exec-sh": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.1.tgz", + "integrity": "sha512-aLt95pexaugVtQerpmE51+4QfWrNc304uez7jvj6fWnN8GeEHpttB8F36n8N7uVhUMbH/1enbxQ9HImZ4w/9qg==", + "dev": true, + "requires": { + "merge": "1.2.0" + } + }, "execa": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", @@ -2447,6 +2750,31 @@ "os-homedir": "1.0.2" } }, + "expect": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-21.2.1.tgz", + "integrity": "sha512-orfQQqFRTX0jH7znRIGi8ZMR8kTNpXklTTz8+HGTpmTKZo3Occ6JNB5FXMb8cRuiiC/GyDqsr30zUa66ACYlYw==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "jest-diff": "21.2.1", + "jest-get-type": "21.2.0", + "jest-matcher-utils": "21.2.1", + "jest-message-util": "21.2.1", + "jest-regex-util": "21.2.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + } + } + }, "extend": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", @@ -2497,6 +2825,15 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, + "fb-watchman": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.0.tgz", + "integrity": "sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg=", + "dev": true, + "requires": { + "bser": "2.0.0" + } + }, "figures": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", @@ -2523,6 +2860,16 @@ "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", "dev": true }, + "fileset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz", + "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=", + "dev": true, + "requires": { + "glob": "7.1.2", + "minimatch": "3.0.4" + } + }, "fill-range": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", @@ -2686,17 +3033,6 @@ "integrity": "sha1-mC1ok6+RjnLQjeyehnP/K1qNat0=", "dev": true }, - "fs-extra": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz", - "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "jsonfile": "2.4.0", - "klaw": "1.3.1" - } - }, "fs-readdir-recursive": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.0.0.tgz", @@ -3575,15 +3911,6 @@ } } }, - "string_decoder": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz", - "integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=", - "dev": true, - "requires": { - "safe-buffer": "5.0.1" - } - }, "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", @@ -3595,6 +3922,15 @@ "strip-ansi": "3.0.1" } }, + "string_decoder": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz", + "integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=", + "dev": true, + "requires": { + "safe-buffer": "5.0.1" + } + }, "stringstream": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", @@ -3924,6 +4260,41 @@ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", "dev": true }, + "growly": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", + "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", + "dev": true + }, + "handlebars": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", + "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", + "dev": true, + "requires": { + "async": "1.5.2", + "optimist": "0.6.1", + "source-map": "0.4.4", + "uglify-js": "2.8.29" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "requires": { + "amdefine": "1.0.1" + } + } + } + }, "har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", @@ -4043,6 +4414,29 @@ "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==", "dev": true }, + "html-encoding-sniffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", + "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", + "dev": true, + "requires": { + "whatwg-encoding": "1.0.3" + } + }, + "htmlparser2": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz", + "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", + "dev": true, + "requires": { + "domelementtype": "1.3.0", + "domhandler": "2.4.1", + "domutils": "1.5.1", + "entities": "1.1.1", + "inherits": "2.0.3", + "readable-stream": "2.3.3" + } + }, "http-signature": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", @@ -4417,6 +4811,940 @@ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", "dev": true }, + "istanbul-api": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.2.1.tgz", + "integrity": "sha512-oFCwXvd65amgaPCzqrR+a2XjanS1MvpXN6l/MlMUTv6uiA1NOgGX+I0uyq8Lg3GDxsxPsaP1049krz3hIJ5+KA==", + "dev": true, + "requires": { + "async": "2.6.0", + "fileset": "2.0.3", + "istanbul-lib-coverage": "1.1.1", + "istanbul-lib-hook": "1.1.0", + "istanbul-lib-instrument": "1.9.1", + "istanbul-lib-report": "1.1.2", + "istanbul-lib-source-maps": "1.2.2", + "istanbul-reports": "1.1.3", + "js-yaml": "3.10.0", + "mkdirp": "0.5.1", + "once": "1.4.0" + } + }, + "istanbul-lib-coverage": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz", + "integrity": "sha512-0+1vDkmzxqJIn5rcoEqapSB4DmPxE31EtI2dF2aCkV5esN9EWHxZ0dwgDClivMXJqE7zaYQxq30hj5L0nlTN5Q==", + "dev": true + }, + "istanbul-lib-hook": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz", + "integrity": "sha512-U3qEgwVDUerZ0bt8cfl3dSP3S6opBoOtk3ROO5f2EfBr/SRiD9FQqzwaZBqFORu8W7O0EXpai+k7kxHK13beRg==", + "dev": true, + "requires": { + "append-transform": "0.4.0" + } + }, + "istanbul-lib-instrument": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.9.1.tgz", + "integrity": "sha512-RQmXeQ7sphar7k7O1wTNzVczF9igKpaeGQAG9qR2L+BS4DCJNTI9nytRmIVYevwO0bbq+2CXvJmYDuz0gMrywA==", + "dev": true, + "requires": { + "babel-generator": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "istanbul-lib-coverage": "1.1.1", + "semver": "5.4.1" + } + }, + "istanbul-lib-report": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.2.tgz", + "integrity": "sha512-UTv4VGx+HZivJQwAo1wnRwe1KTvFpfi/NYwN7DcsrdzMXwpRT/Yb6r4SBPoHWj4VuQPakR32g4PUUeyKkdDkBA==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "1.1.1", + "mkdirp": "0.5.1", + "path-parse": "1.0.5", + "supports-color": "3.2.3" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.2.tgz", + "integrity": "sha512-8BfdqSfEdtip7/wo1RnrvLpHVEd8zMZEDmOFEnpC6dg0vXflHt9nvoAyQUzig2uMSXfF2OBEYBV3CVjIL9JvaQ==", + "dev": true, + "requires": { + "debug": "3.1.0", + "istanbul-lib-coverage": "1.1.1", + "mkdirp": "0.5.1", + "rimraf": "2.6.2", + "source-map": "0.5.7" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "istanbul-reports": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.1.3.tgz", + "integrity": "sha512-ZEelkHh8hrZNI5xDaKwPMFwDsUf5wIEI2bXAFGp1e6deR2mnEKBPhLJEgr4ZBt8Gi6Mj38E/C8kcy9XLggVO2Q==", + "dev": true, + "requires": { + "handlebars": "4.0.11" + } + }, + "jest": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-21.2.1.tgz", + "integrity": "sha512-mXN0ppPvWYoIcC+R+ctKxAJ28xkt/Z5Js875padm4GbgUn6baeR5N4Ng6LjatIRpUQDZVJABT7Y4gucFjPryfw==", + "dev": true, + "requires": { + "jest-cli": "21.2.1" + }, + "dependencies": { + "ansi-escapes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.0.0.tgz", + "integrity": "sha512-O/klc27mWNUigtv0F8NJWbLF00OcegQalkqKURWdosW08YZKi4m6CnSUSvIZG1otNJbTWhN01Hhz389DW7mvDQ==", + "dev": true + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + }, + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wrap-ansi": "2.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + } + } + }, + "jest-cli": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-21.2.1.tgz", + "integrity": "sha512-T1BzrbFxDIW/LLYQqVfo94y/hhaj1NzVQkZgBumAC+sxbjMROI7VkihOdxNR758iYbQykL2ZOWUBurFgkQrzdg==", + "dev": true, + "requires": { + "ansi-escapes": "3.0.0", + "chalk": "2.3.0", + "glob": "7.1.2", + "graceful-fs": "4.1.11", + "is-ci": "1.0.10", + "istanbul-api": "1.2.1", + "istanbul-lib-coverage": "1.1.1", + "istanbul-lib-instrument": "1.9.1", + "istanbul-lib-source-maps": "1.2.2", + "jest-changed-files": "21.2.0", + "jest-config": "21.2.1", + "jest-environment-jsdom": "21.2.1", + "jest-haste-map": "21.2.0", + "jest-message-util": "21.2.1", + "jest-regex-util": "21.2.0", + "jest-resolve-dependencies": "21.2.0", + "jest-runner": "21.2.1", + "jest-runtime": "21.2.1", + "jest-snapshot": "21.2.1", + "jest-util": "21.2.1", + "micromatch": "2.3.11", + "node-notifier": "5.1.2", + "pify": "3.0.0", + "slash": "1.0.0", + "string-length": "2.0.0", + "strip-ansi": "4.0.0", + "which": "1.3.0", + "worker-farm": "1.5.1", + "yargs": "9.0.1" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + } + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + } + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + }, + "yargs": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-9.0.1.tgz", + "integrity": "sha1-UqzCP+7Kw0BCB47njAwAf1CF20w=", + "dev": true, + "requires": { + "camelcase": "4.1.0", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.2", + "os-locale": "2.1.0", + "read-pkg-up": "2.0.0", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "2.1.1", + "which-module": "2.0.0", + "y18n": "3.2.1", + "yargs-parser": "7.0.0" + } + } + } + }, + "jest-changed-files": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-21.2.0.tgz", + "integrity": "sha512-+lCNP1IZLwN1NOIvBcV5zEL6GENK6TXrDj4UxWIeLvIsIDa+gf6J7hkqsW2qVVt/wvH65rVvcPwqXdps5eclTQ==", + "dev": true, + "requires": { + "throat": "4.1.0" + } + }, + "jest-config": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-21.2.1.tgz", + "integrity": "sha512-fJru5HtlD/5l2o25eY9xT0doK3t2dlglrqoGpbktduyoI0T5CwuB++2YfoNZCrgZipTwPuAGonYv0q7+8yDc/A==", + "dev": true, + "requires": { + "chalk": "2.3.0", + "glob": "7.1.2", + "jest-environment-jsdom": "21.2.1", + "jest-environment-node": "21.2.1", + "jest-get-type": "21.2.0", + "jest-jasmine2": "21.2.1", + "jest-regex-util": "21.2.0", + "jest-resolve": "21.2.0", + "jest-util": "21.2.1", + "jest-validate": "21.2.1", + "pretty-format": "21.2.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "jest-diff": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-21.2.1.tgz", + "integrity": "sha512-E5fu6r7PvvPr5qAWE1RaUwIh/k6Zx/3OOkZ4rk5dBJkEWRrUuSgbMt2EO8IUTPTd6DOqU3LW6uTIwX5FRvXoFA==", + "dev": true, + "requires": { + "chalk": "2.3.0", + "diff": "3.4.0", + "jest-get-type": "21.2.0", + "pretty-format": "21.2.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "jest-docblock": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-21.2.0.tgz", + "integrity": "sha512-5IZ7sY9dBAYSV+YjQ0Ovb540Ku7AO9Z5o2Cg789xj167iQuZ2cG+z0f3Uct6WeYLbU6aQiM2pCs7sZ+4dotydw==", + "dev": true + }, + "jest-environment-jsdom": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-21.2.1.tgz", + "integrity": "sha512-mecaeNh0eWmzNrUNMWARysc0E9R96UPBamNiOCYL28k7mksb1d0q6DD38WKP7ABffjnXyUWJPVaWRgUOivwXwg==", + "dev": true, + "requires": { + "jest-mock": "21.2.0", + "jest-util": "21.2.1", + "jsdom": "9.12.0" + } + }, + "jest-environment-node": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-21.2.1.tgz", + "integrity": "sha512-R211867wx9mVBVHzrjGRGTy5cd05K7eqzQl/WyZixR/VkJ4FayS8qkKXZyYnwZi6Rxo6WEV81cDbiUx/GfuLNw==", + "dev": true, + "requires": { + "jest-mock": "21.2.0", + "jest-util": "21.2.1" + } + }, + "jest-get-type": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-21.2.0.tgz", + "integrity": "sha512-y2fFw3C+D0yjNSDp7ab1kcd6NUYfy3waPTlD8yWkAtiocJdBRQqNoRqVfMNxgj+IjT0V5cBIHJO0z9vuSSZ43Q==", + "dev": true + }, + "jest-haste-map": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-21.2.0.tgz", + "integrity": "sha512-5LhsY/loPH7wwOFRMs+PT4aIAORJ2qwgbpMFlbWbxfN0bk3ZCwxJ530vrbSiTstMkYLao6JwBkLhCJ5XbY7ZHw==", + "dev": true, + "requires": { + "fb-watchman": "2.0.0", + "graceful-fs": "4.1.11", + "jest-docblock": "21.2.0", + "micromatch": "2.3.11", + "sane": "2.2.0", + "worker-farm": "1.5.1" + } + }, + "jest-jasmine2": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-21.2.1.tgz", + "integrity": "sha512-lw8FXXIEekD+jYNlStfgNsUHpfMWhWWCgHV7n0B7mA/vendH7vBFs8xybjQsDzJSduptBZJHqQX9SMssya9+3A==", + "dev": true, + "requires": { + "chalk": "2.3.0", + "expect": "21.2.1", + "graceful-fs": "4.1.11", + "jest-diff": "21.2.1", + "jest-matcher-utils": "21.2.1", + "jest-message-util": "21.2.1", + "jest-snapshot": "21.2.1", + "p-cancelable": "0.3.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "jest-matcher-utils": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-21.2.1.tgz", + "integrity": "sha512-kn56My+sekD43dwQPrXBl9Zn9tAqwoy25xxe7/iY4u+mG8P3ALj5IK7MLHZ4Mi3xW7uWVCjGY8cm4PqgbsqMCg==", + "dev": true, + "requires": { + "chalk": "2.3.0", + "jest-get-type": "21.2.0", + "pretty-format": "21.2.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "jest-message-util": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-21.2.1.tgz", + "integrity": "sha512-EbC1X2n0t9IdeMECJn2BOg7buOGivCvVNjqKMXTzQOu7uIfLml+keUfCALDh8o4rbtndIeyGU8/BKfoTr/LVDQ==", + "dev": true, + "requires": { + "chalk": "2.3.0", + "micromatch": "2.3.11", + "slash": "1.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "jest-mock": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-21.2.0.tgz", + "integrity": "sha512-aZDfyVf0LEoABWiY6N0d+O963dUQSyUa4qgzurHR3TBDPen0YxKCJ6l2i7lQGh1tVdsuvdrCZ4qPj+A7PievCw==", + "dev": true + }, + "jest-regex-util": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-21.2.0.tgz", + "integrity": "sha512-BKQ1F83EQy0d9Jen/mcVX7D+lUt2tthhK/2gDWRgLDJRNOdRgSp1iVqFxP8EN1ARuypvDflRfPzYT8fQnoBQFQ==", + "dev": true + }, + "jest-resolve": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-21.2.0.tgz", + "integrity": "sha512-vefQ/Lr+VdNvHUZFQXWtOqHX3HEdOc2MtSahBO89qXywEbUxGPB9ZLP9+BHinkxb60UT2Q/tTDOS6rYc6Mwigw==", + "dev": true, + "requires": { + "browser-resolve": "1.11.2", + "chalk": "2.3.0", + "is-builtin-module": "1.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "jest-resolve-dependencies": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-21.2.0.tgz", + "integrity": "sha512-ok8ybRFU5ScaAcfufIQrCbdNJSRZ85mkxJ1EhUp8Bhav1W1/jv/rl1Q6QoVQHObNxmKnbHVKrfLZbCbOsXQ+bQ==", + "dev": true, + "requires": { + "jest-regex-util": "21.2.0" + } + }, + "jest-runner": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-21.2.1.tgz", + "integrity": "sha512-Anb72BOQlHqF/zETqZ2K20dbYsnqW/nZO7jV8BYENl+3c44JhMrA8zd1lt52+N7ErnsQMd2HHKiVwN9GYSXmrg==", + "dev": true, + "requires": { + "jest-config": "21.2.1", + "jest-docblock": "21.2.0", + "jest-haste-map": "21.2.0", + "jest-jasmine2": "21.2.1", + "jest-message-util": "21.2.1", + "jest-runtime": "21.2.1", + "jest-util": "21.2.1", + "pify": "3.0.0", + "throat": "4.1.0", + "worker-farm": "1.5.1" + } + }, + "jest-runtime": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-21.2.1.tgz", + "integrity": "sha512-6omlpA3+NSE+rHwD0PQjNEjZeb2z+oRmuehMfM1tWQVum+E0WV3pFt26Am0DUfQkkPyTABvxITRjCUclYgSOsA==", + "dev": true, + "requires": { + "babel-core": "6.26.0", + "babel-jest": "21.2.0", + "babel-plugin-istanbul": "4.1.5", + "chalk": "2.3.0", + "convert-source-map": "1.5.0", + "graceful-fs": "4.1.11", + "jest-config": "21.2.1", + "jest-haste-map": "21.2.0", + "jest-regex-util": "21.2.0", + "jest-resolve": "21.2.0", + "jest-util": "21.2.1", + "json-stable-stringify": "1.0.1", + "micromatch": "2.3.11", + "slash": "1.0.0", + "strip-bom": "3.0.0", + "write-file-atomic": "2.3.0", + "yargs": "9.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + }, + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wrap-ansi": "2.1.0" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + } + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + } + } + } + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + }, + "yargs": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-9.0.1.tgz", + "integrity": "sha1-UqzCP+7Kw0BCB47njAwAf1CF20w=", + "dev": true, + "requires": { + "camelcase": "4.1.0", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.2", + "os-locale": "2.1.0", + "read-pkg-up": "2.0.0", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "2.1.1", + "which-module": "2.0.0", + "y18n": "3.2.1", + "yargs-parser": "7.0.0" + } + } + } + }, + "jest-snapshot": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-21.2.1.tgz", + "integrity": "sha512-bpaeBnDpdqaRTzN8tWg0DqOTo2DvD3StOemxn67CUd1p1Po+BUpvePAp44jdJ7Pxcjfg+42o4NHw1SxdCA2rvg==", + "dev": true, + "requires": { + "chalk": "2.3.0", + "jest-diff": "21.2.1", + "jest-matcher-utils": "21.2.1", + "mkdirp": "0.5.1", + "natural-compare": "1.4.0", + "pretty-format": "21.2.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "jest-util": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-21.2.1.tgz", + "integrity": "sha512-r20W91rmHY3fnCoO7aOAlyfC51x2yeV3xF+prGsJAUsYhKeV670ZB8NO88Lwm7ASu8SdH0S+U+eFf498kjhA4g==", + "dev": true, + "requires": { + "callsites": "2.0.0", + "chalk": "2.3.0", + "graceful-fs": "4.1.11", + "jest-message-util": "21.2.1", + "jest-mock": "21.2.0", + "jest-validate": "21.2.1", + "mkdirp": "0.5.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", + "dev": true + }, + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "jest-validate": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-21.2.1.tgz", + "integrity": "sha512-k4HLI1rZQjlU+EC682RlQ6oZvLrE5SCh3brseQc24vbZTxzT/k/3urar5QMCVgjadmSO7lECeGdc6YxnM3yEGg==", + "dev": true, + "requires": { + "chalk": "2.3.0", + "jest-get-type": "21.2.0", + "leven": "2.1.0", + "pretty-format": "21.2.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, "js-tokens": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", @@ -4446,6 +5774,47 @@ "integrity": "sha512-xYuhvQ7I9PDJIGBWev9xm0+SMSed3ZDBAmvVjbFR1ZRLAF+vlXcQu6cRI9uAlj81rzikElRVteehwV7DuX2ZmQ==", "dev": true }, + "jsdom": { + "version": "9.12.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-9.12.0.tgz", + "integrity": "sha1-6MVG//ywbADUgzyoRBD+1/igl9Q=", + "dev": true, + "requires": { + "abab": "1.0.4", + "acorn": "4.0.13", + "acorn-globals": "3.1.0", + "array-equal": "1.0.0", + "content-type-parser": "1.0.2", + "cssom": "0.3.2", + "cssstyle": "0.2.37", + "escodegen": "1.9.0", + "html-encoding-sniffer": "1.0.2", + "nwmatcher": "1.4.3", + "parse5": "1.5.1", + "request": "2.83.0", + "sax": "1.2.4", + "symbol-tree": "3.2.2", + "tough-cookie": "2.3.3", + "webidl-conversions": "4.0.2", + "whatwg-encoding": "1.0.3", + "whatwg-url": "4.8.0", + "xml-name-validator": "2.0.1" + }, + "dependencies": { + "acorn": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", + "dev": true + }, + "parse5": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz", + "integrity": "sha1-m387DeMr543CQBsXVzzK8Pb1nZQ=", + "dev": true + } + } + }, "jsesc": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", @@ -4491,15 +5860,6 @@ "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", "dev": true }, - "jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11" - } - }, "jsonify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", @@ -4557,6 +5917,12 @@ "invert-kv": "1.0.0" } }, + "leven": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", + "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=", + "dev": true + }, "levn": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", @@ -4779,6 +6145,15 @@ "pify": "3.0.0" } }, + "makeerror": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", + "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", + "dev": true, + "requires": { + "tmpl": "1.0.4" + } + }, "map-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", @@ -5074,6 +6449,12 @@ "integrity": "sha1-a+lPysqNd63gqWcNxGCRTJRHJEQ=", "dev": true }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", + "dev": true + }, "node-libs-browser": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.0.0.tgz", @@ -5113,6 +6494,18 @@ } } }, + "node-notifier": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.1.2.tgz", + "integrity": "sha1-L6nhJgX6EACdRFSdb82KY93g5P8=", + "dev": true, + "requires": { + "growly": "1.3.0", + "semver": "5.4.1", + "shellwords": "0.1.1", + "which": "1.3.0" + } + }, "nopt": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", @@ -5236,12 +6629,27 @@ "set-blocking": "2.0.0" } }, + "nth-check": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz", + "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=", + "dev": true, + "requires": { + "boolbase": "1.0.0" + } + }, "number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true }, + "nwmatcher": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.3.tgz", + "integrity": "sha512-IKdSTiDWCarf2JTS5e9e2+5tPZGdkRJ79XjYV0pzK8Q9BpsFyBq1RGKxzs7Q8UBushGw7m6TzVKz6fcY99iSWw==", + "dev": true + }, "oauth-sign": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", @@ -5279,6 +6687,24 @@ "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", "dev": true }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "dev": true, + "requires": { + "minimist": "0.0.8", + "wordwrap": "0.0.3" + }, + "dependencies": { + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "dev": true + } + } + }, "optionator": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", @@ -5349,6 +6775,12 @@ "object-assign": "4.1.1" } }, + "p-cancelable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", + "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==", + "dev": true + }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", @@ -5579,6 +7011,39 @@ "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", "dev": true }, + "prettier": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.8.2.tgz", + "integrity": "sha512-fHWjCwoRZgjP1rvLP7OGqOznq7xH1sHMQUFLX8qLRO79hI57+6xbc5vB904LxEkCfgFgyr3vv06JkafgCSzoZg==", + "dev": true + }, + "pretty-format": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-21.2.1.tgz", + "integrity": "sha512-ZdWPGYAnYfcVP8yKA3zFjCn8s4/17TeYH28MXuC8vTp0o21eXjbFGcOAXZEaDaOFJjc3h2qa7HQNHNshhvoh2A==", + "dev": true, + "requires": { + "ansi-regex": "3.0.0", + "ansi-styles": "3.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + } + } + }, "private": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", @@ -6095,6 +7560,30 @@ "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", "dev": true }, + "sane": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/sane/-/sane-2.2.0.tgz", + "integrity": "sha512-OSJxhHO0CgPUw3lUm3GhfREAfza45smvEI9ozuFrxKG10GHVo0ryW9FK5VYlLvxj0SV7HVKHW0voYJIRu27GWg==", + "dev": true, + "requires": { + "anymatch": "1.3.2", + "exec-sh": "0.2.1", + "fb-watchman": "2.0.0", + "fsevents": "1.1.2", + "minimatch": "3.0.4", + "minimist": "1.2.0", + "walker": "1.0.7", + "watch": "0.18.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, "sax": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", @@ -6193,6 +7682,12 @@ "rechoir": "0.6.2" } }, + "shellwords": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", + "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", + "dev": true + }, "signal-exit": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", @@ -6364,13 +7859,31 @@ "xtend": "4.0.1" } }, - "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "string-length": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz", + "integrity": "sha1-1A27aGo6zpYMHP/KVivyxF+DY+0=", "dev": true, "requires": { - "safe-buffer": "5.1.1" + "astral-regex": "1.0.0", + "strip-ansi": "4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + } + } } }, "string-width": { @@ -6384,6 +7897,15 @@ "strip-ansi": "3.0.1" } }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } + }, "stringstream": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", @@ -6465,6 +7987,12 @@ } } }, + "symbol-tree": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz", + "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=", + "dev": true + }, "table": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", @@ -6547,12 +8075,112 @@ "integrity": "sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI=", "dev": true }, + "test-exclude": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.1.1.tgz", + "integrity": "sha512-35+Asrsk3XHJDBgf/VRFexPgh3UyETv8IAn/LRTiZjVy6rjPVqdEk8dJcJYBzl1w0XCJM48lvTy8SfEsCWS4nA==", + "dev": true, + "requires": { + "arrify": "1.0.1", + "micromatch": "2.3.11", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "require-main-filename": "1.0.1" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "2.0.1" + } + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "requires": { + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "requires": { + "find-up": "1.1.2", + "read-pkg": "1.1.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "0.2.1" + } + } + } + }, "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, + "throat": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz", + "integrity": "sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=", + "dev": true + }, "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", @@ -6577,6 +8205,12 @@ "os-tmpdir": "1.0.2" } }, + "tmpl": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", + "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=", + "dev": true + }, "to-arraybuffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", @@ -6598,6 +8232,12 @@ "punycode": "1.4.1" } }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", + "dev": true + }, "travis-ci": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/travis-ci/-/travis-ci-2.1.1.tgz", @@ -7010,6 +8650,33 @@ "foreachasync": "3.0.0" } }, + "walker": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", + "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", + "dev": true, + "requires": { + "makeerror": "1.0.11" + } + }, + "watch": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/watch/-/watch-0.18.0.tgz", + "integrity": "sha1-KAlUdsbffJDJYxOJkMClQj60uYY=", + "dev": true, + "requires": { + "exec-sh": "0.2.1", + "minimist": "1.2.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, "watchpack": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.4.0.tgz", @@ -7021,6 +8688,12 @@ "graceful-fs": "4.1.11" } }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, "webpack": { "version": "3.8.1", "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.8.1.tgz", @@ -7080,6 +8753,33 @@ } } }, + "whatwg-encoding": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.3.tgz", + "integrity": "sha512-jLBwwKUhi8WtBfsMQlL4bUUcT8sMkAtQinscJAe/M4KHCkHuUJAF6vuB0tueNIw4c8ziO6AkRmgY+jL3a0iiPw==", + "dev": true, + "requires": { + "iconv-lite": "0.4.19" + } + }, + "whatwg-url": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-4.8.0.tgz", + "integrity": "sha1-0pgaqRSMHgCkHFphMRZqtGg7vMA=", + "dev": true, + "requires": { + "tr46": "0.0.3", + "webidl-conversions": "3.0.1" + }, + "dependencies": { + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", + "dev": true + } + } + }, "whet.extend": { "version": "0.9.9", "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz", @@ -7128,6 +8828,16 @@ "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", "dev": true }, + "worker-farm": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.5.1.tgz", + "integrity": "sha512-T5NH6Wqsd8MwGD4AK8BBllUy6LmHaqjEOyo/YIUEegZui6/v5Bqde//3jwyE3PGiGYMmWi06exFBi5LNhhPFNw==", + "dev": true, + "requires": { + "errno": "0.1.4", + "xtend": "4.0.1" + } + }, "wrap-ansi": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", @@ -7153,6 +8863,23 @@ "mkdirp": "0.5.1" } }, + "write-file-atomic": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz", + "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "signal-exit": "3.0.2" + } + }, + "xml-name-validator": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz", + "integrity": "sha1-TYuPHszTQZqjYgYb7O9RXh5VljU=", + "dev": true + }, "xtend": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", diff --git a/package.json b/package.json index b3f9f07..e26ab7c 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "scripts": { "all": "make", "lint": "make lint", + "test": "make test", "build": "make build", "commitmsg": "validate-commit-msg", "cm": "git-cz", @@ -19,6 +20,7 @@ "babel-loader": "^7.1.1", "babel-preset-es2015": "^6.24.1", "babel-register": "^6.24.1", + "cheerio": "^1.0.0-rc.2", "commitizen": "^2.9.6", "core-js": "^2.4.1", "cz-conventional-changelog": "^2.0.0", @@ -26,7 +28,9 @@ "eslint-config-airbnb-base": "^11.2.0", "eslint-plugin-import": "^2.5.0", "husky": "^0.13.4", + "jest": "^21.2.1", "parse5": "^3.0.2", + "prettier": "^1.8.2", "rsvp": "^3.6.0", "semantic-release": "^6.3.6", "svgo": "^0.7.2", diff --git a/src/default-attributes.json b/src/default-attributes.json new file mode 100644 index 0000000..e57e91b --- /dev/null +++ b/src/default-attributes.json @@ -0,0 +1,11 @@ +{ + "xmlns": "http://www.w3.org/2000/svg", + "width": 24, + "height": 24, + "viewBox": "0 0 24 24", + "fill": "none", + "stroke": "currentColor", + "stroke-width": 2, + "stroke-linecap": "round", + "stroke-linejoin": "round" +} diff --git a/src/to-svg.js b/src/to-svg.js index c00a19e..682791c 100644 --- a/src/to-svg.js +++ b/src/to-svg.js @@ -3,18 +3,7 @@ */ import icons from '../dist/icons.json'; - -const DEFAULT_OPTIONS = { - xmlns: 'http://www.w3.org/2000/svg', - width: 24, - height: 24, - viewBox: '0 0 24 24', - fill: 'none', - stroke: 'currentColor', - 'stroke-width': 2, - 'stroke-linecap': 'round', - 'stroke-linejoin': 'round', -}; +import DEFAULT_ATTRIBUTES from './default-attributes.json'; /** * Create an SVG string. @@ -31,7 +20,7 @@ export default function toSvg(key, options = {}) { throw new Error(`No icon matching '${key}'. See the complete list of icons at https://feathericons.com`); } - const combinedOptions = Object.assign({}, DEFAULT_OPTIONS, options); + const combinedOptions = Object.assign({}, DEFAULT_ATTRIBUTES, options); combinedOptions.class = addDefaultClassNames(combinedOptions.class, key);