diff --git a/CHANGELOG.md b/CHANGELOG.md index 0f486d8d0d..c363c8399b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,6 +26,7 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm - Export `broadcast` icon in Teams theme @miroslavstastny ([#1737](https://github.com/stardust-ui/react/pull/1737)) - Ensure `actionsMenu` is not cut-off by the edge of viewport for `ChatMessage` @kuzhelov ([#1739](https://github.com/stardust-ui/react/pull/1739)) - `FocusZone` should respect elements with `contenteditable` attribute on Home/End key press @sophieH29 ([#1749](https://github.com/stardust-ui/react/pull/1749)) +- Fix incorrect order of plugin execution in `felaRenderer` @lucivpav ([#1741](https://github.com/stardust-ui/react/pull/1741)) ### Features - Expose `isFromKeyboard` in `Grid` component @sophieH29 ([#1729](https://github.com/stardust-ui/react/pull/1729)) diff --git a/package.json b/package.json index bced96532f..eea90fabf7 100644 --- a/package.json +++ b/package.json @@ -114,7 +114,7 @@ "merge2": "^1.2.2", "normalize.css": "^8.0.0", "portfinder": "^1.0.20", - "prettier": "1.18.2", + "prettier": "^1.18.2", "progress": "^2.0.3", "puppeteer": "^1.11.0", "react": "^16.8.6", diff --git a/packages/internal-tooling/package.json b/packages/internal-tooling/package.json index 36bf957927..40f63df5d5 100644 --- a/packages/internal-tooling/package.json +++ b/packages/internal-tooling/package.json @@ -24,8 +24,11 @@ "eslint-plugin-jsx-a11y": "^6.2.1", "eslint-plugin-react": "^7.12.4", "eslint-plugin-react-hooks": "^1.6.0", + "fela": "^10.6.1", "jest": "^24.5.0", - "jest-axe": "^3.1.1" + "jest-axe": "^3.1.1", + "jest-react-fela": "^10.6.1", + "react-fela": "^10.6.1" }, "files": [ "babel", diff --git a/packages/react/jest.config.js b/packages/react/jest.config.js index a529a2f850..0a20f0a812 100644 --- a/packages/react/jest.config.js +++ b/packages/react/jest.config.js @@ -8,7 +8,7 @@ module.exports = { 'docs/(.*)$': `/../../docs/$1`, // Legacy aliases, they should not be used in new tests - 'src/(.*)$': `/src/$1`, + '^src/(.*)$': `/src/$1`, 'test/(.*)$': `/test/$1`, }, } diff --git a/packages/react/src/lib/felaInvokeKeyframesPlugin.ts b/packages/react/src/lib/felaInvokeKeyframesPlugin.ts index 0b4bc9d7f8..bfbda0f0bc 100644 --- a/packages/react/src/lib/felaInvokeKeyframesPlugin.ts +++ b/packages/react/src/lib/felaInvokeKeyframesPlugin.ts @@ -1,4 +1,5 @@ import callable from './callable' +import * as _ from 'lodash' /** * Fela plugin for invoking keyframes with params. The keyframes, defined in the animationName prop, @@ -12,20 +13,20 @@ export default () => { return Object.keys(styles).reduce((acc, cssPropertyName) => { const cssPropertyValue = styles[cssPropertyName] - if (cssPropertyName === 'animationName' && typeof cssPropertyValue === 'object') { - if (cssPropertyValue.keyframe) { - styles[cssPropertyName] = callable(cssPropertyValue.keyframe)( - cssPropertyValue.params || {}, - ) - } + if (_.isPlainObject(cssPropertyValue)) { + if (cssPropertyName === 'animationName') { + if (cssPropertyValue.keyframe) { + styles[cssPropertyName] = callable(cssPropertyValue.keyframe)( + cssPropertyValue.params || {}, + ) + } - return { - ...acc, - [cssPropertyName]: styles[cssPropertyName], + return { + ...acc, + [cssPropertyName]: styles[cssPropertyName], + } } - } - if (typeof cssPropertyValue === 'object') { return { ...acc, [cssPropertyName]: invokeKeyframes(cssPropertyValue), diff --git a/packages/react/src/lib/felaRenderer.tsx b/packages/react/src/lib/felaRenderer.tsx index f583cb8d34..2c545f0484 100644 --- a/packages/react/src/lib/felaRenderer.tsx +++ b/packages/react/src/lib/felaRenderer.tsx @@ -52,6 +52,8 @@ const rendererConfig = { filterClassName, enhancers: [], plugins: [ + felaDisableAnimationsPlugin(), + // is necessary to prevent accidental style typos // from breaking ALL the styles on the page felaSanitizeCss({ @@ -59,6 +61,8 @@ const rendererConfig = { }), felaPluginPlaceholderPrefixer(), + felaInvokeKeyframesPlugin(), + felaPluginEmbedded(), felaPluginPrefixer(), // Heads up! @@ -66,9 +70,6 @@ const rendererConfig = { felaPluginFallbackValue(), felaExpandCssShorthandsPlugin(), - felaDisableAnimationsPlugin(), - felaInvokeKeyframesPlugin(), - felaPluginEmbedded(), felaPluginRtl(), ], diff --git a/packages/react/test/specs/lib/__snapshots__/felaRenderer-test.tsx.snap b/packages/react/test/specs/lib/__snapshots__/felaRenderer-test.tsx.snap new file mode 100644 index 0000000000..107fd920aa --- /dev/null +++ b/packages/react/test/specs/lib/__snapshots__/felaRenderer-test.tsx.snap @@ -0,0 +1,123 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`CSS fallback values are rendered 1`] = ` +".a { + color: red; + color: blue; +} + + +
; +" +`; + +exports[`array returned by keyframe results in CSS fallback values 1`] = ` +"@-webkit-keyframes k1 { + 0% { + color: blue; + color: red; + color: yellow; + } + 100% { + color: blue; + color: red; + color: yellow; + } +} +@-moz-keyframes k1 { + 0% { + color: blue; + color: red; + color: yellow; + } + 100% { + color: blue; + color: red; + color: yellow; + } +} +@keyframes k1 { + 0% { + color: blue; + color: red; + color: yellow; + } + 100% { + color: blue; + color: red; + color: yellow; + } +} +.a { + animation-name: k1; +} + + +
+
+
; +" +`; + +exports[`basic styles are rendered 1`] = ` +".a { + color: red; +} + + +
; +" +`; + +exports[`keyframe colors are rendered 1`] = ` +"@-webkit-keyframes k1 { + from { + color: red; + } + to { + color: blue; + } +} +@-moz-keyframes k1 { + from { + color: red; + } + to { + color: blue; + } +} +@keyframes k1 { + from { + color: red; + } + to { + color: blue; + } +} +.a { + animation-name: k1; +} +.b { + animation-duration: 5s; +} + + +
+
+
; +" +`; + +exports[`marginLeft is rendered into marginRight due to RTL 1`] = ` +".a { + margin-right: 10px; +} + + +
+ + Hello + +
; +" +`; diff --git a/packages/react/test/specs/lib/felaInvokeKeyframesPlugin-test.ts b/packages/react/test/specs/lib/felaInvokeKeyframesPlugin-test.ts index 29e9399888..9707176264 100644 --- a/packages/react/test/specs/lib/felaInvokeKeyframesPlugin-test.ts +++ b/packages/react/test/specs/lib/felaInvokeKeyframesPlugin-test.ts @@ -56,4 +56,12 @@ describe('felaRenderKeyframesPlugin', () => { animationDuration: '2s', }) }) + + test('does not transform a list of strings', () => { + const style = { + display: ['inline-grid', '-ms-inline-grid'], + } + + expect(renderInvokeKeyframes(style, 'RULE', felaRenderer)).toMatchObject(style) + }) }) diff --git a/packages/react/test/specs/lib/felaRenderer-test.tsx b/packages/react/test/specs/lib/felaRenderer-test.tsx new file mode 100644 index 0000000000..038ae5c2ef --- /dev/null +++ b/packages/react/test/specs/lib/felaRenderer-test.tsx @@ -0,0 +1,91 @@ +import * as React from 'react' +import { createSnapshot } from 'jest-react-fela' +import { EmptyThemeProvider } from 'test/utils' +import Box from 'src/components/Box/Box' +import Provider from 'src/components/Provider/Provider' +import Text from 'src/components/Text/Text' +import { felaRenderer } from 'src/lib' + +test('basic styles are rendered', () => { + const snapshot = createSnapshot( + + + , + {}, + felaRenderer, + ) + expect(snapshot).toMatchSnapshot() +}) + +test('CSS fallback values are rendered', () => { + const snapshot = createSnapshot( + + + , + {}, + felaRenderer, + ) + expect(snapshot).toMatchSnapshot() +}) + +test('keyframe colors are rendered', () => { + const spinner = { + keyframe: ({ fromColor, toColor }) => ({ + from: { + color: fromColor, + }, + to: { + color: toColor, + }, + }), + keyframeParams: { + fromColor: 'red', + toColor: 'blue', + }, + duration: '5s', + } + + const snapshot = createSnapshot( + + + , + {}, + felaRenderer, + ) + expect(snapshot).toMatchSnapshot() +}) + +test('array returned by keyframe results in CSS fallback values', () => { + const steps = ['0%', '100%'] + + const spinner = { + keyframe: ({ steps }) => { + const obj = {} + steps.forEach((step: string, index) => { + ;(obj as any)[step] = { color: ['blue', 'red', 'yellow'] } + }) + return obj + }, + keyframeParams: { steps }, + } + + const snapshot = createSnapshot( + + + , + {}, + felaRenderer, + ) + expect(snapshot).toMatchSnapshot() +}) + +test('marginLeft is rendered into marginRight due to RTL', () => { + const snapshot = createSnapshot( + + + , + {}, + felaRenderer, + ) + expect(snapshot).toMatchSnapshot() +}) diff --git a/yarn.lock b/yarn.lock index 786e502d69..4fad327933 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3153,6 +3153,11 @@ browser-process-hrtime@^0.1.2: resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz#616f00faef1df7ec1b5bf9cfe2bdc3170f26c7b4" integrity sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw== +"browser-request@>= 0.3.1 < 0.4.0": + version "0.3.3" + resolved "https://registry.yarnpkg.com/browser-request/-/browser-request-0.3.3.tgz#9ece5b5aca89a29932242e18bf933def9876cc17" + integrity sha1-ns5bWsqJopkyJC4Yv5M975h2zBc= + browser-resolve@^1.11.3: version "1.11.3" resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" @@ -4378,6 +4383,18 @@ cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.6.tgz#f85206cee04efa841f3c5982a74ba96ab20d65ad" integrity sha512-DtUeseGk9/GBW0hl0vVPpU22iHL6YB5BUX7ml1hB+GMpo0NX5G4voX3kdWiMSEguFtcW3Vh3djqNF4aIe6ne0A== +"cssom@>= 0.3.0 < 0.4.0": + version "0.3.8" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== + +"cssstyle@>= 0.2.21 < 0.3.0": + version "0.2.37" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-0.2.37.tgz#541097234cb2513c83ceed3acddc27ff27987d54" + integrity sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ= + dependencies: + cssom "0.3.x" + cssstyle@^1.0.0: version "1.2.1" resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.2.1.tgz#3aceb2759eaf514ac1a21628d723d6043a819495" @@ -5372,9 +5389,9 @@ eslint-config-airbnb@^17.1.0: object.entries "^1.0.4" eslint-config-prettier@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-4.1.0.tgz#181364895899fff9fd3605fecb5c4f20e7d5f395" - integrity sha512-zILwX9/Ocz4SV2vX7ox85AsrAgXV3f2o2gpIicdMIOra48WYqgUnWNH/cR/iHtmD2Vb3dLSC3LiEJnS05Gkw7w== + version "4.3.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-4.3.0.tgz#c55c1fcac8ce4518aeb77906984e134d9eb5a4f0" + integrity sha512-sZwhSTHVVz78+kYD3t5pCWSYEdVSBR0PXnwjDRsUs8ytIrK8PLXw+6FKp8r3Z7rx4ZszdetWlXYKOHoUrrwPlA== dependencies: get-stdin "^6.0.0" @@ -5923,7 +5940,7 @@ fb-watchman@^2.0.0: dependencies: bser "^2.0.0" -fbjs@^0.8.4: +fbjs@^0.8.1, fbjs@^0.8.4: version "0.8.17" resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.17.tgz#c4d598ead6949112653d6588b01a5cdcd9f90fdd" integrity sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90= @@ -5943,6 +5960,26 @@ fd-slicer@~1.0.1: dependencies: pend "~1.2.0" +fela-bindings@^10.6.1: + version "10.6.1" + resolved "https://registry.yarnpkg.com/fela-bindings/-/fela-bindings-10.6.1.tgz#7658915178ec903f8e86d608ffd22f1ca3fca232" + integrity sha512-VY6PzkVHDpVHSvefa4AnfRYuzw1jgAheU+ePof4m8je3JgkoezKDiadI7uHD0teyzJhajDZ25nr2dOt2yCuMtA== + dependencies: + fast-loops "^1.0.0" + fela-dom "^10.6.1" + fela-tools "^10.6.1" + react-addons-shallow-compare "^15.6.2" + shallow-equal "^1.0.0" + +fela-dom@^10.6.1: + version "10.6.1" + resolved "https://registry.yarnpkg.com/fela-dom/-/fela-dom-10.6.1.tgz#d249a4380ab1565e73e250fe624a36329fd256a7" + integrity sha512-J/EbPv7w7GGEBwhwwohTNdBThS1CrVaO5t8eapuKg0GDUCulbpBHuL5fw1+TbpJKEL54h7GwaCV9RZKZPUOXGA== + dependencies: + css-in-js-utils "^3.0.0" + fast-loops "^1.0.1" + fela-utils "^10.6.1" + fela-plugin-custom-property@^10.5.0: version "10.5.0" resolved "https://registry.yarnpkg.com/fela-plugin-custom-property/-/fela-plugin-custom-property-10.5.0.tgz#cda6c247c1c8cbe0602a1334ff0259a16e8c8f39" @@ -5993,6 +6030,16 @@ fela-plugin-rtl@^10.5.0: dependencies: rtl-css-js "^1.1.3" +fela-tools@^10.6.1: + version "10.6.1" + resolved "https://registry.yarnpkg.com/fela-tools/-/fela-tools-10.6.1.tgz#77306a79ede0defc518c4617bba5c932d81808e0" + integrity sha512-fywHZDZPY2jQoNA+COPn5ge4rq4uFYVEeNVsT/AKW/RtQNnr18JsHoO1kbn/n4N76NJcNKP6R8OM6jOcOdLiYQ== + dependencies: + css-in-js-utils "^3.0.0" + fast-loops "^1.0.0" + fela "^10.6.1" + fela-utils "^10.6.1" + fela-utils@^10.5.0: version "10.5.0" resolved "https://registry.yarnpkg.com/fela-utils/-/fela-utils-10.5.0.tgz#29ddce082c52639b6e3789741b187cab0da8d886" @@ -6001,6 +6048,25 @@ fela-utils@^10.5.0: css-in-js-utils "^3.0.0" fast-loops "^1.0.0" +fela-utils@^10.6.1: + version "10.6.1" + resolved "https://registry.yarnpkg.com/fela-utils/-/fela-utils-10.6.1.tgz#cbb58d94c32dddc0a561f28e67174f3b9ae27700" + integrity sha512-7xYmvfWpFwktchtXMnwbRNcAcCE3GRxYY44U7VUfAcnVUf+6JiuD72yVWLlsQcMMWRFlr+NRi/d5QvqgWNZAbA== + dependencies: + css-in-js-utils "^3.0.0" + fast-loops "^1.0.0" + +fela@^10.6.1: + version "10.6.1" + resolved "https://registry.yarnpkg.com/fela/-/fela-10.6.1.tgz#66a8349018a5c06908deca7fc18a83b0df9d63a6" + integrity sha512-Fp07Wst/BchfJAufCF+sfeMeIsB8hq+EHObpjUMrLfXcweqRtcJ5gg+47ncYO6W/HnRi1NBUzV+fY4tnMVm+MA== + dependencies: + css-in-js-utils "^3.0.0" + csstype "^2.5.5" + fast-loops "^1.0.0" + fela-utils "^10.6.1" + isobject "^3.0.1" + figgy-pudding@^3.4.1, figgy-pudding@^3.5.1: version "3.5.1" resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" @@ -7353,7 +7419,7 @@ html-webpack-plugin@^4.0.0-beta.5: tapable "^1.1.0" util.promisify "1.0.0" -htmlparser2@^3.10.0, htmlparser2@^3.9.1: +"htmlparser2@>= 3.7.3 < 4.0.0", htmlparser2@^3.10.0, htmlparser2@^3.9.1: version "3.10.1" resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== @@ -7387,6 +7453,16 @@ htmlparser2@~3.9.2: inherits "^2.0.1" readable-stream "^2.0.2" +htmltojsx@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/htmltojsx/-/htmltojsx-0.3.0.tgz#6487c4504d660051e49f73a127b455d763df8266" + integrity sha1-ZIfEUE1mAFHkn3OhJ7RV12PfgmY= + dependencies: + jsdom-no-contextify "~3.1.0" + react "~15.4.1" + react-dom "~15.4.1" + yargs "~4.6.0" + http-cache-semantics@^3.8.1: version "3.8.1" resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" @@ -8416,6 +8492,14 @@ jest-environment-node@^24.5.0: jest-mock "^24.5.0" jest-util "^24.5.0" +jest-fela-bindings@^10.6.1: + version "10.6.1" + resolved "https://registry.yarnpkg.com/jest-fela-bindings/-/jest-fela-bindings-10.6.1.tgz#7813de822e8d50b2b58478716e7821fbf727e725" + integrity sha512-vHDmx12nUAKVKGKnak8TsBhT8cKE081cqBFhDLCQ0kuQCcPWeJKBJ9kxkshCNoreg/HCi7e/qFvNEg4NZ39SYQ== + dependencies: + fela-tools "^10.6.1" + htmltojsx "^0.3.0" + jest-get-type@^22.1.0: version "22.4.3" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-22.4.3.tgz#e3a8504d8479342dd4420236b322869f18900ce4" @@ -8516,6 +8600,13 @@ jest-pnp-resolver@^1.2.1: resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz#ecdae604c077a7fbc70defb6d517c3c1c898923a" integrity sha512-pgFw2tm54fzgYvc/OHrnysABEObZCUNFnhjoRjaVOCN8NYc032/gVjPaHD4Aq6ApkSieWtfKAFQtmDKAmhupnQ== +jest-react-fela@^10.6.1: + version "10.6.1" + resolved "https://registry.yarnpkg.com/jest-react-fela/-/jest-react-fela-10.6.1.tgz#8851fa3ed70b9908b7f8f7cef254926ffc4fad72" + integrity sha512-LRRw+Ub1czDZHL71bOMftQ17IlFVQmgUiaQw82RoeKc2Cp0COWOzTuGTQCeT5cPbgBJ75wTSgdG4Egvx5TpACA== + dependencies: + jest-fela-bindings "^10.6.1" + jest-regex-util@^24.3.0: version "24.3.0" resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-24.3.0.tgz#d5a65f60be1ae3e310d5214a0307581995227b36" @@ -8729,6 +8820,21 @@ jsbn@~0.1.0: resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= +jsdom-no-contextify@~3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/jsdom-no-contextify/-/jsdom-no-contextify-3.1.0.tgz#0d8beaf610c2ff23894f54dfa7f89dd22fd0f7ab" + integrity sha1-DYvq9hDC/yOJT1Tfp/id0i/Q96s= + dependencies: + browser-request ">= 0.3.1 < 0.4.0" + cssom ">= 0.3.0 < 0.4.0" + cssstyle ">= 0.2.21 < 0.3.0" + htmlparser2 ">= 3.7.3 < 4.0.0" + nwmatcher ">= 1.3.4 < 2.0.0" + parse5 ">= 1.3.1 < 2.0.0" + request ">= 2.44.0 < 3.0.0" + xml-name-validator "^1.0.0" + xmlhttprequest ">= 1.6.0 < 2.0.0" + jsdom@^11.5.1: version "11.12.0" resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-11.12.0.tgz#1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8" @@ -9199,7 +9305,7 @@ listr@^0.14.1: rxjs "^6.1.0" strip-ansi "^3.0.1" -load-json-file@^1.0.0: +load-json-file@^1.0.0, load-json-file@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= @@ -9310,7 +9416,7 @@ lodash._root@^3.0.0: resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" integrity sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI= -lodash.assign@^4.2.0: +lodash.assign@^4.0.3, lodash.assign@^4.0.6, lodash.assign@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" integrity sha1-DZnzzNem0mHRm9rrkkUAXShYCOc= @@ -10568,6 +10674,11 @@ number-is-nan@^1.0.0: resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= +"nwmatcher@>= 1.3.4 < 2.0.0": + version "1.4.4" + resolved "https://registry.yarnpkg.com/nwmatcher/-/nwmatcher-1.4.4.tgz#2285631f34a95f0d0395cd900c96ed39b58f346e" + integrity sha512-3iuY4N5dhgMpCUrOVnuAdGrgxVqV2cJpM+XNccjR2DKOB1RUP0aA+wGXEiNziG/UKboFyGBIoKOaNlJxx8bciQ== + nwsapi@^2.0.7: version "2.1.1" resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.1.1.tgz#08d6d75e69fd791bdea31507ffafe8c843b67e9c" @@ -11181,6 +11292,11 @@ parse5@4.0.0: resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" integrity sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA== +"parse5@>= 1.3.1 < 2.0.0": + version "1.5.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-1.5.1.tgz#9b7f3b0de32be78dc2401b17573ccaf0f6f59d94" + integrity sha1-m387DeMr543CQBsXVzzK8Pb1nZQ= + parse5@^3.0.1: version "3.0.3" resolved "https://registry.yarnpkg.com/parse5/-/parse5-3.0.3.tgz#042f792ffdd36851551cf4e9e066b3874ab45b5c" @@ -11385,6 +11501,16 @@ pirates@^4.0.0, pirates@^4.0.1: dependencies: node-modules-regexp "^1.0.0" +pkg-conf@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/pkg-conf/-/pkg-conf-1.1.3.tgz#378e56d6fd13e88bfb6f4a25df7a83faabddba5b" + integrity sha1-N45W1v0T6Iv7b0ol33qD+qvduls= + dependencies: + find-up "^1.0.0" + load-json-file "^1.1.0" + object-assign "^4.0.1" + symbol "^0.2.1" + pkg-dir@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" @@ -11485,7 +11611,7 @@ preserve@^0.2.0: resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" integrity sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks= -prettier@1.18.2: +prettier@^1.18.2: version "1.18.2" resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.18.2.tgz#6823e7c5900017b4bd3acf46fe9ac4b4d7bda9ea" integrity sha512-OeHeMc0JhFE9idD4ZdtNibzY0+TPHSpSSb9h8FqtP+YnoZZ1sl8Vc9b1sasjfymH3SonAF4QcA2+mzHPhMvIiw== @@ -11946,6 +12072,15 @@ react-dom@^16.8.6: prop-types "^15.6.2" scheduler "^0.13.6" +react-dom@~15.4.1: + version "15.4.2" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-15.4.2.tgz#015363f05b0a1fd52ae9efdd3a0060d90695208f" + integrity sha1-AVNj8FsKH9Uq6e/dOgBg2QaVII8= + dependencies: + fbjs "^0.8.1" + loose-envify "^1.1.0" + object-assign "^4.1.0" + react-element-to-jsx-string@^14.0.2: version "14.0.2" resolved "https://registry.yarnpkg.com/react-element-to-jsx-string/-/react-element-to-jsx-string-14.0.2.tgz#586d248bb2416855aa6ac3881e18726832c146d2" @@ -11964,6 +12099,15 @@ react-fast-compare@^2.0.4: resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-2.0.4.tgz#e84b4d455b0fec113e0402c329352715196f81f9" integrity sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw== +react-fela@^10.6.1: + version "10.6.1" + resolved "https://registry.yarnpkg.com/react-fela/-/react-fela-10.6.1.tgz#7d76246d073d93eefc08084345e81193a1e510c6" + integrity sha512-HEtJXkvmwvvPJ4lbYrbttudgmacXnWSU9H3Syx4KiyiUBq9y/f0bn1YW/BLh4jQVVxAsbI6s6hSNornX/sdEzw== + dependencies: + fela-bindings "^10.6.1" + fela-dom "^10.6.1" + prop-types "^15.5.8" + react-hot-loader@^4.8.2: version "4.8.7" resolved "https://registry.yarnpkg.com/react-hot-loader/-/react-hot-loader-4.8.7.tgz#8bcec3105d4e0e3cba52aa59800568fc9fb3322d" @@ -12115,6 +12259,15 @@ react@^16.8.6: prop-types "^15.6.2" scheduler "^0.13.6" +react@~15.4.1: + version "15.4.2" + resolved "https://registry.yarnpkg.com/react/-/react-15.4.2.tgz#41f7991b26185392ba9bae96c8889e7e018397ef" + integrity sha1-QfeZGyYYU5K6m66WyIiefgGDl+8= + dependencies: + fbjs "^0.8.4" + loose-envify "^1.1.0" + object-assign "^4.1.0" + read-cmd-shim@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-1.0.1.tgz#2d5d157786a37c055d22077c32c53f8329e91c7b" @@ -12619,7 +12772,7 @@ request-promise-native@^1.0.5: stealthy-require "^1.1.0" tough-cookie ">=2.3.3" -request@^2.55.0, request@^2.87.0: +"request@>= 2.44.0 < 3.0.0", request@^2.55.0, request@^2.87.0: version "2.88.0" resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg== @@ -13957,6 +14110,11 @@ symbol-tree@^3.2.2: resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6" integrity sha1-rifbOPZgp64uHDt9G8KQgZuFGeY= +symbol@^0.2.1: + version "0.2.3" + resolved "https://registry.yarnpkg.com/symbol/-/symbol-0.2.3.tgz#3b9873b8a901e47c6efe21526a3ac372ef28bbc7" + integrity sha1-O5hzuKkB5Hxu/iFSajrDcu8ou8c= + syncpack@^4.3.1: version "4.3.1" resolved "https://registry.yarnpkg.com/syncpack/-/syncpack-4.3.1.tgz#353406eb19c38246eda729303d5dd2c252420022" @@ -15333,6 +15491,11 @@ window-size@^0.1.4: resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.4.tgz#f8e1aa1ee5a53ec5bf151ffa09742a6ad7697876" integrity sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY= +window-size@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.2.0.tgz#b4315bb4214a3d7058ebeee892e13fa24d98b075" + integrity sha1-tDFbtCFKPXBY6+7okuE/ok2YsHU= + windows-release@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/windows-release/-/windows-release-3.1.0.tgz#8d4a7e266cbf5a233f6c717dac19ce00af36e12e" @@ -15446,6 +15609,11 @@ xdg-basedir@^3.0.0: resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" integrity sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ= +xml-name-validator@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-1.0.0.tgz#dcf82ee092322951ef8cc1ba596c9cbfd14a83f1" + integrity sha1-3Pgu4JIyKVHvjMG6WWycv9FKg/E= + xml-name-validator@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" @@ -15464,6 +15632,11 @@ xmlbuilder@~9.0.1: resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d" integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0= +"xmlhttprequest@>= 1.6.0 < 2.0.0": + version "1.8.0" + resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" + integrity sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw= + xregexp@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-2.0.0.tgz#52a63e56ca0b84a7f3a5f3d61872f126ad7a5943" @@ -15507,6 +15680,14 @@ yargs-parser@^11.1.1: camelcase "^5.0.0" decamelize "^1.2.0" +yargs-parser@^2.4.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-2.4.1.tgz#85568de3cf150ff49fa51825f03a8c880ddcc5c4" + integrity sha1-hVaN488VD/SfpRgl8DqMiA3cxcQ= + dependencies: + camelcase "^3.0.0" + lodash.assign "^4.0.6" + yargs-parser@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a" @@ -15589,6 +15770,24 @@ yargs@^7.0.2, yargs@^7.1.0: y18n "^3.2.1" yargs-parser "^5.0.0" +yargs@~4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-4.6.0.tgz#cb4050c0159bfb6bb649c0f4af550526a84619dc" + integrity sha1-y0BQwBWb+2u2ScD0r1UFJqhGGdw= + dependencies: + camelcase "^2.0.1" + cliui "^3.2.0" + decamelize "^1.1.1" + lodash.assign "^4.0.3" + os-locale "^1.4.0" + pkg-conf "^1.1.2" + read-pkg-up "^1.0.1" + require-main-filename "^1.0.1" + string-width "^1.0.1" + window-size "^0.2.0" + y18n "^3.2.1" + yargs-parser "^2.4.0" + yauzl@2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005"