From c74d907377f2ee9ae3abdce0bad616c41eaa6caf Mon Sep 17 00:00:00 2001 From: Konstantin Pschera Date: Wed, 30 Nov 2016 19:31:18 +0100 Subject: [PATCH] Append a hashtag infront of colors Closes #1 --- __tests__/__snapshots__/colors.js.snap | 164 ++++++------- __tests__/colors.js | 5 +- colors.svg | 314 ++++++++++++------------- package.json | 8 +- readme.md | 6 +- scripts/build-svg.js | 20 +- scripts/update.js | 24 +- src/dark.js | 54 ++--- src/light.js | 54 ++--- src/mirage.js | 56 ++--- yarn.lock | 288 +++++++++++------------ 11 files changed, 493 insertions(+), 500 deletions(-) diff --git a/__tests__/__snapshots__/colors.js.snap b/__tests__/__snapshots__/colors.js.snap index d9d2292..47250e5 100644 --- a/__tests__/__snapshots__/colors.js.snap +++ b/__tests__/__snapshots__/colors.js.snap @@ -2,133 +2,133 @@ exports[`test colors 1`] = ` Object { "dark": Object { "common": Object { - "accent": "F29718", - "bg": "0F1419", - "fg": "E6E1CF", + "accent": "#f29718", + "bg": "#0f1419", + "fg": "#e6e1cf", }, "syntax": Object { - "activeGuide": "314559", - "comment": "5C6773", - "constant": "FFEE99", - "error": "FF3333", - "esSpec": "E6B673", - "func": "FFB454", - "gutterFg": "2D3640", - "keyword": "FF7733", - "lineHg": "151A1F", - "operator": "E7C547", - "regexp": "95E6CB", - "selection": "253340", - "stackGuide": "1A2633", - "string": "B8CC52", - "supVar": "F07178", - "tag": "36A3D9", + "activeGuide": "#314559", + "comment": "#5c6773", + "constant": "#ffee99", + "error": "#ff3333", + "esSpec": "#e6b673", + "func": "#ffb454", + "gutterFg": "#2d3640", + "keyword": "#ff7733", + "lineHg": "#151a1f", + "operator": "#e7c547", + "regexp": "#95e6cb", + "selection": "#253340", + "stackGuide": "#1a2633", + "string": "#b8cc52", + "supVar": "#f07178", + "tag": "#36a3d9", }, "theme": "dark", "ui": Object { - "fg": "3E4B59", + "fg": "#3e4b59", "folder": Object { - "normal": "3E4B59", + "normal": "#3e4b59", }, - "gridDivider": "1D242C", + "gridDivider": "#1d242c", "minimap": "100, 100, 100", "opacity": "0.3", "panel": Object { - "bg": "14191F", - "pathFg": "42505E", - "rowBg": "191F26", - "shadow": "000000", + "bg": "#14191f", + "pathFg": "#42505e", + "rowBg": "#191f26", + "shadow": "#000000", }, "scrollbar": Object { - "puck": "FFFFFF", + "puck": "#ffffff", }, }, }, "light": Object { "common": Object { - "accent": "FF6A00", - "bg": "FAFAFA", - "fg": "5C6773", + "accent": "#ff6a00", + "bg": "#fafafa", + "fg": "#5c6773", }, "syntax": Object { - "activeGuide": "B3B2B1", - "comment": "ABB0B6", - "constant": "A37ACC", - "error": "FF3333", - "esSpec": "CCA37A", - "func": "F29718", - "gutterFg": "D9D8D7", - "keyword": "F2590C", - "lineHg": "F2F2F2", - "operator": "E7C547", - "regexp": "4DBF99", - "selection": "F0EEE4", - "stackGuide": "DEDDDC", - "string": "86B300", - "supVar": "F07178", - "tag": "41A6D9", + "activeGuide": "#b3b2b1", + "comment": "#abb0b6", + "constant": "#a37acc", + "error": "#ff3333", + "esSpec": "#cca37a", + "func": "#f29718", + "gutterFg": "#d9d8d7", + "keyword": "#f2590c", + "lineHg": "#f2f2f2", + "operator": "#e7c547", + "regexp": "#4dbf99", + "selection": "#f0eee4", + "stackGuide": "#dedddc", + "string": "#86b300", + "supVar": "#f07178", + "tag": "#41a6d9", }, "theme": "light", "ui": Object { - "fg": "828C99", + "fg": "#828c99", "folder": Object { - "normal": "828C99", + "normal": "#828c99", }, - "gridDivider": "E2E4E7", + "gridDivider": "#e2e4e7", "minimap": "130, 140, 153", "opacity": "0.2", "panel": Object { - "bg": "FFFFFF", - "pathFg": "B0BEC5", - "rowBg": "F5F5F5", - "shadow": "A0A0A0", + "bg": "#ffffff", + "pathFg": "#b0bec5", + "rowBg": "#f5f5f5", + "shadow": "#a0a0a0", }, "scrollbar": Object { - "puck": "000000", + "puck": "#000000", }, }, }, "mirage": Object { "common": Object { - "accent": "FFCC66", - "bg": "212733", - "fg": "D9D7CE", + "accent": "#ffcc66", + "bg": "#212733", + "fg": "#d9d7ce", }, "syntax": Object { - "activeGuide": "606F80", - "comment": "5C6773", - "constant": "D4BFFF", - "error": "FF3333", - "esSpec": "FFC44C", - "func": "FFD580", - "gutterFg": "3D4752", - "keyword": "FFAE57", - "lineHg": "242B38", - "operator": "80D4FF", - "regexp": "95E6CB", - "selection": "343F4C", - "stackGuide": "39434D", - "string": "BAE67E", - "supVar": "F07178", - "tag": "5CCFE6", + "activeGuide": "#606f80", + "comment": "#5c6773", + "constant": "#d4bfff", + "error": "#ff3333", + "esSpec": "#ffc44c", + "func": "#ffd580", + "gutterFg": "#3d4752", + "keyword": "#ffae57", + "lineHg": "#242b38", + "operator": "#80d4ff", + "regexp": "#95e6cb", + "selection": "#343f4c", + "stackGuide": "#39434d", + "string": "#bae67e", + "supVar": "#f07178", + "tag": "#5ccfe6", }, - "theme": "mirage", + "theme": "#mirage", "ui": Object { - "fg": "607080", + "fg": "#607080", "folder": Object { - "normal": "3E4B59", + "normal": "#3e4b59", }, - "gridDivider": "343D4A", + "gridDivider": "#343d4a", "minimap": "100, 100, 100", "opacity": "0.3", "panel": Object { - "bg": "272D38", - "pathFg": "607080", - "rowBg": "303540", - "shadow": "11141A", + "bg": "#272d38", + "pathFg": "#607080", + "rowBg": "#303540", + "shadow": "#11141a", }, "scrollbar": Object { - "puck": "FFFFFF", + "puck": "#ffffff", }, }, }, diff --git a/__tests__/colors.js b/__tests__/colors.js index 7f54d54..114be21 100644 --- a/__tests__/colors.js +++ b/__tests__/colors.js @@ -3,10 +3,7 @@ import isObject from 'is-object' import * as colors from '../src/colors.js' -const removeValues = (obj) => mapObject(obj, (key, value) => ([ - key, - isObject(value) ? removeValues(value) : '' -])) +const removeValues = (obj) => mapObject(obj, (key, value) => ([key, '']), { deep: true }) test('colors', () => { expect(colors).toMatchSnapshot() diff --git a/colors.svg b/colors.svg index 45b65e4..f8e110b 100644 --- a/colors.svg +++ b/colors.svg @@ -9,361 +9,361 @@ Path - Light - Mirage - Dark + Light + Mirage + Dark - - - + + + common.fg - 5C6773 - D9D7CE - E6E1CF + #5c6773 + #d9d7ce + #e6e1cf - + - + common.bg - FAFAFA - 212733 - 0F1419 + #fafafa + #212733 + #0f1419 - - - + + + common.accent - FF6A00 - FFCC66 - F29718 + #ff6a00 + #ffcc66 + #f29718 - + - + ui.fg - 828C99 - 607080 - 3E4B59 + #828c99 + #607080 + #3e4b59 - - - + + + ui.panel.bg - FFFFFF - 272D38 - 14191F + #ffffff + #272d38 + #14191f - - + + ui.panel.shadow - A0A0A0 - 11141A - 000000 + #a0a0a0 + #11141a + #000000 - + - + ui.panel.pathFg - B0BEC5 - 607080 - 42505E + #b0bec5 + #607080 + #42505e - + - + ui.panel.rowBg - F5F5F5 - 303540 - 191F26 + #f5f5f5 + #303540 + #191f26 - - - + + + ui.folder.normal - 828C99 - 3E4B59 - 3E4B59 + #828c99 + #3e4b59 + #3e4b59 - - + + ui.scrollbar.puck - 000000 - FFFFFF - FFFFFF + #000000 + #ffffff + #ffffff - - - + + + ui.gridDivider - E2E4E7 - 343D4A - 1D242C + #e2e4e7 + #343d4a + #1d242c - - - + + + syntax.error - FF3333 - FF3333 - FF3333 + #ff3333 + #ff3333 + #ff3333 - - - + + + syntax.lineHg - F2F2F2 - 242B38 - 151A1F + #f2f2f2 + #242b38 + #151a1f - - - + + + syntax.gutterFg - D9D8D7 - 3D4752 - 2D3640 + #d9d8d7 + #3d4752 + #2d3640 - - + + syntax.selection - F0EEE4 - 343F4C - 253340 + #f0eee4 + #343f4c + #253340 - - - + + + syntax.stackGuide - DEDDDC - 39434D - 1A2633 + #dedddc + #39434d + #1a2633 - - + + syntax.activeGuide - B3B2B1 - 606F80 - 314559 + #b3b2b1 + #606f80 + #314559 - - - + + + syntax.tag - 41A6D9 - 5CCFE6 - 36A3D9 + #41a6d9 + #5ccfe6 + #36a3d9 - - - + + + syntax.func - F29718 - FFD580 - FFB454 + #f29718 + #ffd580 + #ffb454 - - - + + + syntax.regexp - 4DBF99 - 95E6CB - 95E6CB + #4dbf99 + #95e6cb + #95e6cb - - - + + + syntax.string - 86B300 - BAE67E - B8CC52 + #86b300 + #bae67e + #b8cc52 - - - + + + syntax.comment - ABB0B6 - 5C6773 - 5C6773 + #abb0b6 + #5c6773 + #5c6773 - - - + + + syntax.supVar - F07178 - F07178 - F07178 + #f07178 + #f07178 + #f07178 - - - + + + syntax.esSpec - CCA37A - FFC44C - E6B673 + #cca37a + #ffc44c + #e6b673 - - - + + + syntax.keyword - F2590C - FFAE57 - FF7733 + #f2590c + #ffae57 + #ff7733 - - - + + + syntax.operator - E7C547 - 80D4FF - E7C547 + #e7c547 + #80d4ff + #e7c547 - - - + + + syntax.constant - A37ACC - D4BFFF - FFEE99 + #a37acc + #d4bfff + #ffee99 diff --git a/package.json b/package.json index d15dbe3..2960eb9 100644 --- a/package.json +++ b/package.json @@ -30,15 +30,15 @@ "devDependencies": { "babel-cli": "6.18.0", "babel-core": "6.18.2", - "babel-jest": "16.0.0", + "babel-jest": "17.0.2", "babel-preset-latest": "6.16.0", "babel-preset-stage-0": "6.16.0", + "camelcase-keys": "4.0.0", "cross-env": "3.1.3", "font-color-contrast": "1.0.3", "is-object": "1.0.1", - "jest": "16.0.2", - "js-yaml": "3.6.1", - "lodash.camelcase": "4.3.0", + "jest": "17.0.3", + "js-yaml": "3.7.0", "map-obj": "2.0.0", "npm-run-all": "3.1.1", "rimraf": "2.5.4" diff --git a/readme.md b/readme.md index 062a1ad..df32e45 100644 --- a/readme.md +++ b/readme.md @@ -14,9 +14,9 @@ yarn add ayu ```JS import { dark, light, mirage } from 'ayu' -dark.ui.bg === '0F1419' -light.ui.fg === '828C99' -mirage.syntax.error === 'FF3333' +dark.common.bg === '#0f1419' +light.ui.fg === '#828c99' +mirage.syntax.error === '#ff3333' ``` ### Colors diff --git a/scripts/build-svg.js b/scripts/build-svg.js index 8b04f9b..dbe485d 100644 --- a/scripts/build-svg.js +++ b/scripts/build-svg.js @@ -35,23 +35,23 @@ let colorSVG = '' let index = 2 for (let key in light) { - if (light.hasOwnProperty(key) && typeof light[key] === 'string' && light[key].length === 6) { + if (light.hasOwnProperty(key) && typeof light[key] === 'string' && light[key].length === 7) { const lightColor = light[key] const mirageColor = mirage[key] const darkColor = dark[key] colorSVG += ` - - - + + + ${key} - ${lightColor} - ${mirageColor} - ${darkColor} + ${lightColor} + ${mirageColor} + ${darkColor} ` @@ -70,9 +70,9 @@ colorSVG = ` Path - Light - Mirage - Dark + Light + Mirage + Dark ${colorSVG} diff --git a/scripts/update.js b/scripts/update.js index eb9badb..86aae7d 100644 --- a/scripts/update.js +++ b/scripts/update.js @@ -1,12 +1,13 @@ -import { spawn } from 'child_process' -import { resolve } from 'path' import fs from 'fs' +import { resolve } from 'path' +import { spawn } from 'child_process' +import camelcaseKeys from 'camelcase-keys' +import isObject from 'is-object' +import mapObject from 'map-obj' import rimraf from 'rimraf' import yaml from 'js-yaml' -import camelCase from 'lodash.camelcase' -import mapObject from 'map-obj' -import isObject from 'is-object' + const license = ` /** @@ -34,15 +35,18 @@ const license = ` */ ` -const camelCaseKeys = (obj) => mapObject(obj, (key, value) => ([ - camelCase(key), - isObject(value) ? camelCaseKeys(value) : value -])) +const hashtagColors = (obj) => mapObject(obj, (key, value) => { + if (value.length === 6) { + return [key, `#${value.toLowerCase()}`] + } + + return [key, value] +}, { deep: true }) const template = (colors) => ` ${license} -export default ${JSON.stringify(camelCaseKeys(colors), null, '\t')} +export default ${JSON.stringify(hashtagColors(camelcaseKeys(colors, { deep: true })), null, '\t')} ` const clone = spawn('git', ['clone', 'https://github.com/dempfi/ayu']) diff --git a/src/dark.js b/src/dark.js index b480e51..6f2e349 100644 --- a/src/dark.js +++ b/src/dark.js @@ -28,44 +28,44 @@ export default { "theme": "dark", "common": { - "bg": "0F1419", - "fg": "E6E1CF", - "accent": "F29718" + "bg": "#0f1419", + "fg": "#e6e1cf", + "accent": "#f29718" }, "ui": { - "fg": "3E4B59", + "fg": "#3e4b59", "panel": { - "bg": "14191F", - "shadow": "000000", - "pathFg": "42505E", - "rowBg": "191F26" + "bg": "#14191f", + "shadow": "#000000", + "pathFg": "#42505e", + "rowBg": "#191f26" }, "folder": { - "normal": "3E4B59" + "normal": "#3e4b59" }, "scrollbar": { - "puck": "FFFFFF" + "puck": "#ffffff" }, - "gridDivider": "1D242C", + "gridDivider": "#1d242c", "minimap": "100, 100, 100", "opacity": "0.3" }, "syntax": { - "error": "FF3333", - "lineHg": "151A1F", - "gutterFg": "2D3640", - "selection": "253340", - "stackGuide": "1A2633", - "activeGuide": "314559", - "tag": "36A3D9", - "func": "FFB454", - "regexp": "95E6CB", - "string": "B8CC52", - "supVar": "F07178", - "keyword": "FF7733", - "esSpec": "E6B673", - "comment": "5C6773", - "constant": "FFEE99", - "operator": "E7C547" + "error": "#ff3333", + "lineHg": "#151a1f", + "gutterFg": "#2d3640", + "selection": "#253340", + "stackGuide": "#1a2633", + "activeGuide": "#314559", + "tag": "#36a3d9", + "func": "#ffb454", + "regexp": "#95e6cb", + "string": "#b8cc52", + "supVar": "#f07178", + "keyword": "#ff7733", + "esSpec": "#e6b673", + "comment": "#5c6773", + "constant": "#ffee99", + "operator": "#e7c547" } } diff --git a/src/light.js b/src/light.js index 9918d28..fdc1b1a 100644 --- a/src/light.js +++ b/src/light.js @@ -28,44 +28,44 @@ export default { "theme": "light", "common": { - "fg": "5C6773", - "bg": "FAFAFA", - "accent": "FF6A00" + "fg": "#5c6773", + "bg": "#fafafa", + "accent": "#ff6a00" }, "ui": { - "fg": "828C99", + "fg": "#828c99", "panel": { - "bg": "FFFFFF", - "shadow": "A0A0A0", - "pathFg": "B0BEC5", - "rowBg": "F5F5F5" + "bg": "#ffffff", + "shadow": "#a0a0a0", + "pathFg": "#b0bec5", + "rowBg": "#f5f5f5" }, "folder": { - "normal": "828C99" + "normal": "#828c99" }, "scrollbar": { - "puck": "000000" + "puck": "#000000" }, - "gridDivider": "E2E4E7", + "gridDivider": "#e2e4e7", "minimap": "130, 140, 153", "opacity": "0.2" }, "syntax": { - "error": "FF3333", - "lineHg": "F2F2F2", - "gutterFg": "D9D8D7", - "selection": "F0EEE4", - "stackGuide": "DEDDDC", - "activeGuide": "B3B2B1", - "tag": "41A6D9", - "func": "F29718", - "regexp": "4DBF99", - "string": "86B300", - "comment": "ABB0B6", - "supVar": "F07178", - "esSpec": "CCA37A", - "keyword": "F2590C", - "operator": "E7C547", - "constant": "A37ACC" + "error": "#ff3333", + "lineHg": "#f2f2f2", + "gutterFg": "#d9d8d7", + "selection": "#f0eee4", + "stackGuide": "#dedddc", + "activeGuide": "#b3b2b1", + "tag": "#41a6d9", + "func": "#f29718", + "regexp": "#4dbf99", + "string": "#86b300", + "comment": "#abb0b6", + "supVar": "#f07178", + "esSpec": "#cca37a", + "keyword": "#f2590c", + "operator": "#e7c547", + "constant": "#a37acc" } } diff --git a/src/mirage.js b/src/mirage.js index b067423..22361ec 100644 --- a/src/mirage.js +++ b/src/mirage.js @@ -26,46 +26,46 @@ export default { - "theme": "mirage", + "theme": "#mirage", "common": { - "bg": "212733", - "fg": "D9D7CE", - "accent": "FFCC66" + "bg": "#212733", + "fg": "#d9d7ce", + "accent": "#ffcc66" }, "ui": { - "fg": "607080", + "fg": "#607080", "panel": { - "bg": "272D38", - "shadow": "11141A", - "pathFg": "607080", - "rowBg": "303540" + "bg": "#272d38", + "shadow": "#11141a", + "pathFg": "#607080", + "rowBg": "#303540" }, "folder": { - "normal": "3E4B59" + "normal": "#3e4b59" }, "scrollbar": { - "puck": "FFFFFF" + "puck": "#ffffff" }, "opacity": "0.3", - "gridDivider": "343D4A", + "gridDivider": "#343d4a", "minimap": "100, 100, 100" }, "syntax": { - "error": "FF3333", - "gutterFg": "3D4752", - "lineHg": "242B38", - "selection": "343F4C", - "stackGuide": "39434D", - "activeGuide": "606F80", - "tag": "5CCFE6", - "func": "FFD580", - "string": "BAE67E", - "regexp": "95E6CB", - "supVar": "F07178", - "keyword": "FFAE57", - "esSpec": "FFC44C", - "comment": "5C6773", - "constant": "D4BFFF", - "operator": "80D4FF" + "error": "#ff3333", + "gutterFg": "#3d4752", + "lineHg": "#242b38", + "selection": "#343f4c", + "stackGuide": "#39434d", + "activeGuide": "#606f80", + "tag": "#5ccfe6", + "func": "#ffd580", + "string": "#bae67e", + "regexp": "#95e6cb", + "supVar": "#f07178", + "keyword": "#ffae57", + "esSpec": "#ffc44c", + "comment": "#5c6773", + "constant": "#d4bfff", + "operator": "#80d4ff" } } diff --git a/yarn.lock b/yarn.lock index 2449b60..b0a8235 100644 --- a/yarn.lock +++ b/yarn.lock @@ -189,7 +189,7 @@ babel-code-frame@^6.16.0: esutils "^2.0.2" js-tokens "^2.0.0" -babel-core, babel-core@^6.0.0, babel-core@^6.11.4, babel-core@^6.18.0: +babel-core, babel-core@^6.0.0, babel-core@^6.18.0: version "6.18.2" resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.18.2.tgz#d8bb14dd6986fa4f3566a26ceda3964fa0e04e5b" dependencies: @@ -343,13 +343,13 @@ babel-helpers@^6.16.0: babel-runtime "^6.0.0" babel-template "^6.16.0" -babel-jest@16.0.0, babel-jest@^16.0.0: - version "16.0.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-16.0.0.tgz#348729aea6d624a4774b8a934d07a40dd2cfd640" +babel-jest@17.0.2, babel-jest@^17.0.2: + version "17.0.2" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-17.0.2.tgz#8d51e0d03759713c331f108eb0b2eaa4c6efff74" dependencies: babel-core "^6.0.0" babel-plugin-istanbul "^2.0.0" - babel-preset-jest "^16.0.0" + babel-preset-jest "^17.0.2" babel-messages@^6.8.0: version "6.8.0" @@ -372,9 +372,9 @@ babel-plugin-istanbul@^2.0.0: object-assign "^4.1.0" test-exclude "^2.1.1" -babel-plugin-jest-hoist@^16.0.0: - version "16.0.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-16.0.0.tgz#b58ca3f770982a7e7c25b5614b2e57e9dafc6e76" +babel-plugin-jest-hoist@^17.0.2: + version "17.0.2" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-17.0.2.tgz#213488ce825990acd4c30f887dca09fffeb45235" babel-plugin-syntax-async-functions@^6.8.0: version "6.13.0" @@ -737,11 +737,11 @@ babel-preset-es2017@^6.16.0: babel-plugin-syntax-trailing-function-commas "^6.8.0" babel-plugin-transform-async-to-generator "^6.16.0" -babel-preset-jest@^16.0.0: - version "16.0.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-16.0.0.tgz#417aabc2d7d93170f43c20ef1ea0145e8f7f2db5" +babel-preset-jest@^17.0.2: + version "17.0.2" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-17.0.2.tgz#141e935debe164aaa0364c220d31ccb2176493b2" dependencies: - babel-plugin-jest-hoist "^16.0.0" + babel-plugin-jest-hoist "^17.0.2" babel-preset-latest: version "6.16.0" @@ -907,6 +907,13 @@ callsites@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" +camelcase-keys@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-4.0.0.tgz#4f8bbe2762bde2489c1561366d216931ac4a491b" + dependencies: + camelcase "^3.0.0" + map-obj "^2.0.0" + camelcase@^1.0.2: version "1.2.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" @@ -1753,19 +1760,13 @@ istanbul@^0.4.5: which "^1.1.1" wordwrap "^1.0.0" -jasmine-check@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/jasmine-check/-/jasmine-check-0.1.5.tgz#dbad7eec56261c4b3d175ada55fe59b09ac9e415" - dependencies: - testcheck "^0.1.0" +jest-changed-files@^17.0.2: + version "17.0.2" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-17.0.2.tgz#f5657758736996f590a51b87e5c9369d904ba7b7" -jest-changed-files@^16.0.0: - version "16.0.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-16.0.0.tgz#7931deff4424182b8173d80e06800d7363b19c45" - -jest-cli@^16.0.2: - version "16.0.2" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-16.0.2.tgz#d439b28affa7189aa3d046d2af931f7ebb9af69d" +jest-cli@^17.0.3: + version "17.0.3" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-17.0.3.tgz#700b8c02a9ea0ec9eab0cd5a9fd42d8a858ce146" dependencies: ansi-escapes "^1.4.0" callsites "^2.0.0" @@ -1775,18 +1776,18 @@ jest-cli@^16.0.2: istanbul-api "^1.0.0-aplha.10" istanbul-lib-coverage "^1.0.0" istanbul-lib-instrument "^1.1.1" - jest-changed-files "^16.0.0" - jest-config "^16.0.2" - jest-environment-jsdom "^16.0.2" - jest-file-exists "^15.0.0" - jest-haste-map "^16.0.2" - jest-jasmine2 "^16.0.2" - jest-mock "^16.0.2" - jest-resolve "^16.0.2" - jest-resolve-dependencies "^16.0.2" - jest-runtime "^16.0.2" - jest-snapshot "^16.0.2" - jest-util "^16.0.2" + jest-changed-files "^17.0.2" + jest-config "^17.0.3" + jest-environment-jsdom "^17.0.2" + jest-file-exists "^17.0.0" + jest-haste-map "^17.0.3" + jest-jasmine2 "^17.0.3" + jest-mock "^17.0.2" + jest-resolve "^17.0.3" + jest-resolve-dependencies "^17.0.3" + jest-runtime "^17.0.3" + jest-snapshot "^17.0.3" + jest-util "^17.0.2" json-stable-stringify "^1.0.0" node-notifier "^4.6.1" sane "~1.4.1" @@ -1794,151 +1795,151 @@ jest-cli@^16.0.2: throat "^3.0.0" which "^1.1.1" worker-farm "^1.3.1" - yargs "^5.0.0" + yargs "^6.3.0" -jest-config@^16.0.2: - version "16.0.2" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-16.0.2.tgz#8e82a9c08846f23dc7fd42b5c0a1f596c385772a" +jest-config@^17.0.3: + version "17.0.3" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-17.0.3.tgz#b6ed75d90d090b731fd894231904cadb7d5a5df2" dependencies: chalk "^1.1.1" istanbul "^0.4.5" - jest-environment-jsdom "^16.0.2" - jest-environment-node "^16.0.2" - jest-jasmine2 "^16.0.2" - jest-mock "^16.0.2" - jest-resolve "^16.0.2" - jest-util "^16.0.2" + jest-environment-jsdom "^17.0.2" + jest-environment-node "^17.0.2" + jest-jasmine2 "^17.0.3" + jest-mock "^17.0.2" + jest-resolve "^17.0.3" + jest-util "^17.0.2" json-stable-stringify "^1.0.0" -jest-diff@^16.0.0: - version "16.0.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-16.0.0.tgz#4a5d13b1e36c5b8020d5d9e69639e486a675ce14" +jest-diff@^17.0.3: + version "17.0.3" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-17.0.3.tgz#8fb31efab3b314d7b61b7b66b0bdea617ef1c02f" dependencies: chalk "^1.1.3" diff "^3.0.0" - jest-matcher-utils "^16.0.0" + jest-matcher-utils "^17.0.3" pretty-format "~4.2.1" -jest-environment-jsdom@^16.0.2: - version "16.0.2" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-16.0.2.tgz#548d883b68f8ed0bd6466d8703986296724c1ef7" +jest-environment-jsdom@^17.0.2: + version "17.0.2" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-17.0.2.tgz#a3098dc29806d40802c52b62b848ab6aa00fdba0" dependencies: - jest-mock "^16.0.2" - jest-util "^16.0.2" - jsdom "^9.8.0" + jest-mock "^17.0.2" + jest-util "^17.0.2" + jsdom "^9.8.1" -jest-environment-node@^16.0.2: - version "16.0.2" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-16.0.2.tgz#eb7b3a4a9c63b728ce023828d4b5661aad8c7a08" +jest-environment-node@^17.0.2: + version "17.0.2" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-17.0.2.tgz#aff6133f4ca2faddcc5b0ce7d25cec83e16d8463" dependencies: - jest-mock "^16.0.2" - jest-util "^16.0.2" + jest-mock "^17.0.2" + jest-util "^17.0.2" -jest-file-exists@^15.0.0: - version "15.0.0" - resolved "https://registry.yarnpkg.com/jest-file-exists/-/jest-file-exists-15.0.0.tgz#b7fefdd3f4b227cb686bb156ecc7661ee6935a88" +jest-file-exists@^17.0.0: + version "17.0.0" + resolved "https://registry.yarnpkg.com/jest-file-exists/-/jest-file-exists-17.0.0.tgz#7f63eb73a1c43a13f461be261768b45af2cdd169" -jest-haste-map@^16.0.2: - version "16.0.2" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-16.0.2.tgz#4562915b25171ae2d0d75118c992f0e97536a2ed" +jest-haste-map@^17.0.3: + version "17.0.3" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-17.0.3.tgz#5232783e70577217b6b17d2a1c1766637a1d2fbd" dependencies: fb-watchman "^1.9.0" graceful-fs "^4.1.6" multimatch "^2.1.0" + sane "~1.4.1" worker-farm "^1.3.1" -jest-jasmine2@^16.0.2: - version "16.0.2" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-16.0.2.tgz#c91ae170d127aae22180dbfe181d77655a5da8c3" +jest-jasmine2@^17.0.3: + version "17.0.3" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-17.0.3.tgz#d4336b89f3ad288269a1c8e2bfc180dcf89c6ad1" dependencies: graceful-fs "^4.1.6" - jasmine-check "^0.1.4" - jest-matchers "^16.0.2" - jest-snapshot "^16.0.2" - jest-util "^16.0.2" + jest-matchers "^17.0.3" + jest-snapshot "^17.0.3" + jest-util "^17.0.2" -jest-matcher-utils@^16.0.0: - version "16.0.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-16.0.0.tgz#705af3ff85944bec1c25bc813f427aff8642b0cd" +jest-matcher-utils@^17.0.3: + version "17.0.3" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-17.0.3.tgz#f108e49b956e152c6626dcc0aba864f59ab7b0d3" dependencies: chalk "^1.1.3" pretty-format "~4.2.1" -jest-matchers@^16.0.2: - version "16.0.2" - resolved "https://registry.yarnpkg.com/jest-matchers/-/jest-matchers-16.0.2.tgz#c078c28cfe05b9b1f295f9ab27b5991f1095bbbf" +jest-matchers@^17.0.3: + version "17.0.3" + resolved "https://registry.yarnpkg.com/jest-matchers/-/jest-matchers-17.0.3.tgz#88b95348c919343db86d08f12354a8650ae7eddf" dependencies: - jest-diff "^16.0.0" - jest-matcher-utils "^16.0.0" - jest-util "^16.0.2" + jest-diff "^17.0.3" + jest-matcher-utils "^17.0.3" + jest-util "^17.0.2" -jest-mock@^16.0.2: - version "16.0.2" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-16.0.2.tgz#97b533343295d0082e9474a73ac4eb474d1636fe" +jest-mock@^17.0.2: + version "17.0.2" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-17.0.2.tgz#3dfe9221afd9aa61b3d9992840813a358bb2f429" -jest-resolve-dependencies@^16.0.2: - version "16.0.2" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-16.0.2.tgz#b204166d50141469d10667dc216239c0be865729" +jest-resolve-dependencies@^17.0.3: + version "17.0.3" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-17.0.3.tgz#bbd37f4643704b97a980927212f3ab12b06e8894" dependencies: - jest-file-exists "^15.0.0" - jest-resolve "^16.0.2" + jest-file-exists "^17.0.0" + jest-resolve "^17.0.3" -jest-resolve@^16.0.2: - version "16.0.2" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-16.0.2.tgz#46b92b9c2a44aa7ddd9a6b73dc234e9503e8c609" +jest-resolve@^17.0.3: + version "17.0.3" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-17.0.3.tgz#7692a79de2831874375e9d664bc782c29e4da262" dependencies: browser-resolve "^1.11.2" - jest-file-exists "^15.0.0" - jest-haste-map "^16.0.2" + jest-file-exists "^17.0.0" + jest-haste-map "^17.0.3" resolve "^1.1.6" -jest-runtime@^16.0.2: - version "16.0.2" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-16.0.2.tgz#a741e8d55a7b5f011bbe17a22c673a83d278a45d" +jest-runtime@^17.0.3: + version "17.0.3" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-17.0.3.tgz#eff4055fe8c3e17c95ed1aaaf5f719c420b86b1f" dependencies: - babel-core "^6.11.4" - babel-jest "^16.0.0" + babel-core "^6.0.0" + babel-jest "^17.0.2" babel-plugin-istanbul "^2.0.0" chalk "^1.1.3" graceful-fs "^4.1.6" - jest-config "^16.0.2" - jest-file-exists "^15.0.0" - jest-haste-map "^16.0.2" - jest-mock "^16.0.2" - jest-resolve "^16.0.2" - jest-snapshot "^16.0.2" - jest-util "^16.0.2" + jest-config "^17.0.3" + jest-file-exists "^17.0.0" + jest-haste-map "^17.0.3" + jest-mock "^17.0.2" + jest-resolve "^17.0.3" + jest-snapshot "^17.0.3" + jest-util "^17.0.2" json-stable-stringify "^1.0.0" multimatch "^2.1.0" - yargs "^5.0.0" + yargs "^6.3.0" -jest-snapshot@^16.0.2: - version "16.0.2" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-16.0.2.tgz#f137a4176d661bd4058910850191d1816bebdaae" +jest-snapshot@^17.0.3: + version "17.0.3" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-17.0.3.tgz#c8199db4ccbd5515cfecc8e800ab076bdda7abc0" dependencies: - jest-diff "^16.0.0" - jest-file-exists "^15.0.0" - jest-matcher-utils "^16.0.0" - jest-util "^16.0.2" + jest-diff "^17.0.3" + jest-file-exists "^17.0.0" + jest-matcher-utils "^17.0.3" + jest-util "^17.0.2" natural-compare "^1.4.0" pretty-format "~4.2.1" -jest-util@^16.0.2: - version "16.0.2" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-16.0.2.tgz#db5123358278e7a34a6d9f837409d649a0db5d54" +jest-util@^17.0.2: + version "17.0.2" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-17.0.2.tgz#9fd9da8091e9904fb976da7e4d8912ca26968638" dependencies: chalk "^1.1.1" diff "^3.0.0" graceful-fs "^4.1.6" - jest-file-exists "^15.0.0" - jest-mock "^16.0.2" + jest-file-exists "^17.0.0" + jest-mock "^17.0.2" mkdirp "^0.5.1" -jest@16.0.2: - version "16.0.2" - resolved "https://registry.yarnpkg.com/jest/-/jest-16.0.2.tgz#4a2f7f3527465168a0bafe0c3d55055188253f3a" +jest@17.0.3: + version "17.0.3" + resolved "https://registry.yarnpkg.com/jest/-/jest-17.0.3.tgz#89c43b30b0aaad42462e9ea701352dacbad4a354" dependencies: - jest-cli "^16.0.2" + jest-cli "^17.0.3" jodid25519@^1.0.0: version "1.0.2" @@ -1950,9 +1951,9 @@ js-tokens@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-2.0.0.tgz#79903f5563ee778cc1162e6dcf1a0027c97f9cb5" -js-yaml@3.6.1, js-yaml@3.x: - version "3.6.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.6.1.tgz#6e5fe67d8b205ce4d22fad05b7781e8dadcc4b30" +js-yaml@3.7.0, js-yaml@3.x: + version "3.7.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80" dependencies: argparse "^1.0.7" esprima "^2.6.0" @@ -1961,7 +1962,7 @@ jsbn@~0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.0.tgz#650987da0dd74f4ebf5a11377a2aa2d273e97dfd" -jsdom@^9.8.0: +jsdom@^9.8.1: version "9.8.3" resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-9.8.3.tgz#fde29c109c32a1131e0b6c65914e64198f97c370" dependencies: @@ -2103,14 +2104,10 @@ lodash._getnative@^3.0.0: version "3.9.1" resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" -lodash.assign@^4.1.0, lodash.assign@^4.2.0: +lodash.assign@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" -lodash.camelcase: - version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" - lodash.clonedeep@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-3.0.2.tgz#a0a1e40d82a5ea89ff5b147b8444ed63d92827db" @@ -2161,7 +2158,7 @@ makeerror@1.0.x: dependencies: tmpl "1.0.x" -map-obj: +map-obj, map-obj@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-2.0.0.tgz#a65cd29087a92598b8791257a523e021222ac1f9" @@ -2891,10 +2888,6 @@ test-exclude@^2.1.1: read-pkg-up "^1.0.1" require-main-filename "^1.0.1" -testcheck@^0.1.0: - version "0.1.4" - resolved "https://registry.yarnpkg.com/testcheck/-/testcheck-0.1.4.tgz#90056edd48d11997702616ce6716f197d8190164" - throat@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/throat/-/throat-3.0.0.tgz#e7c64c867cbb3845f10877642f7b60055b8ec0d6" @@ -3075,21 +3068,20 @@ yallist@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.0.0.tgz#306c543835f09ee1a4cb23b7bce9ab341c91cdd4" -yargs-parser@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-3.2.0.tgz#5081355d19d9d0c8c5d81ada908cb4e6d186664f" +yargs-parser@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-4.1.0.tgz#313df030f20124124aeae8fbab2da53ec28c56d7" dependencies: camelcase "^3.0.0" - lodash.assign "^4.1.0" -yargs@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-5.0.0.tgz#3355144977d05757dbb86d6e38ec056123b3a66e" +yargs@^6.3.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.4.0.tgz#816e1a866d5598ccf34e5596ddce22d92da490d4" dependencies: + camelcase "^3.0.0" cliui "^3.2.0" decamelize "^1.1.1" get-caller-file "^1.0.1" - lodash.assign "^4.2.0" os-locale "^1.4.0" read-pkg-up "^1.0.1" require-directory "^2.1.1" @@ -3099,7 +3091,7 @@ yargs@^5.0.0: which-module "^1.0.0" window-size "^0.2.0" y18n "^3.2.1" - yargs-parser "^3.2.0" + yargs-parser "^4.1.0" yargs@~3.10.0: version "3.10.0"